vlc | branch: master | Jean-Baptiste Kempf <[email protected]> | Fri Apr 13 18:28:17 2012 +0200| [b8bdfbdb024806c355de729046a4e694d295325f] | committer: Jean-Baptiste Kempf
Qt: display equalizer bands depending on the core > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b8bdfbdb024806c355de729046a4e694d295325f --- modules/gui/qt4/components/extended_panels.cpp | 39 ++++++++++++++++++++++-- modules/gui/qt4/components/extended_panels.hpp | 2 + 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/modules/gui/qt4/components/extended_panels.cpp b/modules/gui/qt4/components/extended_panels.cpp index 52e55b2..ec1f12a 100644 --- a/modules/gui/qt4/components/extended_panels.cpp +++ b/modules/gui/qt4/components/extended_panels.cpp @@ -893,12 +893,18 @@ void ExtV4l2::ValueChange( int value ) * Equalizer **********************************************************************/ -static const QString band_frequencies[] = +static const QString vlc_band_frequencies[] = { " 60 Hz ", " 170 Hz ", " 310 Hz ", " 600 Hz ", " 1 kHz ", " 3 kHz ", " 6 kHz ", " 12 kHz ", " 14 kHz ", " 16 kHz " }; +static const QString iso_band_frequencies[] = +{ + " 31.25 Hz ", " 62.5 Hz ", " 125 Hz ", " 250 Hz ", " 500 Hz ", + " 1 kHz ", " 2 kHz ", " 4 kHz ", " 8 kHz ", " 16 kHz " +}; + Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) : QWidget( _parent ) , p_intf( _p_intf ) { @@ -912,6 +918,8 @@ Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) : presetsComboBox = ui.presetsCombo; CONNECT( presetsComboBox, activated( int ), this, setCorePreset( int ) ); + b_vlcBands = var_InheritBool( p_intf, "equalizer-vlcfreqs" ); + /* Add the sliders for the Bands */ QGridLayout *grid = new QGridLayout( ui.frame ); grid->setMargin( 0 ); @@ -923,7 +931,8 @@ Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) : bands[i]->setMinimumWidth(34); CONNECT( bands[i], valueChanged( int ), this, setCoreBands() ); - band_texts[i] = new QLabel( band_frequencies[i] + "\n00.0dB" ); + band_texts[i] = new QLabel( b_vlcBands ? vlc_band_frequencies[i] + : iso_band_frequencies[i] + "\n00.0dB" ); band_texts[i]->setFont( smallFont ); grid->addWidget( bands[i], 0, i ); @@ -1002,7 +1011,23 @@ void Equalizer::updateUIFromCore() free( psz_pres ); } -/* Functin called when enableButton is toggled */ +void Equalizer::changeFreqLabels( bool b_useVlcBands ) +{ + b_vlcBands = b_useVlcBands; + + const QString *band_frequencies = b_vlcBands + ? vlc_band_frequencies + : iso_band_frequencies; + + for( int i = 0; i < BANDS; i++ ) + { + const float f_val = (float)( bands[i]->value() ) / 10 - 20; + QString val = QString("%1").arg( f_val, 5, 'f', 1 ); + band_texts[i]->setText( band_frequencies[i] + "\n" + val + "dB" ); + } +} + +/* Function called when enableButton is toggled */ void Equalizer::enable() { bool en = ui.enableCheck->isChecked(); @@ -1065,6 +1090,10 @@ void Equalizer::setCoreBands() { /**\todo smoothing */ + const QString *band_frequencies = b_vlcBands + ? vlc_band_frequencies + : iso_band_frequencies; + QString values; for( int i = 0; i < BANDS; i++ ) { @@ -1111,6 +1140,10 @@ void Equalizer::setCorePreset( int i_preset ) char *psz_values = createValuesFromPreset( i_preset ); if( !psz_values ) return ; + const QString *band_frequencies = b_vlcBands + ? vlc_band_frequencies + : iso_band_frequencies; + char *p = psz_values; for( int i = 0; i < BANDS && *p; i++ ) { diff --git a/modules/gui/qt4/components/extended_panels.hpp b/modules/gui/qt4/components/extended_panels.hpp index 9964aef..84950b5 100644 --- a/modules/gui/qt4/components/extended_panels.hpp +++ b/modules/gui/qt4/components/extended_panels.hpp @@ -93,10 +93,12 @@ public: char * createValuesFromPreset( int i_preset ); void updateUIFromCore(); + void changeFreqLabels( bool ); private: Ui::EqualizerWidget ui; QSlider *bands[BANDS]; QLabel *band_texts[BANDS]; + bool b_vlcBands; void delCallbacks( vlc_object_t * ); void addCallbacks( vlc_object_t * ); _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
