diff --git a/ChangeLog b/ChangeLog index f147ff48..179897d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -33,6 +33,11 @@ David Garcia Garzon Jackdmp changes log --------------------------- +2010-11-05 Stephane Letz + + * In jackdmp.cpp, jackctl_setup_signals moved before jackctl_server_start. + * Correct symbols export in backends. + 2010-11-03 Stephane Letz * 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. diff --git a/common/JackAudioDriver.cpp b/common/JackAudioDriver.cpp index 72db9c7f..9748b46a 100644 --- a/common/JackAudioDriver.cpp +++ b/common/JackAudioDriver.cpp @@ -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"); } } diff --git a/common/JackDriverLoader.cpp b/common/JackDriverLoader.cpp index d6721253..80ea3318 100644 --- a/common/JackDriverLoader.cpp +++ b/common/JackDriverLoader.cpp @@ -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); } } diff --git a/common/Jackdmp.cpp b/common/Jackdmp.cpp index e05244dd..1eda4d11 100644 --- a/common/Jackdmp.cpp +++ b/common/Jackdmp.cpp @@ -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)) diff --git a/macosx/Jackdmp.xcodeproj/project.pbxproj b/macosx/Jackdmp.xcodeproj/project.pbxproj index b2fa6483..621449c7 100644 --- a/macosx/Jackdmp.xcodeproj/project.pbxproj +++ b/macosx/Jackdmp.xcodeproj/project.pbxproj @@ -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", );