Go to the documentation of this file.
21 #ifndef VLC_PLAYLIST_NOTIFY_H
22 #define VLC_PLAYLIST_NOTIFY_H
42 #define vlc_playlist_listener_foreach(listener, playlist) \
43 vlc_list_foreach(listener, &(playlist)->listeners, node)
45 #define vlc_playlist_NotifyListener(playlist, listener, event, ...) \
47 if (listener->cbs->event) \
48 listener->cbs->event(playlist, ##__VA_ARGS__, listener->userdata); \
51 #define vlc_playlist_Notify(playlist, event, ...) \
53 vlc_playlist_AssertLocked(playlist); \
54 vlc_playlist_listener_id *listener; \
55 vlc_playlist_listener_foreach(listener, playlist) \
56 vlc_playlist_NotifyListener(playlist, listener, event, ##__VA_ARGS__); \
vlc_player_t * player
Definition: playlist.h:50
ssize_t current
Definition: notify.h:37
Definition: playlist.h:48
#define vlc_playlist_NotifyListener(playlist, listener, event,...)
Definition: notify.h:45
struct vlc_list listeners
list of vlc_playlist_listener_id.node
Definition: playlist.h:60
size_t vlc_playlist_view_Count(struct vlc_playlist_view *view)
Return the number of items in the view.
Definition: export.c:43
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
void vlc_playlist_state_NotifyChanges(vlc_playlist_t *playlist, struct vlc_playlist_state *saved_state)
Definition: notify.c:91
FILE * file
Definition: vlc_playlist_export.h:67
void(* on_items_updated)(vlc_playlist_t *playlist, size_t index, vlc_playlist_item_t *const items[], size_t count, void *userdata)
Called when an item has been updated via (pre-)parsing.
Definition: vlc_playlist.h:227
bool has_prev
Definition: notify.h:38
vlc_playlist_t * playlist
Definition: export.c:57
input_item_t * media
Definition: item.h:31
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
Doubly-linked list node.
Definition: vlc_list.h:43
struct vlc_list node
node of vlc_playlist.listeners
Definition: notify.h:33
size_t size
Definition: playlist.h:46
bool has_next
Definition: notify.h:39
vlc_playlist_listener_id * vlc_playlist_AddListener(vlc_playlist_t *playlist, const struct vlc_playlist_callbacks *cbs, void *userdata, bool notify_current_state)
Add a playlist listener.
Definition: notify.c:49
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:143
bool has_prev
Definition: playlist.h:58
FILE * vlc_fopen(const char *filename, const char *mode)
Opens a FILE pointer.
Definition: filesystem.c:49
struct vlc_playlist_view * playlist_view
Definition: vlc_playlist_export.h:68
Structure received by playlist export module.
Definition: vlc_playlist_export.h:63
const struct vlc_playlist_callbacks * cbs
Definition: notify.h:31
void vlc_playlist_RemoveListener(vlc_playlist_t *playlist, vlc_playlist_listener_id *listener)
Remove a player listener.
Definition: notify.c:70
ssize_t current
Definition: playlist.h:57
Internal module descriptor.
Definition: modules.h:78
static void vlc_list_remove(struct vlc_list *restrict node)
Removes an element from a list.
Definition: vlc_list.h:135
static void vlc_list_append(struct vlc_list *restrict node, struct vlc_list *head)
Appends an element into a list.
Definition: vlc_list.h:110
ssize_t vlc_playlist_IndexOfMedia(vlc_playlist_t *playlist, const input_item_t *media)
Return the index of a given media.
Definition: content.c:206
void vlc_playlist_state_Save(vlc_playlist_t *playlist, struct vlc_playlist_state *state)
Definition: notify.c:82
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
static void vlc_playlist_NotifyCurrentState(vlc_playlist_t *playlist, vlc_playlist_listener_id *listener)
Definition: notify.c:31
enum vlc_playlist_playback_order order
Definition: playlist.h:62
static void vlc_playlist_AssertLocked(vlc_playlist_t *playlist)
Definition: playlist.h:69
void vlc_playlist_state_NotifyChanges(vlc_playlist_t *playlist, struct vlc_playlist_state *saved_state)
Definition: notify.c:91
#define vlc_playlist_Notify(playlist, event,...)
Definition: notify.h:51
void * userdata
Definition: notify.h:32
vlc_playlist_item_t * vlc_playlist_Get(vlc_playlist_t *playlist, size_t index)
Return the item at a given index.
Definition: content.c:189
vlc_playlist_item_t ** data
Definition: playlist.h:46
vlc_playlist_item_t * vlc_playlist_view_Get(struct vlc_playlist_view *view, size_t index)
Return the item at a given index.
Definition: export.c:49
static bool vlc_playlist_HasItemUpdatedListeners(vlc_playlist_t *playlist)
Definition: notify.c:103
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
void vlc_playlist_NotifyMediaUpdated(vlc_playlist_t *playlist, input_item_t *media)
Definition: notify.c:113
bool has_next
Definition: playlist.h:59
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:117
void vlc_playlist_NotifyMediaUpdated(vlc_playlist_t *playlist, input_item_t *media)
Definition: notify.c:113
void vlc_playlist_state_Save(vlc_playlist_t *playlist, struct vlc_playlist_state *state)
Definition: notify.c:82
char * base_url
Definition: vlc_playlist_export.h:66
vlc_object_t * vlc_player_GetObject(vlc_player_t *player)
Definition: player.c:2036
#define vlc_playlist_listener_foreach(listener, playlist)
Definition: notify.h:42
#define vlc_object_delete(obj)
Definition: vlc_objects.h:136
int vlc_playlist_Export(struct vlc_playlist *playlist, const char *filename, const char *type)
Export the playlist to a file.
Definition: export.c:55
playlist_item_vector_t items
Definition: playlist.h:55
enum vlc_playlist_playback_repeat repeat
Definition: playlist.h:61
#define module_unneed(a, b)
Definition: vlc_modules.h:126
static thread_local struct @76 state
Playlist callbacks.
Definition: vlc_playlist.h:164
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
size_t vlc_playlist_Count(vlc_playlist_t *playlist)
Return the number of items.
Definition: content.c:182
#define module_need(a, b, c, d)
Definition: vlc_modules.h:111