diff options
| -rw-r--r-- | src/qmmp/eqsettings.cpp | 9 | ||||
| -rw-r--r-- | src/qmmp/eqsettings.h | 22 | ||||
| -rw-r--r-- | src/qmmp/equ/iir.c | 6 | ||||
| -rw-r--r-- | src/qmmp/equ/iir.h | 2 | ||||
| -rw-r--r-- | src/qmmp/equ/iir_fpu.c | 2 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.cpp | 2 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.h | 2 |
7 files changed, 24 insertions, 21 deletions
diff --git a/src/qmmp/eqsettings.cpp b/src/qmmp/eqsettings.cpp index 6a68bff1c..0f1ef99b9 100644 --- a/src/qmmp/eqsettings.cpp +++ b/src/qmmp/eqsettings.cpp @@ -30,13 +30,8 @@ EqSettings::EqSettings(const EqSettings &other) m_gains[i] = other.m_gains[i]; } -EqSettings::EqSettings(int bands) +EqSettings::EqSettings(Bands bands) { - if(bands != 10 && bands != 15 && bands != 25 && bands != 31) - { - qWarning("EqSettings: invalid number of bands (%d), using 10 bands as fallback", bands); - bands = 10; - } for(int i = 0; i < 31; ++i) m_gains[i] = 0; m_bands = bands; @@ -61,7 +56,7 @@ double EqSettings::preamp() const int EqSettings::bands() const { - return m_bands; + return static_cast<int>(m_bands); } void EqSettings::setEnabled(bool enabled) diff --git a/src/qmmp/eqsettings.h b/src/qmmp/eqsettings.h index 1019828e9..dc770210a 100644 --- a/src/qmmp/eqsettings.h +++ b/src/qmmp/eqsettings.h @@ -30,6 +30,16 @@ class QMMP_EXPORT EqSettings { public: /*! + * Equalizer band number + */ + enum Bands + { + EQ_BANDS_10 = 10, /*!< 10 bands */ + EQ_BANDS_15 = 15, /*!< 15 bands */ + EQ_BANDS_25 = 25, /*!< 25 bands */ + EQ_BANDS_31 = 31 /*!< 31 bands */ + }; + /*! * Constructs a copy of \b other. */ EqSettings(const EqSettings &other); @@ -37,7 +47,7 @@ public: * Constructs an empty equalizer settings (0 dB, disabled) * @param bands - Number of bands (supported: 10, 15, 25, 31) */ - EqSettings(int bands = EQ_BANDS_10); + EqSettings(Bands bands = EQ_BANDS_10); /*! * Returns \b true if equalizer os enabled, otherwise returns \b false. */ @@ -80,16 +90,6 @@ public: * Returns \b true if equalizer settins \b s is not equal to this settings; otherwise returns false. */ bool operator!=(const EqSettings &s) const; - /*! - * Equalizer bands number - */ - enum BANDS - { - EQ_BANDS_10 = 10, /*!< 10 bands */ - EQ_BANDS_15 = 15, /*!< 15 bands */ - EQ_BANDS_25 = 25, /*!< 25 bands */ - EQ_BANDS_31 = 31 /*!< 31 bands */ - }; private: double m_gains[31]; diff --git a/src/qmmp/equ/iir.c b/src/qmmp/equ/iir.c index 0dccc11e7..97abdf0f0 100644 --- a/src/qmmp/equ/iir.c +++ b/src/qmmp/equ/iir.c @@ -51,12 +51,18 @@ unsigned int blength = 0; */ unsigned int rate = 0; int band_count = 0; +int two_passes = 0; void set_preamp(int chn, float val) { preamp[chn] = val; } +void set_two_passes(int enabled) +{ + two_passes = enabled; +} + /* Init the filters */ void init_iir(unsigned int srate, int band_num) { diff --git a/src/qmmp/equ/iir.h b/src/qmmp/equ/iir.h index ad241e8d8..1a1d9207e 100644 --- a/src/qmmp/equ/iir.h +++ b/src/qmmp/equ/iir.h @@ -64,6 +64,7 @@ void init_iir(unsigned int srate, int band_num); void clean_history(); void set_gain(int index, int chn, float val); void set_preamp(int chn, float val); +void set_two_passes(int enabled); int iir(float * d, int samples, int nch); @@ -81,6 +82,7 @@ __inline__ int round_ppc(float x); extern float preamp[EQ_CHANNELS]; extern sIIRCoefficients *iir_cf; extern int band_count; +extern int two_passes; #ifdef BENCHMARK extern double timex; diff --git a/src/qmmp/equ/iir_fpu.c b/src/qmmp/equ/iir_fpu.c index fdef54352..3efac6403 100644 --- a/src/qmmp/equ/iir_fpu.c +++ b/src/qmmp/equ/iir_fpu.c @@ -136,7 +136,7 @@ __inline__ int iir(float *d, int samples, int nch) out[channel] += data_history[channel][band].y[i]*gain[channel][band]; // * 2.0; } /* For each band */ - //if (eqcfg.extra_filtering) + if (two_passes) { /* Filter the sample again */ for (band = 0; band < band_count; band++) diff --git a/src/qmmp/qmmpsettings.cpp b/src/qmmp/qmmpsettings.cpp index 720d153a4..de9e3d2d6 100644 --- a/src/qmmp/qmmpsettings.cpp +++ b/src/qmmp/qmmpsettings.cpp @@ -189,7 +189,7 @@ void QmmpSettings::setEqSettings(const EqSettings &settings) emit eqSettingsChanged(); } -void QmmpSettings::readEqSettings(int bands) +void QmmpSettings::readEqSettings(EqSettings::Bands bands) { m_eq_settings = EqSettings(bands); QSettings settings (Qmmp::configFile(), QSettings::IniFormat); diff --git a/src/qmmp/qmmpsettings.h b/src/qmmp/qmmpsettings.h index de9a4a985..efbf64d91 100644 --- a/src/qmmp/qmmpsettings.h +++ b/src/qmmp/qmmpsettings.h @@ -152,7 +152,7 @@ public: * Reads equalizer settings. Call this function before equalizer usage. * @param bands Number of bands. */ - void readEqSettings(int bands = EqSettings::EQ_BANDS_10); + void readEqSettings(EqSettings::Bands bands = EqSettings::EQ_BANDS_10); /*! * Returns buffer size in milliseconds. */ |
