I see different objects having the same ObjectID (which not always match the Runtime ID). Is that expected?
This is the output of the following example:
page.mOnActivate
controlRoom: 94
mixConsole: 27
trackSelection: 27
controlRoom: objectId=27, name=VST Mixer
mixConsole: objectId=27, name=VST Mixer
trackSelection: objectId=27, name=VST Mixer
var midiremote_api = require('midiremote_api_v1')
var deviceDriver = midiremote_api.makeDeviceDriver(
'Example',
'Test',
'Example Test'
)
var midiInput = deviceDriver.mPorts.makeMidiInput('Example Test Input')
var midiOutput = deviceDriver.mPorts.makeMidiOutput('Example Test Output')
deviceDriver.makeDetectionUnit()
.detectPortPair(midiInput, midiOutput)
.expectInputNameContains('Example Test')
.expectOutputNameContains('Example Test')
var page = deviceDriver.mMapping.makePage('Main')
deviceDriver.mOnActivate = function (activeDevice) {
console.log('deviceDriver.mOnActivate')
}
deviceDriver.mOnDeactivate = function (activeDevice) {
console.log('deviceDriver.mOnDeactivate')
}
page.mOnActivate = function (activeDevice, activeMapping) {
console.log('page.mOnActivate')
console.log('controlRoom: ' + page.mHostAccess.mControlRoom.getRuntimeID(activeMapping))
console.log('trackSelection: ' + page.mHostAccess.mTrackSelection.getRuntimeID(activeMapping))
console.log('mixConsole: ' + page.mHostAccess.mMixConsole.getRuntimeID(activeMapping))
var controlRoomDirectAccess = page.mHostAccess.makeDirectAccess(page.mHostAccess.mControlRoom)
controlRoomDirectAccess.activate(activeMapping)
objectId = controlRoomDirectAccess.getBaseObjectID(activeMapping)
name = controlRoomDirectAccess.getObjectTitle(activeMapping, objectId)
console.log('controlRoom: objectId=' + objectId + ', name=' + name)
var trackSelectionDirectAccess = page.mHostAccess.makeDirectAccess(page.mHostAccess.mTrackSelection)
trackSelectionDirectAccess.activate(activeMapping)
var objectId = trackSelectionDirectAccess.getBaseObjectID(activeMapping)
var name = trackSelectionDirectAccess.getObjectTitle(activeMapping, objectId)
console.log('trackSelection: objectId=' + objectId + ', name=' + name)
var mixConsoleDirectAccess = page.mHostAccess.makeDirectAccess(page.mHostAccess.mMixConsole)
mixConsoleDirectAccess.activate(activeMapping)
objectId = mixConsoleDirectAccess.getBaseObjectID(activeMapping)
name = mixConsoleDirectAccess.getObjectTitle(activeMapping, objectId)
console.log('mixConsole: objectId=' + objectId + ', name=' + name)
}
page.mOnDeactivate = function (activeDevice, activeMapping) {
console.log('page.mOnDeactivate')
}
I have the latest update for Cubase Pro 15.