summaryrefslogtreecommitdiff
path: root/jackd
diff options
context:
space:
mode:
authortorben <torben@0c269be4-1314-0410-8aa9-9f06e86f4224>2011-05-29 00:46:25 +0000
committertorben <torben@0c269be4-1314-0410-8aa9-9f06e86f4224>2011-05-29 00:46:25 +0000
commit9a4ffcde0f3fb7c4d670cc4266f6507bbf3fccd7 (patch)
treee0599116ba845808823cf15b39386af779e5e6f0 /jackd
parent6e6fc8dde91c78b72f5ee088ec50e4588caa34ae (diff)
downloadjack1-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.c84
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)