summaryrefslogtreecommitdiff
path: root/core/os
diff options
context:
space:
mode:
Diffstat (limited to 'core/os')
-rw-r--r--core/os/midi_driver.cpp7
-rw-r--r--core/os/os.h2
2 files changed, 7 insertions, 2 deletions
diff --git a/core/os/midi_driver.cpp b/core/os/midi_driver.cpp
index 614ce99b2e..3e020a1585 100644
--- a/core/os/midi_driver.cpp
+++ b/core/os/midi_driver.cpp
@@ -52,7 +52,12 @@ void MIDIDriver::receive_input_packet(uint64_t timestamp, uint8_t *data, uint32_
uint32_t param_position = 1;
if (length >= 1) {
- if ((data[0] & 0x80) == 0x00) {
+ if (data[0] >= 0xF0) {
+ // channel does not apply to system common messages
+ event->set_channel(0);
+ event->set_message(data[0]);
+ last_received_message = data[0];
+ } else if ((data[0] & 0x80) == 0x00) {
// running status
event->set_channel(last_received_message & 0xF);
event->set_message(last_received_message >> 4);
diff --git a/core/os/os.h b/core/os/os.h
index 69f8f8f134..89b3414b3e 100644
--- a/core/os/os.h
+++ b/core/os/os.h
@@ -267,7 +267,7 @@ public:
virtual int get_low_processor_usage_mode_sleep_usec() const;
virtual String get_executable_path() const;
- virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL) = 0;
+ virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking = true, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false, Mutex *p_pipe_mutex = NULL) = 0;
virtual Error kill(const ProcessID &p_pid) = 0;
virtual int get_process_id() const;
virtual void vibrate_handheld(int p_duration_ms = 500);