Blame src/api/doxy/parse_playlist.dp

Packit 3ff1e7
/** @page parse_playlist Parsing playlist properties
Packit 3ff1e7
Packit 3ff1e7
libquvi supports parsing a playlist properties (e.g. media URLs), these
Packit 3ff1e7
may be accessed using the @ref playlistprop functions.
Packit 3ff1e7
Packit 3ff1e7
The available @ref pl_script collection determines which
Packit 3ff1e7
websites are supported by the library.
Packit 3ff1e7
Packit 3ff1e7
@note Using any of the QUVI_PLAYLIST_MEDIA_PROPERTY_* values
Packit 3ff1e7
with @ref quvi_playlist_get will cause the library to advance to the first
Packit 3ff1e7
media item in the list.  This will make @ref quvi_playlist_media_next
Packit 3ff1e7
function to continue from the second media stream, not the first one
Packit 3ff1e7
as one might expect.
Packit 3ff1e7
Packit 3ff1e7
For example:
Packit 3ff1e7
Packit 3ff1e7
@code
Packit 3ff1e7
quvi_playlist_t qp = quvi_playlist_new(q, URL);
Packit 3ff1e7
abort_if_error();
Packit 3ff1e7
{
Packit 3ff1e7
  char *p_id, *m_url;
Packit 3ff1e7
  quvi_playlist_get(qp, QUVI_PLAYLIST_PROPERTY_ID, &p_id);
Packit 3ff1e7
Packit 3ff1e7
  /* Advances the playlist media list, starting from the first. */
Packit 3ff1e7
  quvi_playlist_get(qp, QUVI_PLAYLIST_MEDIA_PROPERTY_URL, &m_url);
Packit 3ff1e7
Packit 3ff1e7
  /* Would now continue from second media item in the list. */
Packit 3ff1e7
  while (quvi_playlist_media_next(qp) == QUVI_TRUE)
Packit 3ff1e7
    quvi_playlist_get(qp, QUVI_PLAYLIST_MEDIA_PROPERTY_URL, &m_url);
Packit 3ff1e7
}
Packit 3ff1e7
@endcode
Packit 3ff1e7
Packit 3ff1e7
Where as:
Packit 3ff1e7
Packit 3ff1e7
@code
Packit 3ff1e7
quvi_playlist_t qp = quvi_playlist_new(q, URL);
Packit 3ff1e7
abort_if_error();
Packit 3ff1e7
{
Packit 3ff1e7
  char *p_id, *m_url;
Packit 3ff1e7
  quvi_playlist_get(qp, QUVI_PLAYLIST_PROPERTY_ID, &p_id);
Packit 3ff1e7
Packit 3ff1e7
  /* Would start from the first stream in the list. */
Packit 3ff1e7
  while (quvi_playlist_media_next(qp) == QUVI_TRUE)
Packit 3ff1e7
    quvi_playlist_get(qp, QUVI_PLAYLIST_MEDIA_PROPERTY_URL, &m_url);
Packit 3ff1e7
}
Packit 3ff1e7
@endcode
Packit 3ff1e7
Packit 3ff1e7
Alternatively, call @ref quvi_playlist_media_reset after the @ref
Packit 3ff1e7
quvi_playlist_get call.
Packit 3ff1e7
Packit 3ff1e7
@section parse_media_example Example
Packit 3ff1e7
Packit 3ff1e7
This example parses a playlist, then queries the media properties for
Packit 3ff1e7
each found media URL.
Packit 3ff1e7
Packit 3ff1e7
@code
Packit 3ff1e7
quvi_playlist_t qp = quvi_playlist_new(q, URL);
Packit 3ff1e7
abort_if_error();
Packit 3ff1e7
{
Packit 3ff1e7
  char *s;
Packit 3ff1e7
  quvi_playlist_get(qp, QUVI_PLAYLIST_PROPERTY_ID, &s);
Packit 3ff1e7
Packit 3ff1e7
  while (quvi_playlist_media_next(qp) == QUVI_TRUE)
Packit 3ff1e7
    {
Packit 3ff1e7
      quvi_playlist_get(qp, QUVI_PLAYLIST_MEDIA_PROPERTY_URL, &s);
Packit 3ff1e7
      abort_if_error();
Packit 3ff1e7
      {
Packit 3ff1e7
        quvi_media_t qm = quvi_media_new(q, s);
Packit 3ff1e7
        abort_if_error();
Packit 3ff1e7
        /* ... */
Packit 3ff1e7
        quvi_media_free(qm);
Packit 3ff1e7
        qm = NULL;
Packit 3ff1e7
      }
Packit 3ff1e7
      quvi_playlist_get(qp, QUVI_PLAYLIST_PROPERTY_TITLE, &s);
Packit 3ff1e7
    }
Packit 3ff1e7
}
Packit 3ff1e7
quvi_playlist_free(qp); /* Release when done using it. */
Packit 3ff1e7
qp = NULL;
Packit 3ff1e7
@endcode
Packit 3ff1e7
Packit 3ff1e7
@sa @ref parse_media
Packit 3ff1e7
@sa QuviPlaylistProperty
Packit 3ff1e7
*/