VLC 4.0.0-dev
libvlc_media_list_player.h
Go to the documentation of this file.
1/*****************************************************************************
2 * libvlc_media_list_player.h: libvlc_media_list API
3 *****************************************************************************
4 * Copyright (C) 1998-2008 VLC authors and VideoLAN
5 *
6 * Authors: Pierre d'Herbemont
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU Lesser General Public License as published by
10 * the Free Software Foundation; either version 2.1 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public License
19 * along with this program; if not, write to the Free Software Foundation,
20 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21 *****************************************************************************/
22
23#ifndef LIBVLC_MEDIA_LIST_PLAYER_H
24#define LIBVLC_MEDIA_LIST_PLAYER_H 1
25
26# ifdef __cplusplus
27extern "C" {
28# endif
29
30/** \defgroup libvlc_media_list_player LibVLC media list player
31 * \ingroup libvlc
32 * The LibVLC media list player plays a @ref libvlc_media_list_t list of media,
33 * in a certain order.
34 * This is required to especially support playlist files.
35 * The normal @ref libvlc_media_player_t LibVLC media player can only play a
36 * single media, and does not handle playlist files properly.
37 * @{
38 * \file
39 * LibVLC media list player external API
40 */
41
43
44/**
45 * Defines playback modes for playlist.
46 */
48{
53
54/**
55 * Create new media_list_player.
56 *
57 * \param p_instance libvlc instance
58 * \return media list player instance or NULL on error
59 * (it must be released by libvlc_media_list_player_release())
60 */
63
64/**
65 * Release a media_list_player after use
66 * Decrement the reference count of a media player object. If the
67 * reference count is 0, then libvlc_media_list_player_release() will
68 * release the media player object. If the media player object
69 * has been released, then it should not be used again.
70 *
71 * \param p_mlp media list player instance
72 */
73LIBVLC_API void
75
76/**
77 * Retain a reference to a media player list object. Use
78 * libvlc_media_list_player_release() to decrement reference count.
79 *
80 * \param p_mlp media player list object
81 * \return the same object
82 */
85
86/**
87 * Return the event manager of this media_list_player.
88 *
89 * \param p_mlp media list player instance
90 * \return the event manager
91 */
94
95/**
96 * Replace media player in media_list_player with this instance.
97 *
98 * \param p_mlp media list player instance
99 * \param p_mi media player instance
100 */
101LIBVLC_API void
104 libvlc_media_player_t * p_mi );
105
106/**
107 * Get media player of the media_list_player instance.
108 *
109 * \param p_mlp media list player instance
110 * \return media player instance
111 * \note the caller is responsible for releasing the returned instance
112 with libvlc_media_list_player_set_media_player().
113 */
116
117/**
118 * Set the media list associated with the player
119 *
120 * \param p_mlp media list player instance
121 * \param p_mlist list of media
122 */
123LIBVLC_API void
126 libvlc_media_list_t * p_mlist );
127
128/**
129 * Play media list
130 *
131 * \param p_mlp media list player instance
132 */
135
136/**
137 * Toggle pause (or resume) media list
138 *
139 * \param p_mlp media list player instance
140 */
143
144/**
145 * Pause or resume media list
146 *
147 * \param p_mlp media list player instance
148 * \param do_pause play/resume if zero, pause if non-zero
149 * \version LibVLC 3.0.0 or later
150 */
153 int do_pause);
154
155/**
156 * Is media list playing?
157 *
158 * \param p_mlp media list player instance
159 *
160 * \retval true playing
161 * \retval false not playing
162 */
163LIBVLC_API bool
165
166/**
167 * Get current libvlc_state of media list player
168 *
169 * \param p_mlp media list player instance
170 * \return libvlc_state_t for media list player
171 */
174
175/**
176 * Play media list item at position index
177 *
178 * \param p_mlp media list player instance
179 * \param i_index index in media list to play
180 * \return 0 upon success -1 if the item wasn't found
181 */
184 int i_index);
185
186/**
187 * Play the given media item
188 *
189 * \param p_mlp media list player instance
190 * \param p_md the media instance
191 * \return 0 upon success, -1 if the media is not part of the media list
192 */
195 libvlc_media_t * p_md);
196
197/**
198 * Stop playing media list
199 *
200 * \param p_mlp media list player instance
201 */
202LIBVLC_API void
204
205/**
206 * Play next item from media list
207 *
208 * \param p_mlp media list player instance
209 * \return 0 upon success -1 if there is no next item
210 */
213
214/**
215 * Play previous item from media list
216 *
217 * \param p_mlp media list player instance
218 * \return 0 upon success -1 if there is no previous item
219 */
222
223
224
225/**
226 * Sets the playback mode for the playlist
227 *
228 * \param p_mlp media list player instance
229 * \param e_mode playback mode specification
230 */
233 libvlc_playback_mode_t e_mode );
234
235/** @} media_list_player */
236
237# ifdef __cplusplus
238}
239# endif
240
241#endif /* LIBVLC_MEDIA_LIST_PLAYER_H */
struct libvlc_instance_t libvlc_instance_t
This structure is opaque.
Definition: libvlc.h:76
struct libvlc_event_manager_t libvlc_event_manager_t
Event manager that belongs to a libvlc object, and from whom events can be received.
Definition: libvlc.h:313
LIBVLC_API int libvlc_media_list_player_previous(libvlc_media_list_player_t *p_mlp)
Play previous item from media list.
LIBVLC_API bool libvlc_media_list_player_is_playing(libvlc_media_list_player_t *p_mlp)
Is media list playing?
libvlc_playback_mode_t
Defines playback modes for playlist.
Definition: libvlc_media_list_player.h:48
LIBVLC_API libvlc_event_manager_t * libvlc_media_list_player_event_manager(libvlc_media_list_player_t *p_mlp)
Return the event manager of this media_list_player.
LIBVLC_API int libvlc_media_list_player_play_item(libvlc_media_list_player_t *p_mlp, libvlc_media_t *p_md)
Play the given media item.
LIBVLC_API void libvlc_media_list_player_pause(libvlc_media_list_player_t *p_mlp)
Toggle pause (or resume) media list.
struct libvlc_media_list_player_t libvlc_media_list_player_t
Definition: libvlc_media_list_player.h:42
LIBVLC_API void libvlc_media_list_player_set_pause(libvlc_media_list_player_t *p_mlp, int do_pause)
Pause or resume media list.
LIBVLC_API void libvlc_media_list_player_release(libvlc_media_list_player_t *p_mlp)
Release a media_list_player after use Decrement the reference count of a media player object.
LIBVLC_API libvlc_media_player_t * libvlc_media_list_player_get_media_player(libvlc_media_list_player_t *p_mlp)
Get media player of the media_list_player instance.
LIBVLC_API void libvlc_media_list_player_set_media_player(libvlc_media_list_player_t *p_mlp, libvlc_media_player_t *p_mi)
Replace media player in media_list_player with this instance.
LIBVLC_API void libvlc_media_list_player_stop_async(libvlc_media_list_player_t *p_mlp)
Stop playing media list.
LIBVLC_API void libvlc_media_list_player_play(libvlc_media_list_player_t *p_mlp)
Play media list.
LIBVLC_API void libvlc_media_list_player_set_media_list(libvlc_media_list_player_t *p_mlp, libvlc_media_list_t *p_mlist)
Set the media list associated with the player.
LIBVLC_API void libvlc_media_list_player_set_playback_mode(libvlc_media_list_player_t *p_mlp, libvlc_playback_mode_t e_mode)
Sets the playback mode for the playlist.
LIBVLC_API int libvlc_media_list_player_play_item_at_index(libvlc_media_list_player_t *p_mlp, int i_index)
Play media list item at position index.
LIBVLC_API libvlc_media_list_player_t * libvlc_media_list_player_new(libvlc_instance_t *p_instance)
Create new media_list_player.
LIBVLC_API int libvlc_media_list_player_next(libvlc_media_list_player_t *p_mlp)
Play next item from media list.
LIBVLC_API libvlc_media_list_player_t * libvlc_media_list_player_retain(libvlc_media_list_player_t *p_mlp)
Retain a reference to a media player list object.
LIBVLC_API libvlc_state_t libvlc_media_list_player_get_state(libvlc_media_list_player_t *p_mlp)
Get current libvlc_state of media list player.
@ libvlc_playback_mode_repeat
Definition: libvlc_media_list_player.h:51
@ libvlc_playback_mode_loop
Definition: libvlc_media_list_player.h:50
@ libvlc_playback_mode_default
Definition: libvlc_media_list_player.h:49
struct libvlc_media_list_t libvlc_media_list_t
Definition: libvlc_media_list.h:38
struct libvlc_media_player_t libvlc_media_player_t
Definition: libvlc_media_player.h:42
libvlc_state_t
libvlc media or media_player state
Definition: libvlc_media.h:83
struct libvlc_media_t libvlc_media_t
Definition: libvlc_media.h:46
#define LIBVLC_API
Definition: libvlc.h:42