[vlc-commits] Qt: Spatializer: factorize
Francois Cartegnie
git at videolan.org
Fri Jan 4 13:41:36 CET 2013
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Thu Jan 3 22:59:41 2013 +0100| [33352675380d4d1b500c2b5adade231775e80b45] | committer: Francois Cartegnie
Qt: Spatializer: factorize
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=33352675380d4d1b500c2b5adade231775e80b45
---
modules/gui/qt4/components/extended_panels.cpp | 132 +++---------------------
modules/gui/qt4/components/extended_panels.hpp | 27 +----
2 files changed, 17 insertions(+), 142 deletions(-)
diff --git a/modules/gui/qt4/components/extended_panels.cpp b/modules/gui/qt4/components/extended_panels.cpp
index 2dcaaa5..183194c 100644
--- a/modules/gui/qt4/components/extended_panels.cpp
+++ b/modules/gui/qt4/components/extended_panels.cpp
@@ -997,13 +997,13 @@ void FilterSliderData::writeToConfig()
AudioFilterControlWidget::AudioFilterControlWidget
( intf_thread_t *_p_intf, QWidget *parent, const char *_name ) :
- QWidget( parent ), p_intf( _p_intf ), name( _name )
+ QWidget( parent ), p_intf( _p_intf ), name( _name ), i_smallfont(0)
{}
void AudioFilterControlWidget::build()
{
QFont smallFont = QApplication::font();
- smallFont.setPointSize( smallFont.pointSize() - 2 );
+ smallFont.setPointSize( smallFont.pointSize() + i_smallfont );
QVBoxLayout *layout = new QVBoxLayout( this );
slidersBox = new QGroupBox( qtr( "Enable" ) );
@@ -1379,6 +1379,7 @@ void Equalizer::addCallbacks( vlc_object_t *p_aout )
Compressor::Compressor( intf_thread_t *p_intf, QWidget *parent )
: AudioFilterControlWidget( p_intf, parent, "compressor" )
{
+ i_smallfont = -2;
const FilterSliderData::slider_data_t a[7] =
{
{ "compressor-rms-peak", qtr("RMS/peak"), "", 0.0f, 1.0f, 0.00f, 0.001f },
@@ -1396,124 +1397,21 @@ Compressor::Compressor( intf_thread_t *p_intf, QWidget *parent )
/**********************************************************************
* Spatializer
**********************************************************************/
-const Spatializer::spat_controls_t Spatializer::spat_controls[] =
-{
- { "spatializer-roomsize", _("Size") },
- { "spatializer-width", _("Width") },
- { "spatializer-wet", _("Wet") },
- { "spatializer-dry", _("Dry") },
- { "spatializer-damp", _("Damp") },
-};
-Spatializer::Spatializer( intf_thread_t *_p_intf, QWidget *_parent )
- : QWidget( _parent ) , p_intf( _p_intf )
+Spatializer::Spatializer( intf_thread_t *p_intf, QWidget *parent )
+ : AudioFilterControlWidget( p_intf, parent, "spatializer" )
{
- QFont smallFont = QApplication::font();
- smallFont.setPointSize( smallFont.pointSize() - 1 );
-
- QVBoxLayout *layout = new QVBoxLayout( this );
-
- spatializerBox = new QGroupBox( qtr( "Enable" ) );
- spatializerBox->setCheckable( true );
- layout->addWidget( spatializerBox );
-
- QGridLayout *ctrlLayout = new QGridLayout( spatializerBox );
- for( int i = 0 ; i < NUM_SP_CTRL ; i++ )
- {
- spatCtrl[i] = new QSlider( Qt::Vertical );
- spatCtrl[i]->setValue( (int)var_InheritFloat( p_intf, spat_controls[i].psz_name ) * 10. );
- oldControlVars[i] = spatCtrl[i]->value();
-
- ctrl_texts[i] = new QLabel( qtr( spat_controls[i].psz_desc ) + "\n" );
- ctrl_texts[i]->setFont( smallFont );
-
- ctrl_readout[i] = new QLabel;
- ctrl_readout[i]->setFont( smallFont );
-
- ctrlLayout->addWidget( spatCtrl[i], 0, i, Qt::AlignHCenter );
- ctrlLayout->addWidget( ctrl_readout[i], 1, i, Qt::AlignHCenter );
- ctrlLayout->addWidget( ctrl_texts[i], 2, i, Qt::AlignHCenter );
- spatCtrl[i]->setRange( 0, 10 );
- }
- spatCtrl[0]->setRange( 0, 11 );
-
- for( int i = 0; i < NUM_SP_CTRL; i++ )
- CONNECT( spatCtrl[i], valueChanged( int ), this, setValues() );
-
- /* Write down initial values */
- vlc_object_t *p_aout = (vlc_object_t *)THEMIM->getAout();
- char *psz_af;
-
- if( p_aout )
+ i_smallfont = -1;
+ const FilterSliderData::slider_data_t a[5] =
{
- psz_af = var_GetNonEmptyString( p_aout, "audio-filter" );
- for( int i = 0; i < NUM_SP_CTRL ; i++ )
- {
- controlVars[i] = var_GetFloat( p_aout, spat_controls[i].psz_name );
- }
- vlc_object_release( p_aout );
- }
- else
- {
- psz_af = config_GetPsz( p_intf, "audio-filter" );
- for( int i = 0; i < NUM_SP_CTRL ; i++ )
- {
- controlVars[i] = config_GetFloat( p_intf, spat_controls[i].psz_name );
- }
- }
- if( psz_af && strstr( psz_af, "spatializer" ) != NULL )
- spatializerBox->setChecked( true );
- else
- spatializerBox->setChecked( false );
- CONNECT( spatializerBox, toggled(bool), this, enable() );
-
- free( psz_af );
- setValues();
-}
-
-void Spatializer::enable()
-{
- playlist_EnableAudioFilter( THEPL, "spatializer", spatializerBox->isChecked() );
-}
-
-void Spatializer::setValues()
-{
- vlc_object_t *p_aout = (vlc_object_t *)THEMIM->getAout();
-
- for( int i = 0 ; i < NUM_SP_CTRL ; i++ )
- {
- float f = (float)( spatCtrl[i]->value() ) / 10;
- ctrl_readout[i]->setText( QString::number( f, 'f', 1 ) );
- }
-
- if( p_aout )
- {
- for( int i = 0 ; i < NUM_SP_CTRL ; i++ )
- {
- float f = (float)( spatCtrl[i]->value() ) / 10 ;
- if( oldControlVars[i] != spatCtrl[i]->value() )
- {
- var_SetFloat( p_aout, spat_controls[i].psz_name, f );
- config_PutFloat( p_intf, spat_controls[i].psz_name, f );
- oldControlVars[i] = spatCtrl[i]->value();
- }
- }
- vlc_object_release( p_aout );
- }
-
-}
-void Spatializer::delCallbacks( vlc_object_t *p_aout )
-{
- VLC_UNUSED( p_aout );
- // var_DelCallback( p_aout, "Spatializer-bands", EqzCallback, this );
- // var_DelCallback( p_aout, "Spatializer-preamp", EqzCallback, this );
-}
-
-void Spatializer::addCallbacks( vlc_object_t *p_aout )
-{
- VLC_UNUSED( p_aout );
- // var_AddCallback( p_aout, "Spatializer-bands", EqzCallback, this );
- // var_AddCallback( p_aout, "Spatializer-preamp", EqzCallback, this );
+ { "spatializer-roomsize", qtr("Size"), "", 0.0f, 11.0f, 0.0f, 1.0f },
+ { "spatializer-width", qtr("Width"), "", 0.0f, 10.0f, 0.0f, 1.0f },
+ { "spatializer-wet", qtr("Wet"), "", 0.0f, 10.0f, 0.0f, 1.0f },
+ { "spatializer-dry", qtr("Dry"), "", 0.0f, 10.0f, 0.0f, 1.0f },
+ { "spatializer-damp", qtr("Damp"), "", 0.0f, 10.0f, 0.0f, 1.0f },
+ };
+ for( int i=0; i<5 ;i++ ) controls.append( a[i] );
+ build();
}
#include <QToolButton>
diff --git a/modules/gui/qt4/components/extended_panels.hpp b/modules/gui/qt4/components/extended_panels.hpp
index 2cc325e..29692e6 100644
--- a/modules/gui/qt4/components/extended_panels.hpp
+++ b/modules/gui/qt4/components/extended_panels.hpp
@@ -37,7 +37,6 @@
#include <QTabWidget>
#define BANDS 10
-#define NUM_SP_CTRL 5
class QSignalMapper;
@@ -133,6 +132,7 @@ protected:
QGroupBox *slidersBox;
intf_thread_t *p_intf;
QString name; // filter's module name
+ int i_smallfont;
protected slots:
void enable();
@@ -177,35 +177,12 @@ public:
Compressor( intf_thread_t *, QWidget * );
};
-class Spatializer: public QWidget
+class Spatializer: public AudioFilterControlWidget
{
Q_OBJECT
public:
Spatializer( intf_thread_t *, QWidget * );
-
-private:
- typedef struct
- {
- const char *psz_name;
- const char *psz_desc;
- } spat_controls_t;
- static const spat_controls_t spat_controls[NUM_SP_CTRL];
- QSlider *spatCtrl[NUM_SP_CTRL];
- QLabel *ctrl_texts[NUM_SP_CTRL];
- QLabel *ctrl_readout[NUM_SP_CTRL];
- float controlVars[NUM_SP_CTRL];
- float oldControlVars[NUM_SP_CTRL];
-
- QGroupBox *spatializerBox;
-
- void delCallbacks( vlc_object_t * );
- void addCallbacks( vlc_object_t * );
- intf_thread_t *p_intf;
-
-private slots:
- void enable();
- void setValues();
};
class SyncWidget : public QWidget
More information about the vlc-commits
mailing list