Commit Graph

52 Commits

Author SHA1 Message Date
Nedko Arnaudov 6ac6cd92d6 flush random WIP that others could use 2013-08-26 11:40:06 +03:00
Nedko Arnaudov fe2d8d3bcd ladishd: generic object refcounting for port and client objects 2013-02-10 16:29:37 +02:00
Nedko Arnaudov 6aa44e9ab9 dbus_ -> cdbus_ renames 2011-09-10 03:35:48 +03:00
Nedko Arnaudov 78f07f7ad1 remove empty client functionality 2011-06-07 04:11:59 +03:00
Nedko Arnaudov f33b58ac85 new vclient and move port functionality 2011-06-01 06:12:54 +03:00
Nedko Arnaudov e0ec247159 split vclient functionality
vgraph manipulation is going to be able to do more than split
2011-06-01 03:04:18 +03:00
Nedko Arnaudov 91b87783d7 ladishd: workaround for bug in jack2/jackdbus
http://trac.jackaudio.org/ticket/209
2011-01-02 05:04:29 +02:00
Nedko Arnaudov d39a94fe33 ladishd: fix hidden connection save. Fix for #151
Instead of checking whether connection ports ares link or system ones,
now they are being checked for being hidden.
2010-12-30 05:14:10 +02:00
Nedko Arnaudov 1d029ffd76 Move graph iteration filtering to callbacks 2010-12-26 21:21:36 +02:00
Nedko Arnaudov 1f6822c5e9 ladishd: remove skip_hidden parameter of ladish_graph_copy()
ATM ladish_graph_copy() is always copied without skipping hidden elements.
skip_hidden mechanism must be replaced with filtering in callbacks,
because it is tricky and because app filtering does not belong to
generic graph object.
2010-12-26 21:09:42 +02:00
Nedko Arnaudov 4b9da6ffae ladishd: do a better cleanup on project unload and on load failure. Partial fix for #117
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.
2010-11-13 18:13:10 +02:00
Nedko Arnaudov a608c373e6 ladishd: properly handle a2j ports for apps with same names
For real jack ports it works because different apps have different jack client.
For a2j ports, it did not work because the jack client is same and the
a2j_fake_jack_port_name is same too, because the instead of alsa client name,
the app name is used now
2010-11-08 02:39:53 +02:00
Nedko Arnaudov 6c2201b933 ladishd: save [only] relevant a2j ports for the vgraph being saved
For studio saves, save only studio vgraph a2j ports.
For room project saves, save only room vgraph a2j ports.
If there is not a2j ports for the vgraph being saved, an empty a2j client will not be saved anymore
2010-11-08 01:19:02 +02:00
Nedko Arnaudov 79c75fd07b ladishd: properly handle stopping and removal of apps with a2j ports 2010-11-07 19:52:08 +02:00
Nedko Arnaudov 2eac623818 ladishd: properly handle ports with same uuids but in different room vgraphs. Fixes #115
Same or derivate project can be loaded in more than one room. This will cause more than one port
with given uuid to be added to the jack graph. This changeset uses vgraph-port_uuid pair when searching
for port that was added at earlier project load stage. For this to work, when ports are created and added
to the jack graph, the vgraph handle is stored in the port object.
2010-11-03 00:29:08 +02:00
Nedko Arnaudov 8f20db7de0 on project load adjust canvas positions of capture/playback clients 2010-08-30 04:52:35 +03:00
Nedko Arnaudov dd822c7476 daemon: fix load of studios with more than one room
The room link ports were searched by uuid gloablly.
When two rooms had same ports uuid, always the first one was found.
Then when setting the graph override uuid for port, the port
override uuid of the second room was set over the port of the first
room. Thus the first room port was getting wrong override uuid and the
second room port override uuid was never set.

The solution implemented is to search for the port within the already
found room client. Then set the override uuid for the found port.

Room client in the studio graph has uuid of the room and is created
when room is loaded. This ensures that later when room-link ports are
added, the port of the right room client will be found. Then the
override uuid will be set to the proper port.
2010-08-30 02:10:26 +03:00
Nedko Arnaudov 76a8b6161b daemon: handle apps with same name in different vgraphs 2010-08-30 00:05:57 +03:00
Nedko Arnaudov b396329c5d daemon: implementation of project load 2010-08-08 23:51:31 +03:00
Nedko Arnaudov 17603f246d daemon: make some save functionality reusable
* Helper functions in daemon/save.c will be used in project save functionality as well
 * Graph iteration callbacks now receive the handle of the graph being iterated
 * Indention is now more flexible because now it is not string but an integer
2010-08-06 03:19:23 +03:00
Nedko Arnaudov 00cc1087dc daemon: load studios with rooms 2010-07-21 05:53:48 +03:00
Nedko Arnaudov c291a60da6 daemon: When saving studio, don't save non-studio jack clients 2010-05-31 00:47:10 +03:00
Nedko Arnaudov 18ba50dafb daemon: on app stop, wait its client to disappear 2010-05-13 03:18:23 +03:00
Nedko Arnaudov 3126bbdb5d daemon: when destroying room, remove its hidden app ports. Fixes #87
If ports stay hidden in JACK graph and they get reused, no vgraph will exist
2010-05-10 22:33:40 +03:00
Nedko Arnaudov d8135a5117 daemon: wait room cleanup before destroying it. Fix for #81 and #83 2010-05-09 16:00:28 +03:00
Nedko Arnaudov 245897bc6d daemon: jmcore support in virtualizer 2010-04-11 22:24:41 +03:00
Nedko Arnaudov 31f6cb939b daemon: room-studio port creation through jmcore
virtualizer does not know about jmcore yet
2010-04-11 16:45:30 +03:00
Nedko Arnaudov c90661388f daemon: on studio stop, hide only non-virtual graph objects
Representation of rooms in studio graph must not be hidden on server stop
2010-04-05 04:35:08 +03:00
Nedko Arnaudov de772730a5 daemon: fix port lifecycle problem that was causing crash
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.
2010-04-04 21:08:20 +03:00
Nedko Arnaudov 13bc814f0b daemon: fill the Basic room template with ports and copy them when creating studio rooms 2010-03-24 01:11:53 +02:00
Nedko Arnaudov 2fd730ea55 daemon: expose new studio room objects on D-Bus 2010-03-06 17:03:14 +02:00
Nedko Arnaudov 093af66573 rename graph clients when app is renamed
this fixes autoconnection too because hidden clients are searched by name
2009-12-26 22:46:20 +02:00
Nedko Arnaudov 3bec987ea4 handle port renames. closes #32 2009-12-21 20:46:14 +02:00
Nedko Arnaudov d76dcc4b20 daemon: Fix #33
JACK graph connections are always visible and match the actual
JACK graph connections. So the logic for hiding connections when
they are removed should be disabled for JACK graphs. See
also commit 5ef9e1e006 where this
bug was intoduced.
2009-12-12 21:55:41 +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 d1e835125b daemon: fix input parameters to be const ones 2009-12-06 21:58:06 +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 2fff2f932c ladishd: new function: ladish_graph_show_client() 2009-11-25 18:41:02 +02: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 db1ae093c7 Restore clients, ports and dicts 2009-10-04 22:38:24 +03:00
Nedko Arnaudov 9e9a127a15 Save clients, ports and dicts 2009-09-21 00:17:41 +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 303c07d6e6 Implement ladish_graph_remove_port() 2009-09-20 16:28:05 +03:00
Nedko Arnaudov 83423d7fb7 iterate studio graph on save 2009-09-12 21:42:19 +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 a964d9c768 basic ports 2009-09-06 20:31:42 +03:00