From b1c5717746fd802b138d9888ab96fb5e4f0b91f7 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Wed, 13 May 2015 00:25:10 +0100 Subject: [PATCH] refs #403, #411 Klaus reverted part of the shared libs changes (commit:4aa5f806) during rebase, so I reverted the reversion. --- src/blackmisc/aviation/modulator.cpp | 182 +++++++++++++++++++++++++++ src/blackmisc/aviation/modulator.h | 125 +++++------------- 2 files changed, 211 insertions(+), 96 deletions(-) diff --git a/src/blackmisc/aviation/modulator.cpp b/src/blackmisc/aviation/modulator.cpp index bfe726b60..c2ed11c6b 100644 --- a/src/blackmisc/aviation/modulator.cpp +++ b/src/blackmisc/aviation/modulator.cpp @@ -23,6 +23,12 @@ namespace BlackMisc namespace Aviation { + template + bool CModulator::isDefaultValue() const + { + return (this->m_frequencyActive == FrequencyNotSet()); + } + template void CModulator::toggleActiveStandby() { @@ -31,6 +37,72 @@ namespace BlackMisc this->m_frequencyStandby = a; } + template + BlackMisc::PhysicalQuantities::CFrequency CModulator::getFrequencyActive() const + { + return this->m_frequencyActive; + } + + template + BlackMisc::PhysicalQuantities::CFrequency CModulator::getFrequencyStandby() const + { + return this->m_frequencyStandby; + } + + template + void CModulator::setFrequencyActive(const BlackMisc::PhysicalQuantities::CFrequency &frequency) + { + this->m_frequencyActive = frequency; + } + + template + void CModulator::setFrequencyStandby(const BlackMisc::PhysicalQuantities::CFrequency &frequency) + { + this->m_frequencyStandby = frequency; + } + + template + qint32 CModulator::getVolumeOutput() const + { + return this->m_volumeOutput; + } + + template + qint32 CModulator::getVolumeInput() const + { + return this->m_volumeInput; + } + + template + void CModulator::setVolumeOutput(qint32 volume) + { + this->m_volumeOutput = volume; + } + + template + void CModulator::setVolumeInput(qint32 volume) + { + this->m_volumeInput = volume; + } + + template + bool CModulator::isEnabled() const + { + return this->m_enabled; + } + + template + void CModulator::setEnabled(bool enable) + { + this->m_enabled = enable; + } + + template + QString CModulator::getName() const + { + return this->m_name; + } + template CVariant CModulator::propertyByIndex(const CPropertyIndex &index) const { @@ -85,6 +157,14 @@ namespace BlackMisc } } + template + CModulator::CModulator() : + m_name("default") {} + + template + CModulator::CModulator(const QString &name, const BlackMisc::PhysicalQuantities::CFrequency &activeFrequency, const BlackMisc::PhysicalQuantities::CFrequency &standbyFrequency) : + m_name(name), m_frequencyActive(activeFrequency), m_frequencyStandby(standbyFrequency) {} + template QString CModulator::convertToQString(bool i18n) const { @@ -94,6 +174,108 @@ namespace BlackMisc return s; } + template + void CModulator::setFrequencyActiveKHz(double frequencyKHz) + { + this->m_frequencyActive = BlackMisc::PhysicalQuantities::CFrequency(frequencyKHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz()); + } + + template + void CModulator::setFrequencyStandbyKHz(double frequencyKHz) + { + this->m_frequencyStandby = BlackMisc::PhysicalQuantities::CFrequency(frequencyKHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz()); + } + + + template + void CModulator::setFrequencyActiveMHz(double frequencyMHz) + { + frequencyMHz = Math::CMathUtils::round(frequencyMHz, 3); + this->m_frequencyActive = BlackMisc::PhysicalQuantities::CFrequency(frequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()); + } + + template + void CModulator::setFrequencyStandbyMHz(double frequencyMHz) + { + frequencyMHz = Math::CMathUtils::round(frequencyMHz, 3); + this->m_frequencyStandby = BlackMisc::PhysicalQuantities::CFrequency(frequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()); + } + + template + const QString &CModulator::NameCom1() + { + static QString n("COM1"); + return n; + } + + template + const QString &CModulator::NameCom2() + { + static QString n("COM2"); + return n; + } + + template + const QString &CModulator::NameCom3() + { + static QString n("COM3"); + return n; + } + + template + const QString &CModulator::NameNav1() + { + static QString n("NAV1"); + return n; + } + + template + const QString &CModulator::NameNav2() + { + static QString n("NAV2"); + return n; + } + + template + const QString &CModulator::NameNav3() + { + static QString n("NAV3"); + return n; + } + + template + const QString &CModulator::NameAdf1() + { + static QString n("ADF1"); + return n; + } + + template + const QString &CModulator::NameAdf2() + { + static QString n("ADF2"); + return n; + } + + template + const BlackMisc::PhysicalQuantities::CFrequency &CModulator::FrequencyNotSet() + { + static BlackMisc::PhysicalQuantities::CFrequency f; + return f; + } + + template + AVIO const *CModulator::derived() const + { + return static_cast(this); + } + + template + AVIO *CModulator::derived() + { + return static_cast(this); + } + // see here for the reason of thess forward instantiations // http://www.parashift.com/c++-faq/separate-template-class-defn-from-decl.html template class CModulator; diff --git a/src/blackmisc/aviation/modulator.h b/src/blackmisc/aviation/modulator.h index 0024b69c5..7bab06479 100644 --- a/src/blackmisc/aviation/modulator.h +++ b/src/blackmisc/aviation/modulator.h @@ -38,58 +38,43 @@ namespace BlackMisc }; //! Default value? - virtual bool isDefaultValue() const - { - return (this->m_frequencyActive == FrequencyNotSet()); - } + virtual bool isDefaultValue() const; //! Toggle active and standby frequencies void toggleActiveStandby(); //! Active frequency - BlackMisc::PhysicalQuantities::CFrequency getFrequencyActive() const - { - return this->m_frequencyActive; - } + BlackMisc::PhysicalQuantities::CFrequency getFrequencyActive() const; //! Standby frequency - BlackMisc::PhysicalQuantities::CFrequency getFrequencyStandby() const - { - return this->m_frequencyStandby; - } + BlackMisc::PhysicalQuantities::CFrequency getFrequencyStandby() const; //! Set active frequency - virtual void setFrequencyActive(const BlackMisc::PhysicalQuantities::CFrequency &frequency) - { - this->m_frequencyActive = frequency; - } + virtual void setFrequencyActive(const BlackMisc::PhysicalQuantities::CFrequency &frequency); //! Set standby frequency - virtual void setFrequencyStandby(const BlackMisc::PhysicalQuantities::CFrequency &frequency) - { - this->m_frequencyStandby = frequency; - } + virtual void setFrequencyStandby(const BlackMisc::PhysicalQuantities::CFrequency &frequency); //! Output volume 0..100 - int getVolumeOutput() const { return this->m_volumeOutput; } + qint32 getVolumeOutput() const; //! Input volume 0..100 - int getVolumeInput() const { return this->m_volumeInput; } + qint32 getVolumeInput() const; //! Output volume 0.100 - void setVolumeOutput(int volume) { this->m_volumeOutput = volume; } + void setVolumeOutput(qint32 volume); //! Input volume 0..100 - void setVolumeInput(int volume) { this->m_volumeInput = volume; } + void setVolumeInput(qint32 volume); //! Name - QString getName() const { return this->m_name; } + QString getName() const; //! Enabled? - bool isEnabled() const { return this->m_enabled;} + bool isEnabled() const; //! Enabled? - void setEnabled(bool enable) { this->m_enabled = enable;} + void setEnabled(bool enable); //! Are set values valid? virtual bool validValues() const { return true; } @@ -105,100 +90,49 @@ namespace BlackMisc protected: //! Default constructor - CModulator() : m_name("default") {} + CModulator(); //! Constructor - CModulator(const QString &name, const BlackMisc::PhysicalQuantities::CFrequency &activeFrequency, const BlackMisc::PhysicalQuantities::CFrequency &standbyFrequency) : - m_name(name), m_frequencyActive(activeFrequency), m_frequencyStandby(standbyFrequency) {} + CModulator(const QString &name, const BlackMisc::PhysicalQuantities::CFrequency &activeFrequency, const BlackMisc::PhysicalQuantities::CFrequency &standbyFrequency); //! Set active frequency - void setFrequencyActiveKHz(double frequencyKHz) - { - this->m_frequencyActive = BlackMisc::PhysicalQuantities::CFrequency(frequencyKHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz()); - } + void setFrequencyActiveKHz(double frequencyKHz); //! Set standby frequency - void setFrequencyStandbyKHz(double frequencyKHz) - { - this->m_frequencyStandby = BlackMisc::PhysicalQuantities::CFrequency(frequencyKHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::kHz()); - } + void setFrequencyStandbyKHz(double frequencyKHz); //! Set active frequency - virtual void setFrequencyActiveMHz(double frequencyMHz) - { - frequencyMHz = Math::CMathUtils::round(frequencyMHz, 3); - this->m_frequencyActive = BlackMisc::PhysicalQuantities::CFrequency(frequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()); - } + virtual void setFrequencyActiveMHz(double frequencyMHz); //! Set standby frequency - virtual void setFrequencyStandbyMHz(double frequencyMHz) - { - frequencyMHz = Math::CMathUtils::round(frequencyMHz, 3); - this->m_frequencyStandby = BlackMisc::PhysicalQuantities::CFrequency(frequencyMHz, BlackMisc::PhysicalQuantities::CFrequencyUnit::MHz()); - } + virtual void setFrequencyStandbyMHz(double frequencyMHz); //! COM1 - static const QString &NameCom1() - { - static const QString n("COM1"); - return n; - } + static const QString &NameCom1(); //! COM2 - static const QString &NameCom2() - { - static const QString n("COM2"); - return n; - } + static const QString &NameCom2(); //! COM3 - static const QString &NameCom3() - { - static const QString n("COM3"); - return n; - } + static const QString &NameCom3(); //! NAV1 - static const QString &NameNav1() - { - static const QString n("NAV1"); - return n; - } + static const QString &NameNav1(); //! NAV2 - static const QString &NameNav2() - { - static const QString n("NAV2"); - return n; - } + static const QString &NameNav2(); //! NAV3 - static const QString &NameNav3() - { - static const QString n("NAV3"); - return n; - } + static const QString &NameNav3(); //! ADF1 - static const QString &NameAdf1() - { - static QString n("ADF1"); - return n; - } + static const QString &NameAdf1(); //! ADF2 - static const QString &NameAdf2() - { - static QString n("ADF2"); - return n; - } + static const QString &NameAdf2(); //! Frequency not set - static const BlackMisc::PhysicalQuantities::CFrequency &FrequencyNotSet() - { - static const BlackMisc::PhysicalQuantities::CFrequency f(0, BlackMisc::PhysicalQuantities::CFrequencyUnit::nullUnit()); - return f; - } + static const BlackMisc::PhysicalQuantities::CFrequency &FrequencyNotSet(); private: BLACK_ENABLE_TUPLE_CONVERSION(CModulator) @@ -210,11 +144,10 @@ namespace BlackMisc bool m_enabled = true; //!< is enabled, used e.g. for mute etc. //! Easy access to derived class (CRTP template parameter) - AVIO const *derived() const { return static_cast(this); } + AVIO const *derived() const; //! Easy access to derived class (CRTP template parameter) - AVIO *derived() { return static_cast(this); } - + AVIO *derived(); }; //! \cond PRIVATE