Merge pull request #12 from lioncash/override

General: Make use of override where applicable
This commit is contained in:
Phillip Stephens 2019-08-24 23:47:53 -07:00 committed by GitHub
commit cbf331823f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 471 additions and 466 deletions

View File

@ -271,7 +271,7 @@ class ADSRAttackUndoCommand : public EditorUndoCommand {
public:
ADSRAttackUndoCommand(double redoVal, amuse::ObjToken<ProjectModel::ADSRNode> node)
: EditorUndoCommand(node.get(), ADSRControls::tr("Change Attack")), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
@ -283,7 +283,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
amuse::ADSRDLS& adsr = static_cast<amuse::ADSRDLS&>(table);
@ -297,14 +297,14 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id()) {
m_redoVal = static_cast<const ADSRAttackUndoCommand*>(other)->m_redoVal;
return true;
}
return false;
}
int id() const { return int(Id::ADSRAttack); }
int id() const override { return int(Id::ADSRAttack); }
};
void ADSRControls::attackChanged(double val) {
@ -322,7 +322,7 @@ class ADSRDecayUndoCommand : public EditorUndoCommand {
public:
ADSRDecayUndoCommand(double redoVal, amuse::ObjToken<ProjectModel::ADSRNode> node)
: EditorUndoCommand(node.get(), ADSRControls::tr("Change Decay")), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
@ -334,7 +334,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
amuse::ADSRDLS& adsr = static_cast<amuse::ADSRDLS&>(table);
@ -348,14 +348,14 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id()) {
m_redoVal = static_cast<const ADSRDecayUndoCommand*>(other)->m_redoVal;
return true;
}
return false;
}
int id() const { return int(Id::ADSRDecay); }
int id() const override { return int(Id::ADSRDecay); }
};
void ADSRControls::decayChanged(double val) {
@ -373,7 +373,7 @@ class ADSRSustainUndoCommand : public EditorUndoCommand {
public:
ADSRSustainUndoCommand(double redoVal, amuse::ObjToken<ProjectModel::ADSRNode> node)
: EditorUndoCommand(node.get(), ADSRControls::tr("Change Sustain")), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
@ -385,7 +385,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
amuse::ADSRDLS& adsr = static_cast<amuse::ADSRDLS&>(table);
@ -399,14 +399,14 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id()) {
m_redoVal = static_cast<const ADSRSustainUndoCommand*>(other)->m_redoVal;
return true;
}
return false;
}
int id() const { return int(Id::ADSRSustain); }
int id() const override { return int(Id::ADSRSustain); }
};
void ADSRControls::sustainChanged(double val) {
@ -430,7 +430,7 @@ public:
, m_redoAttack(redoAttack)
, m_redoDecay(redoDecay)
, m_cycleCount(cycleCount) {}
void undo() {
void undo() override {
m_undid = true;
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
@ -444,7 +444,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
amuse::ADSRDLS& adsr = static_cast<amuse::ADSRDLS&>(table);
@ -462,7 +462,7 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id() && m_cycleCount == static_cast<const ADSRAttackAndDecayUndoCommand*>(other)->m_cycleCount) {
m_redoAttack = static_cast<const ADSRAttackAndDecayUndoCommand*>(other)->m_redoAttack;
m_redoDecay = static_cast<const ADSRAttackAndDecayUndoCommand*>(other)->m_redoDecay;
@ -470,7 +470,7 @@ public:
}
return false;
}
int id() const { return int(Id::ADSRAttackAndDecay); }
int id() const override { return int(Id::ADSRAttackAndDecay); }
};
void ADSRControls::setAttackAndDecay(double attack, double decay, uint64_t cycleCount) {
@ -498,7 +498,7 @@ public:
, m_redoDecay(redoDecay)
, m_redoSustain(redoSustain)
, m_cycleCount(cycleCount) {}
void undo() {
void undo() override {
m_undid = true;
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
@ -512,7 +512,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
amuse::ADSRDLS& adsr = static_cast<amuse::ADSRDLS&>(table);
@ -530,7 +530,7 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id() &&
m_cycleCount == static_cast<const ADSRDecayAndSustainUndoCommand*>(other)->m_cycleCount) {
m_redoDecay = static_cast<const ADSRDecayAndSustainUndoCommand*>(other)->m_redoDecay;
@ -539,7 +539,7 @@ public:
}
return false;
}
int id() const { return int(Id::ADSRDecayAndSustain); }
int id() const override { return int(Id::ADSRDecayAndSustain); }
};
void ADSRControls::setDecayAndSustain(double decay, double sustain, uint64_t cycleCount) {
@ -562,7 +562,7 @@ class ADSRReleaseUndoCommand : public EditorUndoCommand {
public:
ADSRReleaseUndoCommand(double redoVal, uint64_t cycleCount, amuse::ObjToken<ProjectModel::ADSRNode> node)
: EditorUndoCommand(node.get(), ADSRControls::tr("Change Release")), m_redoVal(redoVal), m_cycleCount(cycleCount) {}
void undo() {
void undo() override {
m_undid = true;
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
@ -574,7 +574,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
amuse::ADSRDLS& adsr = static_cast<amuse::ADSRDLS&>(table);
@ -588,14 +588,14 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id() && m_cycleCount == static_cast<const ADSRReleaseUndoCommand*>(other)->m_cycleCount) {
m_redoVal = static_cast<const ADSRReleaseUndoCommand*>(other)->m_redoVal;
return true;
}
return false;
}
int id() const { return int(Id::ADSRRelease); }
int id() const override { return int(Id::ADSRRelease); }
};
void ADSRControls::setRelease(double release, uint64_t cycleCount) {
@ -648,7 +648,7 @@ public:
, m_redoVal(redoVal)
, m_redoVelToAttack(redoVelToAttack)
, m_redoKeyToDecay(redoKeyToDecay) {}
void undo() {
void undo() override {
m_undid = true;
std::unique_ptr<amuse::ITable>& table = *m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if ((table->Isa() == amuse::ITable::Type::ADSRDLS && !m_redoVal) ||
@ -666,7 +666,7 @@ public:
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
std::unique_ptr<amuse::ITable>& table = *m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if ((table->Isa() == amuse::ITable::Type::ADSRDLS && m_redoVal) ||
(table->Isa() == amuse::ITable::Type::ADSR && !m_redoVal))
@ -688,7 +688,7 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id()) {
m_redoVal = static_cast<const ADSRDLSUndoCommand*>(other)->m_redoVal;
m_redoVelToAttack = static_cast<const ADSRDLSUndoCommand*>(other)->m_redoVelToAttack;
@ -697,7 +697,7 @@ public:
}
return false;
}
int id() const { return int(Id::ADSRDLS); }
int id() const override { return int(Id::ADSRDLS); }
};
void ADSRControls::dlsStateChanged(int state) {
@ -721,7 +721,7 @@ class ADSRVelToAttackUndoCommand : public EditorUndoCommand {
public:
ADSRVelToAttackUndoCommand(double redoVal, amuse::ObjToken<ProjectModel::ADSRNode> node)
: EditorUndoCommand(node.get(), ADSRControls::tr("Change Vel To Attack")), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
@ -730,7 +730,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
amuse::ADSRDLS& adsr = static_cast<amuse::ADSRDLS&>(table);
@ -740,14 +740,14 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id()) {
m_redoVal = static_cast<const ADSRVelToAttackUndoCommand*>(other)->m_redoVal;
return true;
}
return false;
}
int id() const { return int(Id::ADSRVelToAttack); }
int id() const override { return int(Id::ADSRVelToAttack); }
};
void ADSRControls::velToAttackChanged(double val) {
@ -765,7 +765,7 @@ class ADSRKeyToDecayUndoCommand : public EditorUndoCommand {
public:
ADSRKeyToDecayUndoCommand(double redoVal, amuse::ObjToken<ProjectModel::ADSRNode> node)
: EditorUndoCommand(node.get(), ADSRControls::tr("Change Key To Decay")), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
@ -774,7 +774,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::ITable& table = **m_node.cast<ProjectModel::ADSRNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::ADSRDLS) {
amuse::ADSRDLS& adsr = static_cast<amuse::ADSRDLS&>(table);
@ -784,14 +784,14 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id()) {
m_redoVal = static_cast<const ADSRKeyToDecayUndoCommand*>(other)->m_redoVal;
return true;
}
return false;
}
int id() const { return int(Id::ADSRKeyToDecay); }
int id() const override { return int(Id::ADSRKeyToDecay); }
};
void ADSRControls::keyToDecayChanged(double val) {

View File

@ -27,10 +27,10 @@ public:
void unloadData();
ProjectModel::INode* currentNode() const;
void paintEvent(QPaintEvent* ev);
void mousePressEvent(QMouseEvent* ev);
void mouseReleaseEvent(QMouseEvent* ev);
void mouseMoveEvent(QMouseEvent* ev);
void paintEvent(QPaintEvent* ev) override;
void mousePressEvent(QMouseEvent* ev) override;
void mouseReleaseEvent(QMouseEvent* ev) override;
void mouseMoveEvent(QMouseEvent* ev) override;
};
class ADSRControls : public QFrame {
@ -75,6 +75,6 @@ class ADSREditor : public EditorWidget {
public:
explicit ADSREditor(QWidget* parent = Q_NULLPTR);
bool loadData(ProjectModel::ADSRNode* node);
void unloadData();
ProjectModel::INode* currentNode() const;
void unloadData() override;
ProjectModel::INode* currentNode() const override;
};

View File

@ -17,7 +17,7 @@ public:
: EditorUndoCommand(node.get(), CurveControls::tr("Edit Curve")), m_usedExpr(usedExpr) {
std::memcpy(m_redoData, redoData, 128);
}
void undo() {
void undo() override {
m_undid = true;
amuse::ITable& table = **m_node.cast<ProjectModel::CurveNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::Curve) {
@ -27,7 +27,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::ITable& table = **m_node.cast<ProjectModel::CurveNode>()->m_obj;
if (table.Isa() == amuse::ITable::Type::Curve) {
amuse::Curve& curve = static_cast<amuse::Curve&>(table);
@ -38,14 +38,14 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id() && !m_usedExpr && !static_cast<const CurveEditUndoCommand*>(other)->m_usedExpr) {
std::memcpy(m_redoData, static_cast<const CurveEditUndoCommand*>(other)->m_redoData, 128);
return true;
}
return false;
}
int id() const { return int(Id::CurveEdit); }
int id() const override { return int(Id::CurveEdit); }
};
CurveEditor* CurveView::getEditor() const { return qobject_cast<CurveEditor*>(parentWidget()); }

View File

@ -25,9 +25,9 @@ public:
void unloadData();
ProjectModel::INode* currentNode() const;
void paintEvent(QPaintEvent* ev);
void mousePressEvent(QMouseEvent* ev);
void mouseMoveEvent(QMouseEvent* ev);
void paintEvent(QPaintEvent* ev) override;
void mousePressEvent(QMouseEvent* ev) override;
void mouseMoveEvent(QMouseEvent* ev) override;
};
class CurveControls : public QFrame {
@ -43,7 +43,7 @@ public:
explicit CurveControls(QWidget* parent = Q_NULLPTR);
void loadData();
void unloadData();
void resizeEvent(QResizeEvent* ev);
void resizeEvent(QResizeEvent* ev) override;
public slots:
void exprCommit();
};
@ -58,6 +58,6 @@ class CurveEditor : public EditorWidget {
public:
explicit CurveEditor(QWidget* parent = Q_NULLPTR);
bool loadData(ProjectModel::CurveNode* node);
void unloadData();
ProjectModel::INode* currentNode() const;
void unloadData() override;
ProjectModel::INode* currentNode() const override;
};

