Browse Source

In jackdmp.cpp, jackctl_setup_signals moved before jackctl_server_start. Correct symbols export in backends on OSX.

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4082 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/1.9.7
sletz 14 years ago
parent
commit
221c51ff37
5 changed files with 44 additions and 16 deletions
  1. +5
    -0
      ChangeLog
  2. +7
    -7
      common/JackAudioDriver.cpp
  3. +14
    -5
      common/JackDriverLoader.cpp
  4. +3
    -2
      common/Jackdmp.cpp
  5. +15
    -2
      macosx/Jackdmp.xcodeproj/project.pbxproj

+ 5
- 0
ChangeLog View File

@@ -33,6 +33,11 @@ David Garcia Garzon
Jackdmp changes log
---------------------------

2010-11-05 Stephane Letz <letz@grame.fr>

* In jackdmp.cpp, jackctl_setup_signals moved before jackctl_server_start.
* Correct symbols export in backends.

2010-11-03 Stephane Letz <letz@grame.fr>

* Improve backend error handling: fatal error returned by Read/Write now cause a Process failure (so a thread exit for blocking backends). Recoverable ones (XRuns..) are now treated internally in ALSA, FreeBob and FFADO backends.


+ 7
- 7
common/JackAudioDriver.cpp View File

@@ -195,7 +195,7 @@ int JackAudioDriver::ProcessNull()
ProcessGraphAsync();
}
// Keep end cycle time
// Keep end cycle time
JackDriver::CycleTakeEndTime();
WaitUntilNextCycle();
return 0;
@@ -255,7 +255,7 @@ int JackAudioDriver::ProcessSync()
fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable);
}
// Write output buffers from the previous cycle
// Write output buffers from the current cycle
if (Write() < 0) {
jack_error("JackAudioDriver::ProcessSync: write error, stopping...");
return -1;
@@ -270,10 +270,10 @@ void JackAudioDriver::ProcessGraphAsync()
{
// fBeginDateUst is set in the "low level" layer, fEndDateUst is from previous cycle
if (!fEngine->Process(fBeginDateUst, fEndDateUst))
jack_error("JackAudioDriver::ProcessAsync Process error");
jack_error("JackAudioDriver::ProcessGraphAsync: Process error");
fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable);
if (ProcessSlaves() < 0)
jack_error("JackAudioDriver::ProcessAsync ProcessSlaves error");
jack_error("JackAudioDriver::ProcessGraphAsync: ProcessSlaves error");
}

void JackAudioDriver::ProcessGraphSync()
@@ -282,11 +282,11 @@ void JackAudioDriver::ProcessGraphSync()
if (fEngine->Process(fBeginDateUst, fEndDateUst)) {
fGraphManager->ResumeRefNum(&fClientControl, fSynchroTable);
if (ProcessSlaves() < 0)
jack_error("JackAudioDriver::ProcessSync ProcessSlaves error, engine may now behave abnormally!!");
jack_error("JackAudioDriver::ProcessGraphSync: ProcessSlaves error, engine may now behave abnormally!!");
if (fGraphManager->SuspendRefNum(&fClientControl, fSynchroTable, DRIVER_TIMEOUT_FACTOR * fEngineControl->fTimeOutUsecs) < 0)
jack_error("JackAudioDriver::ProcessSync SuspendRefNum error, engine may now behave abnormally!!");
jack_error("JackAudioDriver::ProcessGraphSync: SuspendRefNum error, engine may now behave abnormally!!");
} else { // Graph not finished: do not activate it
jack_error("JackAudioDriver::ProcessSync: error");
jack_error("JackAudioDriver::ProcessGraphSync: Process error");
}
}



+ 14
- 5
common/JackDriverLoader.cpp View File

@@ -436,17 +436,17 @@ jack_get_descriptor (JSList * drivers, const char * sofile, const char * symbol)

