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
ee830a52ee
ladishd: actually remove app ports, simply logging does not make it happen
2010-11-08 02:17:39 +02:00
Nedko Arnaudov
bea7c694e0
ladishd: when loading project, search (a2j) the jack client before creating one
2010-11-08 02:08:52 +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
8aebce6821
ladishd: remove special a2j handling in remove/is_hidden[_app] virtualizer functions
...
a2j client has not app associated and thus should never be returned by ladish_graph_find_client_by_app()
This was somewhat possible in past, when the client was searched by name and not by uuid.
Also is_empty var is removed for ladish_graph_find_client_by_app(). For ladish_virtualizer_remove_app(),
the is_empty var is kept, because ladish_graph_client_is_empty() cannot be called after the client is removed
from the jack graph.
2010-11-07 23:43:45 +02:00
Nedko Arnaudov
eb866bf6e8
ladishd: save additional attributes for graph objects
...
For clients, save the naming scheme used. sometimes it is useful to maintain the original jack or alsa client name.
For ports, save port type and direction, alsa ports can be bidirectional, this renders as two a2j ports.
2010-11-07 20:59:20 +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
7d3acd7331
ladishd: set vgraph for new ports and use it when port disappears or gets renamed
2010-11-07 19:52:08 +02:00
Nedko Arnaudov
f3a59a3561
ladishd: detect alsa client of app and use the app name for corresponding vgraph client
2010-11-07 19:51:51 +02:00
Nedko Arnaudov
222dec63f3
ladishd: improved log when searching for graph port by jack id
2010-11-07 16:40:17 +02:00
Nedko Arnaudov
7b1baf033d
ladishd: Use app_uuid for identifying appless clients
...
* normal jack clients have both app_uuid set and non-zero pid
* jmcore clients have only non-zero pid, their app_uuid is null
* clients of unmanaged apps (externally started aps, inprocess clients
and the a2j client) have zero pid and zero app_uuid
2010-11-06 15:34:54 +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
1b66932459
ladishd: properly detect connect failures
...
This fixes a bug when port is appearing, connect attempt is made,
connect fails because port has just disappeared, port reappears then
but new connect attempt was not made. Happens quite easily with
wineasio apps that "probe" (nuendo2 for example).
2010-11-01 21:28:28 +02:00
Nedko Arnaudov
7d2ebaa433
daemon: run apps with LD_PRELOAD=libalsapid.so
2010-10-31 01:14:14 +03:00
Nedko Arnaudov
698bf81a3b
daemon: better handling for non-direct childs. Fixes #62
...
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.
2010-10-24 03:03:25 +03:00
Nikita Zlobin
6e2e650bb5
daemon: app_supervisor.c: Include config.h to have _GNU_SOURCE always defined first. Necessary to get working some GNU extensions
2010-10-20 17:48:41 +06:00
Nedko Arnaudov
45c73b34ac
Fix path of ladish log file that is announced when error occures
2010-10-19 23:48:21 +03:00
Nedko Arnaudov
3ac3105fdb
ladishd: return project name in recent project list
2010-10-09 17:37:57 +03:00
Nedko Arnaudov
78e99c4d64
ladishd: Basic recent projects functionality
2010-10-09 16:53:03 +03:00
Nikita Zlobin
8a19420e9f
Fix for bug, where boxes for applications, started by ladish, doesn't present in graph(cherry picked from commit 3da9457b70158ccff58f2f20c8d4565546a6f8c3)
2010-10-02 10:40:32 +03:00
Nedko Arnaudov
fcc998e974
ladishd: autorun room apps on studio start. Fixes #101
2010-09-28 02:10:34 +03:00
Nedko Arnaudov
1ee3607bd8
Merge branch 'confd'
2010-09-28 00:21:13 +03:00
Nedko Arnaudov
6c3ef670b6
gladish dialog for ladishd settings
2010-09-28 00:18:44 +03:00
Nedko Arnaudov
4a91f81d4c
ladishd settings
...
* whether to autostart studio on load
* whether to use notification daemon
* shell to use
* terminal to use
2010-09-26 20:08:36 +03:00
Nedko Arnaudov
905ccfbb10
ladishd: remove unused function parameter
2010-09-22 00:29:39 +03:00
Nedko Arnaudov
a913255273
ladishd: fix memory corruption bug and some bugs in procfs_get_process_file()
2010-09-21 23:53:23 +03:00
Nedko Arnaudov
3657b68d64
ladishd: fix introspection data for AppSupervisor.IsAppRunning
2010-09-21 23:49:10 +03:00
Nedko Arnaudov
ef3a3891db
move catdup to common/
2010-09-19 17:15:11 +03:00
Nedko Arnaudov
979f2190d0
move dirhelpers to common/
2010-09-19 17:04:14 +03:00
Nedko Arnaudov
a9a55b0ddc
daemon: refuse to create room with duplicate name. Fix for #106
2010-09-19 03:06:31 +03:00
Nedko Arnaudov
7217c4f3d3
daemon: proper notification on automatic studio creation. Fix for #88
2010-09-18 23:25:20 +03:00
Nedko Arnaudov
4bad0a8038
Properly handle saveas of automatic studios. Fix for #108
2010-09-18 19:30:36 +03:00
Nedko Arnaudov
5b12bd5585
daemon: fix removal of app that was loaded in stopped state
...
ERROR: ladish_virtualizer_is_hidden_app: Code execution taboo point. function ladish_virtualizer_is_hidden_app in ../daemon/virtualizer.c:1112
2010-09-06 15:16:40 +03:00
Nedko Arnaudov
efce106a23
daemon: when unloading remove all app clients
...
The clear persist approach does not work for stopped apps
because their clients and ports dont disappear during project unload.
2010-09-05 23:08:03 +03:00
Nedko Arnaudov
f802bd0402
daemon: Router templates
2010-09-05 03:06:15 +03:00
Nedko Arnaudov
86b174b97a
daemon: disable the empty template for now
...
it is useless until there is a functionality to add new room ports
2010-09-05 03:05:36 +03:00
Nedko Arnaudov
ef9e54e3fd
daemon: implement deduction of project dir from project name and vice versa
2010-09-05 01:31:22 +03:00
Nedko Arnaudov
c5acbafc8f
daemon: fix unload of empty projects
2010-09-05 01:27:18 +03:00
Nedko Arnaudov
b812ccca67
Display project name string as part of the room view title
2010-09-04 03:19:58 +03:00
Nedko Arnaudov
7a5ba755e9
Add app list version number to the AppStateChanged signal and check it
2010-09-03 01:49:11 +03:00
Nedko Arnaudov
5374af8866
daemon: update app list version when adding and removing apps
...
gladish now takes it into account and skipped the changes because the version
was not incremented
2010-09-02 21:56:10 +03:00
Nedko Arnaudov
70f2357308
daemon: emit app remove signals before emiting studio disappeared signal
2010-09-01 02:05:48 +03:00
Nedko Arnaudov
1336d624e5
daemon: fix bug in log dump that caused all ports to be marked as "room link" ports
2010-09-01 01:21:34 +03:00
Nedko Arnaudov
b251c7afed
When saving project, create project directory if it doesn't exist
2010-08-31 04:00:48 +03:00
Nedko Arnaudov
8f20db7de0
on project load adjust canvas positions of capture/playback clients
2010-08-30 04:52:35 +03:00
Nedko Arnaudov
fc0a6b14be
daemon: move reusable signal emit code for graph objects to dedicated functions
2010-08-30 04:51:31 +03:00
Nedko Arnaudov
e06f5b73dd
daemon: save connections of stopped apps. #100
2010-08-30 04:14:25 +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
252fe2042c
daemon: easier enable of find port by uuid debug logs
2010-08-30 01:58:02 +03:00
Nedko Arnaudov
ac1de1cc6a
daemon: handle rename of apps that have non-unique names
2010-08-30 00:40:17 +03:00
Nedko Arnaudov
bbfd70e66d
daemon: fix parameter names in function prototypes
2010-08-30 00:08:43 +03:00
Nedko Arnaudov
76a8b6161b
daemon: handle apps with same name in different vgraphs
2010-08-30 00:05:57 +03:00
Nedko Arnaudov
1f4af5f439
daemon: better log messages when write() fails
2010-08-30 00:04:21 +03:00
Nedko Arnaudov
09cb302c01
daemon: fix save of studios with rooms
2010-08-29 23:38:46 +03:00
Nedko Arnaudov
6a2a94b996
daemon: notify user on studio save failure
2010-08-29 23:38:04 +03:00
Nedko Arnaudov
2d39e5eab0
daemon: notify user on studio xml parse failure
2010-08-29 23:00:14 +03:00
Nedko Arnaudov
ae212a37f2
reopen log file when it is deleted or replaced
2010-08-28 04:35:57 +03:00
Nedko Arnaudov
c62d7760b3
Fill the save project as dialog with current project properties
2010-08-23 00:17:57 +03:00
Nedko Arnaudov
1a954de817
daemon: save internal state of L1 apps when project is saved
2010-08-22 23:36:03 +03:00
Nedko Arnaudov
853dbca460
Fix typos in room dbus method descriptions
2010-08-22 21:22:09 +03:00
Nedko Arnaudov
b396329c5d
daemon: implementation of project load
2010-08-08 23:51:31 +03:00
Nedko Arnaudov
1d908a66d6
daemon: saveable projects
2010-08-06 05:00:04 +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
60fec2bffa
daemon: send notification on studio load failure
2010-08-06 02:14:55 +03:00
Nedko Arnaudov
0017f19ffa
SaveProject method of the dbus room object.
2010-08-05 15:47:08 +03:00
Nedko Arnaudov
28f54ff578
Emit signal when command queue execution is halted because of error
...
This allows a client that waits for studio load/start to stop the wait.
Using a timeout is still good idea because of potential bugs in ladishd.
2010-07-28 17:58:49 +03:00
Nedko Arnaudov
399aaeaaf1
daemon: Fix for #97
...
Try to supply alternative fake strings if mapping fails
2010-07-23 03:59:12 +03:00
Nedko Arnaudov
9a1015f50f
daemon: register studio on dbus before rooms
2010-07-21 06:55:03 +03:00
Nedko Arnaudov
6842854e8c
daemon: fix room lifecycle that got slightly broken in previous commit
2010-07-21 06:22:50 +03:00
Nedko Arnaudov
00cc1087dc
daemon: load studios with rooms
2010-07-21 05:53:48 +03:00
Nedko Arnaudov
5bb96d51e7
damon: Proper room lifecycle
...
* 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.
2010-07-20 01:31:37 +03:00
Nedko Arnaudov
a08831a0ca
daemon: early check level validity when new app is being added
2010-06-13 21:34:28 +03:00
Nedko Arnaudov
d4f26eea8a
daemon: save studio rooms, if any
2010-06-10 03:15:52 +03:00
Nedko Arnaudov
535a28b56b
daemon: smarter parsing of studio xml files
...
* Attribute order is no longer fixed.
* Unknown attributes should not cause parse failure anymore.
2010-06-08 01:25:20 +03:00
Nedko Arnaudov
366ac2a22b
daemon: refuse to save studios with rooms
...
They are not loadable currently
2010-05-31 00:48:33 +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
229c4f2c0d
daemon: more fixes for #94
...
* properly handle removal of apps with portless JACK clients
* properly handle removal of a2j
2010-05-29 23:13:30 +03:00
Nedko Arnaudov
892c22d7ea
Properly handle stop of apps with jack clients without ports. Fix for #94
2010-05-29 15:36:53 +03:00
Nedko Arnaudov
de47286bbd
daemon: Don't display error when graph dict has no value for the requested key
...
This error is annoying because currently it is logged twice for each new app (x and y keys).
2010-05-29 13:12:19 +03:00
Nedko Arnaudov
d5c7bf6a6c
Don't send SIGUSR1 to not started L1 apps. Fix for #96
...
* ensure that kill() is called only from one place and that pid is valid
* cleanup and extend app_supervisor functions related to sending signals
2010-05-27 02:10:30 +03:00
Nedko Arnaudov
46bcf78914
daemon: fix removing of apps without jack client
...
see previous commit as well
2010-05-26 00:53:36 +03:00
Nedko Arnaudov
45fc0336c2
daemon: Properly handle apps without JACK clients
...
Fixes #94
2010-05-26 00:34:20 +03:00
Nedko Arnaudov
2b6505d009
daemon: change the default permissions of studios from 0700 to 0666
2010-05-19 01:43:13 +03:00
Nedko Arnaudov
e82916b5d9
daemon: queued remove app command
...
On app removal, wait app to stop and delete graph objects related to it.
Fixes #86
2010-05-16 11:22:13 +03:00
Nedko Arnaudov
8925772da6
daemon: ladish_studio_get_jack_graph()
...
For use instead of ladish_studio_get_virtualizer()
because the later will return NULL when JACK server is stopped
2010-05-16 11:17:09 +03:00
Nedko Arnaudov
18ba50dafb
daemon: on app stop, wait its client to disappear
2010-05-13 03:18:23 +03:00
Nedko Arnaudov
76aba4487b
daemon: Interlink clients when loading studio from disk
2010-05-13 03:14:43 +03:00
Nedko Arnaudov
3dd990a749
daemon: dump graph client interlinks
2010-05-13 02:36:44 +03:00
Nedko Arnaudov
525be9f5a8
daemon: fix incorrect identifiers
...
In past 'change app state' command was called 'start app'.
This changeset updates identifiers to match the new purpose
2010-05-12 04:55:40 +03:00
Nedko Arnaudov
046563f840
daemon: Partial fix for #86
...
Don't use jack ids for associating client in jack graph with client in vgraph
because jack ids can change (apps can create clients in random order).
jack ids are not valid after jack server stop
This changeset switches to interlinking the two client by each one storing uuid of the other.
2010-05-12 04:25:39 +03:00
Nedko Arnaudov
b44260b955
daemon: fix access of just freed memory
2010-05-10 22:35:53 +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
9a42d3d998
daemon: remove room client connections in studio graph. Fix #89
...
When room client in studio graph is being destroyed of room being destroyed,
connections for this client need to be destroyed as well.
2010-05-10 20:40:53 +03:00
Nedko Arnaudov
e78efac7e6
daemon: hide non-public functions used for graph object implementation
2010-05-10 20:24:21 +03:00
Nedko Arnaudov
4428a164c2
daemon: ignore duplicate jack-stopped signal
...
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
2010-05-10 03:06:58 +03:00
Nedko Arnaudov
eec435a79d
daemon: ignore duplicate jack-started signal
...
this is actually a bug in jackdbus because it should not emit
the "started" signal when the server start is attempted and
server is already started
2010-05-10 01:43:25 +03:00
Nedko Arnaudov
cd98f23804
daemon: remove connections instead of hidding them if graph is not persisted
...
This is needed to properly cleanup room graph during room destruction.
ladish_graph_is_empty() returns false if there are hidden connections.
Also it makes no sense to have hidden connections for removed ports
2010-05-09 16:13:52 +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
b82728b36a
daemon: properly count number of owned jack clients
...
jmcore clients are not counted on appear so they should not be counted on disappear too
2010-05-09 15:48:27 +03:00
Nedko Arnaudov
cb85e85b03
daemon: make create/delete room commands async ones
2010-05-09 12:54:45 +03:00
Nedko Arnaudov
dd086a0b72
daemon: fix use of NULL pointers in logs
2010-05-09 12:10:19 +03:00
Nedko Arnaudov
15d08a2e92
minor fix in documentation
2010-05-09 12:01:21 +03:00
Nedko Arnaudov
0bb72a1f9d
daemon: document studio methods as sync/async
2010-05-09 11:43:31 +03:00
Nedko Arnaudov
fb8d49d1ea
minor doxygen fixes
2010-05-08 22:34:08 +03:00
Nedko Arnaudov
c830748430
daemon: make stop and kill app commands async ones
2010-05-08 22:20:08 +03:00
Nedko Arnaudov
d2782283a7
daemon: cmd_start_app -> cmd_change_app_state
2010-05-08 21:28:56 +03:00
Nedko Arnaudov
df1c44647b
daemon: maintain app state enum
2010-05-08 20:40:52 +03:00
Nedko Arnaudov
e8e64de150
daemon: document app supervisor methods as sync/async
2010-05-08 19:32:51 +03:00
Nedko Arnaudov
e913955b1d
daemon: ladish_app_supervisor_check_app_name()
...
ladish_app_supervisor_find_app_by_name() was not really useful because name can change.
Apps should be searched by their unqiue dbus id instead.
2010-05-08 18:02:39 +03:00
Nedko Arnaudov
04086f1fef
doxygenize app_supervisor.h
2010-05-08 17:54:24 +03:00
Nedko Arnaudov
16a9e2d1dc
daemon: add some documentation for app supervisor interface
2010-05-08 15:30:59 +03:00
Nedko Arnaudov
e5151a68b2
daemon: remove dead code
2010-05-05 01:24:47 +03:00
Nedko Arnaudov
cb11dd8edf
daemon: detect unexpected app termination and notify user
2010-05-05 01:23:20 +03:00
Nedko Arnaudov
bb7a63e216
daemon: handle start_app requests asynchronously
2010-05-05 01:09:42 +03:00
Nedko Arnaudov
7c10be38cf
daemon: coherent naming of studio related functions
2010-05-05 00:35:10 +03:00
Nedko Arnaudov
16ca901d9a
daemon: new_app command
...
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.
2010-05-04 23:48:23 +03:00
Nedko Arnaudov
ac74633473
daemon: expose some studio internals
...
* studio_is_started() is now public
* ladish_studio_get_cmd_queue() returns the queue
2010-05-04 23:29:38 +03:00
Nedko Arnaudov
43deb74a41
daemon: disable log dump
2010-05-04 22:24:27 +03:00
Nedko Arnaudov
8948f99d7c
daemon: refuse to delete room if it has active apps. Fix for #85
2010-04-26 03:47:10 +03:00
Nedko Arnaudov
c2c96d1fa4
daemon: Fix invalid memory access
...
This fixes negative pid reports on 32bit systems
2010-04-24 16:56:20 +03:00
Nedko Arnaudov
4e2a9fd381
When jack server start fails, notify the user and give some hints
2010-04-18 02:13:02 +03:00
Nedko Arnaudov
5eb4a8eca1
daemon: improved handling of save attempt on stopped studio (notify)
2010-04-18 01:53:52 +03:00
Nedko Arnaudov
94093265e2
daemon: initial implementation of user notification
2010-04-18 01:49:36 +03:00
Nedko Arnaudov
2923a9772d
daemon: fix wrong goto that was causing warning
...
../daemon/virtualizer.c:437: error: 'is_a2j' may be used uninitialized in this function
2010-04-11 22:43:32 +03:00
Nedko Arnaudov
245897bc6d
daemon: jmcore support in virtualizer
2010-04-11 22:24:41 +03:00
Nedko Arnaudov
e0756fe0ee
daemon: jmcore proxy initialization and improved error handling in main()
2010-04-11 17:18:48 +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
d4fa4a2412
daemon: remove misuse of the room_count
...
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
2010-04-11 16:37:18 +03:00
Nedko Arnaudov
c7379123eb
remove extra line
2010-04-05 17:17:23 +03:00
Nedko Arnaudov
49812cd219
daemon: when deleting room, search its studio graph client by uuid rather than by name
2010-04-05 05:24:21 +03:00
Nedko Arnaudov
ef08b85792
daemon: on jack crash, properly cleanup non virtual graph objects
...
* room graphs need cleanup as well
* graphs should not be cleared because clearing is not suitable for restart jack
functionality that is planned
2010-04-05 05:03:41 +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
c78c4c6483
daemon: register virtualizer graph connection handlers for rooms
2010-04-05 04:18:24 +03:00
Nedko Arnaudov
58db7cba75
daemon: handle room app renames
2010-04-04 22:05:25 +03:00
Nedko Arnaudov
e498a65b6f
daemon: fix use of uninitialized vars
2010-04-04 21:51:47 +03:00
Nedko Arnaudov
9f3f884c4d
daemon: improve log messages and add TODO comments
2010-04-04 21:30:25 +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
d161a68191
daemon: make the room app ports appear in the room graph instead of studio graph
2010-04-04 04:03:40 +03:00
Nedko Arnaudov
f823b0b19f
Fix autounload of automatic studios. Fixes #80
2010-04-04 01:39:13 +03:00
Nedko Arnaudov
06fa6965b4
daemon: fit app search by pid that got broken in 454346ce65
2010-04-04 00:35:40 +03:00
Nedko Arnaudov
22aa3feb67
daemon: Fix comment
2010-04-04 00:31:40 +03:00
Nedko Arnaudov
e2c0400548
daemon: add commented logs
2010-04-04 00:31:14 +03:00
Nedko Arnaudov
3e5b69c481
daemon: iterate studio graphs instead of app supervisors
...
The callback has both app supervisor and graph parameters.
The graph parameter is needed so virtualizer can know where to add clients/ports
2010-04-03 22:25:28 +03:00
Nedko Arnaudov
496f8712e2
fix typo in comment
2010-04-03 22:07:55 +03:00
Nedko Arnaudov
454346ce65
daemon: search client pids in room supervisors too
2010-04-03 20:33:20 +03:00
Nedko Arnaudov
81c3e70f33
daemon: on studio stop, stop room apps as well
2010-04-03 19:33:25 +03:00
Nedko Arnaudov
91d5fceade
daemon: studio.h include is not common include at all
2010-04-03 19:12:05 +03:00
Nedko Arnaudov
963d4ff0ec
daemon: properly bury dead of room child app processes
2010-04-03 16:51:02 +03:00
Nedko Arnaudov
bbb8d20a1e
app supervisor for rooms
2010-04-03 12:16:20 +03:00
Nedko Arnaudov
1c674dd664
daemon: fix&improve error handling in ladish_room_create()
2010-04-03 11:41:26 +03:00
Nedko Arnaudov
29282299ad
daemon: Fix direction of room link ports in studio graph
2010-04-03 00:47:05 +03:00
Nedko Arnaudov
7c81ae351d
daemon: studio graph clients for rooms
2010-03-31 01:50:01 +03:00
Nedko Arnaudov
e082320f58
daemon: Allow call to ladish_graph_iterate_nodes() with limited set of callbacks
2010-03-31 01:48:13 +03:00
Nedko Arnaudov
ad8eaa3323
daemon: remove unused members from client and port structs
2010-03-30 23:10:23 +03:00
Nedko Arnaudov
e22b7a2d69
daemon: remove useless client properties
2010-03-24 02:02:45 +02: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
1d6d8c4791
daemon: fix room template identifiers
2010-03-23 01:11:02 +02:00
Nedko Arnaudov
30a6aa77d4
fix names of some studio room and room template methods
2010-03-21 23:18:04 +02:00
Nedko Arnaudov
96967baa78
Remove studio rooms on studio unload
2010-03-21 16:48:04 +02:00
Nedko Arnaudov
50eb4581ce
daemon: implement room removal
2010-03-13 20:56:55 +02:00
Nedko Arnaudov
1f11f0968e
Fix studio room signal parameters; Add RoomChanged signal
2010-03-07 13:46:45 +02:00
Nedko Arnaudov
c2f277228e
When app is killed by a "bad" signal, log it as error
2010-03-06 19:50:00 +02:00
Nedko Arnaudov
a459a2a19c
Use opath as primary identification of rooms in studio rooms list
2010-03-06 17:18:48 +02:00
Nedko Arnaudov
2fd730ea55
daemon: expose new studio room objects on D-Bus
2010-03-06 17:03:14 +02:00
Nedko Arnaudov
fc21df8068
daemon: better implementation of server stop timeout workaround
...
* current time check is more precise
* waits during command executions are suboptimal because they block the main loop
2010-03-06 02:17:51 +02:00
Nedko Arnaudov
09ef9023bc
daemon: implement timeout when waiting for jack server started signal
2010-03-06 01:35:47 +02:00
Nedko Arnaudov
847536504b
Basic control of studio rooms
2010-03-01 02:12:12 +02:00
Nedko Arnaudov
e897f8a983
use different uuid for the new "empty" room template
2010-03-01 00:56:02 +02:00
Nedko Arnaudov
dae8634a68
new room template: "empty"
2010-03-01 00:52:14 +02:00
Nedko Arnaudov
dd24a9cc65
Fix studio enumeration on unusual filesystems. Closes #70
...
Btrfs, ext2, etx3, and ext4 support d_type. JFS does not.
2010-02-02 21:51:02 +02:00
Nedko Arnaudov
b6fe91e830
basic room object creation and enum of rooms
2010-01-27 18:24:47 +02:00
Nedko Arnaudov
c460646179
basic room management D-Bus interface
2010-01-10 18:26:34 +02:00
Nedko Arnaudov
0a60fa61a6
daemon: initial room object implementation
2010-01-10 17:44:14 +02:00
Nedko Arnaudov
98e11d4d17
daemon: fix memory leaks on error conditions
2009-12-29 09:00:13 +02:00
Nedko Arnaudov
2d6f45cff1
daemon: Fix loader log dumps
2009-12-29 08:36:36 +02:00
Nedko Arnaudov
764873efd5
implement level 1
2009-12-27 04:19:24 +02:00
Nedko Arnaudov
15350decd4
studio "save as". Fixes #13
2009-12-27 00:41:46 +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
54897f8e92
daemon: multiline function prototypes
2009-12-26 21:45:11 +02:00
Nedko Arnaudov
d7e58c7efd
app properties dialog. Fixes #21
2009-12-26 21:28:06 +02:00
Nedko Arnaudov
b42455029a
daemon: fix warning
2009-12-21 21:38:25 +02:00
Nedko Arnaudov
3bec987ea4
handle port renames. closes #32
2009-12-21 20:46:14 +02:00
Nedko Arnaudov
0218ebda7e
daemon: fix use of unused variable
2009-12-21 00:07:51 +02:00
Nedko Arnaudov
bf9b9272cb
properly handle ladishd crashes
2009-12-17 07:41:57 +02:00
Nedko Arnaudov
cd80903ecf
Don't emit crashed signal when creating automatic studios
2009-12-17 07:40:52 +02:00
Nedko Arnaudov
1e9d406f23
notify user when JACK crashes or stops unexpectedly
2009-12-17 06:34:45 +02:00
Nedko Arnaudov
128590f5bf
daemom: for now, ignore clients when they are more than one per app
...
asserting is not good in this case...
2009-12-16 03:12:41 +02:00
Nedko Arnaudov
cb5a2ef522
daemon: handle jack server crashes and unexpected stops
2009-12-13 19:35:50 +02:00
Nedko Arnaudov
8ea8035efb
daemon: add g_dbus_error initialization
2009-12-13 18:19:56 +02:00
Nedko Arnaudov
b5565fd398
move proxy implementations to new /proxies directory
2009-12-13 18:10:57 +02:00
Nedko Arnaudov
78f5665ac5
helpers for handling dbus signals
2009-12-13 17:48:29 +02:00
Nedko Arnaudov
e3d1558636
daemon: remove lash legacy code
2009-12-12 22:44:35 +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
a1670050dc
daemon: dont assert when jackd goes crazy
2009-12-12 20:07:59 +02:00
Nedko Arnaudov
986fef7edf
daemon: escape app strings (name, command) whens storing them in xml. Closes #27
2009-12-12 17:14:04 +02:00
Nedko Arnaudov
5324f63eff
daemon: handle malloc() failure
2009-12-12 17:12:03 +02:00
Nedko Arnaudov
4a807234f7
daemon: remove some unneeded header includes
2009-12-12 16:14:21 +02:00
Nedko Arnaudov
a10355eb4e
daemon: fix handling of a2j ports for alsa seq inout ports. Fixes #36
2009-12-12 15:13:53 +02:00
Nedko Arnaudov
9c01b375af
daemon: show client when adding non-hidden port
2009-12-12 15:12:46 +02:00
Nedko Arnaudov
6680478859
daemon: improve log
2009-12-12 15:11:09 +02:00