View File

@ -53,8 +53,8 @@ protected:
public:
EditorUndoCommand(amuse::ObjToken<ProjectModel::INode> node, const QString& text, QUndoCommand* parent = nullptr)
: QUndoCommand(text, parent), m_node(node) {}
void undo();
void redo();
void undo() override;
void redo() override;
};
class FieldSpinBox : public QSpinBox {
@ -63,7 +63,7 @@ public:
explicit FieldSpinBox(QWidget* parent = Q_NULLPTR) : QSpinBox(parent) {}
/* Don't scroll */
void wheelEvent(QWheelEvent* event) { event->ignore(); }
void wheelEvent(QWheelEvent* event) override { event->ignore(); }
};
class FieldSlider : public QWidget {
@ -75,7 +75,7 @@ public:
explicit FieldSlider(QWidget* parent = Q_NULLPTR);
/* Don't scroll */
void wheelEvent(QWheelEvent* event) { event->ignore(); }
void wheelEvent(QWheelEvent* event) override { event->ignore(); }
int value() const { return m_slider.value(); }
void setValue(int value) {
@ -101,7 +101,7 @@ public:
explicit FieldDoubleSlider(QWidget* parent = Q_NULLPTR);
/* Don't scroll */
void wheelEvent(QWheelEvent* event) { event->ignore(); }
void wheelEvent(QWheelEvent* event) override { event->ignore(); }
double value() const;
void setValue(double value);
@ -119,7 +119,7 @@ public:
explicit FieldComboBox(QWidget* parent = Q_NULLPTR) : QComboBox(parent) {}
/* Don't scroll */
void wheelEvent(QWheelEvent* event) { event->ignore(); }
void wheelEvent(QWheelEvent* event) override { event->ignore(); }
};
class FieldProjectNode : public QWidget {
@ -136,7 +136,7 @@ public:
void setCurrentIndex(int index) { m_comboBox.setCurrentIndex(index); }
void showPopup() { m_comboBox.showPopup(); }
ProjectModel::BasePoolObjectNode* currentNode() const;
bool event(QEvent* ev);
bool event(QEvent* ev) override;
private slots:
void _currentIndexChanged(int);
public slots:
@ -160,7 +160,7 @@ public:
QModelIndex rootModelIndex() const { return m_comboBox.rootModelIndex(); }
void showPopup() { m_comboBox.showPopup(); }
ProjectModel::BasePoolObjectNode* currentNode() const;
bool event(QEvent* ev);
bool event(QEvent* ev) override;
private slots:
void _currentIndexChanged(int);
public slots:
@ -188,7 +188,7 @@ using EditorFieldPageObjectNode = EditorFieldNode<FieldPageObjectNode>;
template <int MIN, int MAX>
class RangedValueFactory : public QItemEditorFactory {
public:
QWidget* createEditor(int userType, QWidget* parent) const {
QWidget* createEditor(int userType, QWidget* parent) const override {
QSpinBox* sb = new QSpinBox(parent);
sb->setFrame(false);
sb->setMinimum(MIN);
@ -214,13 +214,13 @@ class ListingDeleteButton : public QPushButton {
Q_OBJECT
public:
explicit ListingDeleteButton(QWidget* parent = Q_NULLPTR);
void enterEvent(QEvent* event);
void leaveEvent(QEvent* event);
void enterEvent(QEvent* event) override;
void leaveEvent(QEvent* event) override;
};
class ContextMenu : public QMenu {
public:
void hideEvent(QHideEvent* ev) {
void hideEvent(QHideEvent* ev) override {
QMenu::hideEvent(ev);
deleteLater();
}
@ -234,7 +234,7 @@ protected:
public:
explicit BaseObjectDelegate(QObject* parent = Q_NULLPTR) : QStyledItemDelegate(parent) {}
bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option,
const QModelIndex& index);
const QModelIndex& index) override;
private slots:
void doOpenEditor();
void doFindUsages();

View File

@ -26,7 +26,7 @@ public:
explicit KeyboardOctave(int octave, const QString& svgPath, QWidget* parent = Q_NULLPTR);
int getOctave() const { return m_octave; }
int getKey(const QPoint& localPos) const;
void resizeEvent(QResizeEvent* event);
void resizeEvent(QResizeEvent* event) override;
};
class KeyboardWidget : public QWidget {
@ -47,13 +47,13 @@ public:
explicit KeyboardWidget(QWidget* parent = Q_NULLPTR);
void setStatusFocus(StatusBarFocus* statusFocus) { m_statusFocus = statusFocus; }
void mouseMoveEvent(QMouseEvent* event);
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void enterEvent(QEvent* event);
void leaveEvent(QEvent* event);
void wheelEvent(QWheelEvent* event);
void showEvent(QShowEvent* event);
void mouseMoveEvent(QMouseEvent* event) override;
void mousePressEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override;
void enterEvent(QEvent* event) override;
void leaveEvent(QEvent* event) override;
void wheelEvent(QWheelEvent* event) override;
void showEvent(QShowEvent* event) override;
signals:
void notePressed(int key);
@ -68,15 +68,15 @@ protected:
public:
explicit KeyboardSlider(QWidget* parent = Q_NULLPTR);
void enterEvent(QEvent* event);
void leaveEvent(QEvent* event);
void enterEvent(QEvent* event) override;
void leaveEvent(QEvent* event) override;
void setStatusFocus(StatusBarFocus* statusFocus);
void sliderChange(SliderChange change);
void sliderChange(SliderChange change) override;
};
class VelocitySlider : public KeyboardSlider {
Q_OBJECT
QString stringOfValue(int value) const;
QString stringOfValue(int value) const override;
public:
explicit VelocitySlider(QWidget* parent = Q_NULLPTR);
@ -84,7 +84,7 @@ public:
class ModulationSlider : public KeyboardSlider {
Q_OBJECT
QString stringOfValue(int value) const;
QString stringOfValue(int value) const override;
public:
explicit ModulationSlider(QWidget* parent = Q_NULLPTR);
@ -92,10 +92,10 @@ public:
class PitchSlider : public KeyboardSlider {
Q_OBJECT
QString stringOfValue(int value) const;
QString stringOfValue(int value) const override;
public:
explicit PitchSlider(QWidget* parent = Q_NULLPTR);
void mouseReleaseEvent(QMouseEvent* ev);
void wheelEvent(QWheelEvent* ev) { ev->ignore(); }
void mouseReleaseEvent(QMouseEvent* ev) override;
void wheelEvent(QWheelEvent* ev) override { ev->ignore(); }
};

View File

@ -17,10 +17,10 @@ class PaintButton : public QPushButton {
Q_OBJECT
public:
explicit PaintButton(QWidget* parent = Q_NULLPTR);
void mouseReleaseEvent(QMouseEvent* event) { event->ignore(); }
void mouseMoveEvent(QMouseEvent* event) { event->ignore(); }
void focusOutEvent(QFocusEvent* event) { event->ignore(); }
void keyPressEvent(QKeyEvent* event) { event->ignore(); }
void mouseReleaseEvent(QMouseEvent* event) override { event->ignore(); }
void mouseMoveEvent(QMouseEvent* event) override { event->ignore(); }
void focusOutEvent(QFocusEvent* event) override { event->ignore(); }
void keyPressEvent(QKeyEvent* event) override { event->ignore(); }
};
class KeymapView : public QWidget {
@ -47,10 +47,10 @@ public:
void unloadData();
ProjectModel::INode* currentNode() const;
void paintEvent(QPaintEvent* ev);
void mousePressEvent(QMouseEvent* ev);
void mouseMoveEvent(QMouseEvent* ev);
void wheelEvent(QWheelEvent* event);
void paintEvent(QPaintEvent* ev) override;
void mousePressEvent(QMouseEvent* ev) override;
void mouseMoveEvent(QMouseEvent* ev) override;
void wheelEvent(QWheelEvent* event) override;
};
class KeymapControls : public QFrame {
@ -99,7 +99,7 @@ class KeymapEditor : public EditorWidget {
public:
explicit KeymapEditor(QWidget* parent = Q_NULLPTR);
bool loadData(ProjectModel::KeymapNode* node);
void unloadData();
ProjectModel::INode* currentNode() const;
void keyPressEvent(QKeyEvent* event);
void unloadData() override;
ProjectModel::INode* currentNode() const override;
void keyPressEvent(QKeyEvent* event) override;
};

View File

@ -13,7 +13,7 @@ public:
explicit LayerDataChangeUndoCommand(ProjectModel::LayersNode* node, const QString& text, QModelIndex index,
int redoVal)
: EditorUndoCommand(node, text), m_index(index), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
amuse::LayerMapping& layer = (*static_cast<ProjectModel::LayersNode*>(m_node.get())->m_obj)[m_index.row()];
@ -48,7 +48,7 @@ public:
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::LayerMapping& layer = (*static_cast<ProjectModel::LayersNode*>(m_node.get())->m_obj)[m_index.row()];
switch (m_index.column()) {
@ -301,7 +301,7 @@ public:
explicit LayerRowMoveCommand(ProjectModel::LayersNode* node, const QString& text, LayersTableView* view, int undoPos,
int redoPos, int count)
: EditorUndoCommand(node, text), m_view(view), m_undoPos(undoPos), m_redoPos(redoPos), m_count(count) {}
void undo() {
void undo() override {
m_undid = true;
EditorUndoCommand::undo();
if (m_redoPos > m_undoPos)
@ -309,7 +309,7 @@ public:
else
m_view->model()->moveRows(QModelIndex(), m_redoPos, m_count, QModelIndex(), m_undoPos + 1);
}
void redo() {
void redo() override {
if (m_undid)
EditorUndoCommand::redo();
m_view->model()->moveRows(QModelIndex(), m_undoPos, m_count, QModelIndex(), m_redoPos);
@ -385,11 +385,11 @@ protected:
it->first = static_cast<LayersModel*>(m_view->model())->_removeRow(it->second);
}
}
void undo() {
void undo() override {
m_undid = true;
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
if (m_undid)
EditorUndoCommand::redo();
}
@ -407,11 +407,11 @@ public:
explicit LayerRowAddUndoCommand(ProjectModel::LayersNode* node, const QString& text, LayersTableView* view,
std::vector<std::pair<amuse::LayerMapping, int>>&& data)
: LayerRowUndoCommand(node, text, view, std::move(data)) {}
void undo() {
void undo() override {
base::undo();
base::del();
}
void redo() {
void redo() override {
base::redo();
base::add();
}
@ -424,11 +424,11 @@ public:
explicit LayerRowDelUndoCommand(ProjectModel::LayersNode* node, const QString& text, LayersTableView* view,
std::vector<std::pair<amuse::LayerMapping, int>>&& data)
: LayerRowUndoCommand(node, text, view, std::move(data)) {}
void undo() {
void undo() override {
base::undo();
base::add();
}
void redo() {
void redo() override {
base::redo();
base::del();
}

View File

@ -10,13 +10,13 @@
class SoundMacroDelegate : public BaseObjectDelegate {
Q_OBJECT
protected:
ProjectModel::INode* getNode(const QAbstractItemModel* model, const QModelIndex& index) const;
ProjectModel::INode* getNode(const QAbstractItemModel* model, const QModelIndex& index) const override;
public:
explicit SoundMacroDelegate(QObject* parent = Q_NULLPTR);
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
void setEditorData(QWidget* editor, const QModelIndex& index) const;
void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
void setEditorData(QWidget* editor, const QModelIndex& index) const override;
void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
private slots:
void smIndexChanged();
};
@ -33,20 +33,21 @@ public:
void loadData(ProjectModel::LayersNode* node);
void unloadData();
int rowCount(const QModelIndex& parent = QModelIndex()) const;
int columnCount(const QModelIndex& parent = QModelIndex()) const;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
Qt::ItemFlags flags(const QModelIndex& index) const;
Qt::DropActions supportedDropActions() const;
Qt::DropActions supportedDragActions() const;
bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent);
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
Qt::DropActions supportedDropActions() const override;
Qt::DropActions supportedDragActions() const override;
bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column,
const QModelIndex& parent) override;
bool insertRows(int row, int count, const QModelIndex& parent = QModelIndex());
bool insertRows(int row, int count, const QModelIndex& parent = QModelIndex()) override;
bool moveRows(const QModelIndex& sourceParent, int sourceRow, int count, const QModelIndex& destinationParent,
int destinationChild);
bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex());
int destinationChild) override;
bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex()) override;
void _insertRow(int row, const amuse::LayerMapping& data);
amuse::LayerMapping _removeRow(int row);
@ -61,7 +62,7 @@ class LayersTableView : public QTableView {
public:
explicit LayersTableView(QWidget* parent = Q_NULLPTR);
void setModel(QAbstractItemModel* model);
void setModel(QAbstractItemModel* model) override;
void deleteSelection();
};
@ -75,14 +76,14 @@ class LayersEditor : public EditorWidget {
public:
explicit LayersEditor(QWidget* parent = Q_NULLPTR);
bool loadData(ProjectModel::LayersNode* node);
void unloadData();
ProjectModel::INode* currentNode() const;
void resizeEvent(QResizeEvent* ev);
AmuseItemEditFlags itemEditFlags() const;
void unloadData() override;
ProjectModel::INode* currentNode() const override;
void resizeEvent(QResizeEvent* ev) override;
AmuseItemEditFlags itemEditFlags() const override;
private slots:
void rowsInserted(const QModelIndex& parent, int first, int last);
void rowsMoved(const QModelIndex& parent, int start, int end, const QModelIndex& destination, int row);
void doAdd();
void doSelectionChanged();
void itemDeleteAction();
void itemDeleteAction() override;
};

View File

@ -13,36 +13,36 @@ class MIDIReader : public amuse::BooBackendMIDIReader {
public:
MIDIReader(amuse::Engine& engine, bool useLock);
void noteOff(uint8_t chan, uint8_t key, uint8_t velocity);
void noteOn(uint8_t chan, uint8_t key, uint8_t velocity);
void notePressure(uint8_t chan, uint8_t key, uint8_t pressure);
void controlChange(uint8_t chan, uint8_t control, uint8_t value);
void programChange(uint8_t chan, uint8_t program);
void channelPressure(uint8_t chan, uint8_t pressure);
void pitchBend(uint8_t chan, int16_t pitch);
void noteOff(uint8_t chan, uint8_t key, uint8_t velocity) override;
void noteOn(uint8_t chan, uint8_t key, uint8_t velocity) override;
void notePressure(uint8_t chan, uint8_t key, uint8_t pressure) override;
void controlChange(uint8_t chan, uint8_t control, uint8_t value) override;
void programChange(uint8_t chan, uint8_t program) override;
void channelPressure(uint8_t chan, uint8_t pressure) override;
void pitchBend(uint8_t chan, int16_t pitch) override;
void allSoundOff(uint8_t chan);
void resetAllControllers(uint8_t chan);
void localControl(uint8_t chan, bool on);
void allNotesOff(uint8_t chan);
void omniMode(uint8_t chan, bool on);
void polyMode(uint8_t chan, bool on);
void allSoundOff(uint8_t chan) override;
void resetAllControllers(uint8_t chan) override;
void localControl(uint8_t chan, bool on) override;
void allNotesOff(uint8_t chan) override;
void omniMode(uint8_t chan, bool on) override;
void polyMode(uint8_t chan, bool on) override;
void sysex(const void* data, size_t len);
void timeCodeQuarterFrame(uint8_t message, uint8_t value);
void songPositionPointer(uint16_t pointer);
void songSelect(uint8_t song);
void tuneRequest();
void sysex(const void* data, size_t len) override;
void timeCodeQuarterFrame(uint8_t message, uint8_t value) override;
void songPositionPointer(uint16_t pointer) override;
void songSelect(uint8_t song) override;
void tuneRequest() override;
void startSeq();
void continueSeq();
void stopSeq();
void startSeq() override;
void continueSeq() override;
void stopSeq() override;
void reset();
void reset() override;
};
class VoiceAllocator : public amuse::BooBackendVoiceAllocator {
public:
VoiceAllocator(boo::IAudioVoiceEngine& booEngine);
std::unique_ptr<amuse::IMIDIReader> allocateMIDIReader(amuse::Engine& engine);
std::unique_ptr<amuse::IMIDIReader> allocateMIDIReader(amuse::Engine& engine) override;
};

View File

@ -75,7 +75,7 @@ public:
: QStyledItemDelegate(parent), m_window(window) {}
bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option,
const QModelIndex& index);
const QModelIndex& index) override;
public slots:
void doExportGroup();
void doFindUsages();
@ -153,10 +153,10 @@ class MainWindow : public QMainWindow {
bool setProjectPath(const QString& path);
void refreshAudioIO();
void refreshMIDIIO();
void timerEvent(QTimerEvent* ev);
void timerEvent(QTimerEvent* ev) override;
void setSustain(bool sustain);
void keyPressEvent(QKeyEvent* ev);
void keyReleaseEvent(QKeyEvent* ev);
void keyPressEvent(QKeyEvent* ev) override;
void keyReleaseEvent(QKeyEvent* ev) override;
void startBackgroundTask(int id, const QString& windowTitle, const QString& label,
std::function<void(BackgroundTask&)>&& task);
@ -165,7 +165,7 @@ class MainWindow : public QMainWindow {
public:
explicit MainWindow(QWidget* parent = Q_NULLPTR);
~MainWindow();
~MainWindow() override;
bool openProject(const QString& path);
@ -190,8 +190,8 @@ public:
void updateFocus();
void aboutToDeleteNode(ProjectModel::INode* node);
bool askAboutSave();
void closeEvent(QCloseEvent* ev);
void showEvent(QShowEvent* ev);
void closeEvent(QCloseEvent* ev) override;
void showEvent(QShowEvent* ev) override;
QString getGroupName(ProjectModel::GroupNode* group) const;
ProjectModel::GroupNode* getSelectedGroupNode() const;

View File

@ -1019,8 +1019,8 @@ class RenameNodeUndoCommand : public EditorUndoCommand {
public:
RenameNodeUndoCommand(const QString& text, ProjectModel::INode* node, const QString& redoVal)
: EditorUndoCommand(node, text.arg(node->name())), m_redoVal(redoVal) {}
void undo() { g_MainWindow->projectModel()->_renameNode(m_node.get(), m_undoVal); }
void redo() {
void undo() override { g_MainWindow->projectModel()->_renameNode(m_node.get(), m_undoVal); }
void redo() override {
m_undoVal = m_node->name();
g_MainWindow->projectModel()->_renameNode(m_node.get(), m_redoVal);
}
@ -1160,8 +1160,8 @@ public:
explicit GroupNodeAddUndoCommand(const QString& text, std::unique_ptr<amuse::AudioGroupDatabase>&& data,
ProjectModel::GroupNode* node)
: GroupNodeUndoCommand(text, std::move(data), node) {}
void undo() { base::del(); }
void redo() { base::add(); }
void undo() override { base::del(); }
void redo() override { base::add(); }
};
class GroupNodeDelUndoCommand : public GroupNodeUndoCommand {
@ -1170,8 +1170,8 @@ class GroupNodeDelUndoCommand : public GroupNodeUndoCommand {
public:
explicit GroupNodeDelUndoCommand(const QString& text, ProjectModel::GroupNode* node)
: GroupNodeUndoCommand(text, {}, node) {}
void undo() { base::add(); }
void redo() { base::del(); }
void undo() override { base::add(); }
void redo() override { base::del(); }
};
void ProjectModel::_addNode(GroupNode* node, std::unique_ptr<amuse::AudioGroupDatabase>&& data,
@ -1235,8 +1235,8 @@ class NodeAddUndoCommand : public NodeUndoCommand<NT> {
public:
explicit NodeAddUndoCommand(const QString& text, NT* node, ProjectModel::GroupNode* parent)
: NodeUndoCommand<NT>(text, node, parent) {}
void undo() { base::del(); }
void redo() { base::add(); }
void undo() override { base::del(); }
void redo() override { base::add(); }
};
template <class NT>
@ -1246,8 +1246,8 @@ class NodeDelUndoCommand : public NodeUndoCommand<NT> {
public:
explicit NodeDelUndoCommand(const QString& text, NT* node)
: NodeUndoCommand<NT>(text, node, g_MainWindow->projectModel()->getGroupNode(node)) {}
void undo() { base::add(); }
void redo() { base::del(); }
void undo() override { base::add(); }
void redo() override { base::del(); }
};
template <class NT, class T>

View File

@ -35,31 +35,31 @@ public:
explicit OutlineFilterProxyModel(ProjectModel* source);
public slots:
void setFilterRegExp(const QString& pattern);
bool filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const;
bool filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const override;
};
class NullItemProxyModel : public QIdentityProxyModel {
Q_OBJECT
public:
explicit NullItemProxyModel(ProjectModel* source);
QModelIndex mapFromSource(const QModelIndex& sourceIndex) const;
QModelIndex mapToSource(const QModelIndex& proxyIndex) const;
int rowCount(const QModelIndex& parent) const;
QModelIndex index(int row, int column, const QModelIndex& parent) const;
QVariant data(const QModelIndex& proxyIndex, int role) const;
QModelIndex mapFromSource(const QModelIndex& sourceIndex) const override;
QModelIndex mapToSource(const QModelIndex& proxyIndex) const override;
int rowCount(const QModelIndex& parent) const override;
QModelIndex index(int row, int column, const QModelIndex& parent) const override;
QVariant data(const QModelIndex& proxyIndex, int role) const override;
};
class PageObjectProxyModel : public QIdentityProxyModel {
Q_OBJECT
public:
explicit PageObjectProxyModel(ProjectModel* source);
QModelIndex mapFromSource(const QModelIndex& sourceIndex) const;
QModelIndex mapToSource(const QModelIndex& proxyIndex) const;
QModelIndex parent(const QModelIndex& child) const;
int rowCount(const QModelIndex& parent) const;
QModelIndex index(int row, int column, const QModelIndex& parent) const;
QVariant data(const QModelIndex& proxyIndex, int role) const;
Qt::ItemFlags flags(const QModelIndex& proxyIndex) const;
QModelIndex mapFromSource(const QModelIndex& sourceIndex) const override;
QModelIndex mapToSource(const QModelIndex& proxyIndex) const override;
QModelIndex parent(const QModelIndex& child) const override;
int rowCount(const QModelIndex& parent) const override;
QModelIndex index(int row, int column, const QModelIndex& parent) const override;
QVariant data(const QModelIndex& proxyIndex, int role) const override;
Qt::ItemFlags flags(const QModelIndex& proxyIndex) const override;
};
class ProjectModel : public QAbstractItemModel {
@ -124,7 +124,7 @@ public:
amuse::IObjToken<INode> m_nullChild;
public:
virtual ~INode() = default;
~INode() override = default;
INode(const QString& name);
INode(INode* parent) : m_parent(parent), m_row(0) { /* ONLY USED BY NULL NODE! */
}
@ -221,17 +221,17 @@ public:
struct NullNode final : INode {
NullNode(INode* parent) : INode(parent) {}
Type type() const { return Type::Null; }
QString text() const { return {}; }
QIcon icon() const { return {}; }
Type type() const override { return Type::Null; }
QString text() const override { return {}; }
QIcon icon() const override { return {}; }
};
struct RootNode final : INode {
RootNode() : INode(QStringLiteral("<root>")) {}
Type type() const { return Type::Root; }
QString text() const { return {}; }
QIcon icon() const { return {}; }
Qt::ItemFlags flags() const { return Qt::ItemIsEnabled; }
Type type() const override { return Type::Root; }
QString text() const override { return {}; }
QIcon icon() const override { return {}; }
Qt::ItemFlags flags() const override { return Qt::ItemIsEnabled; }
};
struct CollectionNode;
struct BasePoolObjectNode;
@ -241,14 +241,14 @@ public:
GroupNode(std::unordered_map<QString, std::unique_ptr<amuse::AudioGroupDatabase>>::iterator it)
: INode(it->first), m_it(it) {}
int hypotheticalIndex(const QString& name) const;
void _sortChildren();
int hypotheticalIndex(const QString& name) const override;
void _sortChildren() override;
static QIcon Icon;
Type type() const { return Type::Group; }
QString text() const { return m_name; }
QIcon icon() const { return Icon; }
AmuseItemEditFlags editFlags() const { return AmuseItemNoCut; }
Type type() const override { return Type::Group; }
QString text() const override { return m_name; }
QIcon icon() const override { return Icon; }
AmuseItemEditFlags editFlags() const override { return AmuseItemNoCut; }
CollectionNode* getCollectionOfType(Type tp) const;
amuse::AudioGroupDatabase* getAudioGroup() const { return m_it->second.get(); }
@ -262,19 +262,19 @@ public:
: INode(amuse::GroupId::CurNameDB->resolveNameFromId(id).data()), m_id(id), m_index(index) {}
static QIcon Icon;
Type type() const { return Type::SongGroup; }
QString text() const { return m_name; }
QIcon icon() const { return Icon; }
AmuseItemEditFlags editFlags() const { return AmuseItemAll; }
Type type() const override { return Type::SongGroup; }
QString text() const override { return m_name; }
QIcon icon() const override { return Icon; }
AmuseItemEditFlags editFlags() const override { return AmuseItemAll; }
amuse::NameDB* getNameDb() const { return amuse::GroupId::CurNameDB; }
amuse::NameDB* getNameDb() const override { return amuse::GroupId::CurNameDB; }
void registerNames(const NameUndoRegistry& registry) const {
void registerNames(const NameUndoRegistry& registry) const override {
amuse::GroupId::CurNameDB->registerPair(text().toUtf8().data(), m_id);
for (auto& p : m_index->m_midiSetups)
registry.registerSongName(p.first);
}
void unregisterNames(NameUndoRegistry& registry) const {
void unregisterNames(NameUndoRegistry& registry) const override {
amuse::GroupId::CurNameDB->remove(m_id);
for (auto& p : m_index->m_midiSetups)
registry.unregisterSongName(p.first);
@ -288,19 +288,19 @@ public:
: INode(amuse::GroupId::CurNameDB->resolveNameFromId(id).data()), m_id(id), m_index(index) {}
static QIcon Icon;
Type type() const { return Type::SoundGroup; }
QString text() const { return m_name; }
QIcon icon() const { return Icon; }
AmuseItemEditFlags editFlags() const { return AmuseItemAll; }
Type type() const override { return Type::SoundGroup; }
QString text() const override { return m_name; }
QIcon icon() const override { return Icon; }
AmuseItemEditFlags editFlags() const override { return AmuseItemAll; }
amuse::NameDB* getNameDb() const { return amuse::GroupId::CurNameDB; }
amuse::NameDB* getNameDb() const override { return amuse::GroupId::CurNameDB; }
void registerNames(const NameUndoRegistry& registry) const {
void registerNames(const NameUndoRegistry& registry) const override {
amuse::GroupId::CurNameDB->registerPair(text().toUtf8().data(), m_id);
for (auto& p : m_index->m_sfxEntries)
registry.registerSFXName(p.first);
}
void unregisterNames(NameUndoRegistry& registry) const {
void unregisterNames(NameUndoRegistry& registry) const override {
amuse::GroupId::CurNameDB->remove(m_id);
for (auto& p : m_index->m_sfxEntries)
registry.unregisterSFXName(p.first);
@ -312,10 +312,10 @@ public:
CollectionNode(const QString& name, const QIcon& icon, Type collectionType)
: INode(name), m_icon(icon), m_collectionType(collectionType) {}
Type type() const { return Type::Collection; }
QString text() const { return m_name; }
QIcon icon() const { return m_icon; }
Qt::ItemFlags flags() const { return Qt::ItemIsEnabled; }
Type type() const override { return Type::Collection; }
QString text() const override { return m_name; }
QIcon icon() const override { return m_icon; }
Qt::ItemFlags flags() const override { return Qt::ItemIsEnabled; }
Type collectionType() const { return m_collectionType; }
int indexOfId(amuse::ObjectId id) const;
@ -328,8 +328,8 @@ public:
BasePoolObjectNode(const QString& name) : INode(name) {}
BasePoolObjectNode(amuse::ObjectId id, const QString& name) : INode(name), m_id(id) {}
amuse::ObjectId id() const { return m_id; }
QString text() const { return m_name; }
QIcon icon() const { return {}; }
QString text() const override { return m_name; }
QIcon icon() const override { return {}; }
};
template <class ID, class T, INode::Type TP>
struct PoolObjectNode final : BasePoolObjectNode {
@ -338,14 +338,14 @@ public:
PoolObjectNode(ID id, amuse::ObjToken<T> obj)
: BasePoolObjectNode(id, ID::CurNameDB->resolveNameFromId(id).data()), m_obj(obj) {}
Type type() const { return TP; }
AmuseItemEditFlags editFlags() const { return TP == INode::Type::Sample ? AmuseItemNoCut : AmuseItemAll; }
Type type() const override { return TP; }
AmuseItemEditFlags editFlags() const override { return TP == INode::Type::Sample ? AmuseItemNoCut : AmuseItemAll; }
void registerNames(const NameUndoRegistry& registry) const {
void registerNames(const NameUndoRegistry& registry) const override {
ID::CurNameDB->registerPair(text().toUtf8().data(), m_id);
}
void unregisterNames(NameUndoRegistry& registry) const { ID::CurNameDB->remove(m_id); }
amuse::NameDB* getNameDb() const { return ID::CurNameDB; }
void unregisterNames(NameUndoRegistry& registry) const override { ID::CurNameDB->remove(m_id); }
amuse::NameDB* getNameDb() const override { return ID::CurNameDB; }
};
using SoundMacroNode = PoolObjectNode<amuse::SoundMacroId, amuse::SoundMacro, INode::Type::SoundMacro>;
using ADSRNode = PoolObjectNode<amuse::TableId, std::unique_ptr<amuse::ITable>, INode::Type::ADSR>;
@ -385,14 +385,14 @@ public:
bool ensureModelData();
QModelIndex proxyCreateIndex(int arow, int acolumn, void* adata) const;
QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const;
QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override;
QModelIndex index(INode* node) const;
QModelIndex parent(const QModelIndex& child) const;
int rowCount(const QModelIndex& parent = QModelIndex()) const;
int columnCount(const QModelIndex& parent = QModelIndex()) const;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
Qt::ItemFlags flags(const QModelIndex& index) const;
QModelIndex parent(const QModelIndex& child) const override;
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
INode* node(const QModelIndex& index) const;
GroupNode* getGroupNode(INode* node) const;
AmuseItemEditFlags editFlags(const QModelIndex& index) const;
@ -439,9 +439,10 @@ public:
template <class NT>
void loadMimeData(const QMimeData* data, const QString& mimeType, GroupNode* gn);
QStringList mimeTypes() const;
QMimeData* mimeData(const QModelIndexList& indexes) const;
bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent);
QStringList mimeTypes() const override;
QMimeData* mimeData(const QModelIndexList& indexes) const override;
bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column,
const QModelIndex& parent) override;
void cut(const QModelIndex& index);
void copy(const QModelIndex& index);

View File

@ -406,7 +406,7 @@ public:
, m_redoStartVal(redoStart)
, m_redoEndVal(redoEnd)
, m_fieldIdx(fieldIdx) {}
void undo() {
void undo() override {
m_undid = true;
amuse::SampleEntryData* data = m_node.cast<ProjectModel::SampleNode>()->m_obj->m_data.get();
data->setLoopStartSample(m_undoStartVal);
@ -415,7 +415,7 @@ public:
if (SampleEditor* e = static_cast<SampleEditor*>(g_MainWindow->getEditorWidget()))
e->m_controls->doFileWrite();
}
void redo() {
void redo() override {
amuse::SampleEntryData* data = m_node.cast<ProjectModel::SampleNode>()->m_obj->m_data.get();
m_undoStartVal = data->getLoopStartSample();
m_undoEndVal = data->getLoopEndSample();
@ -427,7 +427,7 @@ public:
e->m_controls->doFileWrite();
}
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id() && static_cast<const SampLoopUndoCommand*>(other)->m_fieldIdx == m_fieldIdx) {
m_redoStartVal = static_cast<const SampLoopUndoCommand*>(other)->m_redoStartVal;
m_redoEndVal = static_cast<const SampLoopUndoCommand*>(other)->m_redoEndVal;
@ -435,7 +435,7 @@ public:
}
return false;
}
int id() const { return int(Id::SampLoop); }
int id() const override { return int(Id::SampLoop); }
};
void SampleControls::loopStateChanged(int state) {
@ -508,7 +508,7 @@ class SampPitchUndoCommand : public EditorUndoCommand {
public:
SampPitchUndoCommand(atUint8 redoPitch, amuse::ObjToken<ProjectModel::SampleNode> node)
: EditorUndoCommand(node.get(), SampleControls::tr("Change Base Pitch")), m_redoPitchVal(redoPitch) {}
void undo() {
void undo() override {
m_undid = true;
amuse::SampleEntryData* data = m_node.cast<ProjectModel::SampleNode>()->m_obj->m_data.get();
data->m_pitch = m_undoPitchVal;
@ -516,7 +516,7 @@ public:
if (SampleEditor* e = static_cast<SampleEditor*>(g_MainWindow->getEditorWidget()))
e->m_controls->doFileWrite();
}
void redo() {
void redo() override {
amuse::SampleEntryData* data = m_node.cast<ProjectModel::SampleNode>()->m_obj->m_data.get();
m_undoPitchVal = data->m_pitch;
data->m_pitch = m_redoPitchVal;
@ -526,14 +526,14 @@ public:
e->m_controls->doFileWrite();
}
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id()) {
m_redoPitchVal = static_cast<const SampPitchUndoCommand*>(other)->m_redoPitchVal;
return true;
}
return false;
}
int id() const { return int(Id::SampPitch); }
int id() const override { return int(Id::SampPitch); }
};
void SampleControls::pitchValueChanged(int val) {

View File

@ -41,14 +41,14 @@ public:
void setSamplePos(int pos);
void updateSampleRange(int oldSamp, int newSamp);
void paintEvent(QPaintEvent* ev);
void paintEvent(QPaintEvent* ev) override;
void resetZoom();
void setZoom(int zVal);
void showEvent(QShowEvent* ev);
void mousePressEvent(QMouseEvent* ev);
void mouseReleaseEvent(QMouseEvent* ev);
void mouseMoveEvent(QMouseEvent* ev);
void wheelEvent(QWheelEvent* ev);
void showEvent(QShowEvent* ev) override;
void mousePressEvent(QMouseEvent* ev) override;
void mouseReleaseEvent(QMouseEvent* ev) override;
void mouseMoveEvent(QMouseEvent* ev) override;
void wheelEvent(QWheelEvent* ev) override;
};
class SampleControls : public QFrame {
@ -98,10 +98,10 @@ class SampleEditor : public EditorWidget {
public:
explicit SampleEditor(QWidget* parent = Q_NULLPTR);
bool loadData(ProjectModel::SampleNode* node);
void unloadData();
ProjectModel::INode* currentNode() const;
void unloadData() override;
ProjectModel::INode* currentNode() const override;
const amuse::SoundMacro* soundMacro() const;
void setSamplePos(int pos);
void resizeEvent(QResizeEvent* ev);
void resizeEvent(QResizeEvent* ev) override;
};

View File

@ -13,7 +13,7 @@ public:
explicit PageDataChangeUndoCommand(ProjectModel::SongGroupNode* node, const QString& text, bool drum, uint8_t prog,
int column, int redoVal)
: EditorUndoCommand(node, text), m_drum(drum), m_prog(prog), m_column(column), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
amuse::SongGroupIndex& index = *static_cast<ProjectModel::SongGroupNode*>(m_node.get())->m_index;
auto& map = m_drum ? index.m_drumPages : index.m_normPages;
@ -50,7 +50,7 @@ public:
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::SongGroupIndex& index = *static_cast<ProjectModel::SongGroupNode*>(m_node.get())->m_index;
auto& map = m_drum ? index.m_drumPages : index.m_normPages;
amuse::SongGroupIndex::PageEntry& entry = map[m_prog];
@ -103,7 +103,7 @@ public:
explicit SetupDataChangeUndoCommand(ProjectModel::SongGroupNode* node, const QString& text, amuse::SongId song,
int row, int column, int redoVal)
: EditorUndoCommand(node, text), m_song(song), m_row(row), m_column(column), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
amuse::SongGroupIndex& index = *static_cast<ProjectModel::SongGroupNode*>(m_node.get())->m_index;
auto& map = index.m_midiSetups;
@ -131,7 +131,7 @@ public:
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::SongGroupIndex& index = *static_cast<ProjectModel::SongGroupNode*>(m_node.get())->m_index;
auto& map = index.m_midiSetups;
std::array<amuse::SongGroupIndex::MIDISetup, 16>& entry = map[m_song];
@ -175,7 +175,7 @@ public:
explicit SongNameChangeUndoCommand(ProjectModel::SongGroupNode* node, const QString& text, amuse::SongId song,
std::string_view redoVal)
: EditorUndoCommand(node, text), m_song(song), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
g_MainWindow->projectModel()->setIdDatabases(m_node.get());
amuse::SongGroupIndex& index = *static_cast<ProjectModel::SongGroupNode*>(m_node.get())->m_index;
@ -198,7 +198,7 @@ public:
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
g_MainWindow->projectModel()->setIdDatabases(m_node.get());
amuse::SongGroupIndex& index = *static_cast<ProjectModel::SongGroupNode*>(m_node.get())->m_index;
auto& map = index.m_midiSetups;
@ -233,12 +233,12 @@ public:
explicit SongMIDIPathChangeUndoCommand(ProjectModel::SongGroupNode* node, const QString& text, amuse::SongId song,
QString redoVal)
: EditorUndoCommand(node, text), m_song(song), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
g_MainWindow->projectModel()->setMIDIPathOfSong(m_song, m_undoVal);
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
m_undoVal = g_MainWindow->projectModel()->getMIDIPathOfSong(m_song);
g_MainWindow->projectModel()->setMIDIPathOfSong(m_song, m_redoVal);
if (m_undid)
@ -688,11 +688,11 @@ protected:
*it = static_cast<PageModel*>(m_view->model())->_removeRow(it->first);
}
}
void undo() {
void undo() override {
m_undid = true;
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
if (m_undid)
EditorUndoCommand::redo();
}
@ -710,11 +710,11 @@ public:
explicit PageRowAddUndoCommand(ProjectModel::SongGroupNode* node, const QString& text, PageTableView* view,
std::vector<std::pair<uint8_t, amuse::SongGroupIndex::PageEntry>>&& data)
: PageRowUndoCommand(node, text, view, std::move(data)) {}
void undo() {
void undo() override {
base::undo();
base::del();
}
void redo() {
void redo() override {
base::redo();
base::add();
}
@ -727,11 +727,11 @@ public:
explicit PageRowDelUndoCommand(ProjectModel::SongGroupNode* node, const QString& text, PageTableView* view,
std::vector<std::pair<uint8_t, amuse::SongGroupIndex::PageEntry>>&& data)
: PageRowUndoCommand(node, text, view, std::move(data)) {}
void undo() {
void undo() override {
base::undo();
base::add();
}
void redo() {
void redo() override {
base::redo();
base::del();
}
@ -929,11 +929,11 @@ protected:
*it = static_cast<SetupListModel*>(listView->model())->_removeRow(std::get<0>(*it));
}
}
void undo() {
void undo() override {
m_undid = true;
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
if (m_undid)
EditorUndoCommand::redo();
}
@ -953,11 +953,11 @@ public:
ProjectModel::SongGroupNode* node, const QString& text, SetupTableView* view,
std::vector<std::tuple<amuse::SongId, std::string, std::array<amuse::SongGroupIndex::MIDISetup, 16>>>&& data)
: SetupRowUndoCommand(node, text, view, std::move(data)) {}
void undo() {
void undo() override {
base::undo();
base::del();
}
void redo() {
void redo() override {
base::redo();
base::add();
}
@ -971,11 +971,11 @@ public:
ProjectModel::SongGroupNode* node, const QString& text, SetupTableView* view,
std::vector<std::tuple<amuse::SongId, std::string, std::array<amuse::SongGroupIndex::MIDISetup, 16>>>&& data)
: SetupRowUndoCommand(node, text, view, std::move(data)) {}
void undo() {
void undo() override {
base::undo();
base::add();
}
void redo() {
void redo() override {
base::redo();
base::del();
}

View File

@ -19,13 +19,13 @@ class SetupTableView;
class PageObjectDelegate : public BaseObjectDelegate {
Q_OBJECT
protected:
ProjectModel::INode* getNode(const QAbstractItemModel* model, const QModelIndex& index) const;
ProjectModel::INode* getNode(const QAbstractItemModel* model, const QModelIndex& index) const override;
public:
explicit PageObjectDelegate(QObject* parent = Q_NULLPTR);
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
void setEditorData(QWidget* editor, const QModelIndex& index) const;
void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
void setEditorData(QWidget* editor, const QModelIndex& index) const override;
void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
private slots:
void objIndexChanged();
};
@ -54,12 +54,12 @@ class MIDIFileDelegate : public QStyledItemDelegate {
public:
explicit MIDIFileDelegate(SetupTableView* parent = Q_NULLPTR);
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
void destroyEditor(QWidget* editor, const QModelIndex& index) const;
void setEditorData(QWidget* editor, const QModelIndex& index) const;
void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
void destroyEditor(QWidget* editor, const QModelIndex& index) const override;
void setEditorData(QWidget* editor, const QModelIndex& index) const override;
void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
bool editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option,
const QModelIndex& index);
const QModelIndex& index) override;
private slots:
void doExportMIDI();
void _doExportMIDI(const QString& path);
@ -95,12 +95,12 @@ public:
void loadData(ProjectModel::SongGroupNode* node);
void unloadData();
int rowCount(const QModelIndex& parent = QModelIndex()) const;
int columnCount(const QModelIndex& parent = QModelIndex()) const;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
Qt::ItemFlags flags(const QModelIndex& index) const;
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
int _insertRow(const std::pair<uint8_t, amuse::SongGroupIndex::PageEntry>& data);
std::pair<uint8_t, amuse::SongGroupIndex::PageEntry> _removeRow(uint8_t prog);
@ -141,12 +141,12 @@ public:
void loadData(ProjectModel::SongGroupNode* node);
void unloadData();
int rowCount(const QModelIndex& parent = QModelIndex()) const;
int columnCount(const QModelIndex& parent = QModelIndex()) const;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
Qt::ItemFlags flags(const QModelIndex& index) const;
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
int _insertRow(std::tuple<amuse::SongId, std::string, std::array<amuse::SongGroupIndex::MIDISetup, 16>>& data);
std::tuple<amuse::SongId, std::string, std::array<amuse::SongGroupIndex::MIDISetup, 16>> _removeRow(amuse::SongId id);
@ -162,12 +162,12 @@ public:
void loadData(std::pair<const amuse::SongId, std::array<amuse::SongGroupIndex::MIDISetup, 16>>* data);
void unloadData();
int rowCount(const QModelIndex& parent = QModelIndex()) const;
int columnCount(const QModelIndex& parent = QModelIndex()) const;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
Qt::ItemFlags flags(const QModelIndex& index) const;
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
};
class PageTableView : public QTableView {
@ -180,7 +180,7 @@ class PageTableView : public QTableView {
public:
explicit PageTableView(QWidget* parent = Q_NULLPTR);
void setModel(QAbstractItemModel* model);
void setModel(QAbstractItemModel* model) override;
void deleteSelection();
};
@ -199,14 +199,14 @@ public:
explicit SetupTableView(QWidget* parent = Q_NULLPTR);
void setModel(QAbstractItemModel* list, QAbstractItemModel* table);
void deleteSelection();
void showEvent(QShowEvent* event);
void showEvent(QShowEvent* event) override;
};
class ColoredTabBarStyle : public QProxyStyle {
public:
using QProxyStyle::QProxyStyle;
void drawControl(QStyle::ControlElement element, const QStyleOption* option, QPainter* painter,
const QWidget* widget = nullptr) const;
const QWidget* widget = nullptr) const override;
};
class ColoredTabBar : public QTabBar {
@ -237,14 +237,14 @@ class MIDIPlayerWidget : public QWidget {
public:
explicit MIDIPlayerWidget(QModelIndex index, amuse::GroupId gid, amuse::SongId id, const QString& path,
QWidget* parent = Q_NULLPTR);
~MIDIPlayerWidget();
~MIDIPlayerWidget() override;
amuse::SongId songId() const { return m_songId; }
amuse::Sequencer* sequencer() const { return m_seq.get(); }
void stopped();
void resizeEvent(QResizeEvent* event);
void mouseDoubleClickEvent(QMouseEvent* event);
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event) { event->ignore(); }
void resizeEvent(QResizeEvent* event) override;
void mouseDoubleClickEvent(QMouseEvent* event) override;
void mousePressEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override { event->ignore(); }
public slots:
void clicked();
};
@ -265,12 +265,12 @@ class SongGroupEditor : public EditorWidget {
public:
explicit SongGroupEditor(QWidget* parent = Q_NULLPTR);
bool loadData(ProjectModel::SongGroupNode* node);
void unloadData();
ProjectModel::INode* currentNode() const;
void setEditorEnabled(bool en) {}
void resizeEvent(QResizeEvent* ev);
void unloadData() override;
ProjectModel::INode* currentNode() const override;
void setEditorEnabled(bool en) override {}
void resizeEvent(QResizeEvent* ev) override;
QTableView* getSetupListView() const { return m_setupTable->m_listView; }
AmuseItemEditFlags itemEditFlags() const;
AmuseItemEditFlags itemEditFlags() const override;
private slots:
void doAdd();
void doSelectionChanged();
@ -285,5 +285,5 @@ private slots:
void setupRowsAboutToBeRemoved(const QModelIndex& parent, int first, int last);
void setupModelAboutToBeReset();
void setupDataChanged();
void itemDeleteAction();
void itemDeleteAction() override;
};

View File

@ -11,7 +11,7 @@ public:
explicit SFXDataChangeUndoCommand(ProjectModel::SoundGroupNode* node, const QString& text, amuse::SFXId sfx,
int column, int redoVal)
: EditorUndoCommand(node, text), m_sfx(sfx), m_column(column), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
amuse::SFXGroupIndex& index = *static_cast<ProjectModel::SoundGroupNode*>(m_node.get())->m_index;
auto& map = index.m_sfxEntries;
@ -42,7 +42,7 @@ public:
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
amuse::SFXGroupIndex& index = *static_cast<ProjectModel::SoundGroupNode*>(m_node.get())->m_index;
auto& map = index.m_sfxEntries;
amuse::SFXGroupIndex::SFXEntry& entry = map[m_sfx];
@ -90,7 +90,7 @@ public:
explicit SFXNameChangeUndoCommand(ProjectModel::SoundGroupNode* node, const QString& text, amuse::SFXId sfx,
std::string_view redoVal)
: EditorUndoCommand(node, text), m_sfx(sfx), m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
g_MainWindow->projectModel()->setIdDatabases(m_node.get());
amuse::SFXGroupIndex& index = *static_cast<ProjectModel::SoundGroupNode*>(m_node.get())->m_index;
@ -100,7 +100,7 @@ public:
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
g_MainWindow->projectModel()->setIdDatabases(m_node.get());
amuse::SFXGroupIndex& index = *static_cast<ProjectModel::SoundGroupNode*>(m_node.get())->m_index;
auto& map = index.m_sfxEntries;
@ -370,11 +370,11 @@ protected:
*it = static_cast<SFXModel*>(m_view->model())->_removeRow(std::get<0>(*it));
}
}
void undo() {
void undo() override {
m_undid = true;
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
if (m_undid)
EditorUndoCommand::redo();
}
@ -393,11 +393,11 @@ public:
ProjectModel::SoundGroupNode* node, const QString& text, SFXTableView* view,
std::vector<std::tuple<amuse::SFXId, std::string, amuse::SFXGroupIndex::SFXEntry>>&& data)
: SFXRowUndoCommand(node, text, view, std::move(data)) {}
void undo() {
void undo() override {
base::undo();
base::del();
}
void redo() {
void redo() override {
base::redo();
base::add();
}
@ -411,11 +411,11 @@ public:
ProjectModel::SoundGroupNode* node, const QString& text, SFXTableView* view,
std::vector<std::tuple<amuse::SFXId, std::string, amuse::SFXGroupIndex::SFXEntry>>&& data)
: SFXRowUndoCommand(node, text, view, std::move(data)) {}
void undo() {
void undo() override {
base::undo();
base::add();
}
void redo() {
void redo() override {
base::redo();
base::del();
}

View File

@ -8,13 +8,13 @@
class SFXObjectDelegate : public BaseObjectDelegate {
Q_OBJECT
protected:
ProjectModel::INode* getNode(const QAbstractItemModel* model, const QModelIndex& index) const;
ProjectModel::INode* getNode(const QAbstractItemModel* model, const QModelIndex& index) const override;
public:
explicit SFXObjectDelegate(QObject* parent = Q_NULLPTR);
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
void setEditorData(QWidget* editor, const QModelIndex& index) const;
void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override;
void setEditorData(QWidget* editor, const QModelIndex& index) const override;
void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override;
private slots:
void objIndexChanged();
};
@ -53,12 +53,12 @@ public:
void loadData(ProjectModel::SoundGroupNode* node);
void unloadData();
int rowCount(const QModelIndex& parent = QModelIndex()) const;
int columnCount(const QModelIndex& parent = QModelIndex()) const;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
Qt::ItemFlags flags(const QModelIndex& index) const;
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
int columnCount(const QModelIndex& parent = QModelIndex()) const override;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
int _insertRow(const std::tuple<amuse::SFXId, std::string, amuse::SFXGroupIndex::SFXEntry>& data);
std::tuple<amuse::SFXId, std::string, amuse::SFXGroupIndex::SFXEntry> _removeRow(amuse::SFXId sfx);
@ -73,7 +73,7 @@ class SFXTableView : public QTableView {
public:
explicit SFXTableView(QWidget* parent = Q_NULLPTR);
void setModel(QAbstractItemModel* model);
void setModel(QAbstractItemModel* model) override;
void deleteSelection();
};
@ -88,14 +88,14 @@ class SFXPlayerWidget : public QWidget {
public:
explicit SFXPlayerWidget(QModelIndex index, amuse::GroupId gid, amuse::SFXId id, QWidget* parent = Q_NULLPTR);
~SFXPlayerWidget();
~SFXPlayerWidget() override;
amuse::SongId sfxId() const { return m_sfxId; }
amuse::Voice* voice() const { return m_vox.get(); }
void stopped();
void resizeEvent(QResizeEvent* event);
void mouseDoubleClickEvent(QMouseEvent* event);
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event) { event->ignore(); }
void resizeEvent(QResizeEvent* event) override;
void mouseDoubleClickEvent(QMouseEvent* event) override;
void mousePressEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override { event->ignore(); }
public slots:
void clicked();
};
@ -109,17 +109,17 @@ class SoundGroupEditor : public EditorWidget {
public:
explicit SoundGroupEditor(QWidget* parent = Q_NULLPTR);
bool loadData(ProjectModel::SoundGroupNode* node);
void unloadData();
ProjectModel::INode* currentNode() const;
void setEditorEnabled(bool en) {}
void resizeEvent(QResizeEvent* ev);
void unloadData() override;
ProjectModel::INode* currentNode() const override;
void setEditorEnabled(bool en) override {}
void resizeEvent(QResizeEvent* ev) override;
QTableView* getSFXListView() const { return m_sfxTable; }
AmuseItemEditFlags itemEditFlags() const;
AmuseItemEditFlags itemEditFlags() const override;
private slots:
void rowsInserted(const QModelIndex& parent, int first, int last);
void rowsMoved(const QModelIndex& parent, int start, int end, const QModelIndex& destination, int row);
void doAdd();
void doSelectionChanged();
void sfxDataChanged();
void itemDeleteAction();
void itemDeleteAction() override;
};

View File

@ -280,7 +280,7 @@ public:
, m_cmd(cmd)
, m_field(field)
, m_redoVal(redoVal) {}
void undo() {
void undo() override {
m_undid = true;
switch (m_field.m_tp) {
case amuse::SoundMacro::CmdIntrospection::Field::Type::Bool:
@ -316,7 +316,7 @@ public:
}
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
switch (m_field.m_tp) {
case amuse::SoundMacro::CmdIntrospection::Field::Type::Bool:
m_undoVal = amuse::AccessField<bool>(m_cmd, m_field);
@ -360,7 +360,7 @@ public:
if (m_undid)
EditorUndoCommand::redo();
}
bool mergeWith(const QUndoCommand* other) {
bool mergeWith(const QUndoCommand* other) override {
if (other->id() == id() && m_cmd == static_cast<const ValChangedUndoCommand*>(other)->m_cmd &&
&m_field == &static_cast<const ValChangedUndoCommand*>(other)->m_field) {
m_redoVal = static_cast<const ValChangedUndoCommand*>(other)->m_redoVal;
@ -368,7 +368,7 @@ public:
}
return false;
}
int id() const { return int(Id::SMChangeVal); }
int id() const override { return int(Id::SMChangeVal); }
};
void CommandWidget::boolChanged(int state) {
@ -557,12 +557,12 @@ class ReorderCommandsUndoCommand : public EditorUndoCommand {
public:
ReorderCommandsUndoCommand(int a, int b, const QString& text, amuse::ObjToken<ProjectModel::SoundMacroNode> node)
: EditorUndoCommand(node.get(), SoundMacroListing::tr("Reorder %1").arg(text)), m_a(a), m_b(b) {}
void undo() {
void undo() override {
m_undid = true;
m_node.cast<ProjectModel::SoundMacroNode>()->m_obj->swapPositions(m_a, m_b);
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
m_node.cast<ProjectModel::SoundMacroNode>()->m_obj->swapPositions(m_a, m_b);
if (m_undid)
EditorUndoCommand::redo();
@ -669,11 +669,11 @@ class InsertCommandUndoCommand : public EditorUndoCommand {
public:
InsertCommandUndoCommand(int insertIdx, const QString& text, amuse::ObjToken<ProjectModel::SoundMacroNode> node)
: EditorUndoCommand(node.get(), SoundMacroListing::tr("Insert %1").arg(text)), m_insertIdx(insertIdx) {}
void undo() {
void undo() override {
m_cmd = m_node.cast<ProjectModel::SoundMacroNode>()->m_obj->deleteCmd(m_insertIdx);
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
if (!m_cmd)
return;
m_node.cast<ProjectModel::SoundMacroNode>()->m_obj->insertCmd(m_insertIdx, std::move(m_cmd));
@ -714,13 +714,13 @@ class DeleteCommandUndoCommand : public EditorUndoCommand {
public:
DeleteCommandUndoCommand(int deleteIdx, const QString& text, amuse::ObjToken<ProjectModel::SoundMacroNode> node)
: EditorUndoCommand(node.get(), SoundMacroListing::tr("Delete %1").arg(text)), m_deleteIdx(deleteIdx) {}
void undo() {
void undo() override {
m_undid = true;
m_node.cast<ProjectModel::SoundMacroNode>()->m_obj->insertCmd(m_deleteIdx, std::move(m_cmd));
m_cmd.reset();
EditorUndoCommand::undo();
}
void redo() {
void redo() override {
m_cmd = m_node.cast<ProjectModel::SoundMacroNode>()->m_obj->deleteCmd(m_deleteIdx);
if (m_undid)
EditorUndoCommand::redo();

View File

@ -20,10 +20,10 @@ class TargetButton : public QPushButton {
Q_OBJECT
public:
explicit TargetButton(QWidget* parent = Q_NULLPTR);
void mouseReleaseEvent(QMouseEvent* event) { event->ignore(); }
void mouseMoveEvent(QMouseEvent* event) { event->ignore(); }
void focusOutEvent(QFocusEvent* event) { event->ignore(); }
void keyPressEvent(QKeyEvent* event) { event->ignore(); }
void mouseReleaseEvent(QMouseEvent* event) override { event->ignore(); }
void mouseMoveEvent(QMouseEvent* event) override { event->ignore(); }
void focusOutEvent(QFocusEvent* event) override { event->ignore(); }
void keyPressEvent(QKeyEvent* event) override { event->ignore(); }
};
class FieldSoundMacroStep : public QWidget {
@ -42,7 +42,7 @@ public slots:
public:
explicit FieldSoundMacroStep(FieldProjectNode* macroField = Q_NULLPTR, QWidget* parent = Q_NULLPTR);
~FieldSoundMacroStep();
~FieldSoundMacroStep() override;
void setIndex(int index);
void cancel();
};
@ -72,7 +72,7 @@ private:
public:
CommandWidget(QWidget* parent, amuse::SoundMacro::ICmd* cmd, SoundMacroListing* listing);
CommandWidget(QWidget* parent, amuse::SoundMacro::CmdOp op, SoundMacroListing* listing);
void paintEvent(QPaintEvent* event);
void paintEvent(QPaintEvent* event) override;
QString getText() const { return m_titleLabel.text(); }
};
@ -126,7 +126,7 @@ public:
bool loadData(ProjectModel::SoundMacroNode* node);
void unloadData();
ProjectModel::INode* currentNode() const;
void timerEvent(QTimerEvent* event);
void timerEvent(QTimerEvent* event) override;
};
class CatalogueItem : public QWidget {
@ -147,9 +147,9 @@ class SoundMacroCatalogue : public QTreeWidget {
Q_OBJECT
public:
explicit SoundMacroCatalogue(QWidget* parent = Q_NULLPTR);
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
void mousePressEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override;
void mouseMoveEvent(QMouseEvent* event) override;
};
class SoundMacroEditor : public EditorWidget {
@ -172,13 +172,13 @@ class SoundMacroEditor : public EditorWidget {
public:
explicit SoundMacroEditor(QWidget* parent = Q_NULLPTR);
bool loadData(ProjectModel::SoundMacroNode* node);
void unloadData();
ProjectModel::INode* currentNode() const;
void unloadData() override;
ProjectModel::INode* currentNode() const override;
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
void keyPressEvent(QKeyEvent* event);
void mousePressEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override;
void mouseMoveEvent(QMouseEvent* event) override;
void keyPressEvent(QKeyEvent* event) override;
public slots:
void catalogueDoubleClicked(QTreeWidgetItem* item, int column);

View File

@ -13,10 +13,10 @@ class FXButton : public QPushButton {
Q_OBJECT
public:
explicit FXButton(QWidget* parent = Q_NULLPTR);
void mouseReleaseEvent(QMouseEvent* event) { event->ignore(); }
void mouseMoveEvent(QMouseEvent* event) { event->ignore(); }
void focusOutEvent(QFocusEvent* event) { event->ignore(); }
void keyPressEvent(QKeyEvent* event) { event->ignore(); }
void mouseReleaseEvent(QMouseEvent* event) override { event->ignore(); }
void mouseMoveEvent(QMouseEvent* event) override { event->ignore(); }
void focusOutEvent(QFocusEvent* event) override { event->ignore(); }
void keyPressEvent(QKeyEvent* event) override { event->ignore(); }
};
class StatusBarWidget : public QStatusBar {
@ -73,7 +73,7 @@ class StatusBarFocus : public QObject {
public:
explicit StatusBarFocus(StatusBarWidget* statusWidget) : QObject(statusWidget) {}
~StatusBarFocus() { exit(); }
~StatusBarFocus() override { exit(); }
void setMessage(const QString& message);
void enter();
void exit();

View File

@ -46,7 +46,7 @@ class Uint32X8Button : public QPushButton {
public:
explicit Uint32X8Button(int min, int max, QWidget* parent = Q_NULLPTR);
void paintEvent(QPaintEvent* event);
void paintEvent(QPaintEvent* event) override;
Uint32X8Popup* popup() const { return m_popup; }
QStyleOptionComboBox comboStyleOption() const;
private slots:
@ -77,7 +77,7 @@ public:
EffectListing* getParent() const;
explicit EffectWidget(QWidget* parent, amuse::EffectBaseTypeless* effect);
explicit EffectWidget(QWidget* parent, amuse::EffectType op);
void paintEvent(QPaintEvent* event);
void paintEvent(QPaintEvent* event) override;
QString getText() const { return m_titleLabel.text(); }
};
@ -130,7 +130,7 @@ public:
explicit EffectListing(QWidget* parent = Q_NULLPTR);
bool loadData(amuse::Submix* submix);
void unloadData();
void timerEvent(QTimerEvent* event);
void timerEvent(QTimerEvent* event) override;
};
class EffectCatalogueItem : public QWidget {
@ -151,9 +151,9 @@ class EffectCatalogue : public QTreeWidget {
Q_OBJECT
public:
explicit EffectCatalogue(QWidget* parent = Q_NULLPTR);
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
void mousePressEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override;
void mouseMoveEvent(QMouseEvent* event) override;
};
class StudioSetupWidget : public QWidget {
@ -176,13 +176,13 @@ public:
bool loadData(amuse::Studio* studio);
void unloadData();
void mousePressEvent(QMouseEvent* event);
void mouseReleaseEvent(QMouseEvent* event);
void mouseMoveEvent(QMouseEvent* event);
void keyPressEvent(QKeyEvent* event);
void mousePressEvent(QMouseEvent* event) override;
void mouseReleaseEvent(QMouseEvent* event) override;
void mouseMoveEvent(QMouseEvent* event) override;
void keyPressEvent(QKeyEvent* event) override;
void hideEvent(QHideEvent* event);
void showEvent(QShowEvent* event);
void hideEvent(QHideEvent* event) override;
void showEvent(QShowEvent* event) override;
void updateWindowPosition();
public slots:

View File

@ -37,19 +37,19 @@ static QIcon MakeAppIcon() {
/* This is for adapting the get*Name methods */
class BooInterface : public boo::IApplication {
std::vector<boo::SystemString> m_args;
void _deletedWindow(boo::IWindow* window) {}
void _deletedWindow(boo::IWindow* window) override {}
public:
EPlatformType getPlatformType() const { return EPlatformType::Qt; }
EPlatformType getPlatformType() const override { return EPlatformType::Qt; }
int run() { return 0; }
boo::SystemStringView getUniqueName() const { return _SYS_STR("amuse-gui"sv); }
boo::SystemStringView getFriendlyName() const { return _SYS_STR("Amuse"sv); }
boo::SystemStringView getProcessName() const { return _SYS_STR("amuse-gui"sv); }
const std::vector<boo::SystemString>& getArgs() const { return m_args; }
int run() override { return 0; }
boo::SystemStringView getUniqueName() const override { return _SYS_STR("amuse-gui"sv); }
boo::SystemStringView getFriendlyName() const override { return _SYS_STR("Amuse"sv); }
boo::SystemStringView getProcessName() const override { return _SYS_STR("amuse-gui"sv); }
const std::vector<boo::SystemString>& getArgs() const override { return m_args; }
/* Constructors/initializers for sub-objects */
std::shared_ptr<boo::IWindow> newWindow(boo::SystemStringView title) { return {}; }
std::shared_ptr<boo::IWindow> newWindow(boo::SystemStringView title) override { return {}; }
};
MainWindow* g_MainWindow = nullptr;

View File

@ -2,7 +2,8 @@
#include "amuse/BooBackend.hpp"
#include "boo/boo.hpp"
#include "logvisor/logvisor.hpp"
#include <thread>
#include <map>
#define EMITTER_TEST 0
@ -15,15 +16,15 @@ struct EventCallback : boo::IWindowCallback {
bool m_tracking = false;
public:
void charKeyDown(unsigned long charCode, boo::EModifierKey mods, bool isRepeat);
void charKeyUp(unsigned long charCode, boo::EModifierKey mods);
void specialKeyDown(boo::ESpecialKey key, boo::EModifierKey mods, bool isRepeat);
void specialKeyUp(boo::ESpecialKey key, boo::EModifierKey mods);
void resized(const boo::SWindowRect&, bool) {}
void charKeyDown(unsigned long charCode, boo::EModifierKey mods, bool isRepeat) override;
void charKeyUp(unsigned long charCode, boo::EModifierKey mods) override;
void specialKeyDown(boo::ESpecialKey key, boo::EModifierKey mods, bool isRepeat) override;
void specialKeyUp(boo::ESpecialKey key, boo::EModifierKey mods) override;
void resized(const boo::SWindowRect&, bool) override {}
void mouseDown(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey);
void mouseUp(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey);
void mouseMove(const boo::SWindowCoord& coord);
void mouseDown(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey) override;
void mouseUp(const boo::SWindowCoord&, boo::EMouseButton, boo::EModifierKey) override;
void mouseMove(const boo::SWindowCoord& coord) override;
EventCallback(AppCallback& app) : m_app(app) {}
};
@ -557,7 +558,7 @@ struct AppCallback : boo::IApplicationCallback {
}
}
int appMain(boo::IApplication* app) {
int appMain(boo::IApplication* app) override {
/* Event window */
m_win = app->newWindow(_SYS_STR("amuseplay"));
m_win->setCallback(&m_events);
@ -818,7 +819,7 @@ struct AppCallback : boo::IApplicationCallback {
return 0;
}
void appQuitting(boo::IApplication*) { m_running = false; }
void appQuitting(boo::IApplication*) override { m_running = false; }
AppCallback(int argc, const boo::SystemChar** argv)
: m_argc(argc), m_argv(argv), m_eventRec(*this), m_events(m_eventRec) {}

View File

@ -19,24 +19,24 @@ class BooBackendVoice : public IBackendVoice {
Voice& m_clientVox;
struct VoiceCallback : boo::IAudioVoiceCallback {
BooBackendVoice& m_parent;
void preSupplyAudio(boo::IAudioVoice& voice, double dt);
size_t supplyAudio(boo::IAudioVoice& voice, size_t frames, int16_t* data);
void routeAudio(size_t frames, size_t channels, double dt, int busId, int16_t* in, int16_t* out);
void routeAudio(size_t frames, size_t channels, double dt, int busId, int32_t* in, int32_t* out);
void routeAudio(size_t frames, size_t channels, double dt, int busId, float* in, float* out);
void preSupplyAudio(boo::IAudioVoice& voice, double dt) override;
size_t supplyAudio(boo::IAudioVoice& voice, size_t frames, int16_t* data) override;
void routeAudio(size_t frames, size_t channels, double dt, int busId, int16_t* in, int16_t* out) override;
void routeAudio(size_t frames, size_t channels, double dt, int busId, int32_t* in, int32_t* out) override;
void routeAudio(size_t frames, size_t channels, double dt, int busId, float* in, float* out) override;
VoiceCallback(BooBackendVoice& parent) : m_parent(parent) {}
} m_cb;
boo::ObjToken<boo::IAudioVoice> m_booVoice;
public:
BooBackendVoice(boo::IAudioVoiceEngine& engine, Voice& clientVox, double sampleRate, bool dynamicPitch);
void resetSampleRate(double sampleRate);
void resetSampleRate(double sampleRate) override;
void resetChannelLevels();
void setChannelLevels(IBackendSubmix* submix, const float coefs[8], bool slew);
void setPitchRatio(double ratio, bool slew);
void start();
void stop();
void resetChannelLevels() override;
void setChannelLevels(IBackendSubmix* submix, const float coefs[8], bool slew) override;
void setPitchRatio(double ratio, bool slew) override;
void start() override;
void stop() override;
};
/** Backend submix implementation for boo mixer */
@ -46,20 +46,22 @@ class BooBackendSubmix : public IBackendSubmix {
Submix& m_clientSmx;
struct SubmixCallback : boo::IAudioSubmixCallback {
BooBackendSubmix& m_parent;
bool canApplyEffect() const;
void applyEffect(int16_t* audio, size_t frameCount, const boo::ChannelMap& chanMap, double sampleRate) const;
void applyEffect(int32_t* audio, size_t frameCount, const boo::ChannelMap& chanMap, double sampleRate) const;
void applyEffect(float* audio, size_t frameCount, const boo::ChannelMap& chanMap, double sampleRate) const;
void resetOutputSampleRate(double sampleRate);
bool canApplyEffect() const override;
void applyEffect(int16_t* audio, size_t frameCount, const boo::ChannelMap& chanMap,
double sampleRate) const override;
void applyEffect(int32_t* audio, size_t frameCount, const boo::ChannelMap& chanMap,
double sampleRate) const override;
void applyEffect(float* audio, size_t frameCount, const boo::ChannelMap& chanMap, double sampleRate) const override;
void resetOutputSampleRate(double sampleRate) override;
SubmixCallback(BooBackendSubmix& parent) : m_parent(parent) {}
} m_cb;
boo::ObjToken<boo::IAudioSubmix> m_booSubmix;
public:
BooBackendSubmix(boo::IAudioVoiceEngine& engine, Submix& clientSmx, bool mainOut, int busId);
void setSendLevel(IBackendSubmix* submix, float level, bool slew);
double getSampleRate() const;
SubmixFormat getSampleFormat() const;
void setSendLevel(IBackendSubmix* submix, float level, bool slew) override;
double getSampleRate() const override;
SubmixFormat getSampleFormat() const override;
};
/** Backend MIDI event reader for controlling sequencer with external hardware / software */
@ -87,34 +89,34 @@ public:
void setVirtualIn(bool v);
bool hasVirtualIn() const;
void pumpReader(double dt);
void pumpReader(double dt) override;
void noteOff(uint8_t chan, uint8_t key, uint8_t velocity);
void noteOn(uint8_t chan, uint8_t key, uint8_t velocity);
void notePressure(uint8_t chan, uint8_t key, uint8_t pressure);
void controlChange(uint8_t chan, uint8_t control, uint8_t value);
void programChange(uint8_t chan, uint8_t program);
void channelPressure(uint8_t chan, uint8_t pressure);
void pitchBend(uint8_t chan, int16_t pitch);
void noteOff(uint8_t chan, uint8_t key, uint8_t velocity) override;
void noteOn(uint8_t chan, uint8_t key, uint8_t velocity) override;
void notePressure(uint8_t chan, uint8_t key, uint8_t pressure) override;
void controlChange(uint8_t chan, uint8_t control, uint8_t value) override;
void programChange(uint8_t chan, uint8_t program) override;
void channelPressure(uint8_t chan, uint8_t pressure) override;
void pitchBend(uint8_t chan, int16_t pitch) override;
void allSoundOff(uint8_t chan);
void resetAllControllers(uint8_t chan);
void localControl(uint8_t chan, bool on);
void allNotesOff(uint8_t chan);
void omniMode(uint8_t chan, bool on);
void polyMode(uint8_t chan, bool on);
void allSoundOff(uint8_t chan) override;
void resetAllControllers(uint8_t chan) override;
void localControl(uint8_t chan, bool on) override;
void allNotesOff(uint8_t chan) override;
void omniMode(uint8_t chan, bool on) override;
void polyMode(uint8_t chan, bool on) override;
void sysex(const void* data, size_t len);
void timeCodeQuarterFrame(uint8_t message, uint8_t value);
void songPositionPointer(uint16_t pointer);
void songSelect(uint8_t song);
void tuneRequest();
void sysex(const void* data, size_t len) override;
void timeCodeQuarterFrame(uint8_t message, uint8_t value) override;
void songPositionPointer(uint16_t pointer) override;
void songSelect(uint8_t song) override;
void tuneRequest() override;
void startSeq();
void continueSeq();
void stopSeq();
void startSeq() override;
void continueSeq() override;
void stopSeq() override;
void reset();
void reset() override;
};
/** Backend voice allocator implementation for boo mixer */
@ -127,14 +129,14 @@ protected:
public:
BooBackendVoiceAllocator(boo::IAudioVoiceEngine& booEngine);
std::unique_ptr<IBackendVoice> allocateVoice(Voice& clientVox, double sampleRate, bool dynamicPitch);
std::unique_ptr<IBackendSubmix> allocateSubmix(Submix& clientSmx, bool mainOut, int busId);
std::vector<std::pair<std::string, std::string>> enumerateMIDIDevices();
std::unique_ptr<IMIDIReader> allocateMIDIReader(Engine& engine);
void setCallbackInterface(Engine* engine);
AudioChannelSet getAvailableSet();
void setVolume(float vol);
void on5MsInterval(boo::IAudioVoiceEngine& engine, double dt);
void onPumpCycleComplete(boo::IAudioVoiceEngine& engine);
std::unique_ptr<IBackendVoice> allocateVoice(Voice& clientVox, double sampleRate, bool dynamicPitch) override;
std::unique_ptr<IBackendSubmix> allocateSubmix(Submix& clientSmx, bool mainOut, int busId) override;
std::vector<std::pair<std::string, std::string>> enumerateMIDIDevices() override;
std::unique_ptr<IMIDIReader> allocateMIDIReader(Engine& engine) override;
void setCallbackInterface(Engine* engine) override;
AudioChannelSet getAvailableSet() override;
void setVolume(float vol) override;
void on5MsInterval(boo::IAudioVoiceEngine& engine, double dt) override;
void onPumpCycleComplete(boo::IAudioVoiceEngine& engine) override;
};
} // namespace amuse

View File

@ -101,14 +101,14 @@ class EffectChorusImp : public EffectBase<T>, public EffectChorus {
void _update();
public:
~EffectChorusImp();
~EffectChorusImp() override;
EffectChorusImp(uint32_t baseDelay, uint32_t variation, uint32_t period, double sampleRate);
EffectChorusImp(const EffectChorusInfo& info, double sampleRate)
: EffectChorusImp(info.baseDelay, info.variation, info.period, sampleRate) {}
void applyEffect(T* audio, size_t frameCount, const ChannelMap& chanMap);
void resetOutputSampleRate(double sampleRate) { _setup(sampleRate); }
void applyEffect(T* audio, size_t frameCount, const ChannelMap& chanMap) override;
void resetOutputSampleRate(double sampleRate) override { _setup(sampleRate); }
EffectType Isa() const { return EffectType::Chorus; }
EffectType Isa() const override { return EffectType::Chorus; }
};
} // namespace amuse

View File

@ -119,9 +119,9 @@ public:
EffectDelayImp(uint32_t initDelay, uint32_t initFeedback, uint32_t initOutput, double sampleRate);
EffectDelayImp(const EffectDelayInfo& info, double sampleRate);
void applyEffect(T* audio, size_t frameCount, const ChannelMap& chanMap);
void resetOutputSampleRate(double sampleRate) { _setup(sampleRate); }
void applyEffect(T* audio, size_t frameCount, const ChannelMap& chanMap) override;
void resetOutputSampleRate(double sampleRate) override { _setup(sampleRate); }
EffectType Isa() const { return EffectType::Delay; }
EffectType Isa() const override { return EffectType::Delay; }
};
} // namespace amuse

View File

@ -162,10 +162,10 @@ public:
EffectReverbStdImp(const EffectReverbStdInfo& info, double sampleRate)
: EffectReverbStdImp(info.coloration, info.mix, info.time, info.damping, info.preDelay, sampleRate) {}
void applyEffect(T* audio, size_t frameCount, const ChannelMap& chanMap);
void resetOutputSampleRate(double sampleRate) { _setup(sampleRate); }
void applyEffect(T* audio, size_t frameCount, const ChannelMap& chanMap) override;
void resetOutputSampleRate(double sampleRate) override { _setup(sampleRate); }
EffectType Isa() const { return EffectType::ReverbStd; }
EffectType Isa() const override { return EffectType::ReverbStd; }
};
/** High-quality 3-stage reverb with per-channel low-pass and crosstalk */
@ -196,9 +196,9 @@ public:
EffectReverbHiImp(const EffectReverbHiInfo& info, double sampleRate)
: EffectReverbHiImp(info.coloration, info.mix, info.time, info.damping, info.preDelay, info.crosstalk, sampleRate) {}
void applyEffect(T* audio, size_t frameCount, const ChannelMap& chanMap);
void resetOutputSampleRate(double sampleRate) { _setup(sampleRate); }
void applyEffect(T* audio, size_t frameCount, const ChannelMap& chanMap) override;
void resetOutputSampleRate(double sampleRate) override { _setup(sampleRate); }
EffectType Isa() const { return EffectType::ReverbHi; }
EffectType Isa() const override { return EffectType::ReverbHi; }
};
} // namespace amuse

View File

@ -49,7 +49,7 @@ class Emitter : public Entity {
void _update();
public:
~Emitter();
~Emitter() override;
Emitter(Engine& engine, const AudioGroup& group, ObjToken<Voice> vox, float maxDist, float minVol, float falloff,
bool doppler);

View File

@ -29,7 +29,7 @@ protected:
public:
Entity(Engine& engine, const AudioGroup& group, GroupId groupId, ObjectId oid = ObjectId())
: m_engine(engine), m_audioGroup(group), m_groupId(groupId), m_objectId(oid) {}
~Entity() {
~Entity() override {
/* Ensure proper destruction procedure followed */
assert(m_destroyed);
}

View File

@ -86,7 +86,7 @@ class Sequencer : public Entity {
void _destroy();
public:
~Sequencer();
~Sequencer() override;
Sequencer(Engine& engine, const AudioGroup& group, GroupId groupId, const SongGroupIndex* songGroup, SongId setupId,
ObjToken<Studio> studio);
Sequencer(Engine& engine, const AudioGroup& group, GroupId groupId, const SFXGroupIndex* sfxGroup,

View File

@ -193,7 +193,7 @@ class Voice : public Entity {
void _notifyCtrlChange(uint8_t ctrl, int8_t val);
public:
~Voice();
~Voice() override;
Voice(Engine& engine, const AudioGroup& group, GroupId groupId, int vid, bool emitter, ObjToken<Studio> studio);
Voice(Engine& engine, const AudioGroup& group, GroupId groupId, ObjectId oid, int vid, bool emitter,
ObjToken<Studio> studio);