Commit Graph

277 Commits

Author SHA1 Message Date
Nedko Arnaudov 8d15292faf daemon: fix restoring of a2j clients/ports/connections 2009-12-12 00:06:46 +02:00
Nedko Arnaudov adbafd8cf3 daemon: adjust logs 2009-12-12 00:06:00 +02:00
Nedko Arnaudov 78c2ccb202 daemon: on studio stop, wait for our clients to disappear before stopping the JACK server 2009-12-11 22:55:19 +02:00
Nedko Arnaudov 938b6746ce daemon: maintain count of JACK clients ladish started 2009-12-11 22:54:08 +02:00
Nedko Arnaudov 958b36c279 daemon: fix memory leak (virtualizer struct) 2009-12-11 22:47:55 +02:00
Nedko Arnaudov a5511c9cd1 daemon: use basename when deducing app name from app command-line. Closes #22 2009-12-11 01:41:59 +02:00
Nedko Arnaudov 96e4d5289a daemon: fix a2j handling 2009-12-11 01:41:28 +02:00
Nedko Arnaudov 7d947e383d daemon: use app names instead of jack client names. Closes #17 2009-12-11 00:46:06 +02:00
Nedko Arnaudov 5eb3930bc4 daemon: find app name when client appears 2009-12-11 00:11:03 +02:00
Nedko Arnaudov bb854a8fd2 daemon: get jack client pid on appear 2009-12-10 23:20:20 +02:00
Nedko Arnaudov 98745d3543 daemon: don't autostart new apps when studio is stopped 2009-12-08 21:08:51 +02:00
Nedko Arnaudov 20239b75b6 daemon: fix memory leak 2009-12-08 21:02:38 +02:00
Nedko Arnaudov 760fd1bd67 daemon: set proper state after JACK server stop is detected in the hard way 2009-12-08 20:30:52 +02:00
Nedko Arnaudov 672c5e52d8 don't allow saving of non-started studio
hidden clients, ports and connections are not saved
so only app list will be saved.
2009-12-07 23:35:37 +02:00
Nedko Arnaudov c7af39c8a8 fix for #26 (studio xml file corruption) 2009-12-07 20:48:12 +02:00
Nedko Arnaudov b9e072c92b if a2j jack client name is not available try to get it harder
this fixes a race. when a2j is started as part of studio load,
a2j ports can appear before "bridge started" signal is catched.
2009-12-07 03:03:09 +02:00
Nedko Arnaudov bb7338fae0 daemon: a2j virtualization 2009-12-07 00:56:48 +02:00
Nedko Arnaudov 9383960e44 daemon: reuse the two hardware clients for new hardware ports 2009-12-06 21:59:30 +02:00
Nedko Arnaudov d1e835125b daemon: fix input parameters to be const ones 2009-12-06 21:58:06 +02:00
Nedko Arnaudov a6fccfb92e daemon: fix connection autohidding when hidding port 2009-12-06 16:51:50 +02:00
Nedko Arnaudov 74b8f69ad7 daemon: add some logs related to hiding ports and connections 2009-12-06 15:29:35 +02:00
Nedko Arnaudov c1869c29a6 daemon: better handling of jack server stop failure
sometimes jack server stop request fails, even if it does actually stop
shortly after. in this case ladish will wait 5 seconds before giving up.
2009-12-06 14:35:59 +02:00
Nedko Arnaudov 2f190e929f daemon: new studio method: IsStarted() 2009-12-06 01:51:25 +02:00
Nedko Arnaudov 25a3b9981d daemon: what for 3 seconds before stopping server
let apps shut down cleanly. dharanamrs reports problems on stop
and this will prove whether not waiting for app stop is causing them
2009-12-05 20:48:36 +02:00
Nedko Arnaudov dc703fd497 daemon: fix memory corruption 2009-12-05 17:55:13 +02:00
Nedko Arnaudov 2bbcd652a8 ladishd: stop apps on studio stop 2009-12-05 00:54:41 +02:00
Nedko Arnaudov 0b6ad2626f ladishd: app list serialization; autolaunch on load 2009-12-05 00:42:40 +02:00
Nedko Arnaudov 89461c363c app list is now managable from gladish 2009-12-04 21:37:39 +02:00
Nedko Arnaudov 094d7ba9d7 implement more app list IPC code 2009-12-04 15:15:14 +02:00
Nedko Arnaudov 6b7103ead6 ladishd: maintain list of currently running apps 2009-11-30 23:45:14 +02:00
Nedko Arnaudov 8acc3ee6d2 ladishd: rework loader interface 2009-11-30 16:39:59 +02:00
Nedko Arnaudov 85407d70bb ladishd: fix use of uninitialized memory 2009-11-30 02:29:09 +02:00
Nedko Arnaudov e46ea7b77b ladishd: basic app supervisor 2009-11-30 01:22:58 +02:00
Nedko Arnaudov 9344b9c9f8 ladishd: fix studio client reuse when new ports appear 2009-11-29 04:28:19 +02:00
Nedko Arnaudov 608ae74258 ladishd: don't save hidden stuff
hidden objects exists as intermediate state during restore
2009-11-29 03:27:39 +02:00
Nedko Arnaudov 896e04345b ladishd: improve logging 2009-11-29 03:26:23 +02:00
Nedko Arnaudov 1fbcc155a7 ladishd: fix disconnect 2009-11-29 03:25:31 +02:00
Nedko Arnaudov 5ef9e1e006 ladishd: hide connections unless remove is explicitly requested
explicit disconnects must remove connection objects
implicit disconnects because of port disappear or external disconnect must
cause hide so when studio is stopped and then started, connections are restored.
2009-11-29 01:58:37 +02:00
Nedko Arnaudov 6be77a9908 ladishd: when clearing graph, clear connections too 2009-11-29 01:23:56 +02:00
Nedko Arnaudov 850f926dae ladishd: connect ports when they appear 2009-11-29 01:15:04 +02:00
Nedko Arnaudov 6cd9754d56 ladishd: save connections and load them in hidden state 2009-11-29 00:09:34 +02:00
Nedko Arnaudov effcdfca27 ladishd: implement ports disconnect 2009-11-28 21:24:18 +02:00
Nedko Arnaudov 23b1a8fa1e ladishd: implement ports connect 2009-11-28 19:46:43 +02:00
Nedko Arnaudov 5955c05ca0 ladishd: graph calls to virtualizer for connect/disconnect 2009-11-28 18:36:07 +02:00
Nedko Arnaudov 8e6f044d74 ladishd: jack_dispatcher -> virtualizer 2009-11-28 17:23:23 +02:00
Nedko Arnaudov 24e414e9b9 ladishd: decode parameters of port connect/disconnect requests 2009-11-28 17:14:20 +02:00
Nedko Arnaudov ee70ec0e91 ladishd: show client when reusing it
jack_lsp; jack_lsp;

