@@ -975,6 +975,8 @@ void JackClient::OnShutdown(JackShutdownCallback callback, void *arg) | |||||
if (IsActive()) { | if (IsActive()) { | ||||
jack_error("You cannot set callbacks on an active client"); | jack_error("You cannot set callbacks on an active client"); | ||||
} else { | } else { | ||||
// Shutdown callback will either be an old API version or the new version (with info) | |||||
GetClientControl()->fCallback[kShutDownCallback] = (callback != NULL); | |||||
fShutdownArg = arg; | fShutdownArg = arg; | ||||
fShutdown = callback; | fShutdown = callback; | ||||
} | } | ||||
@@ -985,6 +987,7 @@ void JackClient::OnInfoShutdown(JackInfoShutdownCallback callback, void *arg) | |||||
if (IsActive()) { | if (IsActive()) { | ||||
jack_error("You cannot set callbacks on an active client"); | jack_error("You cannot set callbacks on an active client"); | ||||
} else { | } else { | ||||
// Shutdown callback will either be an old API version or the new version (with info) | |||||
GetClientControl()->fCallback[kShutDownCallback] = (callback != NULL); | GetClientControl()->fCallback[kShutDownCallback] = (callback != NULL); | ||||
fInfoShutdownArg = arg; | fInfoShutdownArg = arg; | ||||
fInfoShutdown = callback; | fInfoShutdown = callback; | ||||
@@ -264,24 +264,24 @@ int JackEngine::ClientNotify(JackClientInterface* client, int refnum, const char | |||||
return 0; | return 0; | ||||
} | } | ||||
int ret; | |||||
int res1; | |||||
// External client | // External client | ||||
if (dynamic_cast<JackExternalClient*>(client)) { | if (dynamic_cast<JackExternalClient*>(client)) { | ||||
ret = client->ClientNotify(refnum, name, notify, sync, message, value1, value2); | |||||
res1 = client->ClientNotify(refnum, name, notify, sync, message, value1, value2); | |||||
// Important for internal client : unlock before calling the notification callbacks | // Important for internal client : unlock before calling the notification callbacks | ||||
} else { | } else { | ||||
bool res = Unlock(); | |||||
ret = client->ClientNotify(refnum, name, notify, sync, message, value1, value2); | |||||
if (res) { | |||||
bool res2 = Unlock(); | |||||
res1 = client->ClientNotify(refnum, name, notify, sync, message, value1, value2); | |||||
if (res2) { | |||||
Lock(); | Lock(); | ||||
} | } | ||||
} | } | ||||
if (ret < 0) { | |||||
if (res1 < 0) { | |||||
jack_error("ClientNotify fails name = %s notification = %ld val1 = %ld val2 = %ld", name, notify, value1, value2); | jack_error("ClientNotify fails name = %s notification = %ld val1 = %ld val2 = %ld", name, notify, value1, value2); | ||||
} | } | ||||
return ret; | |||||
return res1; | |||||
} | } | ||||
void JackEngine::NotifyClient(int refnum, int event, int sync, const char* message, int value1, int value2) | void JackEngine::NotifyClient(int refnum, int event, int sync, const char* message, int value1, int value2) | ||||
@@ -958,22 +958,22 @@ int JackEngine::PortDisconnect(int refnum, jack_port_id_t src, jack_port_id_t ds | |||||
fGraphManager->GetConnections(src, connections); | fGraphManager->GetConnections(src, connections); | ||||
JackPort* port = fGraphManager->GetPort(src); | JackPort* port = fGraphManager->GetPort(src); | ||||
int ret = 0; | |||||
int res = 0; | |||||
if (port->GetFlags() & JackPortIsOutput) { | if (port->GetFlags() & JackPortIsOutput) { | ||||
for (int i = 0; (i < CONNECTION_NUM_FOR_PORT) && (connections[i] != EMPTY); i++) { | for (int i = 0; (i < CONNECTION_NUM_FOR_PORT) && (connections[i] != EMPTY); i++) { | ||||
if (PortDisconnect(refnum, src, connections[i]) != 0) { | if (PortDisconnect(refnum, src, connections[i]) != 0) { | ||||
ret = -1; | |||||
res = -1; | |||||
} | } | ||||
} | } | ||||
} else { | } else { | ||||
for (int i = 0; (i < CONNECTION_NUM_FOR_PORT) && (connections[i] != EMPTY); i++) { | for (int i = 0; (i < CONNECTION_NUM_FOR_PORT) && (connections[i] != EMPTY); i++) { | ||||
if (PortDisconnect(refnum, connections[i], src) != 0) { | if (PortDisconnect(refnum, connections[i], src) != 0) { | ||||
ret = -1; | |||||
res = -1; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
return ret; | |||||
return res; | |||||
} else if (fGraphManager->CheckPorts(src, dst) < 0) { | } else if (fGraphManager->CheckPorts(src, dst) < 0) { | ||||
return -1; | return -1; | ||||
} else if (fGraphManager->Disconnect(src, dst) == 0) { | } else if (fGraphManager->Disconnect(src, dst) == 0) { | ||||
@@ -640,15 +640,15 @@ namespace Jack | |||||
int JackNetMasterManager::SyncCallback(jack_transport_state_t state, jack_position_t* pos) | int JackNetMasterManager::SyncCallback(jack_transport_state_t state, jack_position_t* pos) | ||||
{ | { | ||||
//check if each slave is ready to roll | //check if each slave is ready to roll | ||||
int ret = 1; | |||||
int res = 1; | |||||
master_list_it_t it; | master_list_it_t it; | ||||
for (it = fMasterList.begin(); it != fMasterList.end(); it++) { | for (it = fMasterList.begin(); it != fMasterList.end(); it++) { | ||||
if (!(*it)->IsSlaveReadyToRoll()) { | if (!(*it)->IsSlaveReadyToRoll()) { | ||||
ret = 0; | |||||
res = 0; | |||||
} | } | ||||
} | } | ||||
jack_log("JackNetMasterManager::SyncCallback returns '%s'", (ret) ? "true" : "false"); | |||||
return ret; | |||||
jack_log("JackNetMasterManager::SyncCallback returns '%s'", (res) ? "true" : "false"); | |||||
return res; | |||||
} | } | ||||
void* JackNetMasterManager::NetManagerThread(void* arg) | void* JackNetMasterManager::NetManagerThread(void* arg) | ||||
@@ -114,7 +114,7 @@ bool JackServerGlobals::Init() | |||||
int loopback = 0; | int loopback = 0; | ||||
int sync = 0; | int sync = 0; | ||||
int rc, i; | int rc, i; | ||||
int ret; | |||||
int res; | |||||
int replace_registry = 0; | int replace_registry = 0; | ||||
FILE* fp = 0; | FILE* fp = 0; | ||||
@@ -174,11 +174,11 @@ bool JackServerGlobals::Init() | |||||
argc = 0; | argc = 0; | ||||
if (fp) { | if (fp) { | ||||
ret = fscanf(fp, "%s", buffer); | |||||
while (ret != 0 && ret != EOF) { | |||||
res = fscanf(fp, "%s", buffer); | |||||
while (res != 0 && res != EOF) { | |||||
argv[argc] = (char*)malloc(64); | argv[argc] = (char*)malloc(64); | ||||
strcpy(argv[argc], buffer); | strcpy(argv[argc], buffer); | ||||
ret = fscanf(fp, "%s", buffer); | |||||
res = fscanf(fp, "%s", buffer); | |||||
argc++; | argc++; | ||||
} | } | ||||
fclose(fp); | fclose(fp); | ||||
@@ -140,7 +140,7 @@ static jack_time_t jack_get_mhz (void) | |||||
if (f == 0) | if (f == 0) | ||||
{ | { | ||||
perror("can't open /proc/cpuinfo\n"); | perror("can't open /proc/cpuinfo\n"); | ||||
exit(1); | |||||
exit(1); // TODO : should be remplaced by an exception | |||||
} | } | ||||
for (;;) | for (;;) | ||||
@@ -150,9 +150,8 @@ static jack_time_t jack_get_mhz (void) | |||||
char buf[1000]; | char buf[1000]; | ||||
if (fgets(buf, sizeof(buf), f) == NULL) { | if (fgets(buf, sizeof(buf), f) == NULL) { | ||||
jack_error ("FATAL: cannot locate cpu MHz in " | |||||
"/proc/cpuinfo\n"); | |||||
exit(1); | |||||
jack_error ("FATAL: cannot locate cpu MHz in /proc/cpuinfo\n"); | |||||
exit(1); // TODO : should be remplaced by an exception | |||||
} | } | ||||
#if defined(__powerpc__) | #if defined(__powerpc__) | ||||
@@ -225,42 +224,42 @@ SERVER_EXPORT void EndTime() | |||||
void SetClockSource(jack_timer_type_t source) | void SetClockSource(jack_timer_type_t source) | ||||
{ | { | ||||
jack_log("Clock source : %s", ClockSourceName(source)); | |||||
jack_log("Clock source : %s", ClockSourceName(source)); | |||||
switch (source) | switch (source) | ||||
{ | { | ||||
case JACK_TIMER_CYCLE_COUNTER: | |||||
_jack_get_microseconds = jack_get_microseconds_from_cycles; | |||||
break; | |||||
case JACK_TIMER_HPET: | |||||
if (jack_hpet_init () == 0) { | |||||
_jack_get_microseconds = jack_get_microseconds_from_hpet; | |||||
} else { | |||||
_jack_get_microseconds = jack_get_microseconds_from_system; | |||||
} | |||||
break; | |||||
case JACK_TIMER_SYSTEM_CLOCK: | |||||
default: | |||||
_jack_get_microseconds = jack_get_microseconds_from_system; | |||||
break; | |||||
case JACK_TIMER_CYCLE_COUNTER: | |||||
_jack_get_microseconds = jack_get_microseconds_from_cycles; | |||||
break; | |||||
case JACK_TIMER_HPET: | |||||
if (jack_hpet_init () == 0) { | |||||
_jack_get_microseconds = jack_get_microseconds_from_hpet; | |||||
} else { | |||||
_jack_get_microseconds = jack_get_microseconds_from_system; | |||||
} | |||||
break; | |||||
case JACK_TIMER_SYSTEM_CLOCK: | |||||
default: | |||||
_jack_get_microseconds = jack_get_microseconds_from_system; | |||||
break; | |||||
} | } | ||||
} | } | ||||
const char* ClockSourceName(jack_timer_type_t source) | const char* ClockSourceName(jack_timer_type_t source) | ||||
{ | { | ||||
switch (source) { | switch (source) { | ||||
case JACK_TIMER_CYCLE_COUNTER: | |||||
return "cycle counter"; | |||||
case JACK_TIMER_HPET: | |||||
return "hpet"; | |||||
case JACK_TIMER_SYSTEM_CLOCK: | |||||
#ifdef HAVE_CLOCK_GETTIME | |||||
return "system clock via clock_gettime"; | |||||
#else | |||||
return "system clock via gettimeofday"; | |||||
#endif | |||||
case JACK_TIMER_CYCLE_COUNTER: | |||||
return "cycle counter"; | |||||
case JACK_TIMER_HPET: | |||||
return "hpet"; | |||||
case JACK_TIMER_SYSTEM_CLOCK: | |||||
#ifdef HAVE_CLOCK_GETTIME | |||||
return "system clock via clock_gettime"; | |||||
#else | |||||
return "system clock via gettimeofday"; | |||||
#endif | |||||
} | } | ||||
/* what is wrong with gcc ? */ | /* what is wrong with gcc ? */ | ||||
@@ -93,7 +93,7 @@ static void start_server_classic_aux(const char* server_name) | |||||
char** argv = 0; | char** argv = 0; | ||||
int i = 0; | int i = 0; | ||||
int good = 0; | int good = 0; | ||||
int ret; | |||||
int res; | |||||
snprintf(filename, 255, "%s/.jackdrc", getenv("HOME")); | snprintf(filename, 255, "%s/.jackdrc", getenv("HOME")); | ||||
fp = fopen(filename, "r"); | fp = fopen(filename, "r"); | ||||
@@ -108,11 +108,11 @@ static void start_server_classic_aux(const char* server_name) | |||||
if (fp) { | if (fp) { | ||||
arguments[0] = '\0'; | arguments[0] = '\0'; | ||||
ret = fscanf(fp, "%s", buffer); | |||||
res = fscanf(fp, "%s", buffer); | |||||
while (ret != 0 && ret != EOF) { | while (ret != 0 && ret != EOF) { | ||||
strcat(arguments, buffer); | strcat(arguments, buffer); | ||||
strcat(arguments, " "); | strcat(arguments, " "); | ||||
ret = fscanf(fp, "%s", buffer); | |||||
res = fscanf(fp, "%s", buffer); | |||||
} | } | ||||
if (strlen(arguments) > 0) { | if (strlen(arguments) > 0) { | ||||
good = 1; | good = 1; | ||||