Go to the documentation of this file.
23 #ifndef VLC_EXTENSIONS_H
24 #define VLC_EXTENSIONS_H
91 va_start( args, i_control );
92 int i_ret = p_mgr->
pf_control( p_mgr, i_control, args );
115 #define extension_Activate( mgr, ext ) \
116 extension_Control( mgr, EXTENSION_ACTIVATE, ext )
119 #define extension_Trigger( mgr, ext ) \
120 extension_Control( mgr, EXTENSION_TRIGGER, ext )
123 #define extension_Deactivate( mgr, ext ) \
124 extension_Control( mgr, EXTENSION_DEACTIVATE, ext )
127 #define extension_IsActivated( mgr, ext ) \
128 __extension_GetBool( mgr, ext, EXTENSION_IS_ACTIVATED, false )
131 #define extension_HasMenu( mgr, ext ) \
132 __extension_GetBool( mgr, ext, EXTENSION_HAS_MENU, false )
174 #define extension_TriggerOnly( mgr, ext ) \
175 __extension_GetBool( mgr, ext, EXTENSION_TRIGGER_ONLY, false )
234 command.
p_dlg = p_dialog;
235 command.
event = event;
244 #define extension_DialogClosed( dlg ) \
245 extension_DialogCommand( dlg, EXTENSION_EVENT_CLOSE, NULL )
251 #define extension_WidgetClicked( dlg, wdg ) \
252 extension_DialogCommand( dlg, EXTENSION_EVENT_CLICK, wdg )
@ EXTENSION_WIDGET_SPIN_ICON
A "loading..." spinning icon.
Definition: vlc_extensions.h:267
@ EXTENSION_DEACTIVATE
arg1: extension_t*
Definition: vlc_extensions.h:72
bool b_selected
True if this item is selected.
Definition: vlc_extensions.h:282
extension_dialog_event_e event
Event,.
Definition: vlc_extensions.h:199
module_t * p_module
Extensions manager module.
Definition: vlc_extensions.h:57
int i_width
Width hint.
Definition: vlc_extensions.h:294
@ EXTENSION_EVENT_CLICK
Click on a widget: data = widget.
Definition: vlc_extensions.h:189
char * psz_shortdescription
Short description (eg.
Definition: vlc_extensions.h:45
int i_width
Width hint in pixels (may be discarded)
Definition: vlc_extensions.h:210
void * p_sys
Reserved for the extension manager.
Definition: vlc_extensions.h:307
bool b_checked
Is this entry checked.
Definition: vlc_extensions.h:287
struct extension_sys_t extension_sys_t
Definition: vlc_extensions.h:33
@ EXTENSION_WIDGET_HTML
HTML or rich text area (non editable)
Definition: vlc_extensions.h:261
vlc_cond_t cond
Signaled == UI is done working on the dialog.
Definition: vlc_extensions.h:221
int i_spin_loops
Number of loops to play (-1 = infinite, 0 = stop animation)
Definition: vlc_extensions.h:299
bool b_update
Update this widget.
Definition: vlc_extensions.h:304
static int extension_PlayingChanged(extensions_manager_t *p_mgr, extension_t *p_ext, int state)
Definition: vlc_extensions.h:160
@ EXTENSION_WIDGET_BUTTON
Clickable button.
Definition: vlc_extensions.h:259
bool b_hide
Hide this widget (make it invisible)
Definition: vlc_extensions.h:296
Command to pass to the extension dialog owner.
Definition: vlc_extensions.h:196
char * psz_title
Title for the Dialog (in TitleBar)
Definition: vlc_extensions.h:209
static int extension_TriggerMenu(extensions_manager_t *p_mgr, extension_t *p_ext, uint16_t i)
Trigger an entry of the extension menu.
Definition: vlc_extensions.h:145
static int extension_GetMenu(extensions_manager_t *p_mgr, extension_t *p_ext, char ***pppsz, uint16_t **ppi)
Get this extension's sub-menu.
Definition: vlc_extensions.h:136
char * p_icondata
Embedded data for the icon (ro)
Definition: vlc_extensions.h:46
struct vlc_object_t obj
Definition: vlc_extensions.h:55
int i_height
Height hint in pixels (may be discarded)
Definition: vlc_extensions.h:211
struct extensions_manager_sys_t extensions_manager_sys_t
Definition: vlc_extensions.h:31
static bool __extension_GetBool(extensions_manager_t *p_mgr, extension_t *p_ext, int i_flag, bool b_default)
Helper for extension_HasMenu, extension_IsActivated...
Definition: vlc_extensions.h:102
@ EXTENSION_SET_INPUT
arg1: extension_t*, arg2 (input_item_t*)
Definition: vlc_extensions.h:79
extension_dialog_t * p_dlg
Destination dialog.
Definition: vlc_extensions.h:198
char * psz_title
Display title (ro)
Definition: vlc_extensions.h:40
Definition: vlc_extensions.h:278
extension_widget_type_e
Widget types.
Definition: vlc_extensions.h:256
Mutex.
Definition: vlc_threads.h:225
@ EXTENSION_TRIGGER_ONLY
arg1: extension_t*, arg2: bool*
Definition: vlc_extensions.h:76
@ EXTENSION_TRIGGER_MENU
arg1: extension_t*, int (uint16_t)
Definition: vlc_extensions.h:78
int i_horiz_span
Horizontal size of the object.
Definition: vlc_extensions.h:292
struct extension_widget_value_t * p_next
Next value or NULL.
Definition: vlc_extensions.h:283
Extension descriptor: name, title, author, ...
Definition: vlc_extensions.h:36
Internal module descriptor.
Definition: modules.h:78
struct extensions_manager_t::@208 extensions
Array of extension descriptors.
static int extension_SetInput(extensions_manager_t *p_mgr, extension_t *p_ext, input_item_t *p_item)
Trigger an entry of the extension menu.
Definition: vlc_extensions.h:154
@ EXTENSION_WIDGET_TEXT_FIELD
Editable text line for user input.
Definition: vlc_extensions.h:262
Extensions manager object.
Definition: vlc_extensions.h:53
extension_widget_type_e type
Type of the widget.
Definition: vlc_extensions.h:274
@ EXTENSION_EVENT_CLOSE
Close the dialog: no data.
Definition: vlc_extensions.h:190
void * p_sys_intf
Reserved for the UI, but: NULL means the UI has destroyed the widget or has not created it yet.
Definition: vlc_extensions.h:308
char * psz_name
Real name of the extension (ro)
Definition: vlc_extensions.h:38
char * psz_description
Full description (ro)
Definition: vlc_extensions.h:44
@ EXTENSION_META_CHANGED
arg1: extension_t*, arg2 (input_item_t*)
Definition: vlc_extensions.h:81
vlc_mutex_t lock
A lock for the extensions array.
Definition: vlc_extensions.h:61
vlc_mutex_t lock
Dialog mutex.
Definition: vlc_extensions.h:220
vlc_object_t * p_object
Owner object (callback on "dialog-event")
Definition: vlc_extensions.h:207
int i_row
Row in the grid.
Definition: vlc_extensions.h:290
extensions_manager_sys_t * p_sys
Reserved for the module.
Definition: vlc_extensions.h:58
Widget descriptor for extensions.
Definition: vlc_extensions.h:271
bool b_kill
Destroy this widget.
Definition: vlc_extensions.h:303
@ EXTENSION_PLAYING_CHANGED
arg1: extension_t*, arg2 int( playing status )
Definition: vlc_extensions.h:80
#define DECL_ARRAY(type)
Definition: vlc_arrays.h:181
extension_dialog_event_e
User interface event types.
Definition: vlc_extensions.h:187
@ EXTENSION_TRIGGER
arg1: extension_t*
Definition: vlc_extensions.h:77
void * p_sys_intf
GUI private pointer.
Definition: vlc_extensions.h:219
int i_id
Identifier for the extension module (weird behavior may occur if not unique)
Definition: vlc_extensions.h:279
@ EXTENSION_WIDGET_LABEL
Text label.
Definition: vlc_extensions.h:258
bool b_kill
Kill this dialog.
Definition: vlc_extensions.h:216
void * p_sys
Dialog private pointer.
Definition: vlc_extensions.h:218
VLC object common members.
Definition: vlc_objects.h:43
extension_dialog_t * p_dialog
Parent dialog.
Definition: vlc_extensions.h:311
char * psz_author
Author of the extension (ro)
Definition: vlc_extensions.h:41
char * psz_text
String value.
Definition: vlc_extensions.h:281
char * psz_text
Text. May be NULL or modified by the UI.
Definition: vlc_extensions.h:275
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
struct extension_widget_t::extension_widget_value_t * p_values
Chained list of values (Drop-down/List)
void * p_data
Opaque data to send.
Definition: vlc_extensions.h:200
int i_column
Column in the grid.
Definition: vlc_extensions.h:291
char * psz_url
A URL to the official page (ro)
Definition: vlc_extensions.h:43
extension_sys_t * p_sys
Reserved for the manager module.
Definition: vlc_extensions.h:49
@ EXTENSION_GET_MENU
arg1: extension_t*, arg2: char***, arg3: uint16_t**
Definition: vlc_extensions.h:75
Condition variable.
Definition: vlc_threads.h:349
int i_height
Height hint.
Definition: vlc_extensions.h:295
int(* pf_control)(extensions_manager_t *, int, va_list)
Control, see extension_Control.
Definition: vlc_extensions.h:64
@ EXTENSION_WIDGET_LIST
Vertical list box (of strings)
Definition: vlc_extensions.h:265
@ EXTENSION_ACTIVATE
arg1: extension_t*
Definition: vlc_extensions.h:71
int i_vert_span
Vertical size of the object.
Definition: vlc_extensions.h:293
static int extension_MetaChanged(extensions_manager_t *p_mgr, extension_t *p_ext)
Definition: vlc_extensions.h:167
static int extension_Control(extensions_manager_t *p_mgr, int i_control,...)
Control function for extensions.
Definition: vlc_extensions.h:88
@ EXTENSION_WIDGET_CHECK_BOX
Checkable box with label.
Definition: vlc_extensions.h:266
@ EXTENSION_WIDGET_PASSWORD
Editable password input (******)
Definition: vlc_extensions.h:263
static int extension_DialogCommand(extension_dialog_t *p_dialog, extension_dialog_event_e event, void *data)
Send a command to an Extension dialog.
Definition: vlc_extensions.h:230
struct extension_dialog_t::@209 widgets
Widgets owned by the dialog.
static int var_SetAddress(vlc_object_t *p_obj, const char *psz_name, void *ptr)
Set the value of a pointer variable.
Definition: vlc_variables.h:360
@ EXTENSION_IS_ACTIVATED
arg1: extension_t*, arg2: bool*
Definition: vlc_extensions.h:73
@ EXTENSION_WIDGET_IMAGE
Image label (psz_text is local URI)
Definition: vlc_extensions.h:260
static thread_local struct @76 state
@ EXTENSION_WIDGET_DROPDOWN
Drop-down box.
Definition: vlc_extensions.h:264
@ EXTENSION_HAS_MENU
arg1: extension_t*
Definition: vlc_extensions.h:74
int i_icondata_size
Size of that data.
Definition: vlc_extensions.h:47
Dialog descriptor for extensions.
Definition: vlc_extensions.h:205
bool b_hide
Hide this dialog (!b_hide shows)
Definition: vlc_extensions.h:215
struct extension_t extension_t
Extension descriptor: name, title, author, ...
char * psz_version
Version (ro)
Definition: vlc_extensions.h:42