Commit graph

381 commits

Author SHA1 Message Date
Wim Taymans
df4a5efb89 client-node: don't try to modify the clock
The clock position should match the buffer timestamps and we should
not try to change it. If a client wants to align stream it will
have to do this itself.
2018-10-30 16:32:25 +00:00
Wim Taymans
9364253886 module-access: use check_access signal
Add restricted, blacklisted and flatpak access types.
2018-10-29 08:46:09 +00:00
Wim Taymans
dfde479b20 protocol-native: put client properties in global 2018-10-29 08:43:53 +00:00
Wim Taymans
5088bcce60 module-access: make new access module
Rename the flatpak module to access module. The access module should
either let the client connect or mask the client busy while the
permissions are being configured. It is then up to the session manager
to collect the right permissions of the objects and configure those
in the client.

Let the media session monitor the clients and configure the permissions.
2018-10-27 17:33:21 +01:00
Wim Taymans
e026f55c97 protocol: add more methods on client
Add method to get and set permissions on a client
Add method to send error to client.
2018-10-27 17:31:03 +01:00
Wim Taymans
2accfc84d7 Add version to hello 2018-10-27 17:19:50 +01:00
Wim Taymans
537598726b protocol-native: first bind, then register
First let the client bind to the core, then register the client.
This way, the client is ready to receive methods on the core.
2018-10-27 17:10:01 +01:00
Wim Taymans
723d4d9db7 client-node: use spa_io_position
Remove old internal structure
2018-10-24 10:34:28 +02:00
Wim Taymans
66de372e9a add node set_io function
Also allow setting io areas on nodes. We need this to set the
graph clock and period size on the nodes.
2018-10-23 12:31:41 +02:00
Wim Taymans
842abad9e1 client-stream: implement enum_param and set_param better
Make it possible to enumerate the parameters and get/set properties
when available on the adapter.
2018-10-18 12:59:31 +02:00
Wim Taymans
c0a6c83227 client-stream: add media.class on node
Add the media.class property on the node as well.
2018-10-18 12:56:10 +02:00
Wim Taymans
c6551cead4 protocol-native: return errno when server failed
this gives a better error code
2018-10-18 12:36:53 +02:00
Wim Taymans
c28d0f1282 protocol-native: -1 is for invalid fd, not 1 2018-10-18 12:36:44 +02:00
Wim Taymans
88d6e52cc7 add systemd socket activation 2018-10-18 12:36:10 +02:00
Wim Taymans
a086fc5c0c port: just number unknown channels
Ports with unknown channel layout are just numbered.
2018-10-17 12:45:50 +02:00
Wim Taymans
d27674722a improve debug and error handling 2018-10-17 10:02:44 +02:00
Wim Taymans
3ebad5c182 client-stream: update properties when client info changes 2018-10-16 09:52:47 +02:00
Wim Taymans
1edf2dd210 client-stream: just stop feeding the graph in paused
Stop feeding the graph in paused instead of going to idle. We might
want to idle in the future when we can get the clock resume as well.
2018-10-09 16:34:37 +02:00
Wim Taymans
caa3e83eb1 client-stream: link controls after profile was set 2018-10-08 18:19:59 +02:00
Wim Taymans
63333adca3 port: don't keep port_info around but make copy 2018-10-08 13:00:18 +02:00
Wim Taymans
e1ec1bad23 spa: add profile param
Make a profile param that can be used to configure a node with a
certain profile.
Use the profile to configure the ports on splitter and merger and
get rid of the dynamic ports.
Use the profile to configure the client-node and audio-dsp.
Don't try to link more ports than available between client-node and
dsp.
2018-10-08 11:45:52 +02:00
Wim Taymans
f81588f439 client-stream: there is always and adapter 2018-10-04 16:36:09 +02:00
Wim Taymans
8f1ebe0c7e client-stream: enum_params works to the client node 2018-10-04 16:32:42 +02:00
Wim Taymans
8de1d03feb audioconvert: use splitter/merger
Remove the split/merge functionality from fmtconvert.
Make audioconvert use the splitter/merger.
Let client-stream decide what mode to configure audioconvert in.
2018-10-04 16:03:14 +02:00
Wim Taymans
d8827e2109 client-stream: add started variable 2018-10-04 15:53:49 +02:00
Wim Taymans
0e2885b599 client-node: make the client parent 2018-10-03 20:09:47 +02:00
Wim Taymans
f3dfe61aa0 link: add link state and error to info
Notify when state changes
2018-10-03 19:29:11 +02:00
Wim Taymans
0358e8b480 client-stream: there is always an adapter 2018-10-03 19:27:46 +02:00
Wim Taymans
f46a83dcb7 resource: pass the resource id in the error 2018-10-03 19:24:53 +02:00
Wim Taymans
4401e479c6 small cleanups 2018-10-02 17:37:38 +02:00
Wim Taymans
8efabe051e remove obsolete modules
remove obsolete media-session and suspend-on-idle. This functionality
is to be handled by an external session manager
2018-10-02 17:34:31 +02:00
Wim Taymans
3d36755c4f audio-dsp: use type-info to get channel names 2018-10-02 10:17:12 +02:00
Wim Taymans
575e177a48 client-stream: run the driver graph 2018-10-02 07:11:45 +02:00
Wim Taymans
0f69a7b767 node: remove and add node from graph in idle/running
Add the node and all links to the graph when going to running and
remove them again when idle.
2018-10-02 05:10:55 +02:00
Wim Taymans
392b217f81 client-stream: make adapter port variable
We need this to add control ports later
2018-10-01 11:15:12 +02:00
Wim Taymans
8f7328173b utils: add another flag helper macro 2018-09-28 17:47:37 +02:00
Wim Taymans
6b0c28e717 client-node: don't try to add invalid memid 2018-09-28 05:49:38 +02:00
Wim Taymans
30316df5c8 fix some leaks 2018-09-24 09:33:09 +02:00
Wim Taymans
132ee30930 improve some debug 2018-09-24 09:32:27 +02:00
Wim Taymans
8a562c4427 module: remove resource listener in cleanup
Remove the resource listener before destroying the object because that
will trigger the resource cleanup again.
2018-09-24 09:30:14 +02:00
Wim Taymans
8a88c6da53 link-factory: add linger options
The linger option makes the link survive after the client is destroyed.
2018-09-21 16:45:52 +02:00
Wim Taymans
59f10ad453 Add proxy destroy
Make the current destroy method on the core for proxies to remove the
server side resource.
Make a new destroy method on the registry to destroy globals.
Remove the destroy method on the client-node
media-session: monitor the dsp and device node states to manage the
session state
2018-09-21 16:43:11 +02:00
Wim Taymans
5ba27a7dc1 add some more debug 2018-09-20 10:14:11 +02:00
Wim Taymans
b50482e346 fix cleanup
When the node is destroyed, remove it from the node list and mark
the reference to the node gone so that when the resource is cleaned
up we don't try to destroy the node again.
2018-09-20 10:13:00 +02:00
Wim Taymans
f57d1125f6 link-factory: clear links when client dies 2018-09-18 12:33:01 +02:00
Wim Taymans
aab69948b0 node: add set_param and send_command methods 2018-09-18 09:28:17 +02:00
Wim Taymans
c194c34326 audio-dsp: cleanup when the node is destroyed
Also clean up when the node is distroyed
2018-09-17 17:16:20 +02:00
Wim Taymans
fcd90b25d3 More work on multichannel
Reorder channels to a more common default order.
Only add channel layout when channels > 1
Don't try to link to a session that is still starting
Small sse fixes.
2018-09-14 15:23:12 +02:00
Wim Taymans
5196f7f053 audio: remove layout from audio
Make special format types for planar and interleaved instead of
having a field.
Add enum for audio channel positions
Add some default audio channel layouts
Place the channel layout in the audio format when possible
alsa: place audio channel positions in format
Add sse optimized channel mixing for some common cases
Remove name from port info, it's not mandatory and in the properties
Add direction to port info
2018-09-13 17:03:56 +02:00
Wim Taymans
fb3379e587 Pass channelmask around and use it to name ports
Use the channel name in the port names of the dsp
2018-09-11 18:09:45 +02:00