Commit 0a30a5f7 authored by sletz's avatar sletz
Browse files

New callback exiting test

git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@1483 0c269be4-1314-0410-8aa9-9f06e86f4224
parent ea992901
......@@ -165,13 +165,13 @@ void Jack_Thread_Init_Callback(void *arg)
void Jack_Freewheel_Callback(int starting, void *arg)
{
Log("Freewhell callback has been successfully called with value %i.(msg from callback)\n", starting);
Log("Freewhell callback has been successfully called with value %i. (msg from callback)\n", starting);
FW = starting;
}
void Jack_Client_Registration_Callback(const char* name, int val, void *arg)
{
Log("Client registration callback name = %s has been successfully called with value %i.(msg from callback)\n", name, val);
Log("Client registration callback name = %s has been successfully called with value %i. (msg from callback)\n", name, val);
}
int Jack_Update_Buffer_Size(jack_nframes_t nframes, void *arg)
......@@ -345,7 +345,7 @@ int process2(jack_nframes_t nframes, void *arg)
jack_default_audio_sample_t *out2;
jack_default_audio_sample_t *in2;
if (process2_activated == 1) { // Rception du process1 pour comparer les donnes
if (process2_activated == 1) { // Reception du process1 pour comparer les donnees
in2 = (jack_default_audio_sample_t *) jack_port_get_buffer (input_port2, nframes);
for (int p = 0; p < nframes;p++) {
signal2[index2] = in2[p];
......@@ -358,6 +358,7 @@ int process2(jack_nframes_t nframes, void *arg)
}
}
}
if (process2_activated == 2) { // envoie de signal1 pour test tie mode et le rcupre direct + latence de la boucle jack...
out2 = (jack_default_audio_sample_t *) jack_port_get_buffer (output_port2, nframes);
in2 = (jack_default_audio_sample_t *) jack_port_get_buffer (input_port2, nframes);
......@@ -375,8 +376,8 @@ int process2(jack_nframes_t nframes, void *arg)
index2++;
}
}
}
if (process2_activated == 3) { // envoie de -signal1 pour sommation en oppo de phase par jack
in2 = (jack_default_audio_sample_t *) jack_port_get_buffer (input_port2, nframes);
......@@ -395,6 +396,20 @@ int process2(jack_nframes_t nframes, void *arg)
return 0;
}
// To test callback exiting
int process3(jack_nframes_t nframes, void *arg)
{
static int process3_call = 0;
if (process3_call++ > 10) {
Log("process3 callback : exiting...\n");
return -1;
} else {
Log("calling process3 callback : process3_call = %ld\n", process3_call);
return 0;
}
}
static void display_transport_state()
{
jack_transport_state_t ts;
......@@ -529,7 +544,7 @@ int main (int argc, char *argv[])
* Register a client...
*
*/
Log("Register a client using jack_client_open()...\n");
Log("Register a client using jack_client_open()...\n");
client1 = jack_client_open(client_name1, jack_options, &status, server_name);
if (client1 == NULL) {
fprintf (stderr, "jack_client_open() failed, "
......@@ -570,7 +585,7 @@ int main (int argc, char *argv[])
/**
* Test RT mode...
* verify if the real time mode returned by jack match the optional argument defined when launching jack_test*/
if (jack_is_realtime(client1) == RT )
if (jack_is_realtime(client1) == RT)
Log("Jackd is in realtime mode (RT = %i).\n", RT);
else
printf("!!! ERROR !!! Jackd is in a non-expected realtime mode (RT = %i).\n", RT);
......@@ -608,7 +623,7 @@ int main (int argc, char *argv[])
if (jack_set_client_registration_callback(client1, Jack_Client_Registration_Callback, 0) != 0) {
printf("Error when calling jack_set_client_registration_callback() !\n");
}
jack_set_error_function (Jack_Error_Callback);
jack_set_error_function(Jack_Error_Callback);
/**
* Create file for clock "frame time" analysis
......@@ -1034,7 +1049,6 @@ int main (int argc, char *argv[])
free(inports); // free array of ports (as mentionned in the doc of jack_get_ports)
/**
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
......@@ -1582,6 +1596,9 @@ int main (int argc, char *argv[])
* Check a transport start with a "slow" client, simulating a delay around 1 sec before becoming ready.
*
*/
Log("-----------------------------------------------------------\n");
Log("---------------------------TRANSPORT-----------------------\n");
Log("-----------------------------------------------------------\n");
lineports = linecount;
......@@ -1762,6 +1779,22 @@ int main (int argc, char *argv[])
jack_sleep (1 * 1000);
time_before_exit--;
}
/**
* Checking callback exiting : when the return code is != 0, the client is desactivated.
*/
Log("Testing calback exiting...\n");
if (jack_deactivate(client2) != 0) {
printf("!!! ERROR !!! jack_deactivate does not return 0 for client2 !\n");
}
if (jack_deactivate(client1) != 0) {
printf("!!! ERROR !!! jack_deactivate does not return 0 for client1 !\n");
}
jack_set_process_callback(client1, process3, 0);
jack_activate(client1);
jack_sleep(3 * 1000);
/**
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment