Commit graph

743 commits

Author SHA1 Message Date
Wim Taymans
28ae844de9 node: always use a spa_node as the implementation
Avoid duplicating API, remove implementations from port and node and
always use an spa_node as the implementation, it's just as easy to
implement a spa node. With the implementation always being a spa_node
we will be able to better implement the negotiation of the mixers.
2017-08-25 19:02:27 +02:00
Wim Taymans
b7b80683bc jack: work on mixing 2017-08-25 10:01:04 +02:00
Wim Taymans
68f5c05b9f back to development 2017-08-23 13:31:24 +02:00
Wim Taymans
b7e334e55d Release 0.1.4
Remove spec file
Fix systemd service file
Send error on link errors
Init socket to -1 so that we don't close anything on error
Wait for all proxy objects in device monitor
2017-08-23 13:22:39 +02:00
Wim Taymans
5cc4c5c378 core: fix leak 2017-08-23 10:32:38 +02:00
Wim Taymans
61e7218006 protocol: destroy clients
Destroy clients before destroying the protocol
2017-08-23 10:19:19 +02:00
Wim Taymans
cc95f975ce link: fix memleak
Don't leak the buffers, handle ownership of them just like we do with
the buffer memory.
2017-08-23 09:42:09 +02:00
Wim Taymans
80cf20a255 monitor: fix some leaks 2017-08-22 19:22:04 +02:00
Wim Taymans
c25834a692 Work on cleanup
Add signal handlers for daemon to shut down
Add destroy listeners for modules and do cleanup
Fix some leaks
Simplify port registration in new nodes
Hide some more data structures
Let the node implementation take care of the reuse_buffer signal because
then we can get to the graph nodes to find the destination port.
Destroy modules in core cleanup. Modules should undo everything they
have done.
Activate the link after we negotiated format and buffers.
2017-08-22 18:30:10 +02:00
Wim Taymans
12e2fae8ab jack: add midi format
Add midi format
Handle ore requests
Clean semaphore and socket names
2017-08-21 20:19:09 +02:00
Wim Taymans
1fc7c6de59 jack: only remove node when we added it before 2017-08-21 16:36:37 +02:00
Wim Taymans
fca6808419 jack: improve activate/deactivate
Add the nodes from the RT thread.
Handle non-realtime clients, we don't need to signal them
do some sort of latency callbacks
Don't do callbacks for clients without a handler.
2017-08-21 12:07:33 +02:00
Wim Taymans
bece3a013b Make scheduler more generic
Add some callbacks to trigger push and pull in a graph
Remove the scheduler, make some implementations of graph push/pull
functions.
Add some properties to jack clients and nodes
Fix the parent of the clients.
Notify link format changes
2017-08-20 18:33:07 +02:00
Wim Taymans
eba2b82c8e graph: fix the API a little
Add test for atomic graph updates
2017-08-18 18:54:45 +02:00
Wim Taymans
c3d63983e1 alsa: don't read timerfd when stopped
We only start the timerfd when we are started
2017-08-18 18:53:45 +02:00
Wim Taymans
60866fc7cd jack: notify graph changes from main thread 2017-08-18 18:48:22 +02:00
Wim Taymans
593df62ccc update spec 2017-08-17 19:42:10 +02:00
Wim Taymans
29eb58f7a2 Add systemd socket activation files
Notify of jack graph changes
2017-08-17 18:59:03 +02:00
Jonas Ådahl
61424a4343 stream: Add pw_stream_get_node_id()
Adds API to get the node ID of the stream.
2017-08-17 15:50:52 +02:00
Wim Taymans
560e02ef11 jack: handle port disconnect 2017-08-17 09:45:36 +02:00
Wim Taymans
b7647e80d3 jack: work on cleanup 2017-08-16 17:11:37 +02:00
Wim Taymans
8f7a19f2e3 examples: fix some leaks 2017-08-16 13:32:08 +02:00
Wim Taymans
27f811d726 jack: move more stuff to nodes and ports
Improve cleanup and registration of jack clients
2017-08-16 12:43:06 +02:00
Wim Taymans
5e593563af port: add events for add/remove of link 2017-08-16 12:41:28 +02:00
Wim Taymans
2cb1590859 cleanups 2017-08-16 12:39:13 +02:00
Wim Taymans
4731a0b4b8 More work on jack support 2017-08-15 11:02:42 +02:00
Wim Taymans
288d944579 autolink: fix crash 2017-08-11 20:23:40 +02:00
Wim Taymans
9ad1f911b2 Improve loop callbacks
Pass just one data item to the callbacks.
Add properties to port.
Add user data to link
Handle autolink with multiple ports
More work on jack support
2017-08-11 19:21:31 +02:00
Wim Taymans
cfd9967637 Back to development 2017-08-09 10:26:51 +02:00
Wim Taymans
35929dd4d8 Release 0.1.3 2017-08-09 10:20:14 +02:00
Wim Taymans
674ab5f916 update spec 2017-08-09 10:07:02 +02:00
Wim Taymans
ac8458dd52 Add missing file 2017-08-09 09:30:17 +02:00
Wim Taymans
db15225b51 Fix includes 2017-08-08 19:55:14 +02:00
Wim Taymans
8a200aa361 move global to separate file 2017-08-08 19:26:41 +02:00
Wim Taymans
eeda53dbef Fix leaks
Add some docs
Add properties to loop objects for future use
2017-08-08 18:24:15 +02:00
Wim Taymans
600055bd68 Move listeners to spa and rename to hooks
The listeners are generally useful in spa, move it there and rename
to hooks. Implement loop hooks with it.
Fix some cleanup issues in stream and remote
2017-08-08 16:56:29 +02:00
Wim Taymans
6b6b827a3b Add resource override method
Add an easy way to override a resource implementation and use this in
the flatpak module.
Add more methods
2017-08-08 15:03:30 +02:00
Wim Taymans
77e326bf6d deviceprovider: pass right data to callback 2017-08-08 09:09:02 +02:00
Wim Taymans
791fb53503 Remove some macros, we can use the paste operator before __VA_ARGS__ 2017-08-07 19:55:03 +02:00
Wim Taymans
b90dac7656 don't use generic events for real-time messages
Use static event enumerations for real-time messages.
2017-08-07 18:07:38 +02:00
Wim Taymans
97de0de0b7 Move transport to client-node extension 2017-08-07 10:25:02 +02:00
Wim Taymans
0602d76b9e Cleanups
Only pass data to callbacks.
Rename some structs
Provide methods to access structs
2017-08-06 06:42:26 +02:00
Wim Taymans
1b79419554 cleanups
Remove signals.
Rename callbacks -> events, use listeners to listen for events.
Callbacks are still used in spa for things you can listen to only
once.
2017-08-04 16:49:13 +02:00
Wim Taymans
b898eb46cd Make structure private
Make structs private. Expose methods for things we need.
Signals only work on exposed structures so make a new callback helper to
signal events.
2017-08-04 10:18:54 +02:00
Wim Taymans
e24c934a1b protocol-native: improve demarshal
Add flags to demarshal functions and check remap and write access
in just one place.
2017-08-01 20:11:38 +02:00
Wim Taymans
4f08dbcd24 Use more fine grained access control
Make it possible to add more permissions to an object than just visible
or not. Pass these permissions to the client. This way we can make a
difference between being able to see and read, modify or query an
object. More permissions can be added later when needed. Because the
permissions is set on the resource by the access control module, the
implementations can check if the right permission is set before doing
anything.
2017-08-01 17:09:57 +02:00
Wim Taymans
c59bc457d4 Improve pull on client-node
When we pull from the client-node, use any previously queued buffers.
2017-08-01 12:26:25 +02:00
Wim Taymans
9831786eb7 Work on improved scheduling or remote nodes 2017-07-28 14:28:20 +01:00
Wim Taymans
3d9f28c676 Use remote to join nodes on remote graphs
Make a new method that can take a local node and run it in a remote
pipeline. This basically replaces all functionality of the streams
and more.
Add 2 examples for exporting a sink and a v4l2 node
Make some more things const
Cleanups
Make it possible to do things when the node needs scheduling. The
default node will schedule the local pipeline but the remote node might
also schedule the remote pipeline.
2017-07-25 19:52:31 +02:00
Wim Taymans
589e3d977c module: fix registration of modules
Don't fail when protocol-native is already registered.
2017-07-19 12:44:10 +02:00