35 automationReadId = 12,
36 automationRecordId = 23,
39 previousMarkerId = 14,
58 toggleBeatsSecondsModeId = 50,
69 masterVolumeTextId = 26,
73 paramNameTrackId = 2500,
74 paramTextTrackId = 2600,
80 volTextTrackId = 2200,
82 panTextTrackId = 2400,
88 auxTextTrackId = 2300,
98 stopClipsTrackId = 3900,
103 clipBankDown1Id = 323,
104 clipBankDown4Id = 324,
105 clipBankDown8Id = 325,
109 scrollTracksUpId = 102,
110 scrollTracksDownId = 103,
111 scrollTracksLeftId = 104,
112 scrollTracksRightId = 105,
113 zoomTracksInId = 106,
114 zoomTracksOutId = 107,
115 toggleSelectionModeId = 108,
120 selectClipInTrackId = 1900,
121 selectPluginInTrackId = 2000,
122 selectedPluginNameId = 113,
124 faderBankLeftId = 208,
125 faderBankLeft1Id = 200,
126 faderBankLeft4Id = 201,
127 faderBankLeft8Id = 202,
128 faderBankLeft16Id = 206,
129 faderBankRightId = 209,
130 faderBankRight1Id = 203,
131 faderBankRight4Id = 204,
132 faderBankRight8Id = 205,
133 faderBankRight16Id = 207,
135 paramBankLeftId = 220,
136 paramBankLeft1Id = 221,
137 paramBankLeft4Id = 222,
138 paramBankLeft8Id = 223,
139 paramBankLeft16Id = 224,
140 paramBankLeft24Id = 225,
141 paramBankRightId = 226,
142 paramBankRight1Id = 227,
143 paramBankRight4Id = 228,
144 paramBankRight8Id = 229,
145 paramBankRight16Id = 230,
146 paramBankRight24Id = 231,
157 userAction10Id = 309,
158 userAction11Id = 310,
159 userAction12Id = 311,
160 userAction13Id = 312,
161 userAction14Id = 313,
162 userAction15Id = 314,
163 userAction16Id = 315,
164 userAction17Id = 316,
165 userAction18Id = 317,
166 userAction19Id = 318,
167 userAction20Id = 319,
181 int controllerID = -1, note = -1, channel = -1;
182 juce::Colour colour { juce::Colours::transparentWhite };
195 static int getControllerNumberFromId (
int)
noexcept;
198 void initialiseDevice (
bool connect)
override;
199 void shutDownDevice()
override;
201 void updateOSCSettings (
int oscInputPort,
int oscOutputPort,
juce::String oscOutputAddr)
override;
206 void updateMiscFeatures()
override;
209 bool eatsAllMessages()
override;
210 bool canSetEatsAllMessages()
override;
211 void setEatsAllMessages(
bool eatAll)
override;
212 void moveFader (
int channelNum,
float newSliderPos)
override;
213 void moveMasterLevelFader (
float newSliderPos)
override;
214 void moveMasterPanPot (
float newPos)
override;
215 void movePanPot (
int channelNum,
float newPan)
override;
216 void moveAux (
int channel,
int auxNum,
const char* bus,
float newPos)
override;
218 void soloCountChanged (
bool)
override;
219 void playStateChanged (
bool isPlaying)
override;
220 void recordStateChanged (
bool isRecording)
override;
221 void automationReadModeChanged (
bool isReading)
override;
222 void automationWriteModeChanged (
bool isWriting)
override;
223 void faderBankChanged (
int newStartChannelNumber,
const juce::StringArray& trackNames)
override;
224 void channelLevelChanged (
int channel,
float l,
float r)
override;
225 void trackSelectionChanged (
int channel,
bool isSelected)
override;
226 void trackRecordEnabled (
int channel,
bool isEnabled)
override;
227 void masterLevelsChanged (
float leftLevel,
float rightLevel)
override;
228 void timecodeChanged (
int barsOrHours,
int beatsOrMinutes,
int ticksOrSeconds,
int millisecs,
bool isBarsBeats,
bool isFrames)
override;
229 void clickOnOffChanged (
bool isClickOn)
override;
230 void snapOnOffChanged (
bool isSnapOn)
override;
231 void loopOnOffChanged (
bool isLoopOn)
override;
232 void slaveOnOffChanged (
bool isSlaving)
override;
233 void punchOnOffChanged (
bool isPunching)
override;
234 void scrollOnOffChanged (
bool isPunching)
override;
235 void parameterChanged (
int parameterNumber,
const ParameterSetting& newValue)
override;
236 void clearParameter (
int parameterNumber)
override;
237 bool canChangeSelectedPlugin()
override;
239 void deleteController()
override;
240 void markerChanged (
int parameterNumber,
const MarkerSetting& newValue)
override;
241 void clearMarker (
int parameterNumber)
override;
244 bool removeMapping (
ActionID,
int controllerID,
int note,
int channel);
254 bool isControllerAssigned()
256 return id != 0 || addr.
isNotEmpty() || note != -1;
266 int getNumMappings()
const;
267 void listenToRow (
int);
268 int getRowBeingListenedTo()
const;
269 bool allowsManualEditing()
const {
return needsOSCSocket; }
270 void showMappingsListForRow (
int);
271 void setLearntParam (
bool keepListening);
272 void removeMapping (
int index);
273 Mapping* getMappingForRow (
int)
const;
278 virtual void play (
float val,
int param);
279 virtual void stop (
float val,
int param);
280 virtual void record (
float val,
int param);
281 virtual void home (
float val,
int param);
282 virtual void end (
float val,
int param);
283 virtual void rewind (
float val,
int param);
284 virtual void fastForward (
float val,
int param);
285 virtual void markIn (
float val,
int param);
286 virtual void markOut (
float val,
int param);
287 virtual void automationReading (
float val,
int param);
288 virtual void automationWriting (
float val,
int param);
289 virtual void addMarker (
float val,
int param);
290 virtual void prevMarker (
float val,
int param);
291 virtual void nextMarker (
float val,
int param);
292 virtual void marker1 (
float val,
int param);
293 virtual void marker2 (
float val,
int param);
294 virtual void marker3 (
float val,
int param);
295 virtual void marker4 (
float val,
int param);
296 virtual void marker5 (
float val,
int param);
297 virtual void marker6 (
float val,
int param);
298 virtual void marker7 (
float val,
int param);
299 virtual void marker8 (
float val,
int param);
300 virtual void nudgeLeft (
float val,
int param);
301 virtual void nudgeRight (
float val,
int param);
302 virtual void abort (
float val,
int param);
303 virtual void abortRestart (
float val,
int param);
304 virtual void jog (
float val,
int param);
305 virtual void jumpToMarkIn (
float val,
int param);
306 virtual void jumpToMarkOut (
float val,
int param);
307 virtual void clearAllSolo (
float val,
int param);
310 virtual void toggleBeatsSecondsMode (
float val,
int param);
311 virtual void toggleLoop (
float val,
int param);
312 virtual void togglePunch (
float val,
int param);
313 virtual void toggleClick (
float val,
int param);
314 virtual void toggleSnap (
float val,
int param);
315 virtual void toggleSlave (
float val,
int param);
316 virtual void toggleEtoE (
float val,
int param);
317 virtual void toggleScroll (
float val,
int param);
318 virtual void toggleAllArm (
float val,
int param);
321 virtual void masterVolume (
float val,
int param);
322 virtual void masterPan (
float val,
int param);
323 virtual void quickParam (
float val,
int param);
324 virtual void paramTrack (
float val,
int param);
327 virtual void volTrack (
float val,
int param);
328 virtual void panTrack (
float val,
int param);
329 virtual void muteTrack (
float val,
int param);
330 virtual void soloTrack (
float val,
int param);
331 virtual void armTrack (
float val,
int param);
332 virtual void selectTrack (
float val,
int param);
333 virtual void auxTrack (
float val,
int param);
336 virtual void launchClip1 (
float val,
int param);
337 virtual void launchClip2 (
float val,
int param);
338 virtual void launchClip3 (
float val,
int param);
339 virtual void launchClip4 (
float val,
int param);
340 virtual void launchClip5 (
float val,
int param);
341 virtual void launchClip6 (
float val,
int param);
342 virtual void launchClip7 (
float val,
int param);
343 virtual void launchClip8 (
float val,
int param);
344 virtual void stopClips (
float val,
int param);
346 virtual void launchScene (
float val,
int param);
347 virtual void clipBankUp1 (
float val,
int param);
348 virtual void clipBankUp4 (
float val,
int param);
349 virtual void clipBankUp8 (
float val,
int param);
350 virtual void clipBankDown1 (
float val,
int param);
351 virtual void clipBankDown4 (
float val,
int param);
352 virtual void clipBankDown8 (
float val,
int param);
355 virtual void zoomIn (
float val,
int param);
356 virtual void zoomOut (
float val,
int param);
357 virtual void scrollTracksUp (
float val,
int param);
358 virtual void scrollTracksDown (
float val,
int param);
359 virtual void scrollTracksLeft (
float val,
int param);
360 virtual void scrollTracksRight (
float val,
int param);
361 virtual void zoomTracksIn (
float val,
int param);
362 virtual void zoomTracksOut (
float val,
int param);
363 virtual void toggleSelectionMode (
float val,
int param);
364 virtual void selectLeft (
float val,
int param);
365 virtual void selectRight (
float val,
int param);
366 virtual void selectUp (
float val,
int param);
367 virtual void selectDown (
float val,
int param);
368 virtual void selectClipInTrack (
float val,
int param);
369 virtual void selectFilterInTrack (
float val,
int param);
372 virtual void faderBankLeft (
float val,
int param);
373 virtual void faderBankLeft1 (
float val,
int param);
374 virtual void faderBankLeft4 (
float val,
int param);
375 virtual void faderBankLeft8 (
float val,
int param);
376 virtual void faderBankLeft16 (
float val,
int param);
377 virtual void faderBankRight (
float val,
int param);
378 virtual void faderBankRight1 (
float val,
int param);
379 virtual void faderBankRight4 (
float val,
int param);
380 virtual void faderBankRight8 (
float val,
int param);
381 virtual void faderBankRight16 (
float val,
int param);
383 virtual void paramBankLeft (
float val,
int param);
384 virtual void paramBankLeft1 (
float val,
int param);
385 virtual void paramBankLeft4 (
float val,
int param);
386 virtual void paramBankLeft8 (
float val,
int param);
387 virtual void paramBankLeft16 (
float val,
int param);
388 virtual void paramBankLeft24 (
float val,
int param);
389 virtual void paramBankRight (
float val,
int param);
390 virtual void paramBankRight1 (
float val,
int param);
391 virtual void paramBankRight4 (
float val,
int param);
392 virtual void paramBankRight8 (
float val,
int param);
393 virtual void paramBankRight16 (
float val,
int param);
394 virtual void paramBankRight24 (
float val,
int param);
397 virtual void userFunction1 (
float val,
int param);
398 virtual void userFunction2 (
float val,
int param);
399 virtual void userFunction3 (
float val,
int param);
400 virtual void userFunction4 (
float val,
int param);
401 virtual void userFunction5 (
float val,
int param);
402 virtual void userFunction6 (
float val,
int param);
403 virtual void userFunction7 (
float val,
int param);
404 virtual void userFunction8 (
float val,
int param);
405 virtual void userFunction9 (
float val,
int param);
406 virtual void userFunction10 (
float val,
int param);
407 virtual void userFunction11 (
float val,
int param);
408 virtual void userFunction12 (
float val,
int param);
409 virtual void userFunction13 (
float val,
int param);
410 virtual void userFunction14 (
float val,
int param);
411 virtual void userFunction15 (
float val,
int param);
412 virtual void userFunction16 (
float val,
int param);
413 virtual void userFunction17 (
float val,
int param);
414 virtual void userFunction18 (
float val,
int param);
415 virtual void userFunction19 (
float val,
int param);
416 virtual void userFunction20 (
float val,
int param);
418 void null (
float,
int) {}
420 virtual void loadFunctions();
423 virtual void importSettings (
const juce::File&);
425 virtual void exportSettings (
const juce::File&);
427 int getPacketsIn() {
return packetsIn; }
428 int getPacketsOut() {
return packetsOut; }
432 typedef void (CustomControlSurface::* ActionFunction) (
float val,
int param);
434 struct ActionFunctionInfo
439 ActionFunction actionFunc {};
443 ExternalControllerManager::Protocol protocol;
446 int nextCmdGroupIndex = 50000;
449 int lastControllerNote = -1;
450 int lastControllerID = 0;
451 float lastControllerValue = 0;
452 int lastControllerChannel = 0;
453 int listeningOnRow = -1;
457 bool pluginMoveMode =
true;
458 bool eatsAllMidi =
false;
460 int oscInputPort = 0, oscOutputPort = 0;
461 int packetsIn = 0, packetsOut = 0;
472 void timerCallback()
override;
478 int& chan,
int& val)
noexcept
482 const int number = m.getControllerNumber();
483 const int value = m.getControllerValue();
485 lastParamNumber = 0x10000 + number;
486 paramID = lastParamNumber;
487 chan = m.getChannel();
491 int lastParamNumber = 0;
492 int lastRPNCoarse = 0;
494 int lastNRPNCoarse = 0;
495 int lastNRPNFine = 0;
496 bool wasNRPN =
false;
502 struct CustomControlSurfaceManager
504 void registerSurface (CustomControlSurface*);
505 void unregisterSurface (CustomControlSurface*);
506 void saveAllSettings (
Engine&);
526 virtual void sendCommandToControllerForActionID (
int actionID,
bool);
527 virtual void sendCommandToControllerForActionID (
int actionID,
float value);
528 virtual void sendCommandToControllerForActionID (
int actionID,
juce::String);
530 virtual juce::String controllerIDToString (
int id,
int channelid)
const;
531 virtual juce::String noteIDToString (
int note,
int channelid)
const;
536 virtual void clearCommandGroups();
538 virtual bool isPendingEventAssignable();
539 virtual void updateOrCreateMappingForID (
int id,
juce::String addr,
int channel,
int noteNum,
int controllerID);
542 virtual void handleAsyncUpdate()
override;
543 virtual void recreateOSCSockets();
545 virtual bool shouldActOnValue (
float v);