caused assert. should be reproducable with any jack client.
2009-11-25 18:42:56 +02:00
Nedko Arnaudov 2fff2f932c ladishd: new function: ladish_graph_show_client() 2009-11-25 18:41:02 +02:00
Nedko Arnaudov a0e680b335 ladishd: improve logs
before executing each new command, put a separator in the log file
put a separator so its impact is clearly visible
2009-11-25 15:48:15 +02:00
Nedko Arnaudov 90e81444ee ladishd: stop and unload studio on deamon deactivation 2009-11-25 15:44:53 +02:00
Nedko Arnaudov 5d0c8c714b ladishd: fix studio save 2009-11-25 15:15:40 +02:00
Nedko Arnaudov 17c848f1fd ladishd: fix behaviour after complete of jack server start and stop commands 2009-11-25 04:05:56 +02:00
Nedko Arnaudov 4d061b7a39 execute commands in queue 2009-11-25 03:52:00 +02:00
Nedko Arnaudov 5cb41d1b36 switch from event queue to environment state; run the studio cqueue 2009-11-24 03:10:57 +02:00
Nedko Arnaudov c9567a3cb0 fix warning
'backup_filename_ptr' may be used uninitialized in this function
gcc (Gentoo 4.3.4 p1.0, pie-10.1.5) 4.3.4
CFLAGS=-O2 -pipe
2009-11-20 01:39:37 +02:00
Nedko Arnaudov 1b1d5bbfa9 command queue; not really used yet 2009-10-19 01:16:59 +03:00
Nedko Arnaudov 89ad40c581 fix assert
virtual hardware clients are destroyed on clear anyway
2009-10-11 18:13:08 +03:00
Nedko Arnaudov a4fbcbe9fe fix invalid stack access in error log dumps 2009-10-10 14:47:13 +03:00
Nedko Arnaudov a642a0b35b when dumping graphs, dump non-empty dicts too 2009-10-10 14:42:41 +03:00
Nedko Arnaudov 689ef7cb72 dump loaded studio graphs 2009-10-09 00:00:07 +03:00
Nedko Arnaudov 6dcf0d6eb7 daemon: on stop, hide clients and ports instead of removing them
If they are removed all info associated with them is lost, including pending connections
and dictionaries
2009-10-08 23:45:03 +03:00
Nedko Arnaudov 69a15f3bc2 daemon: increment graph version on port show 2009-10-05 01:33:48 +03:00
Nedko Arnaudov db1ae093c7 Restore clients, ports and dicts 2009-10-04 22:38:24 +03:00
Nedko Arnaudov edae71d92d don't use guid, use uuid instead 2009-10-04 21:35:44 +03:00
Nedko Arnaudov 9e9a127a15 Save clients, ports and dicts 2009-09-21 00:17:41 +03:00
Nedko Arnaudov 20a9f12362 Fix crash on studio stop
capture/playback clients were freed twice
2009-09-20 19:08:37 +03:00
Nedko Arnaudov 540d2eb721 Make assert print error message to log 2009-09-20 18:48:42 +03:00
Nedko Arnaudov 5f832c8668 rename log macros 2009-09-20 18:23:42 +03:00
Nedko Arnaudov d38f42ffef common/debug.h -> log.h 2009-09-20 18:02:10 +03:00
Nedko Arnaudov 3159525589 Properly handle normal clients
* create studio client when first port appears
 * destroy studio client when last port disappears
 * remove disappearing ports from jack graph
