Go to the documentation of this file.
25 #define _INPUT_ART_H 1
31 const void *,
size_t,
const char *psz_type );
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
size_t size
Definition: request.c:58
#define VLC_VECTOR(type)
Vector struct body.
Definition: vlc_vector.h:65
const char * vlc_readdir(DIR *dir)
Reads the next file name from an open directory.
Definition: filesystem.c:126
size_t count
Definition: core.c:401
ssize_t current
Definition: notify.h:37
Definition: playlist.h:48
int input_FindArtInCacheUsingItemUID(input_item_t *)
Definition: art.c:249
static char * ArtCacheGetDirPath(const char *psz_arturl, const char *psz_artist, const char *psz_album, const char *psz_date, const char *psz_title)
Definition: art.c:57
@ VLC_CACHE_DIR
Definition: vlc_configuration.h:310
bool vlc_playlist_ComputeHasNext(vlc_playlist_t *playlist)
Definition: control.c:300
int vlc_stat(const char *filename, struct stat *buf)
Finds file/inode information - like stat().
Definition: filesystem.c:173
int vlc_open(const char *filename, int flags,...)
Opens a system file handle.
Definition: filesystem.c:52
void vlc_rand_bytes(void *buf, size_t len)
Definition: rand.c:28
pthread_cond_t wait
Definition: wait.c:48
#define EMPTY_STR(str)
Definition: vlc_common.h:963
size_t * data
Definition: request.c:58
#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
static char * GetFileByItemUID(char *psz_dir, const char *psz_type)
Definition: art.c:239
static void ArtCacheCreateDir(char *psz_dir)
Definition: art.c:40
#define DIR_SEP
Definition: vlc_common.h:1221
int vlc_atomic_timedwait_daytime(void *addr, unsigned value, time_t deadline)
Definition: wait.c:136
pthread_mutex_t lock
Definition: wait.c:47
int input_SaveArt(vlc_object_t *obj, input_item_t *p_item, const void *data, size_t length, const char *psz_type)
Definition: art.c:286
long nrand48(unsigned short subi[3])
int vlc_atomic_timedwait(void *addr, unsigned value, vlc_tick_t deadline)
Waits on an address with a time-out.
Definition: wait.c:128
#define vlc_vector_push(pv, item)
Push an item at the end of the vector.
Definition: vlc_vector.h:313
static int vlc_atomic_timedwait_timespec(void *addr, unsigned value, const struct timespec *restrict ts)
Definition: wait.c:91
static void wait_bucket_leave(struct wait_bucket *bucket)
Definition: wait.c:69
int vlc_spawnp(pid_t *restrict pid, const char *path, const int *fdv, const char *const *argv)
Definition: spawn.c:190
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
#define vlc_hash_FinishHex(ctx, output)
Finish hash computation and return hex representation.
Definition: vlc_hash.h:61
const char psz_ext[7]
Definition: image.c:586
int vlc_mkdir(const char *dirname, mode_t mode)
Creates a directory.
Definition: filesystem.c:96
int input_FindArtInCache(input_item_t *)
Definition: art.c:180
static void vlc_playlist_MoveBySlices(vlc_playlist_t *playlist, size_t indices[], size_t count, size_t target)
Definition: request.c:173
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
static char * ArtCachePath(input_item_t *p_item)
Definition: art.c:123
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
Definition: vlc_fixups.h:75
struct timespec timespec_from_vlc_tick(vlc_tick_t date)
Definition: mtime.c:146
static ssize_t vlc_playlist_FindRealIndex(vlc_playlist_t *playlist, vlc_playlist_item_t *item, ssize_t index_hint)
Definition: request.c:44
int asprintf(char **, const char *,...)
size_t size
Definition: playlist.h:46
long tv_nsec
Definition: vlc_fixups.h:445
static char * ArtCacheName(input_item_t *p_item, const char *psz_type)
Definition: art.c:157
lldiv_t lldiv(long long, long long)
int vlc_playlist_RequestRemove(vlc_playlist_t *playlist, vlc_playlist_item_t *const items[], size_t count, ssize_t index_hint)
Remove a slice of items by value.
Definition: request.c:235
static char * GetDirByItemUIDs(char *psz_uid)
Definition: art.c:224
static struct wait_bucket * wait_bucket_enter(atomic_uint *addr)
Definition: wait.c:60
void vlc_hash_md5_Init(vlc_hash_md5_t *ctx)
Initialize MD5 context.
Definition: md5.c:338
int vlc_waitpid(pid_t pid)
Waits for a child process.
Definition: spawn.c:202
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
int vlc_playlist_Insert(vlc_playlist_t *playlist, size_t index, input_item_t *const media[], size_t count)
Insert a list of media at a given index.
Definition: content.c:265
#define vlc_vector_reserve(pv, mincap)
Increase the capacity of the vector to at least mincap.
Definition: vlc_vector.h:259
FILE * vlc_fopen(const char *filename, const char *mode)
Opens a FILE pointer.
Definition: filesystem.c:49
char * config_GetUserDir(vlc_userdir_t type)
Definition: specific.c:273
void filename_sanitize(char *str)
Sanitize a file name.
Definition: strings.c:915
static clockid_t vlc_clock_id
Definition: wait.c:35
time_t tv_sec
Definition: vlc_fixups.h:444
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
HMTX lock
Definition: thread.c:217
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 input_SaveArt(vlc_object_t *, input_item_t *, const void *, size_t, const char *psz_type)
Definition: art.c:286
void vlc_playlist_Remove(vlc_playlist_t *playlist, size_t index, size_t count)
Remove a slice of items at a given index.
Definition: content.c:306
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
static void vlc_playlist_RemoveBySlices(vlc_playlist_t *playlist, size_t sorted_indices[], size_t count)
Definition: request.c:81
static struct wait_bucket wait_buckets[32]
void vlc_atomic_notify_all(void *addr)
Wakes up all thread on an address.
Definition: wait.c:149
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:91
void vlc_atomic_notify_one(void *addr)
Wakes up one thread on an address.
Definition: wait.c:144
unsigned waiters
Definition: thread.c:219
DIR * vlc_opendir(const char *dirname)
Opens a DIR pointer.
Definition: filesystem.c:110
#define VLC_HASH_MD5_DIGEST_HEX_SIZE
MD5 digest hex representation size.
Definition: vlc_hash.h:103
#define VLC_VECTOR_INITIALIZER
Static initializer for a vector.
Definition: vlc_vector.h:75
int vlc_spawn(pid_t *restrict pid, const char *file, const int *fdv, const char *const *argv)
Definition: spawn.c:196
#define WAIT_BUCKET_INIT_32
Definition: wait.c:43
static void vlc_playlist_AssertLocked(vlc_playlist_t *playlist)
Definition: playlist.h:69
int vlc_playlist_RequestGoTo(vlc_playlist_t *playlist, vlc_playlist_item_t *item, ssize_t index_hint)
Go to a given item.
Definition: request.c:260
void vlc_playlist_Shuffle(vlc_playlist_t *playlist)
Shuffle the playlist.
Definition: shuffle.c:33
#define vlc_playlist_Notify(playlist, event,...)
Definition: notify.h:51
void vlc_playlist_Move(vlc_playlist_t *playlist, size_t index, size_t count, size_t target)
Move a slice of items to a given target index.
Definition: content.c:292
static size_t vlc_playlist_Regroup(vlc_playlist_t *playlist, size_t indices[], size_t head_index)
Move all items specified by their indices to form a contiguous slice, in order.
Definition: request.c:115
HEV wait
Definition: thread.c:218
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
#define DIR_SEP_CHAR
Definition: vlc_common.h:1220
vlc_playlist_item_t ** data
Definition: playlist.h:46
MD5 hash context.
Definition: vlc_hash.h:85
VLC object common members.
Definition: vlc_objects.h:43
int input_FindArtInCacheUsingItemUID(input_item_t *p_item)
Definition: art.c:249
#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
char * strdup(const char *)
int input_FindArtInCache(input_item_t *p_item)
Definition: art.c:180
static int vlc_spawn_inner(pid_t *restrict pid, const char *path, const int *fdv, const char *const *argv, bool search)
Definition: spawn.c:41
bool has_next
Definition: playlist.h:59
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
#define vlc_vector_destroy(pv)
Destroy a vector.
Definition: vlc_vector.h:93
int vlc_playlist_RequestInsert(vlc_playlist_t *playlist, size_t index, input_item_t *const media[], size_t count)
Insert a list of media at a given index (if in range), or append.
Definition: request.c:31
int vlc_playlist_RequestMove(vlc_playlist_t *playlist, vlc_playlist_item_t *const items[], size_t count, size_t target, ssize_t index_hint)
Move a slice of items by value.
Definition: request.c:205
void vlc_atomic_wait(void *addr, unsigned value)
Waits on an address.
Definition: wait.c:75
void vlc_playlist_state_Save(vlc_playlist_t *playlist, struct vlc_playlist_state *state)
Definition: notify.c:82
void vlc_hash_md5_Update(vlc_hash_md5_t *ctx, const void *data, size_t length)
Update MD5 hash computation with new data.
Definition: md5.c:343
static struct wait_bucket * wait_bucket_get(atomic_uint *addr)
Definition: wait.c:52
static void vlc_timespec_adjust(clockid_t cid, struct timespec *restrict ts)
Definition: wait.c:110
Definition: vlc_fixups.h:443
playlist_item_vector_t items
Definition: playlist.h:55
static thread_local struct @76 state
static void vlc_playlist_FindIndices(vlc_playlist_t *playlist, vlc_playlist_item_t *const items[], size_t count, ssize_t index_hint, struct size_vector *out)
Definition: request.c:61
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
static int cmp_size(const void *lhs, const void *rhs)
Definition: request.c:193
#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