| @@ -124,8 +124,9 @@ struct MidiThing : Module { | |||
| // Midi spec is zeroo indexed | |||
| uint8_t predefToSend = predef - 1; | |||
| msg.bytes = {0xF0, 0x7D, 0x17, 0x00, 0x00, 0x02, 0x00, predefToSend, 0xF7}; | |||
| midiOut.setChannel(0); | |||
| midiOut.sendMessage(msg); | |||
| DEBUG("Predef %d msg request sent", predef); | |||
| // DEBUG("Predef %d msg request sent: %s", predef, msg.toString().c_str()); | |||
| } | |||
| uint8_t port = 0; | |||
| @@ -141,7 +142,7 @@ struct MidiThing : Module { | |||
| // and m is the volt output mode to select from: | |||
| msg.bytes = {0xF0, 0x7D, 0x17, static_cast<unsigned char>(32 + port), 0x02, 0x02, 0x00, portModes[port], 0xF7}; | |||
| midiOut.sendMessage(msg); | |||
| DEBUG("Voltage mode msg sent: port %d (%d), mode %d", port, static_cast<unsigned char>(32 + port), portModes[port]); | |||
| // DEBUG("Voltage mode msg sent: port %d (%d), mode %d", port, static_cast<unsigned char>(32 + port), portModes[port]); | |||
| } | |||
| @@ -163,7 +164,7 @@ struct MidiThing : Module { | |||
| uint8_t pp = 2; | |||
| msg.bytes = {0xF0, 0x7D, 0x17, 0x00, 0x01, 0x03, 0x00, static_cast<uint8_t>(n + m), pp, 0xF7}; | |||
| midiOut.sendMessage(msg); | |||
| DEBUG("API request mode msg sent: port %d, pp %s", port, msg.toString().c_str()); | |||
| // DEBUG("API request mode msg sent: port %d, pp %s", port, msg.toString().c_str()); | |||
| } | |||
| int getVoltageMode(uint8_t row, uint8_t col) { | |||
| @@ -203,15 +204,15 @@ struct MidiThing : Module { | |||
| PORTMODE_t portModes[NUM_INPUTS] = {}; | |||
| void process(const ProcessArgs& args) override { | |||
| if (buttonTrigger.process(params[REFRESH_PARAM].getValue())) { | |||
| DEBUG("Refreshing config over SysEx..."); | |||
| if (buttonTrigger.process(params[REFRESH_PARAM].getValue())) { | |||
| setPredef(4); | |||
| refreshConfig(); | |||
| } | |||
| midi::Message msg; | |||
| uint8_t outData[32] = {}; | |||
| while (inputQueue.tryPop(&msg, args.frame)) { | |||
| DEBUG("msg (size: %d): %s", msg.getSize(), msg.toString().c_str()); | |||
| // DEBUG("msg (size: %d): %s", msg.getSize(), msg.toString().c_str()); | |||
| uint8_t outLen = decodeSysEx(&msg.bytes[0], outData, msg.bytes.size(), false); | |||
| if (outLen > 3) { | |||
| @@ -221,10 +222,7 @@ struct MidiThing : Module { | |||
| if (channel >= 0 && channel < NUM_INPUTS) { | |||
| if (outData[outLen - 1] < LASTPORTMODE) { | |||
| portModes[channel] = (PORTMODE_t) outData[outLen - 1]; | |||
| DEBUG("Channel %d, %d: mode %d (%s)", outData[2], channel, portModes[channel], cfgPortModeNames[portModes[channel]]); | |||
| } | |||
| else { | |||
| DEBUG("Error got %d, out of range", outData[outLen - 1]); | |||
| // DEBUG("Channel %d, %d: mode %d (%s)", outData[2], channel, portModes[channel], cfgPortModeNames[portModes[channel]]); | |||
| } | |||
| } | |||
| @@ -563,7 +561,6 @@ struct MidiThingWidget : ModuleWidget { | |||
| void setMidiPort(midi::Port* port) { | |||
| DEBUG("Entering setMidiPort"); | |||
| clearChildren(); | |||
| math::Vec pos; | |||
| @@ -588,8 +585,6 @@ struct MidiThingWidget : ModuleWidget { | |||
| addChild(deviceChoice); | |||
| pos = deviceChoice->box.getBottomLeft(); | |||
| this->deviceChoice = deviceChoice; | |||
| DEBUG("Leaving setMidiPort"); | |||
| } | |||
| }; | |||
| @@ -629,8 +624,6 @@ struct MidiThingWidget : ModuleWidget { | |||
| } | |||
| } | |||
| DEBUG("MidiThingWidget construction complete!"); | |||
| } | |||
| void appendContextMenu(Menu* menu) override { | |||
| @@ -663,8 +656,9 @@ struct MidiThingWidget : ModuleWidget { | |||
| module->inputQueue.setChannel(0); // TODO update | |||
| module->refreshConfig(); | |||
| DEBUG("Updating Output MIDI settings - driver: %s, device: %s", | |||
| driver->getName().c_str(), driver->getOutputDeviceName(deviceId).c_str()); | |||
| // DEBUG("Updating Output MIDI settings - driver: %s, device: %s", | |||
| // driver->getName().c_str(), driver->getOutputDeviceName(deviceId).c_str()); | |||
| })); | |||
| } | |||
| })); | |||
| @@ -672,12 +666,16 @@ struct MidiThingWidget : ModuleWidget { | |||
| })); | |||
| menu->addChild(createMenuItem("Request Bridge Mode", "", | |||
| menu->addChild(createIndexSubmenuItem("Select Hardware Preset", | |||
| {"Predef 1", "Predef 2", "Predef 3", "Predef 4 (VCV Mode)"}, | |||
| [ = ]() { | |||
| module->setPredef(MidiThing::VCV_BRIDGE_PREDEF); | |||
| return -1; | |||
| }, | |||
| [ = ](int mode) { | |||
| module->setPredef(mode + 1); | |||
| module->refreshConfig(); | |||
| } | |||
| )); | |||
| )); | |||
| } | |||
| }; | |||