X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_extensions.h;h=07c6221ae744008b426989cd1184ae17ee3ff513;hb=12ade3e3bc975d5426ba4af155b7372c31093b31;hp=7f294fc7b2be6b2bdd800bb928ba06eb50044a65;hpb=9f49f1112e688ca366b6881172eedb604851f416;p=vlc diff --git a/include/vlc_extensions.h b/include/vlc_extensions.h index 7f294fc7b2..07c6221ae7 100644 --- a/include/vlc_extensions.h +++ b/include/vlc_extensions.h @@ -32,10 +32,18 @@ typedef struct extensions_manager_sys_t extensions_manager_sys_t; 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; @@ -66,6 +74,8 @@ enum 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 ) */ }; /** @@ -136,6 +146,21 @@ static inline int extension_TriggerMenu( extensions_manager_t *p_mgr, 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 ) \