Browse Source

Correct JackWinMMEDriver and JackALSARawMidiDriver creation.

tags/v1.9.10
Stephane Letz 11 years ago
parent
commit
a48fea3c01
2 changed files with 17 additions and 9 deletions
  1. +15
    -7
      linux/alsarawmidi/JackALSARawMidiDriver.cpp
  2. +2
    -2
      windows/winmme/JackWinMMEDriver.cpp

+ 15
- 7
linux/alsarawmidi/JackALSARawMidiDriver.cpp View File

@@ -624,6 +624,9 @@ JackALSARawMidiDriver::Write()
#ifdef __cplusplus
extern "C" {
#endif
// singleton kind of driver
static Jack::JackALSARawMidiDriver* driver = NULL;

SERVER_EXPORT jack_driver_desc_t *
driver_get_descriptor()
@@ -639,14 +642,19 @@ extern "C" {
driver_initialize(Jack::JackLockedEngine *engine, Jack::JackSynchro *table,
const JSList *params)
{
Jack::JackDriverClientInterface *driver =
new Jack::JackALSARawMidiDriver("system_midi", "alsarawmidi",
engine, table);
if (driver->Open(0, 0, 1, 1, 0, 0, false, "midi in", "midi out", 0, 0)) {
delete driver;
driver = 0;
// singleton kind of driver
if (!driver) {
driver = new Jack::JackALSARawMidiDriver("system_midi", "alsarawmidi", engine, table);
if (driver->Open(1, 1, 0, 0, false, "midi in", "midi out", 0, 0) == 0) {
return driver;
} else {
delete driver;
return NULL;
}
} else {
jack_info("JackALSARawMidiDriver already allocated, cannot be loaded twice");
return NULL;
}
return driver;
}

#ifdef __cplusplus


+ 2
- 2
windows/winmme/JackWinMMEDriver.cpp View File

@@ -359,7 +359,7 @@ extern "C"
#endif

// singleton kind of driver
static Jack::JackDriverClientInterface* driver = NULL;
static Jack::JackWinMMEDriver* driver = NULL;

SERVER_EXPORT jack_driver_desc_t * driver_get_descriptor()
{
@@ -411,7 +411,7 @@ extern "C"
// singleton kind of driver
if (!driver) {
driver = new Jack::JackWinMMEDriver("system_midi", "winmme", engine, table);
if (driver->Open(0, 0, 1, 1, 0, 0, false, "in", "out", 0, 0) == 0) {
if (driver->Open(1, 1, 0, 0, false, "in", "out", 0, 0) == 0) {
return driver;
} else {
delete driver;


Loading…
Cancel
Save