#include <QTabWidget>
#define BANDS 10
-#define NUM_CP_CTRL 7
-#define NUM_SP_CTRL 5
class QSignalMapper;
void ValueChange( bool value );
};
+class FilterSliderData : public QObject
+{
+ Q_OBJECT
+
+public:
+ typedef struct
+ {
+ QString name;
+ QString descs;
+ QString units;
+ float f_min; // min
+ float f_max; // max
+ float f_value; // value
+ float f_resolution; // resolution
+ float f_visual_multiplier; // only for display (f_value *)
+ } slider_data_t;
+ FilterSliderData( QObject *parent, intf_thread_t *p_intf,
+ QSlider *slider,
+ QLabel *valueLabel, QLabel *nameLabel,
+ const slider_data_t *p_data );
+ void setValue( float f );
+
+protected:
+ float initialValue();
+
+public slots:
+ void onValueChanged( int i );
+ void updateText( int i );
+ void writeToConfig();
+
+private:
+ intf_thread_t *p_intf;
+ QSlider *slider;
+ QLabel *valueLabel;
+ QLabel *nameLabel;
+ const slider_data_t *p_data;
+};
+
+class AudioFilterControlWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ AudioFilterControlWidget( intf_thread_t *, QWidget *, const char *name );
+ virtual ~AudioFilterControlWidget();
+
+protected:
+ virtual void build();
+ QVector<FilterSliderData::slider_data_t> controls;
+ QGroupBox *slidersBox;
+ intf_thread_t *p_intf;
+ QString name; // filter's module name
+ int i_smallfont;
+
+protected slots:
+ void enable();
+};
+
class Equalizer: public QWidget
{
Q_OBJECT
void setCorePreset(int);
};
-class Compressor: public QWidget
+class Compressor: public AudioFilterControlWidget
{
Q_OBJECT
+
public:
Compressor( intf_thread_t *, QWidget * );
-
-private:
- QSlider *compCtrl[NUM_CP_CTRL];
- QLabel *ctrl_texts[NUM_CP_CTRL];
- QLabel *ctrl_readout[NUM_CP_CTRL];
- float controlVars[NUM_CP_CTRL];
- float oldControlVars[NUM_CP_CTRL];
-
- QCheckBox *enableCheck;
-
- intf_thread_t *p_intf;
-
- void delCallbacks( vlc_object_t * );
- void addCallbacks( vlc_object_t * );
-
- void updateSliders(float *);
-
-private slots:
- void enable(bool);
- void enable();
- void setValues();
};
-class Spatializer: public QWidget
+class Spatializer: public AudioFilterControlWidget
{
Q_OBJECT
+
public:
Spatializer( intf_thread_t *, QWidget * );
-
-private:
- QSlider *spatCtrl[NUM_SP_CTRL];
- QLabel *ctrl_texts[NUM_SP_CTRL];
- QLabel *ctrl_readout[NUM_SP_CTRL];
- float controlVars[5];
- float oldControlVars[5];
-
- QCheckBox *enableCheck;
-
- void delCallbacks( vlc_object_t * );
- void addCallbacks( vlc_object_t * );
- intf_thread_t *p_intf;
-
- void setValues();
-
-private slots:
- void enable(bool);
- void enable();
- void setInitValues();
};
class SyncWidget : public QWidget