|
9 | 9 | #include "MidiController.h" |
10 | 10 | #include "Storage.h" |
11 | 11 | #include "usb_device.h" |
| 12 | +#include "ProgramVector.h" |
12 | 13 |
|
13 | 14 | static SystemMidiReader midi_rx; |
14 | 15 | MidiController midi_tx; |
15 | 16 | FirmwareLoader loader; |
16 | 17 | ProgramManager program; |
17 | | - |
18 | | -extern "C" int testButton(); |
| 18 | +ProgramVector staticVector; |
19 | 19 |
|
20 | 20 | MidiHandler::MidiHandler(){} |
21 | 21 | ProgramManager::ProgramManager(){} |
22 | 22 | void ProgramManager::exitProgram(bool isr){} |
| 23 | +ProgramVector* getProgramVector() { return &staticVector; } |
23 | 24 | void setParameterValue(uint8_t ch, int16_t value){} |
24 | 25 | void SystemMidiReader::reset(){} |
25 | 26 | void Owl::setOperationMode(uint8_t mode){} |
@@ -72,8 +73,12 @@ void sendMessage(uint8_t cmd, const char* msg){ |
72 | 73 | } |
73 | 74 |
|
74 | 75 | void sendMessage(){ |
75 | | - if(getErrorStatus() != NO_ERROR) |
| 76 | + if(getErrorStatus() != NO_ERROR){ |
76 | 77 | message = getErrorMessage() == NULL ? "Error" : getErrorMessage(); |
| 78 | + }else if(getProgramVector()->message != NULL){ |
| 79 | + message = getProgramVector()->message; |
| 80 | + getProgramVector()->message = NULL; |
| 81 | + } |
77 | 82 | if(message != NULL){ |
78 | 83 | char buffer[64]; |
79 | 84 | buffer[0] = SYSEX_PROGRAM_MESSAGE; |
@@ -196,6 +201,7 @@ extern "C" { |
196 | 201 | midi_tx.setOutputChannel(MIDI_OUTPUT_CHANNEL); |
197 | 202 | midi_rx.setInputChannel(MIDI_INPUT_CHANNEL); |
198 | 203 | storage.init(); |
| 204 | + getProgramVector()->message = NULL; |
199 | 205 | sendMessage(SYSEX_PROGRAM_MESSAGE, "OWL Bootloader Ready"); |
200 | 206 | } |
201 | 207 |
|
@@ -291,6 +297,7 @@ void MidiHandler::handleSysEx(uint8_t* data, uint16_t size){ |
291 | 297 | device_dfu(); |
292 | 298 | #else |
293 | 299 | error(RUNTIME_ERROR, "Bootloader OK"); |
| 300 | + setErrorStatus(NO_ERROR); |
294 | 301 | #endif |
295 | 302 | break; |
296 | 303 | case SYSEX_FIRMWARE_UPLOAD: |
|
0 commit comments