2009-09-20 17:33:07 +03:00
Nedko Arnaudov df6e35ccdf Fix object paths of graphs 2009-09-20 17:30:48 +03:00
Nedko Arnaudov 303c07d6e6 Implement ladish_graph_remove_port() 2009-09-20 16:28:05 +03:00
Nedko Arnaudov 74e3346655 Maintain JACK clients in jack_graph object 2009-09-20 15:55:20 +03:00
Nedko Arnaudov 2862ba7650 jack graph object to store jack clients and ports 2009-09-12 22:30:33 +03:00
Nedko Arnaudov 83423d7fb7 iterate studio graph on save 2009-09-12 21:42:19 +03:00
Nedko Arnaudov a7cddc8ae5 Move chunks of studio object implementation to separate files 2009-09-12 14:50:35 +03:00
Nedko Arnaudov 3e2759323c Move escape helpers to separate file 2009-09-12 11:11:52 +03:00
Nedko Arnaudov 69d3ebea63 Fixed uuids for hardware capture and playback virtual clients 2009-09-12 10:59:38 +03:00
Nedko Arnaudov fa47499b45 Don't try to use dict graph interface on jack graphs 2009-09-12 09:58:37 +03:00
Nedko Arnaudov 7a8931a94a graph dict dbus interface and persist canvas positions of modules 2009-09-07 20:53:56 +03:00
Nedko Arnaudov 03629cd633 dict implementation 2009-09-07 01:05:36 +03:00
Nedko Arnaudov a964d9c768 basic ports 2009-09-06 20:31:42 +03:00
Nedko Arnaudov d56df28d54 Fix bug in client appeared signal emit
instead of real id, next unused id was emited, thus confusung signal receivers
because on disappear the real id was sent.
2009-09-06 17:45:39 +03:00
Nedko Arnaudov 9d467024aa Move per-graph client data to graph implementation 2009-09-06 16:40:03 +03:00
Nedko Arnaudov 813c97bed1 graph_iface -> graph 2009-09-06 15:30:29 +03:00
Nedko Arnaudov 0d586b039c graph id and link is also per graph 2009-09-06 14:19:33 +03:00
Nedko Arnaudov 9f20fbedfd Fix tight loop on studio unload caused by recent development 2009-09-06 11:33:59 +03:00
Nedko Arnaudov d7473e1fca Basic jack dispatcher 2009-09-06 01:15:25 +03:00
Nedko Arnaudov 3fb3fcc75e Virtual clients in studio graph 2009-09-06 00:13:05 +03:00
Nedko Arnaudov 9290a15648 rewrite the helper for emiting signals 2009-09-05 19:12:53 +03:00
Nedko Arnaudov 68d4ac0eca Remove dbus/types.h
Handles must be defined as type
2009-09-05 18:18:07 +03:00
Nedko Arnaudov 867f06a597 Hide dbus_object_path internals behind the interface 2009-09-05 17:27:56 +03:00
Nedko Arnaudov e3b12afc0e Allow different interfaces of same object path to have different contexts 2009-09-05 15:29:09 +03:00
Nedko Arnaudov 322dca7c1c cleanup dbus helpers 2009-09-04 02:27:05 +03:00
Nedko Arnaudov 4c114d563a patchbay -> graph_iface 2009-09-03 06:10:52 +03:00
Nedko Arnaudov f4bf5df38e Properly prefix graph proxy identifiers 2009-09-03 05:55:28 +03:00
Nedko Arnaudov e40bb25e13 daemon: jack graph proxy object 2009-09-03 05:45:39 +03:00
Nedko Arnaudov 053ce63196 Improve handling jack_proxy_init() failure 2009-09-03 05:44:14 +03:00
Nedko Arnaudov 00c9bf0303 Fix memory leak 2009-09-03 05:42:35 +03:00
Nedko Arnaudov 403ac0e747 Escaping fixes. Closes #3 2009-08-31 04:19:50 +03:00
Nedko Arnaudov 2c4d943438 Improve fetch of jack config
* Don't try to fetch jack config on new studio creation - it should be fetched on start, after user has configured JACK
 * Clear old jack configuration before fetching new one.
