VLC  4.0.0-dev
control.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * playlist/control.h
3  *****************************************************************************
4  * Copyright (C) 2018 VLC authors and VideoLAN
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20 
21 #ifndef VLC_PLAYLIST_CONTROL_H
22 #define VLC_PLAYLIST_CONTROL_H
23 
24 #include <vlc_common.h>
25 
27 
28 bool
30 
31 bool
33 
34 int
35 vlc_playlist_SetCurrentMedia(vlc_playlist_t *playlist, ssize_t index);
36 
39 
40 #endif
vlc_playlist_IndexOf
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
ARRAY_VAL
#define ARRAY_VAL(array, pos)
Definition: vlc_arrays.h:241
vlc_playlist::player
vlc_player_t * player
Definition: playlist.h:50
VLC_PLAYLIST_PLAYBACK_REPEAT_ALL
@ VLC_PLAYLIST_PLAYBACK_REPEAT_ALL
Definition: vlc_playlist.h:120
randomizer_Prev
vlc_playlist_item_t * randomizer_Prev(struct randomizer *r)
Go back to the previous item.
Definition: randomizer.c:404
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *mtx)
Initializes a fast mutex.
Definition: threads.c:123
vlc_mouse_t
Mouse state.
Definition: vlc_mouse.h:45
vlc_playlist_RandomOrderHasPrev
static bool vlc_playlist_RandomOrderHasPrev(vlc_playlist_t *playlist)
Definition: control.c:221
vlc_playlist_NormalOrderHasNext
static bool vlc_playlist_NormalOrderHasNext(vlc_playlist_t *playlist)
Definition: control.c:192
vlc_playlist_NormalOrderGetNextIndex
static size_t vlc_playlist_NormalOrderGetNextIndex(vlc_playlist_t *playlist)
Definition: control.c:202
vlc_playlist
Definition: playlist.h:48
vlc_playlist_HasNext
bool vlc_playlist_HasNext(vlc_playlist_t *playlist)
Indicate whether a next item is available.
Definition: control.c:342
vlc_playlist_ComputeHasNext
bool vlc_playlist_ComputeHasNext(vlc_playlist_t *playlist)
Definition: control.c:300
ARRAY_APPEND
#define ARRAY_APPEND(array, elem)
Definition: vlc_arrays.h:203
vlc_playlist_NormalOrderGetPrevIndex
static size_t vlc_playlist_NormalOrderGetPrevIndex(vlc_playlist_t *playlist)
Definition: control.c:175
vlc_playlist_GetPlaybackOrder
enum vlc_playlist_playback_order vlc_playlist_GetPlaybackOrder(vlc_playlist_t *playlist)
Return the playback order.
Definition: control.c:119
control.h
vlc_playlist_state_NotifyChanges
void vlc_playlist_state_NotifyChanges(vlc_playlist_t *playlist, struct vlc_playlist_state *saved_state)
Definition: notify.c:91
vlc_common.h
vlc_playlist_RandomOrderGetNextIndex
static size_t vlc_playlist_RandomOrderGetNextIndex(vlc_playlist_t *playlist)
Definition: control.c:245
vlc_vout.h
notify.h
randomizer_Count
bool randomizer_Count(struct randomizer *r)
Return the number of items in the randomizer.
Definition: randomizer.c:295
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
vlc_player_osd_Message
void vlc_player_osd_Message(vlc_player_t *player, const char *fmt,...)
Display an OSD message on all vouts.
Definition: osd.c:89
item.h
vlc_cond_wait
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
vlc_playlist_item::media
input_item_t * media
Definition: item.h:31
ARRAY_REMOVE
#define ARRAY_REMOVE(array, pos)
Definition: vlc_arrays.h:230
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
vlc_playlist_ComputeHasNext
bool vlc_playlist_ComputeHasNext(vlc_playlist_t *playlist)
Definition: control.c:300
vlc_playlist_item
Definition: item.h:29
vlc_playlist_HasPrev
bool vlc_playlist_HasPrev(vlc_playlist_t *playlist)
Indicate whether a previous item is available.
Definition: control.c:335
ARRAY_RESET
#define ARRAY_RESET(array)
Definition: vlc_arrays.h:196
vlc_playlist_GetCurrentIndex
ssize_t vlc_playlist_GetCurrentIndex(vlc_playlist_t *playlist)
Return the index of the current item.
Definition: control.c:315
vlc_gettext
const char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:79
vlc_cond_signal
void vlc_cond_signal(vlc_cond_t *cond)
Wakes up one thread waiting on a condition variable.
Definition: threads.c:253
randomizer_Select
void randomizer_Select(struct randomizer *r, const vlc_playlist_item_t *item)
Force the selection of a specific item.
Definition: randomizer.c:469
vout_control_t::wait_request
vlc_cond_t wait_request
Definition: control.h:51
playlist_item_vector_t::size
size_t size
Definition: playlist.h:46
VLC_PLAYLIST_PLAYBACK_ORDER_RANDOM
@ VLC_PLAYLIST_PLAYBACK_ORDER_RANDOM
Definition: vlc_playlist.h:126
vout_control_t
Definition: control.h:29
vlc_playlist::has_prev
bool has_prev
Definition: playlist.h:58
vout_control_t::i_size
int i_size
Definition: control.h:58
vlc_playlist_GetPlaybackRepeat
enum vlc_playlist_playback_repeat vlc_playlist_GetPlaybackRepeat(vlc_playlist_t *playlist)
Return the playback "repeat" mode.
Definition: control.c:112
vlc_assert_unreachable
#define vlc_assert_unreachable()
Impossible branch assertion.
Definition: vlc_common.h:253
randomizer_Add
bool randomizer_Add(struct randomizer *r, vlc_playlist_item_t *items[], size_t count)
Add items to the randomizer.
Definition: randomizer.c:424
vout_control_t::wait_available
vlc_cond_t wait_available
Definition: control.h:52
vlc_playlist_SetCurrentMedia
int vlc_playlist_SetCurrentMedia(vlc_playlist_t *playlist, ssize_t index)
Definition: control.c:152
vlc_playlist_PlaybackOrderChanged
static void vlc_playlist_PlaybackOrderChanged(vlc_playlist_t *playlist)
Definition: control.c:33
vout_control_Clean
void vout_control_Clean(vout_control_t *ctrl)
Definition: control.c:45
vlc_playlist_GetNextMediaIndex
static ssize_t vlc_playlist_GetNextMediaIndex(vlc_playlist_t *playlist)
Definition: control.c:425
vlc_playlist_GoTo
int vlc_playlist_GoTo(vlc_playlist_t *playlist, ssize_t index)
Go to a given index.
Definition: control.c:405
vlc_playlist::current
ssize_t current
Definition: playlist.h:57
vlc_player_SetCurrentMedia
int vlc_player_SetCurrentMedia(vlc_player_t *player, input_item_t *media)
Set the current media.
Definition: player.c:1000
ARRAY_INIT
#define ARRAY_INIT(array)
Definition: vlc_arrays.h:189
vlc_playlist_Next
int vlc_playlist_Next(vlc_playlist_t *playlist)
Go to the next item.
Definition: control.c:377
vlc_tick_t
int64_t vlc_tick_t
High precision date or time interval.
Definition: vlc_tick.h:45
vlc_playlist_ComputeHasPrev
bool vlc_playlist_ComputeHasPrev(vlc_playlist_t *playlist)
Definition: control.c:285
vlc_playlist_state
Definition: notify.h:36
vout_control_Pop
int vout_control_Pop(vout_control_t *ctrl, vlc_mouse_t *mouse, vlc_tick_t deadline)
Definition: control.c:85
vout_control_t::cmd
struct vout_control_t::@114 cmd
vlc_playlist_PlaybackRepeatChanged
static void vlc_playlist_PlaybackRepeatChanged(vlc_playlist_t *playlist)
Definition: control.c:75
VLC_TICK_INVALID
#define VLC_TICK_INVALID
Definition: vlc_config.h:44
vlc_playlist_RandomOrderHasNext
static bool vlc_playlist_RandomOrderHasNext(vlc_playlist_t *playlist)
Definition: control.c:237
vout_control_t::is_waiting
bool is_waiting
Definition: control.h:56
randomizer_HasNext
bool randomizer_HasNext(struct randomizer *r)
Indicate whether there is a next item.
Definition: randomizer.c:372
vlc_playlist_GetNextIndex
static size_t vlc_playlist_GetNextIndex(vlc_playlist_t *playlist)
Definition: control.c:270
vlc_playlist_playback_order
vlc_playlist_playback_order
Definition: vlc_playlist.h:123
VLC_PLAYLIST_PLAYBACK_REPEAT_NONE
@ VLC_PLAYLIST_PLAYBACK_REPEAT_NONE
Definition: vlc_playlist.h:118
vlc_playlist::order
enum vlc_playlist_playback_order order
Definition: playlist.h:62
vlc_playlist_GetPrevIndex
static size_t vlc_playlist_GetPrevIndex(vlc_playlist_t *playlist)
Definition: control.c:255
vlc_playlist_RandomOrderGetPrevIndex
static size_t vlc_playlist_RandomOrderGetPrevIndex(vlc_playlist_t *playlist)
Definition: control.c:227
vlc_playlist_AssertLocked
static void vlc_playlist_AssertLocked(vlc_playlist_t *playlist)
Definition: playlist.h:69
vlc_playlist_Prev
int vlc_playlist_Prev(vlc_playlist_t *playlist)
Go to the previous item.
Definition: control.c:349
vout_control_Release
void vout_control_Release(vout_control_t *ctrl)
Definition: control.c:76
vlc_playlist_Notify
#define vlc_playlist_Notify(playlist, event,...)
Definition: notify.h:51
randomizer_Clear
void randomizer_Clear(struct randomizer *r)
Clear the randomizer.
Definition: randomizer.c:538
playlist_item_vector_t::data
vlc_playlist_item_t ** data
Definition: playlist.h:46
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
vout_control_Wake
void vout_control_Wake(vout_control_t *ctrl)
Definition: control.c:59
vlc_playlist::has_next
bool has_next
Definition: playlist.h:59
vout_control_t::forced_awake
bool forced_awake
Definition: control.h:55
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
vlc_playlist_SetPlaybackRepeat
void vlc_playlist_SetPlaybackRepeat(vlc_playlist_t *playlist, enum vlc_playlist_playback_repeat repeat)
Change the playback "repeat" mode.
Definition: control.c:126
randomizer_SetLoop
void randomizer_SetLoop(struct randomizer *r, bool loop)
Enable or disable "loop" mode.
Definition: randomizer.c:281
vout_control_Hold
void vout_control_Hold(vout_control_t *ctrl)
Definition: control.c:67
VLC_PLAYLIST_PLAYBACK_ORDER_NORMAL
@ VLC_PLAYLIST_PLAYBACK_ORDER_NORMAL
Definition: vlc_playlist.h:125
N_
#define N_(str)
Definition: vlc_fixups.h:375
control.h
vlc_playlist_NormalOrderHasPrev
static bool vlc_playlist_NormalOrderHasPrev(vlc_playlist_t *playlist)
Definition: control.c:163
vlc_playlist_state_Save
void vlc_playlist_state_Save(vlc_playlist_t *playlist, struct vlc_playlist_state *state)
Definition: notify.c:82
vlc_playlist_ComputeHasPrev
bool vlc_playlist_ComputeHasPrev(vlc_playlist_t *playlist)
Definition: control.c:285
vout_control_t::lock
vlc_mutex_t lock
Definition: control.h:50
vlc_playlist::randomizer
struct randomizer randomizer
Definition: playlist.h:56
vlc_playlist_SetCurrentMedia
int vlc_playlist_SetCurrentMedia(vlc_playlist_t *playlist, ssize_t index)
Definition: control.c:152
vout_control_PushMouse
void vout_control_PushMouse(vout_control_t *ctrl, const vlc_mouse_t *video_mouse)
Definition: control.c:51
vlc_playlist_GetNextMedia
input_item_t * vlc_playlist_GetNextMedia(vlc_playlist_t *playlist)
Definition: control.c:436
vlc_playlist_playback_repeat
vlc_playlist_playback_repeat
Definition: vlc_playlist.h:116
vlc_playlist_SetCurrentIndex
static void vlc_playlist_SetCurrentIndex(vlc_playlist_t *playlist, ssize_t index)
Definition: control.c:322
randomizer_Next
vlc_playlist_item_t * randomizer_Next(struct randomizer *r)
Go back to the next item.
Definition: randomizer.c:413
playlist.h
vlc_playlist::items
playlist_item_vector_t items
Definition: playlist.h:55
vlc_playlist::repeat
enum vlc_playlist_playback_repeat repeat
Definition: playlist.h:61
vlc_cond_init
void vlc_cond_init(vlc_cond_t *cond)
Initializes a condition variable.
Definition: threads.c:234
vout_control_t::is_held
bool is_held
Definition: control.h:57
vout_internal.h
vlc_cond_timedwait
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
input_item_Hold
input_item_t * input_item_Hold(input_item_t *p_item)
Holds an input item, i.e.
Definition: item.c:442
VLC_PLAYLIST_PLAYBACK_REPEAT_CURRENT
@ VLC_PLAYLIST_PLAYBACK_REPEAT_CURRENT
Definition: vlc_playlist.h:119
state
static thread_local struct @76 state
randomizer_PeekPrev
vlc_playlist_item_t * randomizer_PeekPrev(struct randomizer *r)
Peek the previous item (without changing the current one).
Definition: randomizer.c:378
randomizer_PeekNext
vlc_playlist_item_t * randomizer_PeekNext(struct randomizer *r)
Peek the next item (without changing the current one).
Definition: randomizer.c:386
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
vlc_playlist_SetPlaybackOrder
void vlc_playlist_SetPlaybackOrder(vlc_playlist_t *playlist, enum vlc_playlist_playback_order order)
Change the playback order.
Definition: control.c:139
vlc_playlist_GetNextMedia
input_item_t * vlc_playlist_GetNextMedia(vlc_playlist_t *playlist)
Definition: control.c:436
vout_control_Init
void vout_control_Init(vout_control_t *ctrl)
Definition: control.c:33
player.h
randomizer_HasPrev
bool randomizer_HasPrev(struct randomizer *r)
Indicate whether there is a previous item.
Definition: randomizer.c:356