Go to the documentation of this file.
21 #ifndef VLC_PLAYLIST_CONTROL_H
22 #define VLC_PLAYLIST_CONTROL_H
ssize_t vlc_playlist_IndexOf(vlc_playlist_t *playlist, const vlc_playlist_item_t *item)
Return the index of a given item.
Definition: content.c:196
#define ARRAY_VAL(array, pos)
Definition: vlc_arrays.h:241
vlc_player_t * player
Definition: playlist.h:50
@ VLC_PLAYLIST_PLAYBACK_REPEAT_ALL
Definition: vlc_playlist.h:120
vlc_playlist_item_t * randomizer_Prev(struct randomizer *r)
Go back to the previous item.
Definition: randomizer.c:404
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
Mouse state.
Definition: vlc_mouse.h:45
static bool vlc_playlist_RandomOrderHasPrev(vlc_playlist_t *playlist)
Definition: control.c:221
static bool vlc_playlist_NormalOrderHasNext(vlc_playlist_t *playlist)
Definition: control.c:192
static size_t vlc_playlist_NormalOrderGetNextIndex(vlc_playlist_t *playlist)
Definition: control.c:202
Definition: playlist.h:48
bool vlc_playlist_HasNext(vlc_playlist_t *playlist)
Indicate whether a next item is available.
Definition: control.c:342
bool vlc_playlist_ComputeHasNext(vlc_playlist_t *playlist)
Definition: control.c:300
#define ARRAY_APPEND(array, elem)
Definition: vlc_arrays.h:203
static size_t vlc_playlist_NormalOrderGetPrevIndex(vlc_playlist_t *playlist)
Definition: control.c:175
enum vlc_playlist_playback_order vlc_playlist_GetPlaybackOrder(vlc_playlist_t *playlist)
Return the playback order.
Definition: control.c:119
void vlc_playlist_state_NotifyChanges(vlc_playlist_t *playlist, struct vlc_playlist_state *saved_state)
Definition: notify.c:91
static size_t vlc_playlist_RandomOrderGetNextIndex(vlc_playlist_t *playlist)
Definition: control.c:245
bool randomizer_Count(struct randomizer *r)
Return the number of items in the randomizer.
Definition: randomizer.c:295
void vlc_player_osd_Message(vlc_player_t *player, const char *fmt,...)
Display an OSD message on all vouts.
Definition: osd.c:89
void vlc_cond_wait(vlc_cond_t *cond, vlc_mutex_t *mutex)
Waits on a condition variable.
Definition: threads.c:340
#define _(str)
Definition: vlc_fixups.h:374
input_item_t * media
Definition: item.h:31
#define ARRAY_REMOVE(array, pos)
Definition: vlc_arrays.h:230
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
bool vlc_playlist_ComputeHasNext(vlc_playlist_t *playlist)
Definition: control.c:300
bool vlc_playlist_HasPrev(vlc_playlist_t *playlist)
Indicate whether a previous item is available.
Definition: control.c:335
#define ARRAY_RESET(array)
Definition: vlc_arrays.h:196
ssize_t vlc_playlist_GetCurrentIndex(vlc_playlist_t *playlist)
Return the index of the current item.
Definition: control.c:315
const char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:79
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
void randomizer_Select(struct randomizer *r, const vlc_playlist_item_t *item)
Force the selection of a specific item.
Definition: randomizer.c:469
vlc_cond_t wait_request
Definition: control.h:51
size_t size
Definition: playlist.h:46
@ VLC_PLAYLIST_PLAYBACK_ORDER_RANDOM
Definition: vlc_playlist.h:126
bool has_prev
Definition: playlist.h:58
int i_size
Definition: control.h:58
enum vlc_playlist_playback_repeat vlc_playlist_GetPlaybackRepeat(vlc_playlist_t *playlist)
Return the playback "repeat" mode.
Definition: control.c:112
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
bool randomizer_Add(struct randomizer *r, vlc_playlist_item_t *items[], size_t count)
Add items to the randomizer.
Definition: randomizer.c:424
vlc_cond_t wait_available
Definition: control.h:52
int vlc_playlist_SetCurrentMedia(vlc_playlist_t *playlist, ssize_t index)
Definition: control.c:152
static void vlc_playlist_PlaybackOrderChanged(vlc_playlist_t *playlist)
Definition: control.c:33
void vout_control_Clean(vout_control_t *ctrl)
Definition: control.c:45
static ssize_t vlc_playlist_GetNextMediaIndex(vlc_playlist_t *playlist)
Definition: control.c:425
int vlc_playlist_GoTo(vlc_playlist_t *playlist, ssize_t index)
Go to a given index.
Definition: control.c:405
ssize_t current
Definition: playlist.h:57
int vlc_player_SetCurrentMedia(vlc_player_t *player, input_item_t *media)
Set the current media.
Definition: player.c:1000
#define ARRAY_INIT(array)
Definition: vlc_arrays.h:189
int vlc_playlist_Next(vlc_playlist_t *playlist)
Go to the next item.
Definition: control.c:377
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
bool vlc_playlist_ComputeHasPrev(vlc_playlist_t *playlist)
Definition: control.c:285
int vout_control_Pop(vout_control_t *ctrl, vlc_mouse_t *mouse, vlc_tick_t deadline)
Definition: control.c:85
struct vout_control_t::@114 cmd
static void vlc_playlist_PlaybackRepeatChanged(vlc_playlist_t *playlist)
Definition: control.c:75
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
static bool vlc_playlist_RandomOrderHasNext(vlc_playlist_t *playlist)
Definition: control.c:237
bool is_waiting
Definition: control.h:56
bool randomizer_HasNext(struct randomizer *r)
Indicate whether there is a next item.
Definition: randomizer.c:372
static size_t vlc_playlist_GetNextIndex(vlc_playlist_t *playlist)
Definition: control.c:270
vlc_playlist_playback_order
Definition: vlc_playlist.h:123
@ VLC_PLAYLIST_PLAYBACK_REPEAT_NONE
Definition: vlc_playlist.h:118
enum vlc_playlist_playback_order order
Definition: playlist.h:62
static size_t vlc_playlist_GetPrevIndex(vlc_playlist_t *playlist)
Definition: control.c:255
static size_t vlc_playlist_RandomOrderGetPrevIndex(vlc_playlist_t *playlist)
Definition: control.c:227
static void vlc_playlist_AssertLocked(vlc_playlist_t *playlist)
Definition: playlist.h:69
int vlc_playlist_Prev(vlc_playlist_t *playlist)
Go to the previous item.
Definition: control.c:349
void vout_control_Release(vout_control_t *ctrl)
Definition: control.c:76
#define vlc_playlist_Notify(playlist, event,...)
Definition: notify.h:51
void randomizer_Clear(struct randomizer *r)
Clear the randomizer.
Definition: randomizer.c:538
vlc_playlist_item_t ** data
Definition: playlist.h:46
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
void vout_control_Wake(vout_control_t *ctrl)
Definition: control.c:59
bool has_next
Definition: playlist.h:59
bool forced_awake
Definition: control.h:55
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
void vlc_playlist_SetPlaybackRepeat(vlc_playlist_t *playlist, enum vlc_playlist_playback_repeat repeat)
Change the playback "repeat" mode.
Definition: control.c:126
void randomizer_SetLoop(struct randomizer *r, bool loop)
Enable or disable "loop" mode.
Definition: randomizer.c:281
void vout_control_Hold(vout_control_t *ctrl)
Definition: control.c:67
@ VLC_PLAYLIST_PLAYBACK_ORDER_NORMAL
Definition: vlc_playlist.h:125
#define N_(str)
Definition: vlc_fixups.h:375
static bool vlc_playlist_NormalOrderHasPrev(vlc_playlist_t *playlist)
Definition: control.c:163
void vlc_playlist_state_Save(vlc_playlist_t *playlist, struct vlc_playlist_state *state)
Definition: notify.c:82
bool vlc_playlist_ComputeHasPrev(vlc_playlist_t *playlist)
Definition: control.c:285
vlc_mutex_t lock
Definition: control.h:50
struct randomizer randomizer
Definition: playlist.h:56
int vlc_playlist_SetCurrentMedia(vlc_playlist_t *playlist, ssize_t index)
Definition: control.c:152
void vout_control_PushMouse(vout_control_t *ctrl, const vlc_mouse_t *video_mouse)
Definition: control.c:51
input_item_t * vlc_playlist_GetNextMedia(vlc_playlist_t *playlist)
Definition: control.c:436
vlc_playlist_playback_repeat
Definition: vlc_playlist.h:116
static void vlc_playlist_SetCurrentIndex(vlc_playlist_t *playlist, ssize_t index)
Definition: control.c:322
vlc_playlist_item_t * randomizer_Next(struct randomizer *r)
Go back to the next item.
Definition: randomizer.c:413
playlist_item_vector_t items
Definition: playlist.h:55
enum vlc_playlist_playback_repeat repeat
Definition: playlist.h:61
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
bool is_held
Definition: control.h:57
int vlc_cond_timedwait(vlc_cond_t *cond, vlc_mutex_t *mutex, vlc_tick_t deadline)
Waits on a condition variable up to a certain date.
Definition: threads.c:349
@ VLC_PLAYLIST_PLAYBACK_REPEAT_CURRENT
Definition: vlc_playlist.h:119
static thread_local struct @76 state
vlc_playlist_item_t * randomizer_PeekPrev(struct randomizer *r)
Peek the previous item (without changing the current one).
Definition: randomizer.c:378
vlc_playlist_item_t * randomizer_PeekNext(struct randomizer *r)
Peek the next item (without changing the current one).
Definition: randomizer.c:386
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
void vlc_playlist_SetPlaybackOrder(vlc_playlist_t *playlist, enum vlc_playlist_playback_order order)
Change the playback order.
Definition: control.c:139
input_item_t * vlc_playlist_GetNextMedia(vlc_playlist_t *playlist)
Definition: control.c:436
void vout_control_Init(vout_control_t *ctrl)
Definition: control.c:33
bool randomizer_HasPrev(struct randomizer *r)
Indicate whether there is a previous item.
Definition: randomizer.c:356