]> git.sesse.net Git - vlc/blobdiff - include/vlc_vlm.h
Rethink the configuration item type identifiers to give more space
[vlc] / include / vlc_vlm.h
index 3bc7d27e6e54d5a7e3dafe141cfc914527076f84..6c9087685ae767226a0334072c9019b1132610cf 100644 (file)
@@ -102,13 +102,16 @@ enum vlm_event_type_e
     /* */
     VLM_EVENT_MEDIA_INSTANCE_STARTED    = 0x200,
     VLM_EVENT_MEDIA_INSTANCE_STOPPED,
+    VLM_EVENT_MEDIA_INSTANCE_STATE,
 };
 
 typedef struct
 {
-    int         i_type;     /* a vlm_event_type_e value */
-    int64_t     id;         /* Media ID */
-    const char *psz_name;   /* Media name */
+    int            i_type;            /* a vlm_event_type_e value */
+    int64_t        id;                /* Media ID */
+    const char    *psz_name;          /* Media name */
+    const char    *psz_instance_name; /* Instance name or NULL */
+    input_state_e  input_state;       /* Input instance event type */
 } vlm_event_t;
 
 /** VLM control query */
@@ -181,15 +184,16 @@ struct vlm_message_t
 extern "C" {
 #endif
 
-#define vlm_New( a ) __vlm_New( VLC_OBJECT(a) )
-VLC_EXPORT( vlm_t *, __vlm_New, ( vlc_object_t * ) );
-VLC_EXPORT( void,      vlm_Delete, ( vlm_t * ) );
-VLC_EXPORT( int,       vlm_ExecuteCommand, ( vlm_t *, const char *, vlm_message_t ** ) );
-VLC_EXPORT( int,       vlm_Control, ( vlm_t *p_vlm, int i_query, ... ) );
+VLC_API vlm_t * vlm_New( vlc_object_t * );
+#define vlm_New( a ) vlm_New( VLC_OBJECT(a) )
+VLC_API void vlm_Delete( vlm_t * );
+VLC_API int vlm_ExecuteCommand( vlm_t *, const char *, vlm_message_t ** );
+VLC_API int vlm_Control( vlm_t *p_vlm, int i_query, ... );
 
-VLC_EXPORT( vlm_message_t *, vlm_MessageNew, ( const char *, const char *, ... ) LIBVLC_FORMAT( 2, 3 ) );
-VLC_EXPORT( vlm_message_t *, vlm_MessageAdd, ( vlm_message_t *, vlm_message_t * ) );
-VLC_EXPORT( void,            vlm_MessageDelete, ( vlm_message_t * ) );
+VLC_API vlm_message_t * vlm_MessageSimpleNew( const char * );
+VLC_API vlm_message_t * vlm_MessageNew( const char *, const char *, ... ) VLC_FORMAT( 2, 3 );
+VLC_API vlm_message_t * vlm_MessageAdd( vlm_message_t *, vlm_message_t * );
+VLC_API void vlm_MessageDelete( vlm_message_t * );
 
 /* media helpers */
 
@@ -216,7 +220,12 @@ static inline void vlm_media_Init( vlm_media_t *p_media )
  * \param p_dst vlm_media_t instance to copy to
  * \param p_src vlm_media_t instance to copy from
  */
-static inline void vlm_media_Copy( vlm_media_t *p_dst, vlm_media_t *p_src )
+static inline void
+#ifndef __cplusplus
+vlm_media_Copy( vlm_media_t *restrict p_dst, const vlm_media_t *restrict p_src )
+#else
+vlm_media_Copy( vlm_media_t *p_dst, const vlm_media_t *p_src )
+#endif
 {
     int i;
 
@@ -257,11 +266,11 @@ static inline void vlm_media_Clean( vlm_media_t *p_media )
     free( p_media->psz_name );
 
     for( i = 0; i < p_media->i_input; i++ )
-        free( p_media->ppsz_input[i]) ;
+        free( p_media->ppsz_input[i]);
     TAB_CLEAN(p_media->i_input, p_media->ppsz_input );
 
     for( i = 0; i < p_media->i_option; i++ )
-        free( p_media->ppsz_option[i]) ;
+        free( p_media->ppsz_option[i]);
     TAB_CLEAN(p_media->i_option, p_media->ppsz_option );
 
     free( p_media->psz_output );