2009-08-31 02:47:08 +03:00
Nedko Arnaudov edd885329f Improve automatic unload of automatically created studios
When JACK server start is detected and there is no studio loaded,
a new "automatic" studio is created. Such studio is supposed to be
automatically unloaded if JACK server is stopped, unless user shows
interest on it.
2009-08-31 02:06:55 +03:00
Nedko Arnaudov 615ddf177c log rename/unload/new studio requests 2009-08-31 01:50:24 +03:00
Nedko Arnaudov 7f5855f6ba Studio start/stop commands and signals 2009-08-30 22:40:28 +03:00
Nedko Arnaudov 00de237ebd studio_activate() -> studio_publish()
Activate is not specific enough. There is load, publish (expose on D-Bus), and activate (start JACK and clients)
2009-08-30 18:38:17 +03:00
Nedko Arnaudov b47fca2481 Fix log message 2009-08-30 17:16:21 +03:00
Nedko Arnaudov 5243fd33fa Unload studio command 2009-08-30 16:23:19 +03:00
Nedko Arnaudov f55a45416e New studio command. Closes #7 2009-08-30 16:13:38 +03:00
Nedko Arnaudov 3978e8c4db Clear studio if load was not successful 2009-08-30 15:49:51 +03:00
Nedko Arnaudov 354012f707 Delete studio command. Closes #6 2009-08-30 14:36:27 +03:00
Nedko Arnaudov 9c4be0e919 Properly handle saving of renamed studio; create backups on save; Closes #5 2009-08-30 13:23:36 +03:00
Nedko Arnaudov 2309cbab83 Fix use of freed memory 2009-08-29 00:29:46 +03:00
Nedko Arnaudov 270ef0fb71 Fix memory leak 2009-08-29 00:16:59 +03:00
Nedko Arnaudov 1ef0b47fde Set persisted flag after successful studio save or load
This fixes bug that caused studio that was previously loaded to be unloaded
when jack server stop was detected.
2009-08-28 22:14:15 +03:00
Nedko Arnaudov be4d6f2fdb Restore JACK parameters during studio load. Closes #2 2009-08-27 23:17:23 +03:00
Nedko Arnaudov 19c46c885c Fix saving of jack parameters 2009-08-27 23:03:53 +03:00
Nedko Arnaudov 7361fa7f23 Load studio (part 1) 2009-08-24 03:52:18 +03:00
Nedko Arnaudov 64f3eeb654 Cleanup current studio before loading new one 2009-08-24 03:33:47 +03:00
Nedko Arnaudov 186b8ac84e GetStudioList implemented 2009-08-24 01:58:14 +03:00
Nedko Arnaudov b67aad8c67 Implement stuio save 2009-08-24 01:04:07 +03:00
Nedko Arnaudov a5953351db When studio save is requested, compose studio filename for a new studio 2009-08-24 00:25:43 +03:00
Nedko Arnaudov 2fe467e0bf compose path of and eventually create base dir (~/.ladish/) 2009-08-24 00:02:45 +03:00
Nedko Arnaudov 8f3a80574f Move ensure_dir_exist() to separate files
It is needed for more than composing log file path.
Studio, room, project xml file paths need it too.
2009-08-23 23:41:12 +03:00
Nedko Arnaudov d402383782 Use base name (instead of "lash") for log file path 2009-08-23 23:28:05 +03:00
Nedko Arnaudov 03bb0b477d Studio renamed signal 2009-08-23 12:58:01 +03:00
Nedko Arnaudov 21965995d9 hook studio save to gui; improve studio interface; studio proxy 2009-08-23 11:09:15 +03:00
Nedko Arnaudov f474bbdf81 Ignore drivers branch of jack settings
we are interested only in currently active driver
2009-08-23 01:27:29 +03:00
Nedko Arnaudov a193d965b4 Move jack handling into studio object; fix race
Studio is a singleton and jack server start/stop races are avoided by using a queue
2009-08-23 01:21:23 +03:00
Nedko Arnaudov 005e011f7d Move catdup() from daemon/ to top dir, it is needed for gladish too 2009-08-22 16:55:55 +03:00
Nedko Arnaudov 7ef81de696 Move code for initital jack appear/start to proxy object 2009-08-22 14:51:26 +03:00
Nedko Arnaudov 74133da587 move view object to separate files 2009-08-22 14:11:38 +03:00
Nedko Arnaudov f64e4d4455 Move dbus constants to separate header 2009-08-22 03:07:19 +03:00
Nedko Arnaudov 451837fc4b Reply messages for all methods of the patchbay interface 2009-08-22 02:17:12 +03:00
Nedko Arnaudov 5fe3f67e31 Link patchbay interface to studio object 2009-08-21 23:13:19 +03:00
Nedko Arnaudov b0a9409cbf patchbay interface 2009-08-20 23:50:24 +03:00
Nedko Arnaudov b911e15a92 Basic studio interface 2009-08-20 22:43:11 +03:00
Nedko Arnaudov a3a1caa0fd rename daemon/dbus_iface_control to daemon/control 2009-08-20 22:06:58 +03:00
Nedko Arnaudov 1c5c9f28e2 move /gui/graph to /graph_proxy; [re]move duplicate code from jack_proxy 2009-08-11 15:31:33 +03:00
Nedko Arnaudov e9a72eb2fb Allow settings jack proxy callbacks from different modules 2009-08-11 14:01:40 +03:00
Nedko Arnaudov 6f14e65e0c Supply callbacks to jack_proxy_init
Different users (daemon, gui) will supply different set of callbacks
2009-08-11 12:12:31 +03:00
Nedko Arnaudov 5defb7982b Move daemon jack_proxy code to top dir
Step toward removal of code duplication between daemon and gui
2009-08-11 11:50:22 +03:00
Nedko Arnaudov 4a2bacc754 Handle startup of ladish with jack server already started 2009-08-09 22:24:26 +03:00
Nedko Arnaudov e1472d310c Implement jack_proxy_is_started() 2009-08-09 22:20:52 +03:00
Nedko Arnaudov d9ac0f36cd new dbus helper function: dbus_call_simple() 2009-08-09 22:19:32 +03:00
Nedko Arnaudov 706229337a IsStudioLoaded method 2009-08-09 20:05:02 +03:00
Nedko Arnaudov d88e11f203 D-Bus interface macro improvements
* Descriptions for methods, signals and arguments
 * Use real boolean in method descriptor
 * Use dedicated macros for in and out params. The direction argument is always a C constant.
2009-08-09 19:23:04 +03:00
Nedko Arnaudov fe774ef28d Initial work on jack settings serialization 2009-08-08 03:09:39 +03:00
Nedko Arnaudov c52d209bed Refactor jack settings retrieval code
* Move the jack settings retrieval code to studio object
 * Make the studio object opaque one
2009-08-07 23:28:34 +03:00
Nedko Arnaudov d1ec91c6d8 Bring catdup() original behaviour back 2009-08-05 21:40:55 +03:00
Nedko Arnaudov f93e4e8761 studio appeared/disappeared signals (again) 2009-08-01 19:24:00 +03:00