X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcontrol%2Fvlm.c;h=5fe546825d670af049458395728ac823e02f64aa;hb=b751665aa8f78719eb3e4fe30545fffd5c423948;hp=c3740e0fd3a4c1b2c96392dc0963ef98d71ef0d1;hpb=665cd9209c6227c1bf494b47f40d7fd52d3cee59;p=vlc diff --git a/src/control/vlm.c b/src/control/vlm.c index c3740e0fd3..5fe546825d 100644 --- a/src/control/vlm.c +++ b/src/control/vlm.c @@ -127,6 +127,7 @@ static vlm_media_instance_t *libvlc_vlm_get_media_instance( libvlc_instance_t *p char *psz_name, int i_minstance_idx, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM vlm_t *p_vlm; vlm_media_instance_t **pp_minstance; vlm_media_instance_t *p_minstance; @@ -151,16 +152,25 @@ static vlm_media_instance_t *libvlc_vlm_get_media_instance( libvlc_instance_t *p vlm_media_instance_Delete( pp_minstance[--i_minstance] ); TAB_CLEAN( i_minstance, pp_minstance ); return p_minstance; +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_release( libvlc_instance_t *p_instance, libvlc_exception_t *p_exception) { +#ifdef ENABLE_VLM vlm_t *p_vlm; VLM(p_vlm); vlm_Delete( p_vlm ); +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } @@ -170,6 +180,7 @@ void libvlc_vlm_add_broadcast( libvlc_instance_t *p_instance, char *psz_name, int b_enabled, int b_loop, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM vlm_t *p_vlm; vlm_media_t m; int n; @@ -179,7 +190,7 @@ void libvlc_vlm_add_broadcast( libvlc_instance_t *p_instance, char *psz_name, vlm_media_Init( &m ); m.psz_name = strdup( psz_name ); m.b_enabled = b_enabled; - m.b_vod = VLC_FALSE; + m.b_vod = false; m.broadcast.b_loop = b_loop; if( psz_input ) TAB_APPEND( m.i_input, m.ppsz_input, strdup(psz_input) ); @@ -194,11 +205,50 @@ void libvlc_vlm_add_broadcast( libvlc_instance_t *p_instance, char *psz_name, libvlc_exception_raise( p_exception, "Media %s creation failed", psz_name ); } vlm_media_Clean( &m ); +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif +} + +void libvlc_vlm_add_vod( libvlc_instance_t *p_instance, char *psz_name, + char *psz_input, int i_options, + char **ppsz_options, int b_enabled, + char *psz_mux, libvlc_exception_t *p_exception ) +{ +#ifdef ENABLE_VLM + vlm_t *p_vlm; + vlm_media_t m; + int n; + + VLM(p_vlm); + + vlm_media_Init( &m ); + m.psz_name = strdup( psz_name ); + m.b_enabled = b_enabled; + m.b_vod = true; + m.vod.psz_mux = psz_mux ? strdup( psz_mux ) : NULL; + if( psz_input ) + TAB_APPEND( m.i_input, m.ppsz_input, strdup(psz_input) ); + for( n = 0; n < i_options; n++ ) + TAB_APPEND( m.i_option, m.ppsz_option, strdup(ppsz_options[n]) ); + + if( vlm_Control( p_vlm, VLM_ADD_MEDIA, &m, NULL ) ) + { + vlm_media_Clean( &m ); + libvlc_exception_raise( p_exception, "Media %s creation failed", psz_name ); + } + vlm_media_Clean( &m ); +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_del_media( libvlc_instance_t *p_instance, char *psz_name, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM vlm_t *p_vlm; int64_t id; @@ -209,6 +259,10 @@ void libvlc_vlm_del_media( libvlc_instance_t *p_instance, char *psz_name, { libvlc_exception_raise( p_exception, "Unable to delete %s", psz_name ); } +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } #define VLM_CHANGE(psz_error, code ) do { \ @@ -238,44 +292,85 @@ void libvlc_vlm_del_media( libvlc_instance_t *p_instance, char *psz_name, void libvlc_vlm_set_enabled( libvlc_instance_t *p_instance, char *psz_name, int b_enabled, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM #define VLM_CHANGE_CODE { p_media->b_enabled = b_enabled; } VLM_CHANGE( "Unable to delete %s", VLM_CHANGE_CODE ); #undef VLM_CHANGE_CODE +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_set_loop( libvlc_instance_t *p_instance, char *psz_name, int b_loop, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM #define VLM_CHANGE_CODE { p_media->broadcast.b_loop = b_loop; } VLM_CHANGE( "Unable to change %s loop property", VLM_CHANGE_CODE ); #undef VLM_CHANGE_CODE +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif +} + +void libvlc_vlm_set_mux( libvlc_instance_t *p_instance, char *psz_name, + char *psz_mux, libvlc_exception_t *p_exception ) +{ +#ifdef ENABLE_VLM +#define VLM_CHANGE_CODE { if( p_media->b_vod ) { \ + free( p_media->vod.psz_mux ); \ + p_media->vod.psz_mux = psz_mux ? strdup( psz_mux ) : NULL; \ + } } + VLM_CHANGE( "Unable to change %s mux property", VLM_CHANGE_CODE ); +#undef VLM_CHANGE_CODE +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_set_output( libvlc_instance_t *p_instance, char *psz_name, char *psz_output, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM #define VLM_CHANGE_CODE { free( p_media->psz_output ); \ p_media->psz_output = strdup( psz_output ); } VLM_CHANGE( "Unable to change %s output property", VLM_CHANGE_CODE ); #undef VLM_CHANGE_CODE +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_set_input( libvlc_instance_t *p_instance, char *psz_name, char *psz_input, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM #define VLM_CHANGE_CODE { while( p_media->i_input > 0 ) \ free( p_media->ppsz_input[--p_media->i_input] );\ TAB_APPEND( p_media->i_input, p_media->ppsz_input, strdup(psz_input) ); } VLM_CHANGE( "Unable to change %s input property", VLM_CHANGE_CODE ); #undef VLM_CHANGE_CODE +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_add_input( libvlc_instance_t *p_instance, char *psz_name, char *psz_input, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM #define VLM_CHANGE_CODE { TAB_APPEND( p_media->i_input, p_media->ppsz_input, strdup(psz_input) ); } VLM_CHANGE( "Unable to change %s input property", VLM_CHANGE_CODE ); #undef VLM_CHANGE_CODE +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_change_media( libvlc_instance_t *p_instance, char *psz_name, @@ -283,6 +378,7 @@ void libvlc_vlm_change_media( libvlc_instance_t *p_instance, char *psz_name, char **ppsz_options, int b_enabled, int b_loop, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM #define VLM_CHANGE_CODE { int n; \ p_media->b_enabled = b_enabled; \ p_media->broadcast.b_loop = b_loop; \ @@ -299,11 +395,16 @@ void libvlc_vlm_change_media( libvlc_instance_t *p_instance, char *psz_name, } VLM_CHANGE( "Unable to change %s properties", VLM_CHANGE_CODE ); #undef VLM_CHANGE_CODE +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_play_media( libvlc_instance_t *p_instance, char *psz_name, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM vlm_t *p_vlm; int64_t id; @@ -314,11 +415,16 @@ void libvlc_vlm_play_media( libvlc_instance_t *p_instance, char *psz_name, { libvlc_exception_raise( p_exception, "Unable to play %s", psz_name ); } +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_stop_media( libvlc_instance_t *p_instance, char *psz_name, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM vlm_t *p_vlm; int64_t id; @@ -329,11 +435,16 @@ void libvlc_vlm_stop_media( libvlc_instance_t *p_instance, char *psz_name, { libvlc_exception_raise( p_exception, "Unable to stop %s", psz_name ); } +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_pause_media( libvlc_instance_t *p_instance, char *psz_name, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM vlm_t *p_vlm; int64_t id; @@ -344,11 +455,16 @@ void libvlc_vlm_pause_media( libvlc_instance_t *p_instance, char *psz_name, { libvlc_exception_raise( p_exception, "Unable to pause %s", psz_name ); } +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } void libvlc_vlm_seek_media( libvlc_instance_t *p_instance, char *psz_name, float f_percentage, libvlc_exception_t *p_exception ) { +#ifdef ENABLE_VLM vlm_t *p_vlm; int64_t id; @@ -359,10 +475,14 @@ void libvlc_vlm_seek_media( libvlc_instance_t *p_instance, char *psz_name, { libvlc_exception_raise( p_exception, "Unable to seek %s to %f", psz_name, f_percentage ); } +#else + libvlc_exception_raise( p_exception, "VLM has been disabled in this libvlc." ); + return VLC_EGENERIC; +#endif } #define LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( attr, returnType, getType, ret, code )\ -returnType libvlc_vlm_get_media_## attr( libvlc_instance_t *p_instance, \ +returnType libvlc_vlm_get_media_instance_## attr( libvlc_instance_t *p_instance, \ char *psz_name, int i_instance, libvlc_exception_t *p_exception ) \ { \ vlm_media_instance_t *p_mi = libvlc_vlm_get_media_instance( p_instance, psz_name, i_instance, \ @@ -384,13 +504,14 @@ LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( rate, int, Integer, -1, ret_value = p_mi->i_ /* FIXME extend vlm_media_instance_t to be able to implement them */ LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( title, int, Integer, 0, ret_value = 0 ); LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( chapter, int, Integer, 0, ret_value = 0 ); -LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( seekable, int, Bool, 0, ret_value = VLC_FALSE ); +LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( seekable, int, Bool, 0, ret_value = false ); #undef LIBVLC_VLM_GET_MEDIA_ATTRIBUTE char* libvlc_vlm_show_media( libvlc_instance_t *p_instance, char *psz_name, libvlc_exception_t *p_exception ) { + (void)p_instance; /* FIXME is it needed ? */ libvlc_exception_raise( p_exception, "Unable to call show %s", psz_name ); return NULL;