#ifdef WIN32
if ((so_get_descriptor == NULL) && (dlerr = GetLastError()) != 0) {
jack_log("jack_get_descriptor : dll is not a driver, err = %ld", dlerr);
jack_error("jack_get_descriptor : dll is not a driver, err = %ld", dlerr);
#else
if ((so_get_descriptor == NULL) && (dlerr = dlerror ()) != NULL) {
jack_log("jack_get_descriptor err = %s", dlerr);
jack_error("jack_get_descriptor err = %s", dlerr);
#endif

UnloadDriverModule(dlhandle);
free(filename);
return NULL;
}
if ((descriptor = so_get_descriptor ()) == NULL) {
jack_error("driver from '%s' returned NULL descriptor", filename);
UnloadDriverModule(dlhandle);
@@ -467,7 +467,7 @@ jack_get_descriptor (JSList * drivers, const char * sofile, const char * symbol)
/* check it doesn't exist already */
for (node = drivers; node; node = jack_slist_next (node)) {
other_descriptor = (jack_driver_desc_t *) node->data;
if (strcmp(descriptor->name, other_descriptor->name) == 0) {
jack_error("the drivers in '%s' and '%s' both have the name '%s'; using the first",
other_descriptor->file, filename, other_descriptor->name);
@@ -563,6 +563,8 @@ jack_drivers_load (JSList * drivers) {
desc = jack_get_descriptor (drivers, filedata.cFileName, "driver_get_descriptor");
if (desc) {
driver_list = jack_slist_append (driver_list, desc);
} else {
jack_error ("jack_get_descriptor returns null for \'%s\'", filedata.cFileName);
}

} while (FindNextFile(file, &filedata));
@@ -601,7 +603,7 @@ jack_drivers_load (JSList * drivers) {
}

while ((dir_entry = readdir(dir_stream))) {
/* check the filename is of the right format */
if (strncmp ("jack_", dir_entry->d_name, 5) != 0) {
continue;
@@ -617,8 +619,11 @@ jack_drivers_load (JSList * drivers) {
}

desc = jack_get_descriptor (drivers, dir_entry->d_name, "driver_get_descriptor");
if (desc) {
driver_list = jack_slist_append (driver_list, desc);
} else {
jack_error ("jack_get_descriptor returns null for \'%s\'", dir_entry->d_name);
}
}

@@ -687,6 +692,8 @@ jack_internals_load (JSList * internals) {
desc = jack_get_descriptor (internals, filedata.cFileName, "jack_get_descriptor");
if (desc) {
driver_list = jack_slist_append (driver_list, desc);
} else {
jack_error ("jack_get_descriptor returns null for \'%s\'", filedata.cFileName);
}

} while (FindNextFile(file, &filedata));
@@ -743,6 +750,8 @@ jack_internals_load (JSList * internals) {
desc = jack_get_descriptor (internals, dir_entry->d_name, "jack_get_descriptor");
if (desc) {
driver_list = jack_slist_append (driver_list, desc);
} else {
jack_error ("jack_get_descriptor returns null for \'%s\'", dir_entry->d_name);
}
}



+ 3
- 2
common/Jackdmp.cpp View File

@@ -439,7 +439,9 @@ int main(int argc, char* argv[])
goto fail_free1;
}

// Start server
// Setup signals then start server
signals = jackctl_setup_signals(0);
if (!jackctl_server_start(server_ctl, audio_driver_ctl)) {
fprintf(stderr, "Failed to start server\n");
goto fail_free1;
@@ -474,7 +476,6 @@ int main(int argc, char* argv[])
notify_server_start(server_name);

// Waits for signal
signals = jackctl_setup_signals(0);
jackctl_wait_signals(signals);

if (!jackctl_server_stop(server_ctl))


+ 15
- 2
macosx/Jackdmp.xcodeproj/project.pbxproj View File

@@ -8099,6 +8099,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "-DJACK_32_64";
OTHER_CPLUSPLUSFLAGS = (
"-DSERVER_SIDE",
"-DHAVE_CELT",
"-DHAVE_CELT_API_0_7",
"-DMACH_RPC_MACH_SEMA",
@@ -10857,6 +10858,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "-DJACK_32_64";
OTHER_CPLUSPLUSFLAGS = (
"-DSERVER_SIDE",
"-DMACH_RPC_MACH_SEMA",
"-DJACK_32_64",
);
@@ -11154,6 +11156,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "-DJACK_32_64";
OTHER_CPLUSPLUSFLAGS = (
"-DSERVER_SIDE",
"-DMACH_RPC_MACH_SEMA",
"-DJACK_32_64",
);
@@ -12318,6 +12321,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "-DJACK_32_64";
OTHER_CPLUSPLUSFLAGS = (
"-DSERVER_SIDE",
"-DMACH_RPC_MACH_SEMA",
"-DJACK_32_64",
);
@@ -15995,6 +15999,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "-DJACK_32_64";
OTHER_CPLUSPLUSFLAGS = (
"-DSERVER_SIDE",
"-DMACH_RPC_MACH_SEMA",
"-DJACK_32_64",
);
@@ -16139,6 +16144,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "-DJACK_32_64";
OTHER_CPLUSPLUSFLAGS = (
"-DSERVER_SIDE",
"-DMACH_RPC_MACH_SEMA",
"-DJACK_32_64",
);
@@ -16279,7 +16285,10 @@
MACH_O_TYPE = mh_dylib;
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "-DJACK_32_64";
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
OTHER_CPLUSPLUSFLAGS = (
"-DSERVER_SIDE",
"$(OTHER_CFLAGS)",
);
OTHER_LDFLAGS = (
"-framework",
Jackservermp,
@@ -16422,7 +16431,10 @@
MACH_O_TYPE = mh_dylib;
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "-DJACK_32_64";
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
OTHER_CPLUSPLUSFLAGS = (
"-DSERVER_SIDE",
"$(OTHER_CFLAGS)",
);
OTHER_LDFLAGS = (
/opt/local/lib/libsamplerate.a,
"-framework",
@@ -16567,6 +16579,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.4;
OTHER_CFLAGS = "-DJACK_32_64";
OTHER_CPLUSPLUSFLAGS = (
"-DSERVER_SIDE",
"-DMACH_RPC_MACH_SEMA",
"-DJACK_32_64",
);


Loading…
Cancel
Save