]> git.sesse.net Git - vlc/commitdiff
[Qt] SPrefs, activate the headphone filter correctly.
authorJean-Baptiste Kempf <jb@videolan.org>
Wed, 17 Dec 2008 19:48:14 +0000 (20:48 +0100)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 17 Dec 2008 19:49:10 +0000 (20:49 +0100)
Remark by Babal.

modules/gui/qt4/components/simple_preferences.cpp
modules/gui/qt4/components/simple_preferences.hpp

index 67cf0c34df28b20fac50d5a1056e19113d64a753..8ba332ebf5e2fd67a0f508b660963f43ec042586 100644 (file)
@@ -292,9 +292,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
             CONFIG_GENERIC( "force-dolby-surround" , IntegerList , NULL,
                             detectionDolby );
 
-            CONFIG_GENERIC( "headphone-dolby" , Bool , NULL, headphoneEffect );
-
-            CONFIG_GENERIC_NO_BOOL( "norm-max-level" , Float , NULL,
+            CONFIG_GENERIC_NO_BOOL( "norm-max-level" , Float, NULL,
                                     volNormSpin );
             CONFIG_GENERIC( "audio-visual" , Module , NULL, visualisation);
 
@@ -314,6 +312,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
             /*Little mofification of ui.volumeValue to compile with Qt < 4.3 */
             ui.volumeValue->setButtonSymbols(QAbstractSpinBox::NoButtons);
             optionWidgets.append( ui.volumeValue );
+            optionWidgets.append( ui.headphoneEffect );
             updateAudioOptions( ui.outputModule->currentIndex() );
 
             /* LastFM */
@@ -335,17 +334,19 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
                 ui.lastfm->hide();
 
             /* Normalizer */
-
             CONNECT( ui.volNormBox, toggled( bool ), ui.volNormSpin,
                      setEnabled( bool ) );
+
             char* psz = config_GetPsz( p_intf, "audio-filter" );
-            qs_filter = qfu( psz );
+            qs_filter = qfu( psz ).split( ':', QString::SkipEmptyParts );
             free( psz );
-            bool b_normalizer = ( qs_filter.contains( "volnorm" ) );
-            {
-                ui.volNormBox->setChecked( b_normalizer );
-                ui.volNormSpin->setEnabled( b_normalizer );
-            }
+
+            bool b_enabled = ( qs_filter.contains( "volnorm" ) );
+            ui.volNormBox->setChecked( b_enabled );
+            ui.volNormSpin->setEnabled( b_enabled );
+
+            b_enabled = ( qs_filter.contains( "headphone" ) );
+            ui.headphoneEffect->setChecked( b_enabled );
 
             /* Volume Label */
             updateAudioVolume( ui.defaultVolume->value() ); // First time init
@@ -658,28 +659,22 @@ void SPrefsPanel::apply()
 
     case SPrefsAudio:
     {
-        bool b_normChecked =
+        bool b_checked =
             qobject_cast<QCheckBox *>(optionWidgets[normalizerChB])->isChecked();
-        if( qs_filter.isEmpty() )
-        {
-            /* the psz_filter is already empty, so we just append it needed */
-            if( b_normChecked ) qs_filter = "volnorm";
-        }
-        else /* Not Empty */
-        {
-            if( qs_filter.contains( "volnorm" ) )
-            {
-                /* The qs_filter not empty and contains "volnorm"
-                   that we have to remove */
-                if( !b_normChecked )
-                {
-                    qs_filter.remove( QRegExp(":?volnorm:?") );
-                }
-            }
-            else /* qs_filter not empty, but doesn't have volnorm inside */
-                if( b_normChecked ) qs_filter.append( ":volnorm" );
-        }
-        config_PutPsz( p_intf, "audio-filter", qtu( qs_filter ) );
+        if( b_checked && !qs_filter.contains( "volnorm" ) )
+            qs_filter.append( "volnorm" );
+        if( !b_checked && qs_filter.contains( "volnorm" ) )
+            qs_filter.removeAll( "volnorm" );
+
+        b_checked =
+            qobject_cast<QCheckBox *>(optionWidgets[headphoneB])->isChecked();
+
+        if( b_checked && !qs_filter.contains( "headphone" ) )
+            qs_filter.append( "headphone" );
+        if( !b_checked && qs_filter.contains( "headphone" ) )
+            qs_filter.removeAll( "headphone" );
+
+        config_PutPsz( p_intf, "audio-filter", qtu( qs_filter.join( ":" ) ) );
         break;
     }
     }
index 1b1db4c3fccab9351281e51af5356770a74701bc..773202e70080c6729b5ebc34f9c69270436050ed 100644 (file)
@@ -71,7 +71,9 @@ enum {
        fileW,
        audioOutCoB,
        normalizerChB,
-       volLW };
+       volLW,
+       headphoneB,
+};
 enum { inputLE, cachingCoB };
 enum { skinRB, qtRB };
 
@@ -115,7 +117,7 @@ private:
     int number;
 
     QList<QWidget *> optionWidgets;
-    QString qs_filter;
+    QStringList qs_filter;
 
 #ifdef WIN32
     QList<QTreeWidgetItem *> listAsso;