VLC  4.0.0-dev
art.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * art.h
3  *****************************************************************************
4  * Copyright (C) 1999-2008 VLC authors and VideoLAN
5  *
6  * Authors: Samuel Hocevar <sam@zoy.org>
7  * ClĂ©ment Stenac <zorglub@videolan.org>
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU Lesser General Public License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public License
20  * along with this program; if not, write to the Free Software Foundation,
21  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23 
24 #ifndef _INPUT_ART_H
25 #define _INPUT_ART_H 1
26 
29 
31  const void *, size_t, const char *psz_type );
32 
33 #endif
34 
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
size_vector::size
size_t size
Definition: request.c:58
VLC_VECTOR
#define VLC_VECTOR(type)
Vector struct body.
Definition: vlc_vector.h:65
vlc_readdir
const char * vlc_readdir(DIR *dir)
Reads the next file name from an open directory.
Definition: filesystem.c:126
count
size_t count
Definition: core.c:401
input_item_t::p_meta
vlc_meta_t * p_meta
Definition: vlc_input_item.h:99
vlc_playlist_state::current
ssize_t current
Definition: notify.h:37
vlc_playlist
Definition: playlist.h:48
vlc_meta_Get
const char * vlc_meta_Get(const vlc_meta_t *p_meta, vlc_meta_type_t meta_type)
Definition: meta.c:129
input_FindArtInCacheUsingItemUID
int input_FindArtInCacheUsingItemUID(input_item_t *)
Definition: art.c:249
ArtCacheGetDirPath
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
@ VLC_CACHE_DIR
Definition: vlc_configuration.h:310
vlc_playlist_ComputeHasNext
bool vlc_playlist_ComputeHasNext(vlc_playlist_t *playlist)
Definition: control.c:300
vlc_stat
int vlc_stat(const char *filename, struct stat *buf)
Finds file/inode information - like stat().
Definition: filesystem.c:173
vlc_open
int vlc_open(const char *filename, int flags,...)
Opens a system file handle.
Definition: filesystem.c:52
vlc_meta_Album
@ vlc_meta_Album
Definition: vlc_meta.h:39
vlc_rand_bytes
void vlc_rand_bytes(void *buf, size_t len)
Definition: rand.c:28
wait_bucket::wait
pthread_cond_t wait
Definition: wait.c:48
control.h
vlc_input_item.h
EMPTY_STR
#define EMPTY_STR(str)
Definition: vlc_common.h:963
size_vector::data
size_t * data
Definition: request.c:58
unlikely
#define unlikely(p)
Predicted false condition.
Definition: vlc_common.h:227
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
GetFileByItemUID
static char * GetFileByItemUID(char *psz_dir, const char *psz_type)
Definition: art.c:239
ArtCacheCreateDir
static void ArtCacheCreateDir(char *psz_dir)
Definition: art.c:40
DIR_SEP
#define DIR_SEP
Definition: vlc_common.h:1221
vlc_atomic_timedwait_daytime
int vlc_atomic_timedwait_daytime(void *addr, unsigned value, time_t deadline)
Definition: wait.c:136
notify.h
wait_bucket::lock
pthread_mutex_t lock
Definition: wait.c:47
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
item.h
input_SaveArt
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
input_item_SetArtURL
#define input_item_SetArtURL
Definition: vlc_input_item.h:330
nrand48
long nrand48(unsigned short subi[3])
input_item_t::lock
vlc_mutex_t lock
Lock for the item.
Definition: vlc_input_item.h:112
vlc_atomic_timedwait
int vlc_atomic_timedwait(void *addr, unsigned value, vlc_tick_t deadline)
Waits on an address with a time-out.
Definition: wait.c:128
vlc_vector_push
#define vlc_vector_push(pv, item)
Push an item at the end of the vector.
Definition: vlc_vector.h:313
vlc_atomic_timedwait_timespec
static int vlc_atomic_timedwait_timespec(void *addr, unsigned value, const struct timespec *restrict ts)
Definition: wait.c:91
wait_bucket_leave
static void wait_bucket_leave(struct wait_bucket *bucket)
Definition: wait.c:69
vlc_spawnp
int vlc_spawnp(pid_t *restrict pid, const char *path, const int *fdv, const char *const *argv)
Definition: spawn.c:190
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:106
size_vector
Definition: request.c:58
vlc_hash_FinishHex
#define vlc_hash_FinishHex(ctx, output)
Finish hash computation and return hex representation.
Definition: vlc_hash.h:61
psz_ext
const char psz_ext[7]
Definition: image.c:586
vlc_mkdir
int vlc_mkdir(const char *dirname, mode_t mode)
Creates a directory.
Definition: filesystem.c:96
input_FindArtInCache
int input_FindArtInCache(input_item_t *)
Definition: art.c:180
vlc_playlist_MoveBySlices
static void vlc_playlist_MoveBySlices(vlc_playlist_t *playlist, size_t indices[], size_t count, size_t target)
Definition: request.c:173
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:474
ArtCachePath
static char * ArtCachePath(input_item_t *p_item)
Definition: art.c:123
ARRAY_SIZE
#define ARRAY_SIZE(x)
Definition: vlc_arrays.h:178
lldiv_t
Definition: vlc_fixups.h:75
timespec_from_vlc_tick
struct timespec timespec_from_vlc_tick(vlc_tick_t date)
Definition: mtime.c:146
vlc_playlist_item
Definition: item.h:29
wait_bucket
Definition: thread.c:215
vlc_playlist_FindRealIndex
static ssize_t vlc_playlist_FindRealIndex(vlc_playlist_t *playlist, vlc_playlist_item_t *item, ssize_t index_hint)
Definition: request.c:44
asprintf
int asprintf(char **, const char *,...)
vlc_rand.h
playlist_item_vector_t::size
size_t size
Definition: playlist.h:46
timespec::tv_nsec
long tv_nsec
Definition: vlc_fixups.h:445
ArtCacheName
static char * ArtCacheName(input_item_t *p_item, const char *psz_type)
Definition: art.c:157
lldiv
lldiv_t lldiv(long long, long long)
vlc_playlist_RequestRemove
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
GetDirByItemUIDs
static char * GetDirByItemUIDs(char *psz_uid)
Definition: art.c:224
vlc_meta_Title
@ vlc_meta_Title
Definition: vlc_meta.h:35
wait_bucket_enter
static struct wait_bucket * wait_bucket_enter(atomic_uint *addr)
Definition: wait.c:60
vlc_hash_md5_Init
void vlc_hash_md5_Init(vlc_hash_md5_t *ctx)
Initialize MD5 context.
Definition: md5.c:338
vlc_waitpid
int vlc_waitpid(pid_t pid)
Waits for a child process.
Definition: spawn.c:202
vlc_path2uri
char * vlc_path2uri(const char *path, const char *scheme)
Converts local path to URL.
Definition: url.c:143
vlc_playlist::has_prev
bool has_prev
Definition: playlist.h:58
vlc_playlist_Insert
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
vlc_vector_reserve
#define vlc_vector_reserve(pv, mincap)
Increase the capacity of the vector to at least mincap.
Definition: vlc_vector.h:259
vlc_fopen
FILE * vlc_fopen(const char *filename, const char *mode)
Opens a FILE pointer.
Definition: filesystem.c:49
config_GetUserDir
char * config_GetUserDir(vlc_userdir_t type)
Definition: specific.c:273
filename_sanitize
void filename_sanitize(char *str)
Sanitize a file name.
Definition: strings.c:915
vlc_clock_id
static clockid_t vlc_clock_id
Definition: wait.c:35
timespec::tv_sec
time_t tv_sec
Definition: vlc_fixups.h:444
vlc_meta_Artist
@ vlc_meta_Artist
Definition: vlc_meta.h:36
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
wait_bucket::lock
HMTX lock
Definition: thread.c:217
input_item_t::psz_name
char * psz_name
text describing this item
Definition: vlc_input_item.h:79
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
vlc_meta_ArtworkURL
@ vlc_meta_ArtworkURL
Definition: vlc_meta.h:51
vlc_strings.h
input_SaveArt
int input_SaveArt(vlc_object_t *, input_item_t *, const void *, size_t, const char *psz_type)
Definition: art.c:286
vlc_playlist_Remove
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
vlc_strerror_c
const char * vlc_strerror_c(int errnum)
Definition: error.c:34
vlc_meta_Date
@ vlc_meta_Date
Definition: vlc_meta.h:43
vlc_playlist_RemoveBySlices
static void vlc_playlist_RemoveBySlices(vlc_playlist_t *playlist, size_t sorted_indices[], size_t count)
Definition: request.c:81
wait_buckets
static struct wait_bucket wait_buckets[32]
vlc_atomic_notify_all
void vlc_atomic_notify_all(void *addr)
Wakes up all thread on an address.
Definition: wait.c:149
vlc_close
int vlc_close(int fd)
Closes a file descriptor.
Definition: filesystem.c:91
vlc_atomic_notify_one
void vlc_atomic_notify_one(void *addr)
Wakes up one thread on an address.
Definition: wait.c:144
wait_bucket::waiters
unsigned waiters
Definition: thread.c:219
vlc_meta_New
vlc_meta_t * vlc_meta_New(void)
vlc_meta contructor.
Definition: meta.c:90
vlc_opendir
DIR * vlc_opendir(const char *dirname)
Opens a DIR pointer.
Definition: filesystem.c:110
VLC_HASH_MD5_DIGEST_HEX_SIZE
#define VLC_HASH_MD5_DIGEST_HEX_SIZE
MD5 digest hex representation size.
Definition: vlc_hash.h:103
VLC_VECTOR_INITIALIZER
#define VLC_VECTOR_INITIALIZER
Static initializer for a vector.
Definition: vlc_vector.h:75
vlc_spawn
int vlc_spawn(pid_t *restrict pid, const char *file, const int *fdv, const char *const *argv)
Definition: spawn.c:196
vlc_hash.h
WAIT_BUCKET_INIT_32
#define WAIT_BUCKET_INIT_32
Definition: wait.c:43
vlc_playlist_AssertLocked
static void vlc_playlist_AssertLocked(vlc_playlist_t *playlist)
Definition: playlist.h:69
vlc_playlist_RequestGoTo
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
vlc_playlist_Shuffle
void vlc_playlist_Shuffle(vlc_playlist_t *playlist)
Shuffle the playlist.
Definition: shuffle.c:33
vlc_playlist_Notify
#define vlc_playlist_Notify(playlist, event,...)
Definition: notify.h:51
vlc_fs.h
vlc_playlist_Move
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
art.h
vlc_playlist_Regroup
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
vlc_url.h
input_item_GetInfo
char * input_item_GetInfo(input_item_t *p_i, const char *psz_cat, const char *psz_name)
Get a info item from a given category in a given input item.
Definition: item.c:694
wait_bucket::wait
HEV wait
Definition: thread.c:218
vlc_playlist_Get
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
DIR_SEP_CHAR
#define DIR_SEP_CHAR
Definition: vlc_common.h:1220
playlist_item_vector_t::data
vlc_playlist_item_t ** data
Definition: playlist.h:46
vlc_hash_md5_ctx
MD5 hash context.
Definition: vlc_hash.h:85
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
input_FindArtInCacheUsingItemUID
int input_FindArtInCacheUsingItemUID(input_item_t *p_item)
Definition: art.c:249
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:476
VLC_UNUSED
#define VLC_UNUSED(x)
Definition: vlc_common.h:1105
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
strdup
char * strdup(const char *)
input_FindArtInCache
int input_FindArtInCache(input_item_t *p_item)
Definition: art.c:180
vlc_spawn_inner
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
vlc_playlist::has_next
bool has_next
Definition: playlist.h:59
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *mtx)
Acquires a mutex.
Definition: threads.c:158
vlc_vector_destroy
#define vlc_vector_destroy(pv)
Destroy a vector.
Definition: vlc_vector.h:93
vlc_playlist_RequestInsert
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
vlc_playlist_RequestMove
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
vlc_spawn.h
vlc_atomic_wait
void vlc_atomic_wait(void *addr, unsigned value)
Waits on an address.
Definition: wait.c:75
vlc_playlist_state_Save
void vlc_playlist_state_Save(vlc_playlist_t *playlist, struct vlc_playlist_state *state)
Definition: notify.c:82
vlc_hash_md5_Update
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
wait_bucket_get
static struct wait_bucket * wait_bucket_get(atomic_uint *addr)
Definition: wait.c:52
vlc_timespec_adjust
static void vlc_timespec_adjust(clockid_t cid, struct timespec *restrict ts)
Definition: wait.c:110
timespec
Definition: vlc_fixups.h:443
playlist.h
environ
char ** environ
vlc_playlist::items
playlist_item_vector_t items
Definition: playlist.h:55
state
static thread_local struct @76 state
vlc_playlist_FindIndices
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
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *mtx)
Releases a mutex.
Definition: threads.c:209
cmp_size
static int cmp_size(const void *lhs, const void *rhs)
Definition: request.c:193
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:102
vlc_playlist_Count
size_t vlc_playlist_Count(vlc_playlist_t *playlist)
Return the number of items.
Definition: content.c:182