Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions sources/Application/Instruments/I_Instrument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ void I_Instrument::SaveContent(tinyxml2::XMLPrinter *printer) {
}

// Save all the instrument's parameters
for (auto it = Variables()->begin(); it != Variables()->end(); it++) {
for (auto it = VarBegin(); it != VarEnd(); it++) {
printer->OpenElement("PARAM");
printer->PushAttribute("NAME", (*it)->GetName());
printer->PushAttribute("VALUE", (*it)->GetString().c_str());
Expand Down Expand Up @@ -83,7 +83,7 @@ void I_Instrument::RestoreContent(PersistencyDocument *doc) {
bool found = false;

// Find the variable with this name and set its value
for (auto it = Variables()->begin(); it != Variables()->end(); it++) {
for (auto it = VarBegin(); it != VarEnd(); it++) {
if (!strcasecmp((*it)->GetName(), name)) {
(*it)->SetString(value);
// Trace::Log("I_INSTRUMENT", "Set parameter: %s = %s", name,
Expand Down Expand Up @@ -114,7 +114,7 @@ void I_Instrument::RestoreContent(PersistencyDocument *doc) {
}

void I_Instrument::Purge() {
for (auto it = Variables()->begin(); it != Variables()->end(); it++) {
for (auto it = VarBegin(); it != VarEnd(); it++) {
(*it)->Reset();
}
};
5 changes: 2 additions & 3 deletions sources/Application/Instruments/I_Instrument.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ class I_Instrument : public VariableContainer,
etl::string<MAX_INSTRUMENT_NAME_LENGTH> name_;

public:
I_Instrument(etl::ilist<Variable *> *list,
I_Instrument(Variable **begin, Variable **end,
const char *nodeName = "INSTRUMENT",
bool registerWithPersistence = false)
: VariableContainer(list),
: VariableContainer(begin, end),
Persistent(nodeName, registerWithPersistence){};
virtual ~I_Instrument();

Expand Down Expand Up @@ -113,7 +113,6 @@ class I_Instrument : public VariableContainer,

virtual void GetTableState(TableSaveState &state) = 0;
virtual void SetTableState(TableSaveState &state) = 0;
virtual etl::ilist<Variable *> *Variables() = 0;

// Persistent implementation
virtual void SaveContent(tinyxml2::XMLPrinter *printer) override;
Expand Down
3 changes: 1 addition & 2 deletions sources/Application/Instruments/InstrumentBank.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -252,8 +252,7 @@ unsigned short InstrumentBank::Clone(unsigned short i) {
return NO_MORE_INSTRUMENT;
}

for (auto it = src->Variables()->begin(); it != src->Variables()->end();
it++) {
for (auto it = src->VarBegin(); it != src->VarEnd(); it++) {
Variable *dstV = dst->FindVariable((*it)->GetID());
if (dstV) {
dstV->CopyFrom(**it);
Expand Down
14 changes: 7 additions & 7 deletions sources/Application/Instruments/MacroInstrument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#include <assert.h>

MacroInstrument::MacroInstrument()
: I_Instrument(&variables_),
: I_Instrument(variables_.begin(), variables_.end()),
shape_(FourCC::MacroInstrumentShape, braids::algo_values,
braids::MACRO_OSC_SHAPE_LAST - 2, 0),
timbre_(FourCC::MacroInstrmentTimbre, 0x7f),
Expand All @@ -32,12 +32,12 @@ MacroInstrument::MacroInstrument()

running_ = false;

variables_.insert(variables_.end(), &shape_);
variables_.insert(variables_.end(), &timbre_);
variables_.insert(variables_.end(), &color_);
variables_.insert(variables_.end(), &attack_);
variables_.insert(variables_.end(), &decay_);
variables_.insert(variables_.end(), &signature_);
variables_[0] = &shape_;
variables_[1] = &timbre_;
variables_[2] = &color_;
variables_[3] = &attack_;
variables_[4] = &decay_;
variables_[5] = &signature_;
}

MacroInstrument::~MacroInstrument() {}
Expand Down
4 changes: 2 additions & 2 deletions sources/Application/Instruments/MacroInstrument.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include "Externals/braids/quantizer.h"
#include "Externals/braids/signature_waveshaper.h"
#include "Externals/braids/vco_jitter_source.h"
#include "Externals/etl/include/etl/array.h"
#include "Foundation/Observable.h"
#include "Foundation/Types/Types.h"
#include "Foundation/Variables/WatchedVariable.h"
Expand All @@ -42,7 +43,6 @@ class MacroInstrument : public I_Instrument, I_Observer {
virtual bool GetTableAutomation();
virtual void GetTableState(TableSaveState &state);
virtual void SetTableState(TableSaveState &state);
etl::ilist<Variable *> *Variables() { return &variables_; };

// Engine playback start callback
virtual void OnStart();
Expand All @@ -52,7 +52,7 @@ class MacroInstrument : public I_Instrument, I_Observer {

protected:
private:
etl::list<Variable *, 7> variables_;
etl::array<Variable *, 6> variables_;

bool running_;

Expand Down
15 changes: 8 additions & 7 deletions sources/Application/Instruments/MidiInstrument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ TimerService *MidiInstrument::timerSvc_ = 0;
MidiInstrument::NoteOffInfo MidiInstrument::NoteOffInfo::current = {0, 0};

MidiInstrument::MidiInstrument()
: I_Instrument(&variables_), channel_(FourCC::MidiInstrumentChannel, 0),
: I_Instrument(variables_.begin(), variables_.end()),
channel_(FourCC::MidiInstrumentChannel, 0),
noteLen_(FourCC::MidiInstrumentNoteLength, 0),
volume_(FourCC::MidiInstrumentVolume, 255),
table_(FourCC::MidiInstrumentTable, VAR_OFF),
Expand All @@ -38,12 +39,12 @@ MidiInstrument::MidiInstrument()
};

// name_ is now an etl::string in the base class, not a Variable
variables_.insert(variables_.end(), &channel_);
variables_.insert(variables_.end(), &noteLen_);
variables_.insert(variables_.end(), &volume_);
variables_.insert(variables_.end(), &table_);
variables_.insert(variables_.end(), &tableAuto_);
variables_.insert(variables_.end(), &program_);
variables_[0] = &channel_;
variables_[1] = &noteLen_;
variables_[2] = &volume_;
variables_[3] = &table_;
variables_[4] = &tableAuto_;
variables_[5] = &program_;
}

MidiInstrument::~MidiInstrument(){};
Expand Down
4 changes: 2 additions & 2 deletions sources/Application/Instruments/MidiInstrument.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

#include "Application/Model/Song.h"
#include "Application/Persistency/PersistenceConstants.h"
#include "Externals/etl/include/etl/array.h"
#include "Externals/etl/include/etl/string.h"
#include "I_Instrument.h"
#include "Services/Midi/MidiMessage.h"
Expand Down Expand Up @@ -61,7 +62,6 @@ class MidiInstrument : public I_Instrument {
virtual bool GetTableAutomation();
virtual void GetTableState(TableSaveState &state);
virtual void SetTableState(TableSaveState &state);
etl::ilist<Variable *> *Variables() { return &variables_; };

void SetChannel(int i);
void SendProgramChange(int channel, int program);
Expand All @@ -78,7 +78,7 @@ class MidiInstrument : public I_Instrument {
};

private:
etl::list<Variable *, 7> variables_;
etl::array<Variable *, 6> variables_;

etl::array<uint8_t, MAX_MIDI_CHORD_NOTES + 1> lastNotes_[SONG_CHANNEL_COUNT];
int remainingTicks_;
Expand Down
2 changes: 1 addition & 1 deletion sources/Application/Instruments/NoneInstrument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
#include "Application/Persistency/PersistenceConstants.h"
#include "Externals/etl/include/etl/string.h"

NoneInstrument::NoneInstrument() : I_Instrument(&variables_) {}
NoneInstrument::NoneInstrument() : I_Instrument(nullptr, nullptr) {}

NoneInstrument::~NoneInstrument(){};

Expand Down
2 changes: 0 additions & 2 deletions sources/Application/Instruments/NoneInstrument.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,7 @@ class NoneInstrument : public I_Instrument {
virtual bool GetTableAutomation();
virtual void GetTableState(TableSaveState &state);
virtual void SetTableState(TableSaveState &state);
etl::ilist<Variable *> *Variables() { return &variables_; };

private:
etl::list<Variable *, 2> variables_;
};
#endif
32 changes: 16 additions & 16 deletions sources/Application/Instruments/OpalInstrument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ static const unsigned int noteFNumbers[] = {342, 363, 385, 408, 432, 458,
485, 514, 544, 577, 611, 647};

OpalInstrument::OpalInstrument()
: I_Instrument(&variables_),
: I_Instrument(variables_.begin(), variables_.end()),
algorithm_(FourCC::OPALInstrumentAlgorithm, algorithms, 6, 0),
feedback_(FourCC::OPALInstrumentFeedback, 0),
deepTremeloVibrato_(FourCC::OPALInstrumentDeepTremeloVibrato, 0),
Expand All @@ -52,21 +52,21 @@ OpalInstrument::OpalInstrument()
0) {

// name_ is now an etl::string in the base class, not a Variable
variables_.insert(variables_.end(), &algorithm_);
variables_.insert(variables_.end(), &feedback_);
variables_.insert(variables_.end(), &deepTremeloVibrato_);
variables_.insert(variables_.end(), &op1Level_);
variables_.insert(variables_.end(), &op1Multiplier_);
variables_.insert(variables_.end(), &op1ADSR_);
variables_.insert(variables_.end(), &op1WaveShape_);
variables_.insert(variables_.end(), &op1KeyScaleLevel_);
variables_.insert(variables_.end(), &op1TremVibSusKSR_);
variables_.insert(variables_.end(), &op2Level_);
variables_.insert(variables_.end(), &op2Multiplier_);
variables_.insert(variables_.end(), &op2ADSR_);
variables_.insert(variables_.end(), &op2WaveShape_);
variables_.insert(variables_.end(), &op2KeyScaleLevel_);
variables_.insert(variables_.end(), &op2TremVibSusKSR_);
variables_[0] = &algorithm_;
variables_[1] = &feedback_;
variables_[2] = &deepTremeloVibrato_;
variables_[3] = &op1Level_;
variables_[4] = &op1Multiplier_;
variables_[5] = &op1ADSR_;
variables_[6] = &op1WaveShape_;
variables_[7] = &op1KeyScaleLevel_;
variables_[8] = &op1TremVibSusKSR_;
variables_[9] = &op2Level_;
variables_[10] = &op2Multiplier_;
variables_[11] = &op2ADSR_;
variables_[12] = &op2WaveShape_;
variables_[13] = &op2KeyScaleLevel_;
variables_[14] = &op2TremVibSusKSR_;
}

OpalInstrument::~OpalInstrument(){};
Expand Down
4 changes: 2 additions & 2 deletions sources/Application/Instruments/OpalInstrument.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

#include "Application/Model/Song.h"
#include "Application/Persistency/PersistenceConstants.h"
#include "Externals/etl/include/etl/array.h"
#include "Externals/opal/opal.h"
#include "I_Instrument.h"
#include <cstdint>
Expand Down Expand Up @@ -47,7 +48,6 @@ class OpalInstrument : public I_Instrument {
virtual bool GetTableAutomation();
virtual void GetTableState(TableSaveState &state);
virtual void SetTableState(TableSaveState &state);
etl::ilist<Variable *> *Variables() { return &variables_; };

void setChannel(uint8_t channel);

Expand All @@ -56,7 +56,7 @@ class OpalInstrument : public I_Instrument {

uint8_t breg;

etl::list<Variable *, 16> variables_;
etl::array<Variable *, 15> variables_;

Variable algorithm_;
Variable feedback_;
Expand Down
38 changes: 19 additions & 19 deletions sources/Application/Instruments/SIDInstrument.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ Variable SIDInstrument::fltmode2_(FourCC::SIDInstrument2FilterMode,
Variable SIDInstrument::vol2_(FourCC::SIDInstrument2Volume, 0xF);

SIDInstrument::SIDInstrument(SIDInstrumentInstance chip)
: I_Instrument(&variables_), chip_(chip),
: I_Instrument(variables_.begin(), variables_.end()), chip_(chip),
vpw_(FourCC::SIDInstrumentPulseWidth, 0x800),
vwf_(FourCC::SIDInstrumentWaveform, sidWaveformText, DWF_LAST, 0x1),
vsync_(FourCC::SIDInstrumentVSync, false),
Expand All @@ -59,24 +59,24 @@ SIDInstrument::SIDInstrument(SIDInstrumentInstance chip)
osc_(FourCC::SIDInstrumentOSCNumber, 0) {

// name_ is now an etl::string in the base class, not a Variable
variables_.insert(variables_.end(), &vpw_);
variables_.insert(variables_.end(), &vwf_);
variables_.insert(variables_.end(), &vsync_);
variables_.insert(variables_.end(), &vring_);
variables_.insert(variables_.end(), &vadsr_);
variables_.insert(variables_.end(), &vfon_);
variables_.insert(variables_.end(), &table_);
variables_.insert(variables_.end(), &tableAuto_);
variables_.insert(variables_.end(), &osc_);
variables_.insert(variables_.end(), &fltcut1_);
variables_.insert(variables_.end(), &fltres1_);
variables_.insert(variables_.end(), &fltmode1_);
variables_.insert(variables_.end(), &vol1_);

variables_.insert(variables_.end(), &fltcut2_);
variables_.insert(variables_.end(), &fltres2_);
variables_.insert(variables_.end(), &fltmode2_);
variables_.insert(variables_.end(), &vol2_);
variables_[0] = &vpw_;
variables_[1] = &vwf_;
variables_[2] = &vsync_;
variables_[3] = &vring_;
variables_[4] = &vadsr_;
variables_[5] = &vfon_;
variables_[6] = &table_;
variables_[7] = &tableAuto_;
variables_[8] = &osc_;
variables_[9] = &fltcut1_;
variables_[10] = &fltres1_;
variables_[11] = &fltmode1_;
variables_[12] = &vol1_;

variables_[13] = &fltcut2_;
variables_[14] = &fltres2_;
variables_[15] = &fltmode2_;
variables_[16] = &vol2_;
}

SIDInstrument::~SIDInstrument(){};
Expand Down
4 changes: 2 additions & 2 deletions sources/Application/Instruments/SIDInstrument.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

#include "Application/Persistency/PersistenceConstants.h"
#include "Externals/cRSID/SID.h"
#include "Externals/etl/include/etl/array.h"
#include "I_Instrument.h"

enum SIDInstrumentInstance { SID1 = 1, SID2 };
Expand Down Expand Up @@ -82,7 +83,6 @@ class SIDInstrument : public I_Instrument {
virtual bool GetTableAutomation();
virtual void GetTableState(TableSaveState &state);
virtual void SetTableState(TableSaveState &state);
etl::ilist<Variable *> *Variables() { return &variables_; };

SIDInstrumentInstance GetChip() { return chip_; };
unsigned short GetOsc() { return osc_.GetInt(); };
Expand All @@ -92,7 +92,7 @@ class SIDInstrument : public I_Instrument {
const char *GetChipName() { return (chip_ == SID1) ? "SID #1" : "SID #2"; };

private:
etl::list<Variable *, 19> variables_;
etl::array<Variable *, 17> variables_;

SIDInstrumentInstance chip_; // SID1 or SID2
bool render_ = false;
Expand Down
Loading