diff options
author | torben <torben@0c269be4-1314-0410-8aa9-9f06e86f4224> | 2011-05-29 00:46:25 +0000 |
---|---|---|
committer | torben <torben@0c269be4-1314-0410-8aa9-9f06e86f4224> | 2011-05-29 00:46:25 +0000 |
commit | 9a4ffcde0f3fb7c4d670cc4266f6507bbf3fccd7 (patch) | |
tree | e0599116ba845808823cf15b39386af779e5e6f0 /jackd | |
parent | 6e6fc8dde91c78b72f5ee088ec50e4588caa34ae (diff) | |
download | jack1-9a4ffcde0f3fb7c4d670cc4266f6507bbf3fccd7.tar.gz |
[controlAPI] switch server_start and server_stop code to jack1
also commented out quite a lot of jack_log occurences.
the server stop code needs a bit of debugging.
git-svn-id: svn+ssh://jackaudio.org/trunk/jack@4412 0c269be4-1314-0410-8aa9-9f06e86f4224
Diffstat (limited to 'jackd')
-rw-r--r-- | jackd/controlapi.c | 84 |
1 files changed, 33 insertions, 51 deletions
diff --git a/jackd/controlapi.c b/jackd/controlapi.c index d0776e2..cbe2ad8 100644 --- a/jackd/controlapi.c +++ b/jackd/controlapi.c @@ -38,6 +38,8 @@ #include "jack/jslist.h" #include "jack/driver_interface.h" #include "jack/driver.h" + +#include "jack/engine.h" //#include "JackError.h" //#include "JackServer.h" //#include "shm.h" @@ -1063,28 +1065,25 @@ const JSList * jackctl_server_get_drivers_list(jackctl_server_t *server_ptr) bool jackctl_server_stop(jackctl_server_t *server_ptr) { -#if 0 - server_ptr->engine->Stop(); - server_ptr->engine->Close(); - delete server_ptr->engine; + //jack_engine_driver_exit (server_ptr->engine); + jack_engine_delete (server_ptr->engine); /* clean up shared memory and files from this server instance */ - jack_log("cleaning up shared memory"); + //jack_log("cleaning up shared memory"); jack_cleanup_shm(); - jack_log("cleaning up files"); + //jack_log("cleaning up files"); - JackTools::CleanupFiles(server_ptr->name.str); + jack_cleanup_files (server_ptr->name.str); - jack_log("unregistering server `%s'", server_ptr->name.str); + //jack_log("unregistering server `%s'", server_ptr->name.str); jack_unregister_server(server_ptr->name.str); server_ptr->engine = NULL; return true; -#endif } const JSList * jackctl_server_get_parameters(jackctl_server_t *server_ptr) @@ -1097,10 +1096,12 @@ jackctl_server_start( jackctl_server_t *server_ptr, jackctl_driver_t *driver_ptr) { -#if 0 int rc; - rc = jack_register_server(server_ptr->name.str, server_ptr->replace_registry.b); + // TODO: + int frame_time_offset = 0; + + rc = jack_register_server (server_ptr->name.str, server_ptr->replace_registry.b); switch (rc) { case EEXIST: @@ -1114,78 +1115,59 @@ jackctl_server_start( goto fail; } - jack_log("server `%s' registered", server_ptr->name.str); + //jack_log("server `%s' registered", server_ptr->name.str); /* clean up shared memory and files from any previous * instance of this server name */ - jack_cleanup_shm(); - //JackTools::CleanupFiles(server_ptr->name.str); + jack_cleanup_shm (); + jack_cleanup_files (server_ptr->name.str); if (!server_ptr->realtime.b && server_ptr->client_timeout.i == 0) server_ptr->client_timeout.i = 500; /* 0.5 sec; usable when non realtime. */ - /* check port max value before allocating server */ - if (server_ptr->port_max.ui > PORT_NUM_MAX) { - jack_error("JACK server started with too much ports %d (when port max can be %d)", server_ptr->port_max.ui, PORT_NUM_MAX); - goto fail; - } - - /* get the engine/driver started */ - server_ptr->engine = new JackServer( - server_ptr->sync.b, - server_ptr->temporary.b, - server_ptr->client_timeout.i, - server_ptr->realtime.b, - server_ptr->realtime_priority.i, - server_ptr->port_max.ui, - server_ptr->verbose.b, - (jack_timer_type_t)server_ptr->clock_source.ui, - server_ptr->name.str); - if (server_ptr->engine == NULL) - { - jack_error("Failed to create new JackServer object"); - goto fail_unregister; + if ((server_ptr->engine = jack_engine_new (server_ptr->realtime.b, server_ptr->realtime_priority.i, + server_ptr->do_mlock.b, server_ptr->do_unlock.b, server_ptr->name.str, + server_ptr->temporary.b, server_ptr->verbose.b, server_ptr->client_timeout.i, + server_ptr->port_max.i, getpid(), frame_time_offset, + server_ptr->nozombies.b, drivers)) == 0) { + jack_error ("cannot create engine"); + goto fail_unregister; } - rc = server_ptr->engine->Open(driver_ptr->desc_ptr, driver_ptr->set_parameters); - if (rc < 0) + if (jack_engine_load_driver (server_ptr->engine, driver_ptr->desc_ptr, driver_ptr->set_parameters)) { - jack_error("JackServer::Open() failed with %d", rc); - goto fail_delete; + jack_error ("cannot load driver module %s", driver_ptr->desc_ptr->name); + goto fail_delete; } - rc = server_ptr->engine->Start(); - if (rc < 0) - { - jack_error("JackServer::Start() failed with %d", rc); - goto fail_close; + if (server_ptr->engine->driver->start (server_ptr->engine->driver) != 0) { + jack_error ("cannot start driver"); + goto fail_close; } return true; fail_close: - server_ptr->engine->Close(); fail_delete: - delete server_ptr->engine; + jack_engine_delete (server_ptr->engine); server_ptr->engine = NULL; fail_unregister: - jack_log("cleaning up shared memory"); + //jack_log("cleaning up shared memory"); jack_cleanup_shm(); - jack_log("cleaning up files"); + //jack_log("cleaning up files"); - JackTools::CleanupFiles(server_ptr->name.str); + jack_cleanup_files(server_ptr->name.str); - jack_log("unregistering server `%s'", server_ptr->name.str); + //jack_log("unregistering server `%s'", server_ptr->name.str); jack_unregister_server(server_ptr->name.str); fail: return false; -#endif } const char * jackctl_driver_get_name(jackctl_driver_t *driver_ptr) |