|
|
|
@@ -275,6 +275,7 @@ JackCoreMidiDriver::Open(bool capturing, bool playing, int in_channels, |
|
|
|
return -1; |
|
|
|
} |
|
|
|
char *client_name = fClientControl.fName; |
|
|
|
printf("JackCoreMidiDriver::Open client_name %s\n",client_name); |
|
|
|
|
|
|
|
// Allocate and connect physical inputs |
|
|
|
potential_pi_count = MIDIGetNumberOfSources(); |
|
|
|
@@ -632,6 +633,9 @@ JackCoreMidiDriver::Write() |
|
|
|
extern "C" { |
|
|
|
#endif |
|
|
|
|
|
|
|
// singleton kind of driver |
|
|
|
static Jack::JackDriverClientInterface* driver = NULL; |
|
|
|
|
|
|
|
SERVER_EXPORT jack_driver_desc_t * driver_get_descriptor() |
|
|
|
{ |
|
|
|
jack_driver_desc_t * desc; |
|
|
|
@@ -669,11 +673,17 @@ extern "C" { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
Jack::JackDriverClientInterface* driver = new Jack::JackCoreMidiDriver("system_midi", "coremidi", engine, table); |
|
|
|
if (driver->Open(1, 1, virtual_in, virtual_out, false, "in", "out", 0, 0) == 0) { |
|
|
|
return driver; |
|
|
|
// singleton kind of driver |
|
|
|
if (!driver) { |
|
|
|
driver = new Jack::JackCoreMidiDriver("system_midi", "coremidi", engine, table); |
|
|
|
if (driver->Open(1, 1, virtual_in, virtual_out, false, "in", "out", 0, 0) == 0) { |
|
|
|
return driver; |
|
|
|
} else { |
|
|
|
delete driver; |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
} else { |
|
|
|
delete driver; |
|
|
|
jack_info("JackCoreMidiDriver already allocated, cannot be loaded twice"); |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
|