Having these variables set enables apps to discrimination
against ladish, by error or otherwise. In particular
neither LADISH L0 nor L1 imply that user should face mayhem
of standard file menu items for either new, open, save
and/or saveas being disabled.
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
In 997630bfb7 the API changed because of LASH and
jack-session support. The level app property was switched from uint8 to string.
However, some externally maintained frontends (claudia, klaudia and festige) use
the 0.3 API.
This changeset restores the 0.3 API and extends it with new functions and signals,
ones that use string instead of uint8 level.
if the pgrp of the first child is different from pgrp of the jack client,
send SIGTERM and SIGKILL to both process groups.
This changeset also switches termination signals send from pid to pgrp
The project state now is can now have more than one state. The project
unload sequence now first removes all connections, then stopps all
apps, and as last step - clears the graph. When project load fails,
ladish_room_unload_project() is not called anymore, because unloading
of room even without apps is now a multistep process. Instead, a new
function, ladish_room_clear_project(), is introduced. It is called
when project load fails and as last step in project unload.
If the first JACK client that appears has pid different from the one
of the child process, send SIGUSR1 on L1 save to this first
grandchild.
This changeset fixes the "run L1 app in terminal" issue and the
similar issue with dash (the default shell on Debian and Ubuntu, that
for simple commandlines does fork() and exec() instead of just exec(),
like bash does. This changeset also fixes the situation with complex
commandlines that result in only one JACK client.
The complex commandlines that result in multiple processes creating
JACK clients are handled by sending the SIGUSR1 to the first process
that creates JACK client. In future this could be improved by sending
SIGUSR1 to all of them but it is probably better to avoid such
situations by creating one app per JACK-creating process.
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.