The exit code detection for apps ran in terminal is not working,
at least with xterm. xterm doesnt seem to be able to return exit
code of its child process.
* rename cdbus header include guards to use CDBUS_ instead of LASH_DBUS_
* remove dbus/error.h and dbus/error.c
error.h contained lash/ladish specific error strings and
lash_dbus_error() prototype. lash_dbus_error() is renamed to
cdbus_error() and its implementation is moved to dbus/method.c. The
D-Bus error strings that have DBUS_ERROR_XXX matches are removed and
their uses are switched to the libdbus variants. The ladish specific
error strings are moved to dbus_constants.h
* Room creation/destruction is now separeted from starting/stopping
(creating/destroying jmcore links)
* Rooms can now be created and destryed when studio is stopped
* Rooms are started/stopped when studio is started/stopped
Apart from better interraction of studio start/stop and room
lifecycles, it is now possible to implement load of studio with rooms
because during studio load rooms have to be created in stopped state
and eventually started only at later stage, during studio start.
this is actually a bug in jackdbus because it should not emit
the "stopped" signal when the server stop is attempted and
server is already stopped.
The previous commit cd98f23804 is related
Both this and previous commit are related to ticket #82
This introduces no new functionality but changes the way new apps are started.
Previously new app request were not queued, they were synchronous.
Now they are queued and asynchronous.
it is used to ensure that room dbus object path is unique
decrementing it when room is removed does not make sense
because removing non-last room will create duplicate
object path string
There are three types of ports depeneding on references to them:
* ports that are referenced from jack and studio graphs
* ports that are referenced from jack and room graphs
* studio-room link ports that are referenced from studio and room graphs
The old approach was to destroy ports when removing references from jack graph.
Studio-room link ports were destroyed when removing the room.
However this caused double free when removing app ports that appear in jack and
room graphs.
The introduced implementation uses reference counting of graph references to ports.
Temporary references (like the one returned by port constructor and graph_get_port())
are not tracked.