[vlc-devel] commit: Factorize. ( Rémi Duraffort )
git version control
git at videolan.org
Thu Jun 18 14:01:09 CEST 2009
vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Thu Jun 18 13:19:33 2009 +0200| [6165ab0d6124cc0410598b00489bf3b464d00a65] | committer: Rémi Duraffort
Factorize.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6165ab0d6124cc0410598b00489bf3b464d00a65
---
modules/audio_filter/spatializer/spatializer.cpp | 81 +++++++---------------
1 files changed, 25 insertions(+), 56 deletions(-)
diff --git a/modules/audio_filter/spatializer/spatializer.cpp b/modules/audio_filter/spatializer/spatializer.cpp
index b8b2ecf..36af45c 100644
--- a/modules/audio_filter/spatializer/spatializer.cpp
+++ b/modules/audio_filter/spatializer/spatializer.cpp
@@ -109,10 +109,8 @@ static const char *psz_control_names[] =
static void DoWork( aout_instance_t *, aout_filter_t *,
aout_buffer_t *, aout_buffer_t * );
-static int SpatInit( aout_filter_t *);
static void SpatFilter( aout_instance_t *,aout_filter_t *, float *, float *,
int, int );
-static void SpatClean( aout_filter_t * );
static int RoomCallback ( vlc_object_t *, char const *,
vlc_value_t, vlc_value_t, void * );
static int WetCallback ( vlc_object_t *, char const *,
@@ -131,6 +129,7 @@ static int Open( vlc_object_t *p_this )
{
aout_filter_t *p_filter = (aout_filter_t *)p_this;
aout_filter_sys_t *p_sys;
+ aout_instance_t *p_aout = (aout_instance_t *)p_filter->p_parent;
bool b_fit = true;
msg_Dbg(p_this, "Opening filter spatializer %s %s %d", __FILE__,__func__,__LINE__);
@@ -164,13 +163,21 @@ static int Open( vlc_object_t *p_this )
return VLC_ENOMEM;
vlc_mutex_init( &p_sys->lock );
+
+ /* Init the variables */
p_sys->p_reverbm = new revmodel();
- p_sys->p_reverbm->setroomsize(1.05);
- p_sys->p_reverbm->setwet(10.0f);
- p_sys->p_reverbm->setdry(1.0f);
- p_sys->p_reverbm->setdamp(0.3);
- p_sys->p_reverbm->setwidth(0.9);
- SpatInit( p_filter);
+ p_sys->p_reverbm->setroomsize( var_CreateGetFloatCommand( p_aout, psz_control_names[0] ) );
+ p_sys->p_reverbm->setwidth( var_CreateGetFloatCommand( p_aout, psz_control_names[1] ) );
+ p_sys->p_reverbm->setwet( var_CreateGetFloatCommand( p_aout, psz_control_names[2] ) );
+ p_sys->p_reverbm->setdry( var_CreateGetFloatCommand( p_aout, psz_control_names[3] ) );
+ p_sys->p_reverbm->setdamp( var_CreateGetFloatCommand( p_aout, psz_control_names[4] ));
+
+ /* Add the callbacks */
+ var_AddCallback( p_aout, psz_control_names[0], RoomCallback, p_sys );
+ var_AddCallback( p_aout, psz_control_names[1], WidthCallback, p_sys );
+ var_AddCallback( p_aout, psz_control_names[2], WetCallback, p_sys );
+ var_AddCallback( p_aout, psz_control_names[3], DryCallback, p_sys );
+ var_AddCallback( p_aout, psz_control_names[4], DampCallback, p_sys );
return VLC_SUCCESS;
}
@@ -182,7 +189,15 @@ static void Close( vlc_object_t *p_this )
{
aout_filter_t *p_filter = (aout_filter_t *)p_this;
aout_filter_sys_t *p_sys = p_filter->p_sys;
- SpatClean( p_filter );
+ aout_instance_t *p_aout = (aout_instance_t *)p_filter->p_parent;
+
+ /* Delete the callbacks */
+ var_DelCallback( p_aout, psz_control_names[0], RoomCallback, p_sys );
+ var_DelCallback( p_aout, psz_control_names[1], WidthCallback, p_sys );
+ var_DelCallback( p_aout, psz_control_names[2], WetCallback, p_sys );
+ var_DelCallback( p_aout, psz_control_names[3], DryCallback, p_sys );
+ var_DelCallback( p_aout, psz_control_names[4], DampCallback, p_sys );
+
delete p_sys->p_reverbm;
vlc_mutex_destroy( &p_sys->lock );
free( p_sys );
@@ -203,41 +218,6 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
aout_FormatNbChannels( &p_filter->input ) );
}
-static int SpatInit( aout_filter_t *p_filter )
-{
- aout_filter_sys_t *p_sys = p_filter->p_sys;
- int i, ch;
- vlc_value_t val1, val2, val3, val4, val5;
- aout_instance_t *p_aout = (aout_instance_t *)p_filter->p_parent;
-
- for( i = 0; i < 5 ; i ++ )
- var_Create( p_aout, psz_control_names[i], VLC_VAR_FLOAT
- | VLC_VAR_DOINHERIT | VLC_VAR_ISCOMMAND );
-
- /* Get initial values */
- var_Get( p_aout, psz_control_names[0], &val1 );
- var_Get( p_aout, psz_control_names[1], &val2 );
- var_Get( p_aout, psz_control_names[2], &val3 );
- var_Get( p_aout, psz_control_names[3], &val4 );
- var_Get( p_aout, psz_control_names[4], &val5);
-
- RoomCallback( VLC_OBJECT( p_aout ), NULL, val1, val1, p_sys );
- WidthCallback( VLC_OBJECT( p_aout ), NULL, val2, val2, p_sys );
- WetCallback( VLC_OBJECT( p_aout ), NULL, val3, val3, p_sys );
- DryCallback( VLC_OBJECT( p_aout ), NULL, val4, val4, p_sys );
- DampCallback( VLC_OBJECT( p_aout ), NULL, val5, val5, p_sys );
-
- msg_Dbg( p_filter, "%f", val1.f_float );
- /* Add our own callbacks */
- var_AddCallback( p_aout, psz_control_names[0], RoomCallback, p_sys );
- var_AddCallback( p_aout, psz_control_names[1], WidthCallback, p_sys );
- var_AddCallback( p_aout, psz_control_names[2], WetCallback, p_sys );
- var_AddCallback( p_aout, psz_control_names[3], DryCallback, p_sys );
- var_AddCallback( p_aout, psz_control_names[4], DampCallback, p_sys );
-
- return VLC_SUCCESS;
-}
-
static void SpatFilter( aout_instance_t *p_aout,
aout_filter_t *p_filter, float *out, float *in,
int i_samples, int i_channels )
@@ -245,7 +225,7 @@ static void SpatFilter( aout_instance_t *p_aout,
aout_filter_sys_t *p_sys = p_filter->p_sys;
CLocker locker( &p_sys->lock );
- int i, ch, j;
+ int i, ch;
for( i = 0; i < i_samples; i++ )
{
for( ch = 0 ; ch < 2; ch++)
@@ -258,17 +238,6 @@ static void SpatFilter( aout_instance_t *p_aout,
}
}
-static void SpatClean( aout_filter_t *p_filter )
-{
- aout_instance_t *p_aout = (aout_instance_t *)p_filter->p_parent;
- aout_filter_sys_t *p_sys = p_filter->p_sys;
-
- var_DelCallback( p_aout, psz_control_names[0], RoomCallback, p_sys );
- var_DelCallback( p_aout, psz_control_names[1], WidthCallback, p_sys );
- var_DelCallback( p_aout, psz_control_names[2], WetCallback, p_sys );
- var_DelCallback( p_aout, psz_control_names[3], DryCallback, p_sys );
- var_DelCallback( p_aout, psz_control_names[4], DampCallback, p_sys );
-}
/*****************************************************************************
* Variables callbacks
More information about the vlc-devel
mailing list