mirror of https://github.com/AxioDL/amuse.git
StudioSetupWidget: Move definition of EffectIntrospection into the cpp file
Nothing in the header file requires the complete definition, so we can use a forward declaration and move the type into the cpp file.
This commit is contained in:
parent
bfdb504457
commit
792199897c
|
@ -14,6 +14,28 @@
|
||||||
|
|
||||||
using namespace std::literals;
|
using namespace std::literals;
|
||||||
|
|
||||||
|
struct EffectIntrospection {
|
||||||
|
struct Field {
|
||||||
|
enum class Type {
|
||||||
|
Invalid,
|
||||||
|
UInt32,
|
||||||
|
UInt32x8,
|
||||||
|
Float,
|
||||||
|
};
|
||||||
|
|
||||||
|
Type m_tp{};
|
||||||
|
std::string_view m_name;
|
||||||
|
float m_min{};
|
||||||
|
float m_max{};
|
||||||
|
float m_default{};
|
||||||
|
};
|
||||||
|
amuse::EffectType m_tp;
|
||||||
|
std::string_view m_name;
|
||||||
|
std::string_view m_description;
|
||||||
|
std::array<Field, 7> m_fields;
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace {
|
||||||
constexpr EffectIntrospection ReverbStdIntrospective = {
|
constexpr EffectIntrospection ReverbStdIntrospective = {
|
||||||
amuse::EffectType::ReverbStd,
|
amuse::EffectType::ReverbStd,
|
||||||
"Reverb Std"sv,
|
"Reverb Std"sv,
|
||||||
|
@ -111,7 +133,7 @@ constexpr std::array<ChorusSetFunc, 3> ChorusSetters{
|
||||||
&amuse::EffectChorus::setPeriod,
|
&amuse::EffectChorus::setPeriod,
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr const EffectIntrospection* GetEffectIntrospection(amuse::EffectType type) {
|
constexpr const EffectIntrospection* GetEffectIntrospection(amuse::EffectType type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case amuse::EffectType::ReverbStd:
|
case amuse::EffectType::ReverbStd:
|
||||||
return &ReverbStdIntrospective;
|
return &ReverbStdIntrospective;
|
||||||
|
@ -127,7 +149,7 @@ static constexpr const EffectIntrospection* GetEffectIntrospection(amuse::Effect
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
static T GetEffectParm(const amuse::EffectBaseTypeless* effect, int idx, int chanIdx) {
|
T GetEffectParm(const amuse::EffectBaseTypeless* effect, int idx, int chanIdx) {
|
||||||
switch (effect->Isa()) {
|
switch (effect->Isa()) {
|
||||||
case amuse::EffectType::ReverbStd:
|
case amuse::EffectType::ReverbStd:
|
||||||
return (static_cast<const amuse::EffectReverbStdImp<float>*>(effect)->*ReverbStdGetters[idx])();
|
return (static_cast<const amuse::EffectReverbStdImp<float>*>(effect)->*ReverbStdGetters[idx])();
|
||||||
|
@ -143,7 +165,7 @@ static T GetEffectParm(const amuse::EffectBaseTypeless* effect, int idx, int cha
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
static void SetEffectParm(amuse::EffectBaseTypeless* effect, int idx, int chanIdx, T val) {
|
void SetEffectParm(amuse::EffectBaseTypeless* effect, int idx, int chanIdx, T val) {
|
||||||
switch (effect->Isa()) {
|
switch (effect->Isa()) {
|
||||||
case amuse::EffectType::ReverbStd:
|
case amuse::EffectType::ReverbStd:
|
||||||
(static_cast<amuse::EffectReverbStdImp<float>*>(effect)->*ReverbStdSetters[idx])(val);
|
(static_cast<amuse::EffectReverbStdImp<float>*>(effect)->*ReverbStdSetters[idx])(val);
|
||||||
|
@ -170,6 +192,21 @@ constexpr std::array<const char*, NumChanNames> ChanNames{
|
||||||
QT_TRANSLATE_NOOP("Uint32X8Popup", "Side Left"), QT_TRANSLATE_NOOP("Uint32X8Popup", "Side Right"),
|
QT_TRANSLATE_NOOP("Uint32X8Popup", "Side Left"), QT_TRANSLATE_NOOP("Uint32X8Popup", "Side Right"),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
constexpr std::array<const char*, 4> EffectStrings{
|
||||||
|
QT_TRANSLATE_NOOP("EffectCatalogue", "Reverb Standard"),
|
||||||
|
QT_TRANSLATE_NOOP("EffectCatalogue", "Reverb High"),
|
||||||
|
QT_TRANSLATE_NOOP("EffectCatalogue", "Delay"),
|
||||||
|
QT_TRANSLATE_NOOP("EffectCatalogue", "Chorus"),
|
||||||
|
};
|
||||||
|
|
||||||
|
constexpr std::array<const char*, 4> EffectDocStrings{
|
||||||
|
QT_TRANSLATE_NOOP("EffectCatalogue", "Reverb Standard"),
|
||||||
|
QT_TRANSLATE_NOOP("EffectCatalogue", "Reverb High"),
|
||||||
|
QT_TRANSLATE_NOOP("EffectCatalogue", "Delay"),
|
||||||
|
QT_TRANSLATE_NOOP("EffectCatalogue", "Chorus"),
|
||||||
|
};
|
||||||
|
} // Anonymous namespace
|
||||||
|
|
||||||
Uint32X8Popup::Uint32X8Popup(int min, int max, QWidget* parent) : QFrame(parent, Qt::Popup) {
|
Uint32X8Popup::Uint32X8Popup(int min, int max, QWidget* parent) : QFrame(parent, Qt::Popup) {
|
||||||
setAttribute(Qt::WA_WindowPropagation);
|
setAttribute(Qt::WA_WindowPropagation);
|
||||||
setAttribute(Qt::WA_X11NetWmWindowTypeCombo);
|
setAttribute(Qt::WA_X11NetWmWindowTypeCombo);
|
||||||
|
@ -714,20 +751,6 @@ EffectCatalogueItem::EffectCatalogueItem(const EffectCatalogueItem& other, QWidg
|
||||||
|
|
||||||
EffectCatalogueItem::~EffectCatalogueItem() = default;
|
EffectCatalogueItem::~EffectCatalogueItem() = default;
|
||||||
|
|
||||||
constexpr std::array<const char*, 4> EffectStrings{
|
|
||||||
QT_TRANSLATE_NOOP("EffectCatalogue", "Reverb Standard"),
|
|
||||||
QT_TRANSLATE_NOOP("EffectCatalogue", "Reverb High"),
|
|
||||||
QT_TRANSLATE_NOOP("EffectCatalogue", "Delay"),
|
|
||||||
QT_TRANSLATE_NOOP("EffectCatalogue", "Chorus"),
|
|
||||||
};
|
|
||||||
|
|
||||||
constexpr std::array<const char*, 4> EffectDocStrings{
|
|
||||||
QT_TRANSLATE_NOOP("EffectCatalogue", "Reverb Standard"),
|
|
||||||
QT_TRANSLATE_NOOP("EffectCatalogue", "Reverb High"),
|
|
||||||
QT_TRANSLATE_NOOP("EffectCatalogue", "Delay"),
|
|
||||||
QT_TRANSLATE_NOOP("EffectCatalogue", "Chorus"),
|
|
||||||
};
|
|
||||||
|
|
||||||
EffectCatalogue::EffectCatalogue(QWidget* parent) : QTreeWidget(parent) {
|
EffectCatalogue::EffectCatalogue(QWidget* parent) : QTreeWidget(parent) {
|
||||||
setSelectionMode(QAbstractItemView::NoSelection);
|
setSelectionMode(QAbstractItemView::NoSelection);
|
||||||
setColumnCount(1);
|
setColumnCount(1);
|
||||||
|
|
|
@ -17,8 +17,6 @@
|
||||||
|
|
||||||
#include "EditorWidget.hpp"
|
#include "EditorWidget.hpp"
|
||||||
|
|
||||||
class EffectListing;
|
|
||||||
|
|
||||||
namespace amuse {
|
namespace amuse {
|
||||||
class EffectBaseTypeless;
|
class EffectBaseTypeless;
|
||||||
class Studio;
|
class Studio;
|
||||||
|
@ -27,26 +25,9 @@ class Submix;
|
||||||
enum class EffectType;
|
enum class EffectType;
|
||||||
} // namespace amuse
|
} // namespace amuse
|
||||||
|
|
||||||
struct EffectIntrospection {
|
class EffectListing;
|
||||||
struct Field {
|
|
||||||
enum class Type {
|
|
||||||
Invalid,
|
|
||||||
UInt32,
|
|
||||||
UInt32x8,
|
|
||||||
Float,
|
|
||||||
};
|
|
||||||
|
|
||||||
Type m_tp{};
|
struct EffectIntrospection;
|
||||||
std::string_view m_name;
|
|
||||||
float m_min{};
|
|
||||||
float m_max{};
|
|
||||||
float m_default{};
|
|
||||||
};
|
|
||||||
amuse::EffectType m_tp;
|
|
||||||
std::string_view m_name;
|
|
||||||
std::string_view m_description;
|
|
||||||
std::array<Field, 7> m_fields;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Uint32X8Popup : public QFrame {
|
class Uint32X8Popup : public QFrame {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
Loading…
Reference in New Issue