diff options
author | joq <joq@0c269be4-1314-0410-8aa9-9f06e86f4224> | 2003-08-25 06:07:57 +0000 |
---|---|---|
committer | joq <joq@0c269be4-1314-0410-8aa9-9f06e86f4224> | 2003-08-25 06:07:57 +0000 |
commit | 056e6648e0cda5ae96daeb5a3cee6af4496a2ac4 (patch) | |
tree | f6164199a67cd0dc73fcb6960a12c72f296b9a53 /jackd/transengine.c | |
parent | baf0187264b0b443dacae9cf4832af01a2078f5d (diff) | |
download | jack1-056e6648e0cda5ae96daeb5a3cee6af4496a2ac4.tar.gz |
[0.79.1] timebase master fixes
git-svn-id: svn+ssh://jackaudio.org/trunk/jack@464 0c269be4-1314-0410-8aa9-9f06e86f4224
Diffstat (limited to 'jackd/transengine.c')
-rw-r--r-- | jackd/transengine.c | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/jackd/transengine.c b/jackd/transengine.c index 1f1fb64..c8559a1 100644 --- a/jackd/transengine.c +++ b/jackd/transengine.c @@ -176,6 +176,8 @@ jack_timebase_reset (jack_engine_t *engine, jack_client_id_t client_id) client->control->is_timebase = 0; engine->timebase_client = NULL; ectl->pending_time.valid = 0; + VERBOSE (engine, "%s resigned as timebase master\n", + client->control->name); ret = 0; } else ret = EINVAL; @@ -197,22 +199,34 @@ jack_timebase_set (jack_engine_t *engine, client = jack_client_internal_by_id (engine, client_id); + if (client == NULL) { + // JOQ: use PRIuLEAST32 here... + VERBOSE (engine, " %lu no longer exists!\n", client_id); + jack_unlock_graph (engine); + return EINVAL; + } + if (conditional && engine->timebase_client) { /* see if timebase master is someone else */ - if (client && (client != engine->timebase_client)) + if (client != engine->timebase_client) { + VERBOSE (engine, "conditional timebase for %s failed\n" + " %s is already the master\n", + client->control->name, + engine->timebase_client->control->name); ret = EBUSY; + } else + VERBOSE (engine, " %s was already timebase master:\n", + client->control->name); } else { - if (client) { - if (engine->timebase_client) - engine->timebase_client-> - control->is_timebase = 0; - engine->timebase_client = client; - client->control->is_timebase = 1; - } else - ret = EINVAL; + if (engine->timebase_client) + engine->timebase_client->control->is_timebase = 0; + engine->timebase_client = client; + client->control->is_timebase = 1; + VERBOSE (engine, "new timebase master: %s\n", + client->control->name); } jack_unlock_graph (engine); |