typedef struct extensions_manager_t extensions_manager_t;
typedef struct extension_sys_t extension_sys_t;
-/** Extension descriptor */
+/** Extension descriptor: name, title, author, ... */
typedef struct extension_t {
- char *psz_title; /**< Display title (ro) */
+ /* Below, (ro) means read-only for the GUI */
char *psz_name; /**< Real name of the extension (ro) */
+
+ char *psz_title; /**< Display title (ro) */
+ char *psz_author; /**< Author of the extension (ro) */
+ char *psz_version; /**< Version (ro) */
+ char *psz_url; /**< A URL to the official page (ro) */
+ char *psz_description; /**< Full description (ro) */
+ char *psz_shortdescription; /**< Short description (eg. 1 line) (ro) */
+
extension_sys_t *p_sys; /**< Reserved for the manager module */
} extension_t;
extensions_manager_sys_t *p_sys; /**< Reserved for the module */
DECL_ARRAY(extension_t*) extensions; /**< Array of extension descriptors */
+ vlc_mutex_t lock; /**< A lock for the extensions array */
/** Control, see extension_Control */
int ( *pf_control ) ( extensions_manager_t*, int, va_list );
EXTENSION_TRIGGER_ONLY, /**< arg1: extension_t*, arg2: bool* */
EXTENSION_TRIGGER, /**< arg1: extension_t* */
EXTENSION_TRIGGER_MENU, /**< arg1: extension_t*, int (uint16_t) */
+ EXTENSION_SET_INPUT, /**< arg1: extension_t*, arg2 (input_thread_t) */
+ EXTENSION_PLAYING_CHANGED, /**< arg1: extension_t*, arg2 int( playing status ) */
};
/**
return extension_Control( p_mgr, EXTENSION_TRIGGER_MENU, p_ext, i );
}
+/** Trigger an entry of the extension menu */
+static inline int extension_SetInput( extensions_manager_t *p_mgr,
+ extension_t *p_ext,
+ struct input_thread_t *p_input )
+{
+ return extension_Control( p_mgr, EXTENSION_SET_INPUT, p_ext, p_input );
+}
+
+static inline int extension_PlayingChanged( extensions_manager_t *p_mgr,
+ extension_t *p_ext,
+ int state )
+{
+ return extension_Control( p_mgr, EXTENSION_PLAYING_CHANGED, p_ext, state );
+}
+
/** Can this extension only be triggered but not activated?
Not compatible with HasMenu */
#define extension_TriggerOnly( mgr, ext ) \