Browse Source

[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
tags/0.121.0
torben 14 years ago
parent
commit
9a4ffcde0f
1 changed files with 33 additions and 51 deletions
  1. +33
    -51
      jackd/controlapi.c

+ 33
- 51
jackd/controlapi.c View File

@@ -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)


Loading…
Cancel
Save