From cacd39b8661a299781bbeb4c888a36d4a47215ca Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf Date: Wed, 31 Oct 2007 20:26:52 +0000 Subject: [PATCH] Preferences, audio, save the normalizer activation and clean. --- .../qt4/components/preferences_widgets.cpp | 2 - .../qt4/components/preferences_widgets.hpp | 3 + .../gui/qt4/components/simple_preferences.cpp | 57 +++++++++++++++---- .../gui/qt4/components/simple_preferences.hpp | 5 ++ modules/gui/qt4/ui/sprefs_audio.ui | 8 +-- 5 files changed, 59 insertions(+), 16 deletions(-) diff --git a/modules/gui/qt4/components/preferences_widgets.cpp b/modules/gui/qt4/components/preferences_widgets.cpp index e30e265a7f..f409ee2577 100644 --- a/modules/gui/qt4/components/preferences_widgets.cpp +++ b/modules/gui/qt4/components/preferences_widgets.cpp @@ -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(); } /************************************************************************** diff --git a/modules/gui/qt4/components/preferences_widgets.hpp b/modules/gui/qt4/components/preferences_widgets.hpp index 5e64fa983a..42cc12723f 100644 --- a/modules/gui/qt4/components/preferences_widgets.hpp +++ b/modules/gui/qt4/components/preferences_widgets.hpp @@ -85,8 +85,11 @@ protected: QString _name; QWidget *widget; bool _advanced; +#if 0 +/* You shouldn't use that now..*/ signals: void Updated(); +#endif }; /******************************************************* diff --git a/modules/gui/qt4/components/simple_preferences.cpp b/modules/gui/qt4/components/simple_preferences.cpp index 03ce861914..e662df8cca 100644 --- a/modules/gui/qt4/components/simple_preferences.cpp +++ b/modules/gui/qt4/components/simple_preferences.cpp @@ -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() diff --git a/modules/gui/qt4/components/simple_preferences.hpp b/modules/gui/qt4/components/simple_preferences.hpp index 8285c805c9..1a7242c74d 100644 --- a/modules/gui/qt4/components/simple_preferences.hpp +++ b/modules/gui/qt4/components/simple_preferences.hpp @@ -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: diff --git a/modules/gui/qt4/ui/sprefs_audio.ui b/modules/gui/qt4/ui/sprefs_audio.ui index 8b0baafad9..5714e8c6d8 100644 --- a/modules/gui/qt4/ui/sprefs_audio.ui +++ b/modules/gui/qt4/ui/sprefs_audio.ui @@ -255,7 +255,7 @@ - + _("Volume normalizer") @@ -269,7 +269,7 @@ - + Qt::AlignRight @@ -333,8 +333,8 @@ OSSBrowse fileBrowseButton headphoneEffect - volumeNormalizer - volNormalizer + volNormBox + volNormSpin visualisation -- 2.39.2