VLC  3.0.15
background_worker.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (C) 2017 VLC authors and VideoLAN
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation; either version 2.1 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
17  *****************************************************************************/
18 
19 #ifndef BACKGROUND_WORKER_H__
20 #define BACKGROUND_WORKER_H__
21 
23  /**
24  * Default timeout for completing a task
25  *
26  * If less-than 0 a task can run indefinitely without being killed, whereas
27  * a positive value denotes the maximum number of milliseconds a task can
28  * run before \ref pf_stop is called to kill it.
29  **/
31 
32  /**
33  * Release an entity
34  *
35  * This callback will be called in order to decrement the ref-count of a
36  * entity within the background-worker. It will happen either when \ref
37  * pf_stop has finished executing, or if the entity is removed from the
38  * queue (through \ref background_worker_Cancel)
39  *
40  * \param entity the entity to release
41  **/
42  void( *pf_release )( void* entity );
43 
44  /**
45  * Hold a queued item
46  *
47  * This callback will be called in order to increment the ref-count of an
48  * entity. It will happen when the entity is pushed into the queue of
49  * pending tasks as part of \ref background_worker_Push.
50  *
51  * \param entity the entity to hold
52  **/
53  void( *pf_hold )( void* entity );
54 
55  /**
56  * Start a new task
57  *
58  * This callback is called in order to construct a new background task. In
59  * order for the background-worker to be able to continue processing
60  * incoming requests, \ref pf_start is meant to start a task (such as a
61  * thread), and then store the associated handle in `*out`.
62  *
63  * The value of `*out` will then be the value of the argument named `handle`
64  * in terms of \ref pf_probe and \ref pf_stop.
65  *
66  * \param owner the owner of the background-worker
67  * \param entity the entity for which a task is to be created
68  * \param out [out] `*out` shall, on success, refer to the handle associated
69  * with the running task.
70  * \return VLC_SUCCESS if a task was created, an error-code on failure.
71  **/
72  int( *pf_start )( void* owner, void* entity, void** out );
73 
74  /**
75  * Probe a running task
76  *
77  * This callback is called in order to see whether or not a running task has
78  * finished or not. It can be called anytime between a successful call to
79  * \ref pf_start, and the corresponding call to \ref pf_stop.
80  *
81  * \param owner the owner of the background-worker
82  * \param handle the handle associated with the running task
83  * \return 0 if the task is still running, any other value if finished.
84  **/
85  int( *pf_probe )( void* owner, void* handle );
86 
87  /**
88  * Stop a running task
89  *
90  * This callback is called in order to stop a running task. If \ref pf_start
91  * has created a non-detached thread, \ref pf_stop is where you would
92  * interrupt and then join it.
93  *
94  * \warning This function is called either after \ref pf_probe has stated
95  * that the task has finished, or if the timeout (if any) for the
96  * task has been reached.
97  *
98  * \param owner the owner of the background-worker
99  * \parma handle the handle associated with the task to be stopped
100  **/
101  void( *pf_stop )( void* owner, void* handle );
102 };
103 
104 /**
105  * Create a background-worker
106  *
107  * This function creates a new background-worker using the passed configuration.
108  *
109  * \warning all members of `config` shall have been set by the caller.
110  * \warning the returned resource must be destroyed using \ref
111  * background_worker_Delete on success.
112  *
113  * \param owner the owner of the background-worker
114  * \param config the background-worker's configuration
115  * \return a pointer-to the created background-worker on success,
116  * `NULL` on failure.
117  **/
120 
121 /**
122  * Request the background-worker to probe the current task
123  *
124  * This function is used to signal the background-worker that it should do
125  * another probe to see whether the current task is still alive.
126  *
127  * \warning Note that the function will not wait for the probing to finish, it
128  * will simply ask the background worker to recheck it as soon as
129  * possible.
130  *
131  * \param worker the background-worker
132  **/
134 
135 /**
136  * Push an entity into the background-worker
137  *
138  * This function is used to push an entity into the queue of pending work. The
139  * entities will be processed in the order in which they are received (in terms
140  * of the order of invocations in a single-threaded environment).
141  *
142  * \param worker the background-worker
143  * \param entity the entity which is to be queued
144  * \param id a value suitable for identifying the entity, or `NULL`
145  * \param timeout the timeout of the entity in milliseconds, `0` denotes no
146  * timeout, a negative value will use the default timeout
147  * associated with the background-worker.
148  * \return VLC_SUCCESS if the entity was successfully queued, an error-code on
149  * failure.
150  **/
151 int background_worker_Push( struct background_worker* worker, void* entity,
152  void* id, int timeout );
153 
154 /**
155  * Remove entities from the background-worker
156  *
157  * This function is used to remove processing of a certain entity given its
158  * associated id, or to remove all queued (including currently running)
159  * entities.
160  *
161  * \warning if the `id` passed refers to an entity that is currently being
162  * processed, the call will block until the task has been terminated.
163  *
164  * \param worker the background-worker
165  * \param id NULL if every entity shall be removed, and the currently running
166  * task (if any) shall be cancelled.
167  **/
168 void background_worker_Cancel( struct background_worker* worker, void* id );
169 
170 /**
171  * Delete a background-worker
172  *
173  * This function will destroy a background-worker created through \ref
174  * background_worker_New. It will effectively stop the currently running task,
175  * if any, and empty the queue of pending entities.
176  *
177  * \warning If there is a currently running task, the function will block until
178  * it has been stopped.
179  *
180  * \param worker the background-worker
181  **/
182 void background_worker_Delete( struct background_worker* worker );
183 #endif
addon_entry_t::psz_description
char * psz_description
Definition: vlc_addons.h:83
KEY_MEDIA_REPEAT
#define KEY_MEDIA_REPEAT
Definition: vlc_actions.h:96
addon_entry_t::psz_summary
char * psz_summary
Definition: vlc_addons.h:82
ACTIONID_RATE_FASTER_FINE
Definition: vlc_actions.h:234
KEY_PAUSE
#define KEY_PAUSE
Definition: vlc_actions.h:77
addons_manager_Install
int addons_manager_Install(addons_manager_t *p_manager, const addon_uuid_t uuid)
Install or Remove the addon identified by its uuid.
Definition: addons.c:551
ACTIONID_VIEWPOINT_ROLL_ANTICLOCK
Definition: vlc_actions.h:243
KEY_UP
#define KEY_UP
Definition: vlc_actions.h:55
addon_entry_t::psz_source_uri
char * psz_source_uri
Definition: vlc_addons.h:85
background_worker_Delete
void background_worker_Delete(struct background_worker *worker)
Delete a background-worker.
Definition: background_worker.c:258
vlc_CPU_init
void vlc_CPU_init(void)
Determines the CPU capabilities and stores them in cpu_flags.
Definition: cpu.c:122
KEY_VOLUME_MUTE
#define KEY_VOLUME_MUTE
Definition: vlc_actions.h:86
background_worker_New
struct background_worker * background_worker_New(void *owner, struct background_worker_config *conf)
Create a background-worker.
Definition: background_worker.c:184
ACTIONID_PLAY_BOOKMARK9
Definition: vlc_actions.h:169
ACTIONID_TOGGLE_AUTOSCALE
Definition: vlc_actions.h:228
addons_finder_t
Definition: vlc_addons.h:107
vlc_memstream
Definition: vlc_memstream.h:27
vlc_sem_init
void vlc_sem_init(vlc_sem_t *sem, unsigned value)
Initializes a semaphore.
Definition: thread.c:325
addon_entry_t::psz_image_uri
char * psz_image_uri
Definition: vlc_addons.h:86
KEY_F5
#define KEY_F5
Definition: vlc_actions.h:61
finder_thread_interrupted
static void finder_thread_interrupted(void *p_data)
Definition: addons.c:317
vlc_restorecancel
void vlc_restorecancel(int state)
Restores the cancellation state.
Definition: thread.c:323
background_worker_RequestProbe
void background_worker_RequestProbe(struct background_worker *worker)
Request the background-worker to probe the current task.
Definition: background_worker.c:250
ACTIONID_SET_BOOKMARK6
Definition: vlc_actions.h:156
utf8_cp
static char * utf8_cp(uint_fast32_t cp, char *buf)
Definition: actions.c:128
ACTIONID_VOL_UP
Definition: vlc_actions.h:132
ACTIONID_SUBTITLE_TEXT_SCALE_DOWN
Definition: vlc_actions.h:187
ACTIONID_INTF_POPUP_MENU
Definition: vlc_actions.h:238
vlc_getnameinfo
int vlc_getnameinfo(const struct sockaddr *sa, int salen, char *host, int hostlen, int *portnum, int flags)
Definition: getaddrinfo.c:39
background_worker.h
KEY_HOME
#define KEY_HOME
Definition: vlc_actions.h:69
key_descriptor::i_code
uint32_t i_code
Definition: actions.c:48
ACTIONID_UNCROP_RIGHT
Definition: vlc_actions.h:215
KEY_MEDIA_MENU
#define KEY_MEDIA_MENU
Definition: vlc_actions.h:106
background_worker_Cancel
void background_worker_Cancel(struct background_worker *worker, void *id)
Remove entities from the background-worker.
Definition: background_worker.c:245
ACTIONID_ZOOM_QUARTER
Definition: vlc_actions.h:221
InstallEntry
static int InstallEntry(addons_manager_t *p_manager, addon_entry_t *p_entry)
Definition: addons.c:524
ARRAY_APPEND
#define ARRAY_APPEND(array, elem)
Definition: vlc_arrays.h:187
KEY_MEDIA_FRAME_PREV
#define KEY_MEDIA_FRAME_PREV
Definition: vlc_actions.h:102
ACTIONID_PAUSE
Definition: vlc_actions.h:125
background_worker::probe_request
bool probe_request
true if a probe is requested
Definition: background_worker.c:43
vlc_sem_destroy
void vlc_sem_destroy(vlc_sem_t *sem)
Deinitializes a semaphore.
Definition: thread.c:331
cpu_flags
static uint32_t cpu_flags
Definition: cpu.c:61
vlc_array_remove
static void vlc_array_remove(vlc_array_t *ar, size_t idx)
Definition: vlc_arrays.h:333
KEY_PAGEUP
#define KEY_PAGEUP
Definition: vlc_actions.h:74
libvlc_int_t
Definition: vlc_main.h:33
ACTIONID_TOGGLE_FULLSCREEN
Definition: vlc_actions.h:131
INIT_QUEUE
#define INIT_QUEUE(name)
KEY_DELETE
#define KEY_DELETE
Definition: vlc_actions.h:72
ACTIONID_SET_BOOKMARK5
Definition: vlc_actions.h:155
installOrRemoveAddon
static int installOrRemoveAddon(addons_manager_t *p_manager, addon_entry_t *p_entry, bool b_install)
Definition: addons.c:412
libvlc_priv_t::actions
vlc_actions_t * actions
Hotkeys handler.
Definition: libvlc.h:192
KEY_F8
#define KEY_F8
Definition: vlc_actions.h:64
vlc_common.h
addons_manager_Remove
int addons_manager_Remove(addons_manager_t *p_manager, const addon_uuid_t uuid)
Definition: addons.c:560
KEY_UNSET
#define KEY_UNSET
Definition: vlc_actions.h:47
VLC_THREAD_PRIORITY_LOW
#define VLC_THREAD_PRIORITY_LOW
Definition: vlc_threads.h:321
addon_entry_t::lock
vlc_mutex_t lock
Definition: vlc_addons.h:73
addons_manager_private_t::p_parent
vlc_object_t * p_parent
Definition: addons.c:45
KEY_MEDIA_ANGLE
#define KEY_MEDIA_ANGLE
Definition: vlc_actions.h:100
KEY_F4
#define KEY_F4
Definition: vlc_actions.h:60
addons_manager_private_t::installer
struct addons_manager_private_t::@42 installer
vlc_interrupt.h
addon_entry_t
Definition: vlc_addons.h:71
var_InheritInteger
#define var_InheritInteger(o, n)
Definition: vlc_variables.h:612
addons_finder_t::i_size
int i_size
Definition: vlc_addons.h:113
libvlc_priv
static libvlc_priv_t * libvlc_priv(libvlc_int_t *libvlc)
Definition: libvlc.h:198
ACTIONID_SET_BOOKMARK9
Definition: vlc_actions.h:159
ACTIONID_QUIT
Definition: vlc_actions.h:122
ADDON_INSTALLED
Definition: vlc_addons.h:48
ACTIONID_SNAPSHOT
Definition: vlc_actions.h:199
vlc_gai_req::done
vlc_sem_t done
Definition: getaddrinfo.c:56
KEY_F9
#define KEY_F9
Definition: vlc_actions.h:65
s_keys
static const struct key_descriptor s_keys[]
addons_storage_t::pf_install
int(* pf_install)(addons_storage_t *, addon_entry_t *)
Definition: vlc_addons.h:125
vlc_CPU_dump
void vlc_CPU_dump(vlc_object_t *obj)
Definition: cpu.c:279
ACTIONID_PLAY
Definition: vlc_actions.h:124
vlc_key_to_action
static int vlc_key_to_action(vlc_object_t *obj, const char *varname, vlc_value_t prevkey, vlc_value_t curkey, void *d)
Definition: actions.c:400
addons_manager_LoadCatalog
int addons_manager_LoadCatalog(addons_manager_t *p_manager)
Charge currently installed, usable and manageable addons (default "addons storage" module)
Definition: addons.c:406
OBJECT_FLAGS_NOINTERACT
#define OBJECT_FLAGS_NOINTERACT
Definition: vlc_objects.h:33
vlc_interrupt_destroy
void vlc_interrupt_destroy(vlc_interrupt_t *ctx)
Destroys an interrupt context.
Definition: interrupt.c:77
background_worker::deadline
mtime_t deadline
deadline of the current task
Definition: background_worker.c:46
vlc_clone_detach
int vlc_clone_detach(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Definition: thread.c:280
ACTIONID_UNCROP_BOTTOM
Definition: vlc_actions.h:213
addon_entry_owner_t
struct addon_entry_owner addon_entry_owner_t
vlc_network.h
ACTIONID_NEXT
Definition: vlc_actions.h:128
vlc_charset.h
ACTIONID_DEINTERLACE
Definition: vlc_actions.h:204
ACTIONID_LEAVE_FULLSCREEN
Definition: vlc_actions.h:219
installer_thread_interrupted
static void installer_thread_interrupted(void *p_data)
Definition: addons.c:443
addons_manager_Delete
void addons_manager_Delete(addons_manager_t *p_manager)
Definition: addons.c:171
addons_manager_owner::addon_found
void(* addon_found)(struct addons_manager_t *, struct addon_entry_t *)
Definition: vlc_addons.h:137
vlc_sem_post
int vlc_sem_post(vlc_sem_t *sem)
Increments the value of a semaphore.
Definition: thread.c:343
ACTIONID_SET_BOOKMARK3
Definition: vlc_actions.h:153
KEY_F12
#define KEY_F12
Definition: vlc_actions.h:68
vlc_array_append
static int vlc_array_append(vlc_array_t *ar, void *elem)
Definition: vlc_arrays.h:315
ACTIONID_SUBDELAY_UP
Definition: vlc_actions.h:173
ACTIONS_COUNT
#define ACTIONS_COUNT
Definition: actions.c:378
mapping::action
vlc_action_id_t action
Action ID.
Definition: actions.c:383
KEY_PAGEDOWN
#define KEY_PAGEDOWN
Definition: vlc_actions.h:75
vlc_common_members::libvlc
libvlc_int_t * libvlc
LibVLC instance.
Definition: vlc_common.h:441
msg_Dbg
#define msg_Dbg(p_this,...)
Definition: vlc_messages.h:86
KEY_MEDIA_SUBTITLE
#define KEY_MEDIA_SUBTITLE
Definition: vlc_actions.h:98
ACTIONID_STOP
Definition: vlc_actions.h:126
ACTIONID_COMBO_VOL_FOV_DOWN
Definition: vlc_actions.h:246
vlc_actions_t::ppsz_keys
const char * ppsz_keys[]
Definition: actions.c:397
ACTIONID_AUDIODEVICE_CYCLE
Definition: vlc_actions.h:226
ACTIONID_INTF_TOGGLE_FSC
Definition: vlc_actions.h:188
addon_entry_t::psz_author
char * psz_author
Definition: vlc_addons.h:84
ACTIONID_NAV_LEFT
Definition: vlc_actions.h:137
ACTIONID_FRAME_NEXT
Definition: vlc_actions.h:147
background_worker::wait
vlc_cond_t wait
wait for update in terms of head
Definition: background_worker.c:44
vlc_cond_broadcast
void vlc_cond_broadcast(vlc_cond_t *p_condvar)
Wakes up all threads waiting on a condition variable.
Definition: thread.c:262
ACTIONID_VIEWPOINT_FOV_IN
Definition: vlc_actions.h:240
ARRAY_REMOVE
#define ARRAY_REMOVE(array, pos)
Definition: vlc_arrays.h:211
vlc_threads.h
VLC_EGENERIC
#define VLC_EGENERIC
Unspecified error.
Definition: vlc_common.h:350
vlc_getaddrinfo_i11e
int vlc_getaddrinfo_i11e(const char *name, unsigned port, const struct addrinfo *hints, struct addrinfo **res)
Definition: getaddrinfo.c:38
addon_entry_t::e_flags
addon_flags_t e_flags
Definition: vlc_addons.h:77
vlc_clone
int vlc_clone(vlc_thread_t *th, void *(*entry)(void *), void *data, int priority)
Creates and starts a new thread.
Definition: thread.c:263
ADDON_UNKNOWN
Definition: vlc_addons.h:50
addons_storage_t::pf_catalog
int(* pf_catalog)(addons_storage_t *, addon_entry_t **, int)
Definition: vlc_addons.h:127
vlc_towc
size_t vlc_towc(const char *str, uint32_t *restrict pwc)
Decodes a code point from UTF-8.
Definition: unicode.c:111
VLC_VAR_INTEGER
#define VLC_VAR_INTEGER
Definition: vlc_variables.h:50
addons_manager_private_t::waitcond
vlc_cond_t waitcond
Definition: addons.c:50
ACTIONID_SUBDELAY_DOWN
Definition: vlc_actions.h:174
background_worker::active
bool active
true if there is an active thread
Definition: background_worker.c:48
vlc_getaddrinfo
int vlc_getaddrinfo(const char *node, unsigned port, const struct addrinfo *hints, struct addrinfo **res)
Resolves a host name to a list of socket addresses (like getaddrinfo()).
Definition: getaddrinfo.c:77
background_worker_config
Definition: background_worker.h:21
entry::key
char * key
Definition: vlc_fixups.h:485
vlc_cond_signal
void vlc_cond_signal(vlc_cond_t *p_condvar)
Wakes up one thread waiting on a condition variable.
Definition: thread.c:256
ARRAY_RESET
#define ARRAY_RESET(array)
Definition: vlc_arrays.h:180
keycmp
static int keycmp(const void *a, const void *b)
Definition: actions.c:386
ACTIONID_TITLE_PREV
Definition: vlc_actions.h:192
ACTIONID_VOL_DOWN
Definition: vlc_actions.h:133
ACTIONID_PLAY_BOOKMARK7
Definition: vlc_actions.h:167
addon_entry_New
addon_entry_t * addon_entry_New(void)
addon entry lifecycle
Definition: addons.c:75
ACTIONID_PROGRAM_SID_PREV
Definition: vlc_actions.h:237
KEY_MENU
#define KEY_MENU
Definition: vlc_actions.h:73
var_InheritString
#define var_InheritString(o, n)
Definition: vlc_variables.h:639
ACTIONID_SET_BOOKMARK4
Definition: vlc_actions.h:154
ACTIONID_PLAY_BOOKMARK8
Definition: vlc_actions.h:168
vlc_cond_t
pthread_cond_t vlc_cond_t
Condition variable.
Definition: vlc_threads.h:279
ACTIONID_ZOOM
Definition: vlc_actions.h:206
addons_finder_t::obj
struct vlc_common_members obj
Definition: vlc_addons.h:109
vlc_gettext
char * vlc_gettext(const char *msgid)
In-tree plugins share their gettext domain with LibVLC.
Definition: textdomain.c:89
asprintf
int asprintf(char **, const char *,...)
vlc_value_t::i_int
int64_t i_int
Definition: vlc_common.h:327
var_Create
#define var_Create(a, b, c)
Definition: vlc_variables.h:121
var_DelCallback
#define var_DelCallback(a, b, c, d)
Definition: vlc_variables.h:165
background_worker::head
struct background_worker::@46 head
ACTIONID_CHAPTER_PREV
Definition: vlc_actions.h:194
s_names2actions
static const struct name2action s_names2actions[]
vlc_gai_req::hints
const struct addrinfo * hints
Definition: getaddrinfo.c:53
vlc_memstream_open
int vlc_memstream_open(struct vlc_memstream *ms)
Definition: memstream.c:104
background_worker::tail
struct background_worker::@47 tail
ADDON_PLUGIN
Definition: vlc_addons.h:55
KEY_BROWSER_REFRESH
#define KEY_BROWSER_REFRESH
Definition: vlc_actions.h:81
addons_manager_t::owner
struct addons_manager_owner owner
Definition: vlc_addons.h:145
ACTIONID_CROP_BOTTOM
Definition: vlc_actions.h:212
ACTIONID_PLAY_BOOKMARK3
Definition: vlc_actions.h:163
ADDON_UNINSTALLING
Definition: vlc_addons.h:49
addon_entry_t::files
struct addon_entry_t::@139 files
ACTIONID_SCALE_UP
Definition: vlc_actions.h:229
msg_Warn
#define msg_Warn(p_this,...)
Definition: vlc_messages.h:84
ACTIONID_NAV_RIGHT
Definition: vlc_actions.h:138
ACTIONID_SUBTITLE_TEXT_SCALE_NORMAL
Definition: vlc_actions.h:185
getaddrinfo
int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res)
Definition: getaddrinfo.c:184
vlc_CPU
unsigned vlc_CPU(void)
Definition: cpu.c:129
ACTIONID_JUMP_BACKWARD_LONG
Definition: vlc_actions.h:145
background_worker::worker_wait
vlc_cond_t worker_wait
wait for probe request or cancelation
Definition: background_worker.c:45
ACTIONID_PLAY_BOOKMARK6
Definition: vlc_actions.h:166
VLC_EBADVAR
#define VLC_EBADVAR
Bad variable value.
Definition: vlc_common.h:356
background_worker_config::default_timeout
mtime_t default_timeout
Default timeout for completing a task.
Definition: background_worker.h:44
KEY_BROWSER_BACK
#define KEY_BROWSER_BACK
Definition: vlc_actions.h:79
addon_entry_t::psz_name
char * psz_name
Definition: vlc_addons.h:81
vlc_array_t
Definition: vlc_arrays.h:238
vlc_object_release
#define vlc_object_release(a)
Definition: vlc_objects.h:63
addons_storage_t
Definition: vlc_addons.h:121
background_worker_config::pf_hold
void(* pf_hold)(void *entity)
Hold a queued item.
Definition: background_worker.h:67
KEY_MODIFIER
#define KEY_MODIFIER
Definition: vlc_actions.h:40
vlc_interrupt_register
void vlc_interrupt_register(void(*cb)(void *), void *opaque)
Registers a custom interrupt handler.
Definition: interrupt.c:160
ACTIONID_SLOWER
Definition: vlc_actions.h:129
ACTIONID_SUBSYNC_MARKAUDIO
Definition: vlc_actions.h:175
addon_entry_t::psz_version
char * psz_version
Definition: vlc_addons.h:88
vlc_interrupt_kill
void vlc_interrupt_kill(vlc_interrupt_t *ctx)
Marks the interruption context as "killed".
Definition: interrupt.c:178
addon_entry_t::psz_source_module
char * psz_source_module
Definition: vlc_addons.h:95
KEY_MEDIA_STOP
#define KEY_MEDIA_STOP
Definition: vlc_actions.h:91
KEY_VOLUME_UP
#define KEY_VOLUME_UP
Definition: vlc_actions.h:88
vlc_memstream::stream
FILE * stream
Definition: vlc_memstream.h:65
BackgroundWorkerCancel
static void BackgroundWorkerCancel(struct background_worker *worker, void *id)
Definition: background_worker.c:154
addons_manager_New
addons_manager_t * addons_manager_New(vlc_object_t *p_this, const struct addons_manager_owner *restrict owner)
Definition: addons.c:128
background_worker
Definition: background_worker.c:37
ACTIONID_JUMP_BACKWARD_EXTRASHORT
Definition: vlc_actions.h:139
addons_manager_t::p_priv
addons_manager_private_t * p_priv
Definition: vlc_addons.h:146
module_t
Internal module descriptor.
Definition: modules.h:79
vlc_interrupt_unregister
int vlc_interrupt_unregister(void)
Definition: interrupt.c:167
KEY_F7
#define KEY_F7
Definition: vlc_actions.h:63
VLC_TS_INVALID
#define VLC_TS_INVALID
Definition: vlc_config.h:42
ACTIONID_PLAY_BOOKMARK10
Definition: vlc_actions.h:170
vlc_array_count
static size_t vlc_array_count(vlc_array_t *p_array)
Definition: vlc_arrays.h:257
vlc_gai_thread
static void * vlc_gai_thread(void *data)
Definition: getaddrinfo.c:42
ACTIONID_PLAY_CLEAR
Definition: vlc_actions.h:172
vlc_keycode2str
char * vlc_keycode2str(uint_fast32_t code, bool locale)
Format a human-readable and unique representation of a VLC key code (including modifiers).
Definition: actions.c:225
addon_entry_t::e_state
addon_state_t e_state
Definition: vlc_addons.h:76
ARRAY_INIT
#define ARRAY_INIT(array)
Definition: vlc_arrays.h:173
KEY_BRIGHTNESS_UP
#define KEY_BRIGHTNESS_UP
Definition: vlc_actions.h:109
vlc_atomic.h
vlc_memstream.h
ACTIONID_CROP
Definition: vlc_actions.h:203
mapping
Definition: actions.c:380
ACTIONID_PREV
Definition: vlc_actions.h:127
addon_entry_owner
Definition: addons.c:37
ACTIONID_UNCROP_TOP
Definition: vlc_actions.h:209
KEY_BROWSER_STOP
#define KEY_BROWSER_STOP
Definition: vlc_actions.h:82
KEY_VOLUME_DOWN
#define KEY_VOLUME_DOWN
Definition: vlc_actions.h:87
KEY_MEDIA_TIME
#define KEY_MEDIA_TIME
Definition: vlc_actions.h:101
ACTIONID_PLAY_BOOKMARK2
Definition: vlc_actions.h:162
addons_finder_t::entries
struct addons_finder_t::@140 entries
add_mapping
static int add_mapping(void **map, uint32_t keycode, vlc_action_id_t action)
Adds a mapping from a certain key code to a certain action.
Definition: actions.c:419
ACTIONID_SUBPOS_UP
Definition: vlc_actions.h:179
ACTIONID_SET_BOOKMARK10
Definition: vlc_actions.h:160
vlc_gai_req::error
int error
Definition: getaddrinfo.c:55
MAXACTION
#define MAXACTION
Definition: actions.c:258
background_worker_Push
int background_worker_Push(struct background_worker *worker, void *entity, void *id, int timeout)
Push an entity into the background-worker.
Definition: background_worker.c:208
KEY_END
#define KEY_END
Definition: vlc_actions.h:70
vlc_actions_t::map
void * map
Definition: actions.c:395
FREE_QUEUE
#define FREE_QUEUE(name)
vlc_gai_req::name
const char * name
Definition: getaddrinfo.c:51
key_descriptor
Definition: actions.c:45
background_worker_config::pf_stop
void(* pf_stop)(void *owner, void *handle)
Stop a running task.
Definition: background_worker.h:115
vlc_gai_req::result
struct addrinfo * result
Definition: getaddrinfo.c:54
ADDON_OTHER
Definition: vlc_addons.h:58
background_worker_config::pf_release
void(* pf_release)(void *entity)
Release an entity.
Definition: background_worker.h:56
ACTIONID_SUBPOS_DOWN
Definition: vlc_actions.h:180
getHeldEntryByUUID
static addon_entry_t * getHeldEntryByUUID(addons_manager_t *p_manager, const addon_uuid_t uuid)
Definition: addons.c:242
vlc_interrupt_set
vlc_interrupt_t * vlc_interrupt_set(vlc_interrupt_t *newctx)
Sets the interruption context for the calling thread.
Definition: interrupt.c:99
ACTIONID_SET_BOOKMARK1
Definition: vlc_actions.h:151
background_worker_RequestProbe
void background_worker_RequestProbe(struct background_worker *worker)
Request the background-worker to probe the current task.
Definition: background_worker.c:250
_NI_MASK
#define _NI_MASK
Definition: getaddrinfo.c:34
ACTIONID_ZOOM_ORIGINAL
Definition: vlc_actions.h:223
background_worker::conf
struct background_worker_config conf
Definition: background_worker.c:39
name2action
Definition: actions.c:259
ACTIONID_PROGRAM_SID_NEXT
Definition: vlc_actions.h:236
ACTIONID_SCALE_DOWN
Definition: vlc_actions.h:230
vlc_sem_wait
void vlc_sem_wait(vlc_sem_t *sem)
Waits on a semaphore.
Definition: thread.c:357
addons_manager_private_t::thread
vlc_thread_t thread
Definition: addons.c:49
KEYS_COUNT
#define KEYS_COUNT
Definition: actions.c:119
KEY_F10
#define KEY_F10
Definition: vlc_actions.h:66
_AI_MASK
#define _AI_MASK
Definition: getaddrinfo.c:88
addons_finder_t::psz_uri
char * psz_uri
Definition: vlc_addons.h:114
KEY_BROWSER_SEARCH
#define KEY_BROWSER_SEARCH
Definition: vlc_actions.h:83
vlc_thread_t
Thread handle.
Definition: vlc_threads.h:252
addons_manager_private_t::entries
struct addons_manager_private_t::@41::@44 entries
addons_storage_t::obj
struct vlc_common_members obj
Definition: vlc_addons.h:123
vlc_mutex_init
void vlc_mutex_init(vlc_mutex_t *p_mutex)
Initializes a fast mutex.
Definition: thread.c:85
strtok_r
char * strtok_r(char *, const char *, char **)
addon_entry_t::p_custom
void * p_custom
Definition: vlc_addons.h:102
KEY_MODIFIER_META
#define KEY_MODIFIER_META
Definition: vlc_actions.h:44
KEY_BROWSER_FORWARD
#define KEY_BROWSER_FORWARD
Definition: vlc_actions.h:80
KEY_MODIFIER_CTRL
#define KEY_MODIFIER_CTRL
Definition: vlc_actions.h:43
background_worker_config::pf_probe
int(* pf_probe)(void *owner, void *handle)
Probe a running task.
Definition: background_worker.h:99
name2action::psz
char psz[26]
Definition: actions.c:261
ACTIONID_RECORD
Definition: vlc_actions.h:200
KEY_MODIFIER_ALT
#define KEY_MODIFIER_ALT
Definition: vlc_actions.h:41
KEY_MEDIA_RECORD
#define KEY_MEDIA_RECORD
Definition: vlc_actions.h:93
name2action::id
vlc_action_id_t id
Definition: actions.c:262
KEY_F6
#define KEY_F6
Definition: vlc_actions.h:62
ACTIONID_TITLE_NEXT
Definition: vlc_actions.h:193
KEY_ZOOM_IN
#define KEY_ZOOM_IN
Definition: vlc_actions.h:107
addons_manager_WriteCatalog
static int addons_manager_WriteCatalog(addons_manager_t *p_manager)
Definition: addons.c:383
DECL_ARRAY
#define DECL_ARRAY(type)
Definition: vlc_arrays.h:165
var_SetInteger
#define var_SetInteger(a, b, c)
Definition: vlc_variables.h:256
KEY_LEFT
#define KEY_LEFT
Definition: vlc_actions.h:53
ACTIONID_DISC_MENU
Definition: vlc_actions.h:201
ACTIONID_PLAY_BOOKMARK5
Definition: vlc_actions.h:165
ADDON_NOTINSTALLED
Definition: vlc_addons.h:46
ACTIONID_SUBSYNC_RESET
Definition: vlc_actions.h:178
ACTIONID_ZOOM_HALF
Definition: vlc_actions.h:222
KEY_BROWSER_FAVORITES
#define KEY_BROWSER_FAVORITES
Definition: vlc_actions.h:84
vlc_addons.h
ACTIONID_JUMP_FORWARD_MEDIUM
Definition: vlc_actions.h:144
KEY_MOUSEWHEELLEFT
#define KEY_MOUSEWHEELLEFT
Definition: vlc_actions.h:114
KEY_MOUSEWHEELDOWN
#define KEY_MOUSEWHEELDOWN
Definition: vlc_actions.h:113
mapping::key
uint32_t key
Key code.
Definition: actions.c:382
ACTIONID_JUMP_FORWARD_SHORT
Definition: vlc_actions.h:142
vlc_interrupt
Definition: interrupt.h:30
addons_finder_t::pf_find
int(* pf_find)(addons_finder_t *)
Definition: vlc_addons.h:111
KEY_MEDIA_NEXT_TRACK
#define KEY_MEDIA_NEXT_TRACK
Definition: vlc_actions.h:89
KEY_INSERT
#define KEY_INSERT
Definition: vlc_actions.h:71
vlc_str2keycode
uint_fast32_t vlc_str2keycode(const char *name)
Parse a human-readable string representation of a VLC key code.
Definition: actions.c:174
ACTIONID_NONE
Definition: vlc_actions.h:121
addon_entry_Release
void addon_entry_Release(addon_entry_t *p_entry)
Definition: addons.c:97
ACTIONID_PLAY_BOOKMARK4
Definition: vlc_actions.h:164
actcmp
static int actcmp(const void *key, const void *ent)
Definition: actions.c:573
addon_entry_Hold
addon_entry_t * addon_entry_Hold(addon_entry_t *p_entry)
Definition: addons.c:89
KEY_MEDIA_SHUFFLE
#define KEY_MEDIA_SHUFFLE
Definition: vlc_actions.h:97
addons_manager_t
Definition: vlc_addons.h:143
LoadLocalStorage
static void LoadLocalStorage(addons_manager_t *p_manager)
Definition: addons.c:295
ACTIONID_INTF_BOSS
Definition: vlc_actions.h:190
vlc_gai_req::service
const char * service
Definition: getaddrinfo.c:52
ACTIONID_POSITION
Definition: vlc_actions.h:148
background_worker::data
vlc_array_t data
queue of pending entities to process
Definition: background_worker.c:53
ACTIONID_JUMP_FORWARD_LONG
Definition: vlc_actions.h:146
FinderThread
static void * FinderThread(void *)
Definition: addons.c:326
add_wheel_mapping
static void add_wheel_mapping(void **map, uint32_t kmore, uint32_t kless, int mode)
Definition: actions.c:438
addon_entry_t::e_type
addon_type_t e_type
Definition: vlc_addons.h:75
ACTIONID_UNZOOM
Definition: vlc_actions.h:207
ACTIONID_JUMP_FORWARD_EXTRASHORT
Definition: vlc_actions.h:140
MergeSources
static void MergeSources(addons_manager_t *p_manager, addon_entry_t **pp_addons, int i_count)
Definition: addons.c:259
ACTIONID_SUBTITLE_TOGGLE
Definition: vlc_actions.h:184
vlc_object_t
The main vlc_object_t structure.
Definition: vlc_objects.h:39
vlc_savecancel
int vlc_savecancel(void)
Disables thread cancellation.
Definition: thread.c:313
bg_queued_item
Definition: background_worker.c:31
ACTIONID_SUBTITLE_REVERSE_TRACK
Definition: vlc_actions.h:182
VLC_ENOMEM
#define VLC_ENOMEM
Not enough memory.
Definition: vlc_common.h:351
background_worker_Delete
void background_worker_Delete(struct background_worker *worker)
Delete a background-worker.
Definition: background_worker.c:258
addon_file_t
Definition: vlc_addons.h:64
ACTIONID_COMBO_VOL_FOV_UP
Definition: vlc_actions.h:245
vlc_array_init
static void vlc_array_init(vlc_array_t *p_array)
Definition: vlc_arrays.h:244
tdestroy
void tdestroy(void *root, void(*free_node)(void *nodep))
ADDON_MANAGEABLE
Definition: vlc_addons.h:55
ACTIONID_SUBSYNC_MARKSUB
Definition: vlc_actions.h:176
vlc_mutex_t
pthread_mutex_t vlc_mutex_t
Mutex.
Definition: vlc_threads.h:267
addons_manager_owner
Definition: vlc_addons.h:134
KEY_MEDIA_PREV_TRACK
#define KEY_MEDIA_PREV_TRACK
Definition: vlc_actions.h:90
ACTIONID_AUDIODELAY_DOWN
Definition: vlc_actions.h:198
vlc_interrupt_create
vlc_interrupt_t * vlc_interrupt_create(void)
Creates an interruption context.
Definition: interrupt.c:59
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:349
ACTIONID_RANDOM
Definition: vlc_actions.h:216
tfind
void * tfind(const void *key, const void **rootp, int(*cmp)(const void *, const void *))
vlc_array_clear
static void vlc_array_clear(vlc_array_t *p_array)
Definition: vlc_arrays.h:250
ACTIONID_RATE_NORMAL
Definition: vlc_actions.h:232
KEY_MEDIA_FORWARD
#define KEY_MEDIA_FORWARD
Definition: vlc_actions.h:95
strdup
char * strdup(const char *)
background_worker_New
struct background_worker * background_worker_New(void *owner, struct background_worker_config *config)
Create a background-worker.
Definition: background_worker.c:184
addon_uuid_t
uint8_t addon_uuid_t[16]
Definition: vlc_addons.h:62
KEY_ESC
#define KEY_ESC
Definition: vlc_actions.h:51
ACTIONID_SUBSYNC_APPLY
Definition: vlc_actions.h:177
KEY_F3
#define KEY_F3
Definition: vlc_actions.h:59
getnameinfo
int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, int hostlen, char *serv, int servlen, int flags)
Definition: getaddrinfo.c:46
vlc_custom_create
#define vlc_custom_create(o, s, n)
Definition: libvlc.h:108
vlc_memstream_puts
int() vlc_memstream_puts(struct vlc_memstream *ms, const char *str)
Definition: memstream.c:149
addons_manager_owner::addon_changed
void(* addon_changed)(struct addons_manager_t *, struct addon_entry_t *)
Definition: vlc_addons.h:139
KEY_MEDIA_SELECT
#define KEY_MEDIA_SELECT
Definition: vlc_actions.h:104
ACTIONID_DEINTERLACE_MODE
Definition: vlc_actions.h:205
ACTIONID_NAV_UP
Definition: vlc_actions.h:135
background_worker::lock
vlc_mutex_t lock
acquire to inspect members that follow
Definition: background_worker.c:41
ACTIONID_RATE_SLOWER_FINE
Definition: vlc_actions.h:233
addon_entry_t::uuid
addon_uuid_t uuid
Definition: vlc_addons.h:80
name
const char name[16]
Definition: httpd.c:1249
ACTIONID_AUDIO_TRACK
Definition: vlc_actions.h:181
vlc_cond_destroy
void vlc_cond_destroy(vlc_cond_t *p_condvar)
Deinitializes a condition variable.
Definition: thread.c:228
vlc_getaddrinfo_notify
static void vlc_getaddrinfo_notify(union sigval val)
Definition: getaddrinfo.c:33
KEY_MEDIA_VIEW
#define KEY_MEDIA_VIEW
Definition: vlc_actions.h:105
ACTIONID_VIEWPOINT_ROLL_CLOCK
Definition: vlc_actions.h:242
ACTIONID_SET_BOOKMARK7
Definition: vlc_actions.h:157
vlc_cond_init
void vlc_cond_init(vlc_cond_t *p_condvar)
Initializes a condition variable.
Definition: thread.c:216
KEY_BACKSPACE
#define KEY_BACKSPACE
Definition: vlc_actions.h:48
entry
Definition: fourcc_gen.c:50
vlc_cond_wait
void vlc_cond_wait(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex)
Waits on a condition variable.
Definition: thread.c:267
ACTIONID_NAV_DOWN
Definition: vlc_actions.h:136
vlc_array_item_at_index
#define vlc_array_item_at_index(ar, idx)
Definition: vlc_arrays.h:263
addons_manager_private_t::b_live
bool b_live
Definition: addons.c:51
VLC_TS_0
#define VLC_TS_0
Definition: vlc_config.h:43
keystrcmp
static int keystrcmp(const void *key, const void *elem)
Definition: actions.c:121
vlc_actions_t
Definition: actions.c:393
N_
#define N_(str)
Definition: vlc_fixups.h:372
ACTIONID_NAV_ACTIVATE
Definition: vlc_actions.h:134
config
static struct @10 config
KEY_MEDIA_PLAY_PAUSE
#define KEY_MEDIA_PLAY_PAUSE
Definition: vlc_actions.h:92
ACTIONID_SUBTITLE_TRACK
Definition: vlc_actions.h:183
KEY_BROWSER_HOME
#define KEY_BROWSER_HOME
Definition: vlc_actions.h:85
vlc_mutex_destroy
void vlc_mutex_destroy(vlc_mutex_t *p_mutex)
Deinitializes a mutex.
Definition: thread.c:110
KEY_MODIFIER_COMMAND
#define KEY_MODIFIER_COMMAND
Definition: vlc_actions.h:45
configuration.h
addon_file_t::psz_download_uri
char * psz_download_uri
Definition: vlc_addons.h:67
vlc_mutex_unlock
void vlc_mutex_unlock(vlc_mutex_t *p_mutex)
Releases a mutex.
Definition: thread.c:138
unlikely
#define unlikely(p)
Definition: vlc_common.h:114
KEY_MOUSEWHEELUP
#define KEY_MOUSEWHEELUP
Definition: vlc_actions.h:112
KEY_TAB
#define KEY_TAB
Definition: vlc_actions.h:49
addon_entry_t::psz_image_data
char * psz_image_data
Definition: vlc_addons.h:87
vlc_cpu.h
addon_entry_owner::refs
atomic_uint refs
Definition: addons.c:58
KEY_MODIFIER_SHIFT
#define KEY_MODIFIER_SHIFT
Definition: vlc_actions.h:42
addons_manager_private_t::p_interrupt
vlc_interrupt_t * p_interrupt
Definition: addons.c:53
background_worker_Cancel
void background_worker_Cancel(struct background_worker *worker, void *id)
Remove entities from the background-worker.
Definition: background_worker.c:245
ACTIONID_VIEWPOINT_FOV_OUT
Definition: vlc_actions.h:241
addons_manager_private_t::lock
vlc_mutex_t lock
Definition: addons.c:52
var_AddCallback
#define var_AddCallback(a, b, c, d)
Definition: vlc_variables.h:164
ACTIONID_CROP_LEFT
Definition: vlc_actions.h:210
KEY_BRIGHTNESS_DOWN
#define KEY_BRIGHTNESS_DOWN
Definition: vlc_actions.h:110
addons_storage_t::pf_remove
int(* pf_remove)(addons_storage_t *, addon_entry_t *)
Definition: vlc_addons.h:126
KEY_F1
#define KEY_F1
Definition: vlc_actions.h:57
background_worker::id
void * id
id of the current task
Definition: background_worker.c:47
addons_manager_private_t::uris
struct addons_manager_private_t::@41::@43 uris
libvlc.h
KEY_MOUSEWHEELRIGHT
#define KEY_MOUSEWHEELRIGHT
Definition: vlc_actions.h:115
KEY_ZOOM_OUT
#define KEY_ZOOM_OUT
Definition: vlc_actions.h:108
bg_queued_item::entity
void * entity
the entity to process
Definition: background_worker.c:48
vlc_sem_t
sem_t vlc_sem_t
Semaphore.
Definition: vlc_threads.h:297
mtime_t
int64_t mtime_t
High precision date or time interval.
Definition: vlc_common.h:150
vlc_cancel
void vlc_cancel(vlc_thread_t thread_id)
Marks a thread as cancelled.
Definition: thread.c:297
addons_manager_Gather
void addons_manager_Gather(addons_manager_t *p_manager, const char *psz_uri)
Gather addons info from repository (default "addons finder" module) If psz_uri is not NULL,...
Definition: addons.c:213
background_worker_Push
int background_worker_Push(struct background_worker *worker, void *entity, void *id, int timeout)
Push an entity into the background-worker.
Definition: background_worker.c:208
vlc_cond_timedwait
int vlc_cond_timedwait(vlc_cond_t *p_condvar, vlc_mutex_t *p_mutex, mtime_t deadline)
Waits on a condition variable up to a certain date.
Definition: thread.c:273
KEY_PRINT
#define KEY_PRINT
Definition: vlc_actions.h:76
ADDON_UPDATABLE
Definition: vlc_addons.h:56
libvlc_InternalActionsInit
int libvlc_InternalActionsInit(libvlc_int_t *libvlc)
Initializes the key map from configuration.
Definition: actions.c:499
ACTIONID_SET_BOOKMARK2
Definition: vlc_actions.h:152
tsearch
void * tsearch(const void *key, void **rootp, int(*cmp)(const void *, const void *))
ACTIONID_PLAY_PAUSE
Definition: vlc_actions.h:123
ACTIONID_JUMP_BACKWARD_MEDIUM
Definition: vlc_actions.h:143
vlc_actions_get_key_names
const char *const * vlc_actions_get_key_names(vlc_object_t *p_obj)
Get a list a key names.
Definition: actions.c:637
bg_queued_item::id
void * id
id associated with entity
Definition: background_worker.c:47
background_worker_config::pf_start
int(* pf_start)(void *owner, void *entity, void **out)
Start a new task.
Definition: background_worker.h:86
ACTIONID_VOL_MUTE
Definition: vlc_actions.h:149
ACTIONID_FASTER
Definition: vlc_actions.h:130
key_descriptor::psz
const char psz[20]
Definition: actions.c:47
strsep
char * strsep(char **, const char *)
bg_queued_item::timeout
int timeout
timeout duration in microseconds
Definition: background_worker.c:49
ACTIONID_AUDIODELAY_UP
Definition: vlc_actions.h:197
vlc_arrays.h
KEY_F11
#define KEY_F11
Definition: vlc_actions.h:67
KEY_DOWN
#define KEY_DOWN
Definition: vlc_actions.h:56
vlc_actions.h
vlc_actions_get_id
vlc_action_id_t vlc_actions_get_id(const char *name)
Get the action ID from the action name in the configuration subsystem.
Definition: actions.c:584
ACTIONID_WALLPAPER
Definition: vlc_actions.h:218
addons_manager_private_t
Definition: addons.c:43
VLC_OBJECT
#define VLC_OBJECT(x)
Type-safe vlc_object_t cast.
Definition: vlc_common.h:464
init_action
static void init_action(vlc_object_t *obj, void **map, const char *confname, vlc_action_id_t action)
Sets up all key mappings for a given action.
Definition: actions.c:472
ACTIONID_SUBTITLE_TEXT_SCALE_UP
Definition: vlc_actions.h:186
ACTIONID_PLAY_BOOKMARK1
Definition: vlc_actions.h:161
vlc_alloc
static void * vlc_alloc(size_t count, size_t size)
Definition: vlc_common.h:948
mdate
mtime_t mdate(void)
Precision monotonic clock.
Definition: thread.c:406
FOREACH_END
#define FOREACH_END()
Definition: vlc_arrays.h:233
vlc_actions_t::global_map
void * global_map
Definition: actions.c:396
KEY_MEDIA_FRAME_NEXT
#define KEY_MEDIA_FRAME_NEXT
Definition: vlc_actions.h:103
module_unneed
#define module_unneed(a, b)
Definition: vlc_modules.h:49
addons_manager_private_t::finder
struct addons_manager_private_t::@41 finder
Thread
static void * Thread(void *data)
Definition: background_worker.c:57
background_worker::owner
void * owner
Definition: background_worker.c:38
ACTIONID_JUMP_BACKWARD_SHORT
Definition: vlc_actions.h:141
vlc_gai_req
Definition: getaddrinfo.c:32
vlc_value_t
VLC value structure.
Definition: vlc_common.h:325
ACTIONID_ZOOM_DOUBLE
Definition: vlc_actions.h:224
makeaddrinfo
static struct addrinfo * makeaddrinfo(int af, int type, int proto, const struct sockaddr *addr, size_t addrlen, const char *canonname)
Definition: getaddrinfo.c:120
ACTIONID_SET_BOOKMARK8
Definition: vlc_actions.h:158
ACTIONID_CROP_TOP
Definition: vlc_actions.h:208
InstallerThread
static void * InstallerThread(void *p_data)
Definition: addons.c:452
vlc_mutex_lock
void vlc_mutex_lock(vlc_mutex_t *p_mutex)
Acquires a mutex.
Definition: thread.c:123
KEY_F2
#define KEY_F2
Definition: vlc_actions.h:58
KEY_RIGHT
#define KEY_RIGHT
Definition: vlc_actions.h:54
msg_Err
#define msg_Err(p_this,...)
Definition: vlc_messages.h:82
FOREACH_ARRAY
#define FOREACH_ARRAY(item, array)
Definition: vlc_arrays.h:227
libvlc_InternalActionsClean
void libvlc_InternalActionsClean(libvlc_int_t *libvlc)
Destroys the key map.
Definition: actions.c:554
vlc_object_t::obj
struct vlc_common_members obj
Definition: vlc_objects.h:42
vlc_sem_wait_i11e
int vlc_sem_wait_i11e(vlc_sem_t *sem)
Interruptible variant of vlc_sem_wait().
Definition: interrupt.c:198
vlc_action_id_t
enum vlc_action_id vlc_action_id_t
vlc_memstream_close
int vlc_memstream_close(struct vlc_memstream *ms)
Definition: memstream.c:119
KEY_MEDIA_REWIND
#define KEY_MEDIA_REWIND
Definition: vlc_actions.h:94
makeipv4info
static struct addrinfo * makeipv4info(int type, int proto, u_long ip, u_short port, const char *name)
Definition: getaddrinfo.c:158
addons_manager_owner::discovery_ended
void(* discovery_ended)(struct addons_manager_t *)
Definition: vlc_addons.h:138
ADDON_INSTALLING
Definition: vlc_addons.h:47
ACTIONID_LOOP
Definition: vlc_actions.h:217
addon_entry_t::psz_archive_uri
char * psz_archive_uri
Definition: vlc_addons.h:98
KEY_ENTER
#define KEY_ENTER
Definition: vlc_actions.h:50
nooptext
static char * nooptext(const char *txt)
Definition: actions.c:212
ACTIONID_UNCROP_LEFT
Definition: vlc_actions.h:211
ACTIONID_ASPECT_RATIO
Definition: vlc_actions.h:202
addons_finder_t::p_elems
addon_entry_t ** p_elems
Definition: vlc_addons.h:113
vlc_join
void vlc_join(vlc_thread_t handle, void **result)
Waits for a thread to complete (if needed), then destroys it.
Definition: thread.c:270
vlc_actions_get_keycodes
size_t vlc_actions_get_keycodes(vlc_object_t *p_obj, const char *psz_key_name, bool b_global, uint_fast32_t **pp_keycodes)
Get keycodes from a action key name and vlc configuration.
Definition: actions.c:598
ACTIONID_CROP_RIGHT
Definition: vlc_actions.h:214
module_need
#define module_need(a, b, c, d)
Definition: vlc_modules.h:47
getline
ssize_t getline(char **, size_t *, FILE *)
gai_error_from_herrno
static int gai_error_from_herrno(void)
Definition: getaddrinfo.c:94
addon_entry_owner::entry
addon_entry_t entry
Definition: addons.c:57
p
#define p(t)
vlc_modules.h
vlc_common_members::flags
int flags
Definition: vlc_common.h:428
ACTIONID_CHAPTER_NEXT
Definition: vlc_actions.h:195
KEY_MEDIA_AUDIO
#define KEY_MEDIA_AUDIO
Definition: vlc_actions.h:99
addon_file_t::psz_filename
char * psz_filename
Definition: vlc_addons.h:68