@@ -43,6 +43,10 @@ void ColumnSettingsModel::reset()
4343 emit chordNote3OffsetChanged ();
4444 emit chordNote3VelocityChanged ();
4545 emit chordNote3DelayChanged ();
46+
47+ emit arpeggiatorEnabledChanged ();
48+ emit arpeggiatorPatternChanged ();
49+ emit arpeggiatorEventsPerBeatChanged ();
4650}
4751
4852void ColumnSettingsModel::requestData ()
@@ -63,6 +67,10 @@ void ColumnSettingsModel::setColumnSettings(const ColumnSettings & settings)
6367 const bool note3VelocityChanged = m_settings.chordAutomationSettings .note3 .velocity != settings.chordAutomationSettings .note3 .velocity ;
6468 const bool note3DelayChanged = m_settings.chordAutomationSettings .note3 .delay != settings.chordAutomationSettings .note3 .delay ;
6569
70+ const bool arpeggiatorEnabledChanged = m_settings.chordAutomationSettings .arpeggiator .enabled != settings.chordAutomationSettings .arpeggiator .enabled ;
71+ const bool arpeggiatorPatternChanged = m_settings.chordAutomationSettings .arpeggiator .pattern != settings.chordAutomationSettings .arpeggiator .pattern ;
72+ const bool arpeggiatorEventsPerBeatChanged = m_settings.chordAutomationSettings .arpeggiator .eventsPerBeat != settings.chordAutomationSettings .arpeggiator .eventsPerBeat ;
73+
6674 m_settings = settings;
6775
6876 if (delayChanged) {
@@ -96,6 +104,16 @@ void ColumnSettingsModel::setColumnSettings(const ColumnSettings & settings)
96104 emit chordNote3DelayChanged ();
97105 }
98106
107+ if (arpeggiatorEnabledChanged) {
108+ emit this ->arpeggiatorEnabledChanged ();
109+ }
110+ if (arpeggiatorPatternChanged) {
111+ emit this ->arpeggiatorPatternChanged ();
112+ }
113+ if (arpeggiatorEventsPerBeatChanged) {
114+ emit this ->arpeggiatorEventsPerBeatChanged ();
115+ }
116+
99117 emit dataReceived ();
100118}
101119
@@ -255,4 +273,43 @@ void ColumnSettingsModel::setChordNote3Delay(qint16 delay)
255273 }
256274}
257275
276+ bool ColumnSettingsModel::arpeggiatorEnabled () const
277+ {
278+ return m_settings.chordAutomationSettings .arpeggiator .enabled ;
279+ }
280+
281+ void ColumnSettingsModel::setArpeggiatorEnabled (bool enabled)
282+ {
283+ if (m_settings.chordAutomationSettings .arpeggiator .enabled != enabled) {
284+ m_settings.chordAutomationSettings .arpeggiator .enabled = enabled;
285+ emit arpeggiatorEnabledChanged ();
286+ }
287+ }
288+
289+ int ColumnSettingsModel::arpeggiatorPattern () const
290+ {
291+ return static_cast <int >(m_settings.chordAutomationSettings .arpeggiator .pattern );
292+ }
293+
294+ void ColumnSettingsModel::setArpeggiatorPattern (int pattern)
295+ {
296+ if (static_cast <int >(m_settings.chordAutomationSettings .arpeggiator .pattern ) != pattern) {
297+ m_settings.chordAutomationSettings .arpeggiator .pattern = static_cast <Arpeggiator::Pattern>(pattern);
298+ emit arpeggiatorPatternChanged ();
299+ }
300+ }
301+
302+ uint8_t ColumnSettingsModel::arpeggiatorEventsPerBeat () const
303+ {
304+ return m_settings.chordAutomationSettings .arpeggiator .eventsPerBeat ;
305+ }
306+
307+ void ColumnSettingsModel::setArpeggiatorEventsPerBeat (uint8_t eventsPerBeat)
308+ {
309+ if (m_settings.chordAutomationSettings .arpeggiator .eventsPerBeat != eventsPerBeat) {
310+ m_settings.chordAutomationSettings .arpeggiator .eventsPerBeat = eventsPerBeat;
311+ emit arpeggiatorEventsPerBeatChanged ();
312+ }
313+ }
314+
258315} // namespace noteahead
0 commit comments