X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fmisc%2Ftestsuite%2Ftest4.c;h=409f1be0292af13224b6049688b624ae3b786ca7;hb=6ee1e193fd896ab9a4729fde14f009d9ce629815;hp=f04981135580e5243c29130f93706bc4cd069569;hpb=be8ca6e9a9924ccdf8c72449b85bdb97e05e87a6;p=vlc diff --git a/modules/misc/testsuite/test4.c b/modules/misc/testsuite/test4.c index f049811355..409f1be029 100644 --- a/modules/misc/testsuite/test4.c +++ b/modules/misc/testsuite/test4.c @@ -1,8 +1,8 @@ /***************************************************************************** * test4.c : Miscellaneous stress tests module for vlc ***************************************************************************** - * Copyright (C) 2002 VideoLAN - * $Id: test4.c,v 1.4 2002/11/10 18:04:22 sam Exp $ + * Copyright (C) 2002 the VideoLAN team + * $Id$ * * Authors: Samuel Hocevar * @@ -10,7 +10,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /***************************************************************************** @@ -26,7 +26,6 @@ *****************************************************************************/ #include -#include #include /***************************************************************************** @@ -41,51 +40,58 @@ /***************************************************************************** * Local prototypes. *****************************************************************************/ -static int Foo ( vlc_object_t *, char *, char * ); - -static int Callback ( vlc_object_t *, char *, char * ); +static int Foo ( vlc_object_t *, char const *, + vlc_value_t, vlc_value_t, void * ); +static int Callback ( vlc_object_t *, char const *, + vlc_value_t, vlc_value_t, void * ); static int MyCallback( vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void * ); static void * MyThread ( vlc_object_t * ); -static int Stress ( vlc_object_t *, char *, char * ); +static int Stress ( vlc_object_t *, char const *, + vlc_value_t, vlc_value_t, void * ); static void * Dummy ( vlc_object_t * ); -static int Signal ( vlc_object_t *, char *, char * ); +static int Signal ( vlc_object_t *, char const *, + vlc_value_t, vlc_value_t, void * ); /***************************************************************************** * Module descriptor. *****************************************************************************/ vlc_module_begin(); set_description( _("Miscellaneous stress tests") ); - var_Create( p_module->p_libvlc, "foo-test", VLC_VAR_COMMAND ); - var_Set( p_module->p_libvlc, "foo-test", (vlc_value_t)(void*)Foo ); - var_Create( p_module->p_libvlc, "callback-test", VLC_VAR_COMMAND ); - var_Set( p_module->p_libvlc, "callback-test", (vlc_value_t)(void*)Callback ); - var_Create( p_module->p_libvlc, "stress-test", VLC_VAR_COMMAND ); - var_Set( p_module->p_libvlc, "stress-test", (vlc_value_t)(void*)Stress ); - var_Create( p_module->p_libvlc, "signal", VLC_VAR_COMMAND ); - var_Set( p_module->p_libvlc, "signal", (vlc_value_t)(void*)Signal ); + var_Create( p_module->p_libvlc, "foo-test", + VLC_VAR_VOID | VLC_VAR_ISCOMMAND ); + var_AddCallback( p_module->p_libvlc, "foo-test", Foo, NULL ); + var_Create( p_module->p_libvlc, "callback-test", + VLC_VAR_VOID | VLC_VAR_ISCOMMAND ); + var_AddCallback( p_module->p_libvlc, "callback-test", Callback, NULL ); + var_Create( p_module->p_libvlc, "stress-test", + VLC_VAR_STRING | VLC_VAR_ISCOMMAND ); + var_AddCallback( p_module->p_libvlc, "stress-test", Stress, NULL ); + var_Create( p_module->p_libvlc, "signal", + VLC_VAR_STRING | VLC_VAR_ISCOMMAND ); + var_AddCallback( p_module->p_libvlc, "signal", Signal, NULL ); vlc_module_end(); /***************************************************************************** * Foo: put anything here *****************************************************************************/ -static int Foo( vlc_object_t *p_this, char *psz_cmd, char *psz_arg ) +static int Foo( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, void *p_data ) { vlc_value_t val; - int i, i_vals; - vlc_value_t *p_vals; + int i; - var_Create( p_this, "honk", VLC_VAR_STRING | VLC_VAR_ISLIST ); + var_Create( p_this, "honk", VLC_VAR_STRING | VLC_VAR_HASCHOICE ); val.psz_string = "foo"; - var_Change( p_this, "honk", VLC_VAR_ADDCHOICE, &val ); + var_Change( p_this, "honk", VLC_VAR_ADDCHOICE, &val, NULL ); val.psz_string = "bar"; - var_Change( p_this, "honk", VLC_VAR_ADDCHOICE, &val ); + var_Change( p_this, "honk", VLC_VAR_ADDCHOICE, &val, NULL ); val.psz_string = "baz"; - var_Change( p_this, "honk", VLC_VAR_ADDCHOICE, &val ); - var_Change( p_this, "honk", VLC_VAR_SETDEFAULT, &val ); + var_Change( p_this, "honk", VLC_VAR_ADDCHOICE, &val, NULL ); + var_Change( p_this, "honk", VLC_VAR_SETDEFAULT, &val, NULL ); var_Get( p_this, "honk", &val ); printf( "value: %s\n", val.psz_string ); @@ -100,18 +106,16 @@ static int Foo( vlc_object_t *p_this, char *psz_cmd, char *psz_arg ) var_Get( p_this, "honk", &val ); printf( "value: %s\n", val.psz_string ); val.psz_string = "baz"; - var_Change( p_this, "honk", VLC_VAR_DELCHOICE, &val ); + var_Change( p_this, "honk", VLC_VAR_DELCHOICE, &val, NULL ); var_Get( p_this, "honk", &val ); printf( "value: %s\n", val.psz_string ); - var_Change( p_this, "honk", VLC_VAR_GETLIST, &val ); - i_vals = ((vlc_value_t*)val.p_address)[0].i_int; - p_vals = &((vlc_value_t*)val.p_address)[1]; - for( i = 0 ; i < i_vals ; i++ ) + var_Change( p_this, "honk", VLC_VAR_GETLIST, &val, NULL ); + for( i = 0 ; i < val.p_list->i_count ; i++ ) { - printf( "value %i: %s\n", i, p_vals[i].psz_string ); + printf( "value %i: %s\n", i, val.p_list->p_values[i].psz_string ); } - var_Change( p_this, "honk", VLC_VAR_FREELIST, &val ); + var_Change( p_this, "honk", VLC_VAR_FREELIST, &val, NULL ); var_Destroy( p_this, "honk" ); @@ -121,7 +125,8 @@ static int Foo( vlc_object_t *p_this, char *psz_cmd, char *psz_arg ) /***************************************************************************** * Callback: test callback functions *****************************************************************************/ -static int Callback( vlc_object_t *p_this, char *psz_cmd, char *psz_arg ) +static int Callback( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, void *p_data ) { int i; char psz_var[20]; @@ -169,7 +174,7 @@ static int Callback( vlc_object_t *p_this, char *psz_cmd, char *psz_arg ) for( i = 0; i < 10; i++ ) { - pp_objects[i]->b_die = VLC_TRUE; + vlc_object_kill( pp_objects[i] ); vlc_thread_join( pp_objects[i] ); vlc_object_detach( pp_objects[i] ); vlc_object_destroy( pp_objects[i] ); @@ -210,7 +215,7 @@ static int MyCallback( vlc_object_t *p_this, char const *psz_var, sprintf( psz_newvar, "blork-%i", i_var ); var_Set( p_this, psz_newvar, newval ); - return VLC_SUCCESS; + return VLC_SUCCESS; } /***************************************************************************** @@ -244,7 +249,8 @@ static void * MyThread( vlc_object_t *p_this ) /***************************************************************************** * Stress: perform various stress tests *****************************************************************************/ -static int Stress( vlc_object_t *p_this, char *psz_cmd, char *psz_arg ) +static int Stress( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, void *p_data ) { vlc_object_t **pp_objects; mtime_t start; @@ -252,9 +258,9 @@ static int Stress( vlc_object_t *p_this, char *psz_cmd, char *psz_arg ) char * psz_blob; int i, i_level; - if( *psz_arg ) + if( *newval.psz_string ) { - i_level = atoi( psz_arg ); + i_level = atoi( newval.psz_string ); if( i_level <= 0 ) { i_level = 1; @@ -297,6 +303,7 @@ static int Stress( vlc_object_t *p_this, char *psz_cmd, char *psz_arg ) { int id = (int) (MAXOBJ * i_level * 1.0 * rand() / (RAND_MAX)); vlc_object_get( p_this, pp_objects[id]->i_object_id ); + vlc_object_release( p_this ); } printf( " - destroying the objects (LIFO)\n" ); @@ -426,9 +433,9 @@ static void * Dummy( vlc_object_t *p_this ) /***************************************************************************** * Signal: send a signal to the current thread. *****************************************************************************/ -static int Signal( vlc_object_t *p_this, char *psz_cmd, char *psz_arg ) +static int Signal( vlc_object_t *p_this, char const *psz_cmd, + vlc_value_t oldval, vlc_value_t newval, void *p_data ) { - raise( atoi(psz_arg) ); + raise( atoi(newval.psz_string) ); return VLC_SUCCESS; } -