]> git.sesse.net Git - vlc/commitdiff
Preferences, audio, save the normalizer activation and clean.
authorJean-Baptiste Kempf <jb@videolan.org>
Wed, 31 Oct 2007 20:26:52 +0000 (20:26 +0000)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 31 Oct 2007 20:26:52 +0000 (20:26 +0000)
modules/gui/qt4/components/preferences_widgets.cpp
modules/gui/qt4/components/preferences_widgets.hpp
modules/gui/qt4/components/simple_preferences.cpp
modules/gui/qt4/components/simple_preferences.hpp
modules/gui/qt4/ui/sprefs_audio.ui

index e30e265a7f15c48787fe633152fe72809d989132..f409ee25771a42add426f96e2f1ed180a0a7a718 100644 (file)
@@ -28,7 +28,6 @@
  *  - Finish implementation (see WX)
  *  - Improvements over WX
  *      - Validator for modulelist
- *  - Implement update stuff using a general Updated signal
  */
 
 #include "components/preferences_widgets.hpp"
@@ -685,7 +684,6 @@ void ModuleListConfigControl::onUpdate( int value )
             }
         }
     }
-    emit Updated();
 }
 
 /**************************************************************************
index 5e64fa983a4b707b3c14ec0909cca438d7e98edf..42cc12723f5b65025cc0c9905e5751e5904de428 100644 (file)
@@ -85,8 +85,11 @@ protected:
     QString _name;
     QWidget *widget;
     bool _advanced;
+#if 0
+/* You shouldn't use that now..*/
 signals:
     void Updated();
+#endif
 };
 
 /*******************************************************
index 03ce8619148ae15be794a90ad973912ca809f810..e662df8cca24e4eda5efa181f211aa90d2290406 100644 (file)
@@ -215,9 +215,9 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
                             detectionDolby );
 
             CONFIG_GENERIC( "headphone-dolby" , Bool , NULL, headphoneEffect );
-//          CONFIG_GENERIC( "" , Bool, NULL, ); activation of normalizer //FIXME
+
             CONFIG_GENERIC_NO_BOOL( "norm-max-level" , Float , NULL,
-                                    volNormalizer );
+                                    volNormSpin );
             CONFIG_GENERIC( "audio-visual" , Module , NULL, visualisation);
 
             /* Audio Output Specifics */
@@ -271,6 +271,16 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
             CONNECT( ui.lastfm, stateChanged( int ), this ,
                     lastfm_Changed( int ) );
 
+            /* Normalizer */
+            normalizerBox = ui.volNormBox;
+            CONNECT( ui.volNormBox, toggled( bool ), ui.volNormSpin, setEnabled( bool ) );
+            qs_filter = qfu( config_GetPsz( p_intf, "audio-filter" ) );
+            bool b_normalizer = ( qs_filter.contains( "volnorm" ) );
+            {
+                ui.volNormBox->setChecked( b_normalizer );
+                ui.volNormSpin->setEnabled( b_normalizer );
+            }
+
         END_SPREFS_CAT;
 
         /* Input and Codecs Panel Implementation */
@@ -297,7 +307,7 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
 
           CONFIG_GENERIC_NO_BOOL( "server-port", Integer, NULL, UDPPort );
           CONFIG_GENERIC( "http-proxy", String , NULL, proxy );
-
+            
           /* Caching */
 /*          CONFIG_GENERIC( );*/ //FIXME
 
@@ -327,14 +337,14 @@ SPrefsPanel::SPrefsPanel( intf_thread_t *_p_intf, QWidget *_parent,
 #endif
 
            /* interface */
-            p_config = config_FindConfig( VLC_OBJECT(p_intf), "intf" );
-            if( p_config->value.psz && strcmp( p_config->value.psz, "qt4" ))
+            char *psz_intf = config_GetPsz( p_intf, "intf" );
+            if( psz_intf )
             {
-                ui.qt4->setChecked( true );
-            }
-            if( p_config->value.psz && strcmp( p_config->value.psz, "skins2" ))
-            {
-                ui.skins->setChecked( true );
+                msg_Dbg( p_intf, "Interface in config file: %s", psz_intf );
+                if( strstr( psz_intf, "skin" ) )
+                    ui.skins->setChecked( true );
+                else if( strstr( psz_intf, "qt" ) )
+                    ui.qt4->setChecked( true );
             }
             skinInterfaceButton = ui.skins;
             qtInterfaceButton = ui.qt4;
@@ -435,6 +445,33 @@ void SPrefsPanel::apply()
         if( qtInterfaceButton->isChecked() )
             config_PutPsz( p_intf, "intf", "qt4" );
     }
+    
+    if( number == SPrefsAudio )
+    {
+        bool b_normChecked = normalizerBox->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 )
+                {
+                    /* Ugly :D */
+                    qs_filter.remove( "volnorm:" );
+                    qs_filter.remove( ":volnorm" );
+                    qs_filter.remove( "volnorm" );
+                }
+            }
+            else /* qs_filter not empty, but doesn't have volnorm inside already */
+                if( b_normChecked ) qs_filter.append( ":volnorm" );
+        }
+        config_PutPsz( p_intf, "audio-filter", qtu( qs_filter ) );
+    }
 }
 
 void SPrefsPanel::clean()
index 8285c805c912d1837298678518133cb25f1f6ecd..1a7242c74dcd57fe5acc719dadb570169a542540 100644 (file)
@@ -43,6 +43,8 @@ class ConfigControl;
 class QComboBox;
 class QLineEdit;
 class QRadioButton;
+class QCheckBox;
+class QString;
 
 class SPrefsCatList : public QWidget
 {
@@ -72,6 +74,7 @@ private:
 
     int number;
 
+    /* this is ugly and bad until I found a new solution */
     QWidget *alsa_options;
     QWidget *oss_options;
     QWidget *directx_options;
@@ -80,6 +83,8 @@ private:
     QLineEdit *inputDevice;
     QRadioButton *skinInterfaceButton;
     QRadioButton *qtInterfaceButton;
+    QString qs_filter;
+    QCheckBox *normalizerBox;
 
 /* Display only the options for the selected audio output */
 private slots:
index 8b0baafad97abc70551a4b0cd85d40337c029aa6..5714e8c6d869adaf9c0e7b262668ced1c8ced8ac 100644 (file)
        </widget>
       </item>
       <item row="1" column="0" >
-       <widget class="QCheckBox" name="volumeNormalizer" >
+       <widget class="QCheckBox" name="volNormBox" >
         <property name="text" >
          <string>_("Volume normalizer")</string>
         </property>
        </widget>
       </item>
       <item row="1" column="1" >
-       <widget class="QDoubleSpinBox" name="volNormalizer" >
+       <widget class="QDoubleSpinBox" name="volNormSpin" >
         <property name="alignment" >
          <set>Qt::AlignRight</set>
         </property>
   <tabstop>OSSBrowse</tabstop>
   <tabstop>fileBrowseButton</tabstop>
   <tabstop>headphoneEffect</tabstop>
-  <tabstop>volumeNormalizer</tabstop>
-  <tabstop>volNormalizer</tabstop>
+  <tabstop>volNormBox</tabstop>
+  <tabstop>volNormSpin</tabstop>
   <tabstop>visualisation</tabstop>
  </tabstops>
  <resources/>