[vlc-devel] [PATCH] for changing the mosaic-order in execution time
Mateus Krepsky Ludwich
mateus at csp.com.br
Fri May 5 21:22:51 CEST 2006
With this patch is possible change in execution time the order of the
pictures in a mosaic, using the rc interface.
Index: mosaic.c
===================================================================
--- mosaic.c (revisão 15541)
+++ mosaic.c (cópia de trabalho)
@@ -295,7 +295,9 @@
p_sys->i_order_length = 0;
p_sys->ppsz_order = NULL;
psz_order = var_CreateGetString( p_filter, "mosaic-order" );
-
+ var_Create( p_libvlc, "mosaic-order", VLC_VAR_STRING);
+ var_AddCallback( p_libvlc, "mosaic-order", MosaicCallback, p_sys );
+
if( psz_order[0] != 0 )
{
char *psz_end = NULL;
@@ -312,7 +314,7 @@
} while( NULL != psz_end );
p_sys->i_order_length = i_index;
}
-
+
/* Bluescreen specific stuff */
GET_VAR( bsu, 0x00, 0xff );
GET_VAR( bsv, 0x00, 0xff );
@@ -859,6 +861,36 @@
p_sys->i_cols = __MAX( newval.i_int, 1 );
vlc_mutex_unlock( &p_sys->lock );
}
+ else if( !strcmp( psz_var, "mosaic-order" ) )
+ {
+ vlc_mutex_lock( &p_sys->lock );
+ msg_Dbg( p_this, "Changing the order of mosaic");
+
+ char *psz_order;
+ int i_index;
+ p_sys->i_order_length = 0;
+ p_sys->ppsz_order = NULL;
+ psz_order = newval.psz_string;
+
+ if( psz_order[0] != 0 )
+ {
+ char *psz_end = NULL;
+ i_index = 0;
+ do
+ {
+ psz_end = strchr( psz_order, ',' );
+ i_index++;
+ p_sys->ppsz_order = realloc( p_sys->ppsz_order,
+ i_index * sizeof(char *) );
+ p_sys->ppsz_order[i_index - 1] = strndup( psz_order,
+ psz_end - psz_order );
+ psz_order = psz_end+1;
+ } while( NULL != psz_end );
+ p_sys->i_order_length = i_index;
+ }
+
+ vlc_mutex_unlock( &p_sys->lock );
+ }
else if( !strcmp( psz_var, "mosaic-keep-aspect-ratio" ) )
{
vlc_mutex_lock( &p_sys->lock );
Index: rc.c
===================================================================
--- rc.c (revisão 15541)
+++ rc.c (cópia de trabalho)
@@ -428,6 +428,8 @@
var_AddCallback( p_intf, "mosaic-rows", Other, NULL );
var_Create( p_intf, "mosaic-cols", VLC_VAR_INTEGER |
VLC_VAR_ISCOMMAND );
var_AddCallback( p_intf, "mosaic-cols", Other, NULL );
+ var_Create( p_intf, "mosaic-order", VLC_VAR_INTEGER |
VLC_VAR_ISCOMMAND );
+ var_AddCallback( p_intf, "mosaic-order", Other, NULL );
var_Create( p_intf, "mosaic-keep-aspect-ratio",
VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND );
var_AddCallback( p_intf, "mosaic-keep-aspect-ratio", Other, NULL );
@@ -954,6 +956,7 @@
msg_rc(_("| mosaic-rows #. . . . . . . . . . .number of rows"));
msg_rc(_("| mosaic-cols #. . . . . . . . . . .number of cols"));
msg_rc(_("| mosaic-keep-aspect-ratio {0,1} . . .aspect ratio"));
+ msg_rc(_("| mosaic-order id(,id)* . . . . order of pictures "));
msg_rc( "| ");
msg_rc(_("| check-updates [newer] [equal] [older]\n"
"| [undef] [info] [source] [binary]
[plugin]"));
@@ -1551,6 +1554,14 @@
var_Set( p_input->p_libvlc, "mosaic-cols", val );
}
}
+ else if( !strcmp( psz_cmd, "mosaic-order" ) )
+ {
+ if( strlen( newval.psz_string ) > 0)
+ {
+ val.psz_string = newval.psz_string;
+ var_Set( p_input->p_libvlc, "mosaic-order", val );
+ }
+ }
else if( !strcmp( psz_cmd, "mosaic-keep-aspect-ratio" ) )
{
if( strlen( newval.psz_string ) > 0)
--
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html
More information about the vlc-devel
mailing list