Skip to content

Commit 82fb66f

Browse files
committed
Rename modulation properties to be method-agnostic
1 parent 5986943 commit 82fb66f

16 files changed

Lines changed: 872 additions & 703 deletions

src/application/models/midi_cc_automations_model.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -138,13 +138,13 @@ QVariant MidiCcAutomationsModel::data(const QModelIndex & index, int role) const
138138
return static_cast<quint64>(midiCcAutomation.location().track());
139139
case DataRole::Column:
140140
return static_cast<quint64>(midiCcAutomation.location().column());
141-
case DataRole::Modulation_Sine_Cycles:
141+
case DataRole::Modulation_Cycles:
142142
return static_cast<quint64>(midiCcAutomation.modulation().cycles);
143-
case DataRole::Modulation_Sine_Amplitude:
143+
case DataRole::Modulation_Amplitude:
144144
return midiCcAutomation.modulation().amplitude;
145-
case DataRole::Modulation_Sine_Offset:
145+
case DataRole::Modulation_Offset:
146146
return midiCcAutomation.modulation().offset;
147-
case DataRole::Modulation_Sine_Inverted:
147+
case DataRole::Modulation_Inverted:
148148
return midiCcAutomation.modulation().inverted;
149149
case DataRole::Modulation_Type:
150150
return static_cast<int>(midiCcAutomation.modulation().type);
@@ -214,31 +214,31 @@ bool MidiCcAutomationsModel::setData(const QModelIndex & index, const QVariant &
214214
changed = true;
215215
}
216216
} break;
217-
case DataRole::Modulation_Sine_Cycles: {
217+
case DataRole::Modulation_Cycles: {
218218
auto modulation = midiCcAutomation.modulation();
219219
if (const auto newCycles = value.toFloat(); modulation.cycles != newCycles) {
220220
modulation.cycles = newCycles;
221221
midiCcAutomation.setModulation(modulation);
222222
changed = true;
223223
}
224224
} break;
225-
case DataRole::Modulation_Sine_Amplitude: {
225+
case DataRole::Modulation_Amplitude: {
226226
auto modulation = midiCcAutomation.modulation();
227227
if (const auto newAmplitude = value.toFloat(); modulation.amplitude != newAmplitude) {
228228
modulation.amplitude = newAmplitude;
229229
midiCcAutomation.setModulation(modulation);
230230
changed = true;
231231
}
232232
} break;
233-
case DataRole::Modulation_Sine_Offset: {
233+
case DataRole::Modulation_Offset: {
234234
auto modulation = midiCcAutomation.modulation();
235235
if (const auto newOffset = value.toFloat(); modulation.offset != newOffset) {
236236
modulation.offset = newOffset;
237237
midiCcAutomation.setModulation(modulation);
238238
changed = true;
239239
}
240240
} break;
241-
case DataRole::Modulation_Sine_Inverted: {
241+
case DataRole::Modulation_Inverted: {
242242
auto modulation = midiCcAutomation.modulation();
243243
if (const auto newInverted = value.toBool(); modulation.inverted != newInverted) {
244244
modulation.inverted = newInverted;
@@ -319,10 +319,10 @@ QHash<int, QByteArray> MidiCcAutomationsModel::roleNames() const
319319
{ static_cast<int>(DataRole::Track), "track" },
320320
{ static_cast<int>(DataRole::Value0), "value0" },
321321
{ static_cast<int>(DataRole::Value1), "value1" },
322-
{ static_cast<int>(DataRole::Modulation_Sine_Cycles), "modulationSineCycles" },
323-
{ static_cast<int>(DataRole::Modulation_Sine_Amplitude), "modulationSineAmplitude" },
324-
{ static_cast<int>(DataRole::Modulation_Sine_Offset), "modulationSineOffset" },
325-
{ static_cast<int>(DataRole::Modulation_Sine_Inverted), "modulationSineInverted" },
322+
{ static_cast<int>(DataRole::Modulation_Cycles), "modulationCycles" },
323+
{ static_cast<int>(DataRole::Modulation_Amplitude), "modulationAmplitude" },
324+
{ static_cast<int>(DataRole::Modulation_Offset), "modulationOffset" },
325+
{ static_cast<int>(DataRole::Modulation_Inverted), "modulationInverted" },
326326
{ static_cast<int>(DataRole::Modulation_Type), "modulationType" },
327327
{ static_cast<int>(DataRole::EventsPerBeat), "eventsPerBeat" },
328328
{ static_cast<int>(DataRole::LineOffset), "lineOffset" }

src/application/models/midi_cc_automations_model.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ class MidiCcAutomationsModel : public QAbstractListModel
4545
Track,
4646
Value0,
4747
Value1,
48-
Modulation_Sine_Cycles,
49-
Modulation_Sine_Amplitude,
50-
Modulation_Sine_Offset,
51-
Modulation_Sine_Inverted,
48+
Modulation_Cycles,
49+
Modulation_Amplitude,
50+
Modulation_Offset,
51+
Modulation_Inverted,
5252
Modulation_Type,
5353
EventsPerBeat,
5454
LineOffset

src/application/models/pitch_bend_automations_model.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -136,13 +136,13 @@ QVariant PitchBendAutomationsModel::data(const QModelIndex & index, int role) co
136136
return static_cast<quint64>(PitchBendAutomation.location().track());
137137
case DataRole::Column:
138138
return static_cast<quint64>(PitchBendAutomation.location().column());
139-
case DataRole::Modulation_Sine_Cycles:
139+
case DataRole::Modulation_Cycles:
140140
return PitchBendAutomation.modulation().cycles;
141-
case DataRole::Modulation_Sine_Amplitude:
141+
case DataRole::Modulation_Amplitude:
142142
return PitchBendAutomation.modulation().amplitude;
143-
case DataRole::Modulation_Sine_Offset:
143+
case DataRole::Modulation_Offset:
144144
return PitchBendAutomation.modulation().offset;
145-
case DataRole::Modulation_Sine_Inverted:
145+
case DataRole::Modulation_Inverted:
146146
return PitchBendAutomation.modulation().inverted;
147147
case DataRole::Modulation_Type:
148148
return static_cast<int>(PitchBendAutomation.modulation().type);
@@ -204,31 +204,31 @@ bool PitchBendAutomationsModel::setData(const QModelIndex & index, const QVarian
204204
changed = true;
205205
}
206206
} break;
207-
case DataRole::Modulation_Sine_Cycles: {
207+
case DataRole::Modulation_Cycles: {
208208
auto modulation = PitchBendAutomation.modulation();
209209
if (const auto newCycles = value.toUInt(); modulation.cycles != newCycles) {
210210
modulation.cycles = newCycles;
211211
PitchBendAutomation.setModulation(modulation);
212212
changed = true;
213213
}
214214
} break;
215-
case DataRole::Modulation_Sine_Amplitude: {
215+
case DataRole::Modulation_Amplitude: {
216216
auto modulation = PitchBendAutomation.modulation();
217217
if (const auto newAmplitude = value.toFloat(); modulation.amplitude != newAmplitude) {
218218
modulation.amplitude = newAmplitude;
219219
PitchBendAutomation.setModulation(modulation);
220220
changed = true;
221221
}
222222
} break;
223-
case DataRole::Modulation_Sine_Offset: {
223+
case DataRole::Modulation_Offset: {
224224
auto modulation = PitchBendAutomation.modulation();
225225
if (const auto newOffset = value.toFloat(); modulation.offset != newOffset) {
226226
modulation.offset = newOffset;
227227
PitchBendAutomation.setModulation(modulation);
228228
changed = true;
229229
}
230230
} break;
231-
case DataRole::Modulation_Sine_Inverted: {
231+
case DataRole::Modulation_Inverted: {
232232
auto modulation = PitchBendAutomation.modulation();
233233
if (const auto newInverted = value.toBool(); modulation.inverted != newInverted) {
234234
modulation.inverted = newInverted;
@@ -292,10 +292,10 @@ QHash<int, QByteArray> PitchBendAutomationsModel::roleNames() const
292292
{ static_cast<int>(DataRole::Track), "track" },
293293
{ static_cast<int>(DataRole::Value0), "value0" },
294294
{ static_cast<int>(DataRole::Value1), "value1" },
295-
{ static_cast<int>(DataRole::Modulation_Sine_Cycles), "modulationSineCycles" },
296-
{ static_cast<int>(DataRole::Modulation_Sine_Amplitude), "modulationSineAmplitude" },
297-
{ static_cast<int>(DataRole::Modulation_Sine_Offset), "modulationSineOffset" },
298-
{ static_cast<int>(DataRole::Modulation_Sine_Inverted), "modulationSineInverted" },
295+
{ static_cast<int>(DataRole::Modulation_Cycles), "modulationCycles" },
296+
{ static_cast<int>(DataRole::Modulation_Amplitude), "modulationAmplitude" },
297+
{ static_cast<int>(DataRole::Modulation_Offset), "modulationOffset" },
298+
{ static_cast<int>(DataRole::Modulation_Inverted), "modulationInverted" },
299299
{ static_cast<int>(DataRole::Modulation_Type), "modulationType" }
300300
};
301301
}

src/application/models/pitch_bend_automations_model.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ class PitchBendAutomationsModel : public QAbstractListModel
4242
Track,
4343
Value0,
4444
Value1,
45-
Modulation_Sine_Cycles,
46-
Modulation_Sine_Amplitude,
47-
Modulation_Sine_Offset,
48-
Modulation_Sine_Inverted,
45+
Modulation_Cycles,
46+
Modulation_Amplitude,
47+
Modulation_Offset,
48+
Modulation_Inverted,
4949
Modulation_Type
5050
};
5151

src/domain/midi_cc_automation.cpp

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,31 @@ MidiCcAutomation::MidiCcAutomationU MidiCcAutomation::deserializeFromXml(QXmlStr
199199
} else {
200200
modulationParameters.type = ModulationParameters::ModulationType::SineWave;
201201
}
202-
modulationParameters.cycles = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyCycles()).toInt());
203-
modulationParameters.amplitude = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyAmplitude()).toInt());
204-
modulationParameters.offset = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyOffset()).toInt());
205-
modulationParameters.inverted = Utils::Xml::readBoolAttribute(reader, Constants::NahdXml::xmlKeyInverted(), false).value_or(false);
202+
203+
if (attributes.hasAttribute(Constants::NahdXml::xmlKeyCycles())) {
204+
modulationParameters.cycles = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyCycles()).toInt());
205+
} else if (attributes.hasAttribute("sineCycles")) {
206+
modulationParameters.cycles = static_cast<float>(attributes.value("sineCycles").toInt());
207+
}
208+
209+
if (attributes.hasAttribute(Constants::NahdXml::xmlKeyAmplitude())) {
210+
modulationParameters.amplitude = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyAmplitude()).toInt());
211+
} else if (attributes.hasAttribute("sineAmplitude")) {
212+
modulationParameters.amplitude = static_cast<float>(attributes.value("sineAmplitude").toInt());
213+
}
214+
215+
if (attributes.hasAttribute(Constants::NahdXml::xmlKeyOffset())) {
216+
modulationParameters.offset = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyOffset()).toInt());
217+
} else if (attributes.hasAttribute("sineOffset")) {
218+
modulationParameters.offset = static_cast<float>(attributes.value("sineOffset").toInt());
219+
}
220+
221+
const auto inverted = Utils::Xml::readBoolAttribute(reader, Constants::NahdXml::xmlKeyInverted(), false);
222+
if (inverted.has_value()) {
223+
modulationParameters.inverted = inverted.value();
224+
} else {
225+
modulationParameters.inverted = Utils::Xml::readBoolAttribute(reader, "sineInverted", false).value_or(false);
226+
}
206227
}
207228
}
208229
}

