git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4082 0c269be4-1314-0410-8aa9-9f06e86f4224tags/1.9.7
@@ -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. | |||
@@ -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"); | |||
} | |||
} | |||
@@ -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); | |||
} | |||
} | |||
@@ -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)) | |||
@@ -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", | |||
); | |||