#endif
#include <vlc_common.h>
-#include <vlc_aout.h>
#include "ui/equalizer.h"
#include "ui/video_effects.h"
-#include "ui/v4l2.h"
#include <QTabWidget>
#define BANDS 10
-#define NUM_SP_CTRL 5
class QSignalMapper;
friend class ExtendedDialog;
public:
ExtVideo( struct intf_thread_t *, QTabWidget * );
- virtual ~ExtVideo();
/*void gotoConf( QObject* );*/
private:
Ui::ExtVideoWidget ui;
QSignalMapper* filterMapper;
intf_thread_t *p_intf;
- vout_thread_t *p_vout;
void initComboBoxItems( QObject* );
void setWidgetValue( QObject* );
- void ChangeVFiltersString( const char *psz_name, bool b_add );
void clean();
private slots:
void updateFilters();
void updateFilterOptions();
void cropChange();
+ void browseLogo();
+ void browseEraseFile();
};
class ExtV4l2 : public QWidget
Q_OBJECT
public:
ExtV4l2( intf_thread_t *, QWidget * );
- virtual ~ExtV4l2();
virtual void showEvent( QShowEvent *event );
private:
intf_thread_t *p_intf;
- Ui::ExtV4l2Widget ui;
QGroupBox *box;
+ QLabel *help;
private slots:
void Refresh( void );
void ValueChange( bool value );
};
-class Equalizer: public QWidget
+class FilterSliderData : public QObject
{
Q_OBJECT
- friend class ExtendedDialog;
+
public:
- Equalizer( intf_thread_t *, QWidget * );
- virtual ~Equalizer();
- QComboBox *presetsComboBox;
+ 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:
+ FilterSliderData( QObject *parent, QSlider *slider );
+ virtual float initialValue();
+ QSlider *slider;
+ QLabel *valueLabel;
+ QLabel *nameLabel;
+ const slider_data_t *p_data;
+ intf_thread_t *p_intf;
- char * createValuesFromPreset( int i_preset );
- void updateUIFromCore();
-private:
- Ui::EqualizerWidget ui;
- QSlider *bands[BANDS];
- QLabel *band_texts[BANDS];
+public slots:
+ virtual void onValueChanged( int i ) const;
+ virtual void updateText( int i );
+ virtual void writeToConfig() const;
+};
+
+class AudioFilterControlWidget : public QWidget
+{
+ Q_OBJECT
- void delCallbacks( aout_instance_t * );
- void addCallbacks( aout_instance_t * );
+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;
- void clean();
-private slots:
- void enable(bool);
- void enable();
- void set2Pass();
- void setPreamp();
- void setCoreBands();
- void setCorePreset(int);
- void updateUISliderValues( int );
+ QString name; // filter's module name
+ int i_smallfont;
+
+protected slots:
+ void enable( bool ) const;
};
-class Spatializer: public QWidget
+class EqualizerSliderData : public FilterSliderData
{
Q_OBJECT
+
public:
- Spatializer( intf_thread_t *, QWidget * );
- virtual ~Spatializer();
+ EqualizerSliderData( QObject *parent, intf_thread_t *p_intf,
+ QSlider *slider,
+ QLabel *valueLabel, QLabel *nameLabel,
+ const slider_data_t *p_data, int index );
+
+protected:
+ virtual float initialValue();
+ int index;
+ QStringList getBandsFromAout() const;
+
+public slots:
+ virtual void onValueChanged( int i ) const;
+ virtual void writeToConfig() const;
+};
+
+class Equalizer: public AudioFilterControlWidget
+{
+ Q_OBJECT
+
+public:
+ Equalizer( intf_thread_t *, QWidget * );
+
+protected:
+ virtual void build();
private:
- QSlider *spatCtrl[NUM_SP_CTRL];
- QLabel *ctrl_texts[NUM_SP_CTRL];
- QLabel *ctrl_readout[NUM_SP_CTRL];
- float controlVars[5];
- float oldControlVars[5];
+ QVector<FilterSliderData *> eqSliders;
+ FilterSliderData *preamp;
+ FilterSliderData::slider_data_t preamp_values;
- QCheckBox *enableCheck;
+private slots:
+ void setCorePreset( int );
+ void enable2Pass( bool ) const;
+};
- void delCallbacks( aout_instance_t * );
- void addCallbacks( aout_instance_t * );
- intf_thread_t *p_intf;
+class Compressor: public AudioFilterControlWidget
+{
+ Q_OBJECT
+
+public:
+ Compressor( intf_thread_t *, QWidget * );
+};
+
+class Spatializer: public AudioFilterControlWidget
+{
+ Q_OBJECT
+
+public:
+ Spatializer( intf_thread_t *, QWidget * );
+};
+
+class SyncWidget : public QWidget
+{
+ Q_OBJECT
+public:
+ SyncWidget( QWidget * );
+ void setValue( double d );
+signals:
+ void valueChanged( double );
private slots:
- void enable(bool);
- void enable();
- void setValues(float *);
- void setInitValues();
+ void valueChangedHandler( double d );
+private:
+ QDoubleSpinBox spinBox;
+ QLabel spinLabel;
};
class SyncControls : public QWidget
friend class ExtendedDialog;
public:
SyncControls( intf_thread_t *, QWidget * );
- virtual ~SyncControls() {};
+ virtual ~SyncControls();
private:
intf_thread_t *p_intf;
- QDoubleSpinBox *AVSpin;
- QDoubleSpinBox *subsSpin;
+ SyncWidget *AVSpin;
+ SyncWidget *subsSpin;
QDoubleSpinBox *subSpeedSpin;
+ QDoubleSpinBox *subDurationSpin;
bool b_userAction;
void clean();
+
+ void initSubsDuration();
+ void subsdelayClean();
+ void subsdelaySetFactor( double );
public slots:
void update();
private slots:
void advanceAudio( double );
void advanceSubs( double );
void adjustSubsSpeed( double );
+ void adjustSubsDuration( double );
};
#endif