src/domain/pitch_bend_automation.cpp

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,31 @@ PitchBendAutomation::PitchBendAutomationU PitchBendAutomation::deserializeFromXm
155155
} else {
156156
modulationParameters.type = ModulationParameters::ModulationType::SineWave;
157157
}
158-
modulationParameters.cycles = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyCycles()).toInt());
159-
modulationParameters.amplitude = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyAmplitude()).toInt());
160-
modulationParameters.offset = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyOffset()).toInt());
161-
modulationParameters.inverted = Utils::Xml::readBoolAttribute(reader, Constants::NahdXml::xmlKeyInverted(), false).value_or(false);
158+
159+
if (attributes.hasAttribute(Constants::NahdXml::xmlKeyCycles())) {
160+
modulationParameters.cycles = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyCycles()).toInt());
161+
} else if (attributes.hasAttribute("sineCycles")) {
162+
modulationParameters.cycles = static_cast<float>(attributes.value("sineCycles").toInt());
163+
}
164+
165+
if (attributes.hasAttribute(Constants::NahdXml::xmlKeyAmplitude())) {
166+
modulationParameters.amplitude = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyAmplitude()).toInt());
167+
} else if (attributes.hasAttribute("sineAmplitude")) {
168+
modulationParameters.amplitude = static_cast<float>(attributes.value("sineAmplitude").toInt());
169+
}
170+
171+
if (attributes.hasAttribute(Constants::NahdXml::xmlKeyOffset())) {
172+
modulationParameters.offset = static_cast<float>(attributes.value(Constants::NahdXml::xmlKeyOffset()).toInt());
173+
} else if (attributes.hasAttribute("sineOffset")) {
174+
modulationParameters.offset = static_cast<float>(attributes.value("sineOffset").toInt());
175+
}
176+
177+
const auto inverted = Utils::Xml::readBoolAttribute(reader, Constants::NahdXml::xmlKeyInverted(), false);
178+
if (inverted.has_value()) {
179+
modulationParameters.inverted = inverted.value();
180+
} else {
181+
modulationParameters.inverted = Utils::Xml::readBoolAttribute(reader, "sineInverted", false).value_or(false);
182+
}
162183
}
163184
}
164185
}

src/unit_tests/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ add_subdirectory(selection_service_test)
1414
add_subdirectory(side_chain_service_test)
1515
add_subdirectory(song_test)
1616
add_subdirectory(track_settings_model_test)
17+
add_subdirectory(xml_serialization_test)
1718
add_subdirectory(column_settings_model_test)
1819
add_subdirectory(event_selection_model_test)
1920
add_subdirectory(midi_settings_model_test)

0 commit comments

Comments
 (0)