]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/extended_panels.cpp
Try to fix memleaks
[vlc] / modules / gui / qt4 / components / extended_panels.cpp
index 2c2ac60e3aa8d236c2b9945bbe0384a1564984a6..7172c4b3e3c241643e1d8961bd50c5b8af68de18 100644 (file)
@@ -560,8 +560,8 @@ void ExtVideo::gotoConf( QObject* src )
 
 static const QString band_frequencies[] =
 {
-    "   60Hz  ", " 170 Hz " , " 310 Hz ", " 600 Hz ", "  1 kHz  ",
-    "  3 kHz  " , "  6 kHz ", " 12 kHz ", " 14 kHz ", " 16 kHz "
+    "  60 Hz  ", " 170 Hz ", " 310 Hz ", " 600 Hz ", "  1 kHz ",
+    "  3 kHz  ", "  6 kHz ", " 12 kHz ", " 14 kHz ", " 16 kHz "
 };
 
 Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) :
@@ -571,6 +571,7 @@ Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) :
     smallFont.setPointSize( smallFont.pointSize() - 3 );
 
     ui.setupUi( this );
+    presetsComboBox = ui.presetsCombo;
 
     ui.preampLabel->setFont( smallFont );
     ui.preampSlider->setMaximum( 400 );
@@ -603,15 +604,15 @@ Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) :
     /* Write down initial values */
     aout_instance_t *p_aout = (aout_instance_t *)vlc_object_find(p_intf,
                                     VLC_OBJECT_AOUT, FIND_ANYWHERE);
-    char *psz_af = NULL;
+    char *psz_af;
     char *psz_bands;
     float f_preamp;
     if( p_aout )
     {
-        psz_af = var_GetString( p_aout, "audio-filter" );
+        psz_af = var_GetNonEmptyString( p_aout, "audio-filter" );
         if( var_GetBool( p_aout, "equalizer-2pass" ) )
             ui.eq2PassCheck->setChecked( true );
-        psz_bands = var_GetString( p_aout, "equalizer-bands" );
+        psz_bands = var_GetNonEmptyString( p_aout, "equalizer-bands" );
         f_preamp = var_GetFloat( p_aout, "equalizer-preamp" );
         vlc_object_release( p_aout );
     }
@@ -625,6 +626,7 @@ Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) :
     }
     if( psz_af && strstr( psz_af, "equalizer" ) != NULL )
         ui.enableCheck->setChecked( true );
+    free( psz_af );
     enable( ui.enableCheck->isChecked() );
 
     setValues( psz_bands, f_preamp );
@@ -772,19 +774,29 @@ void Equalizer::setPreset( int preset )
     setValues( psz_values, eqz_preset_10b[preset]->f_preamp );
 }
 
+static int PresetCallback( vlc_object_t *p_this, char const *psz_cmd,
+                         vlc_value_t oldval, vlc_value_t newval, void *p_data )
+{
+    char *psz_preset = newval.psz_string;
+    Equalizer *eq = (Equalizer *)p_data;
+    eq->presetsComboBox->setCurrentIndex( eq->presetsComboBox->findText( qfu( psz_preset) ) );
+    return VLC_SUCCESS;
+}
+
 void Equalizer::delCallbacks( aout_instance_t *p_aout )
 {
-//    var_DelCallback( p_aout, "equalizer-bands", EqzCallback, this );
-//    var_DelCallback( p_aout, "equalizer-preamp", EqzCallback, this );
+    //var_DelCallback( p_aout, "equalizer-bands", EqzCallback, this );
+    //var_DelCallback( p_aout, "equalizer-preamp", EqzCallback, this );
+    var_DelCallback( p_aout, "equalizer-preset", PresetCallback, this );
 }
 
 void Equalizer::addCallbacks( aout_instance_t *p_aout )
 {
-//    var_AddCallback( p_aout, "equalizer-bands", EqzCallback, this );
-//    var_AddCallback( p_aout, "equalizer-preamp", EqzCallback, this );
+    //var_AddCallback( p_aout, "equalizer-bands", EqzCallback, this );
+    //var_AddCallback( p_aout, "equalizer-preamp", EqzCallback, this );
+    var_AddCallback( p_aout, "equalizer-preset", PresetCallback, this );
 }
 
-
 /**********************************************************************
  * Spatializer
  **********************************************************************/
@@ -838,11 +850,11 @@ Spatializer::Spatializer( intf_thread_t *_p_intf, QWidget *_parent ) :
     /* Write down initial values */
     aout_instance_t *p_aout = (aout_instance_t *)
         vlc_object_find(p_intf, VLC_OBJECT_AOUT, FIND_ANYWHERE);
-    char *psz_af = NULL;
+    char *psz_af;
 
     if( p_aout )
     {
-        psz_af = var_GetString( p_aout, "audio-filter" );
+        psz_af = var_GetNonEmptyString( p_aout, "audio-filter" );
         for( int i = 0; i < NUM_SP_CTRL ; i++)
         {
             controlVars[i] = var_GetFloat( p_aout,  psz_control_names[i] );
@@ -859,6 +871,7 @@ Spatializer::Spatializer( intf_thread_t *_p_intf, QWidget *_parent ) :
     }
     if( psz_af && strstr( psz_af, "spatializer" ) != NULL )
         ui.enableCheck->setChecked( true );
+    free( psz_af );
     enable( ui.enableCheck->isChecked() );
     setValues( controlVars );