Wim Taymans
805e3bb6c1
types: work on types
...
Move static pod types to type system
work on type info for types
Move the event and command ids to an enum to make it easier to extend
later.
2018-08-24 10:53:09 +02:00
Wim Taymans
fca3e1d85d
Remove dynamic types
...
Do not use dynamic types anymore. The reason is that it's difficult:
- to maintain a shared type database over a network.
- the extra overhead when translating between processes and for
maintaining the translation tables.
- race conditions in translating in RT-threads, this is a problem
because we want to make event streams.
We now have simple enums with types and extension points for all
types. This is also nicer to use in general.
We don't need the mapper anymore or pass strings around as types.
There is a parallel type info system to get more info about ids and
enums and their hierarchy. It can also be used for debugging.
2018-08-23 17:47:57 +02:00
Wim Taymans
d4ab36d52a
client-node: only clear ports once
2018-08-14 16:53:05 +02:00
Wim Taymans
3b1c40f17f
pod: move compare and filter functions out of the library
2018-08-14 14:52:32 +02:00
Wim Taymans
899e67eb61
client-node: clear buffers when mixer is removed
2018-07-31 21:36:10 +02:00
Wim Taymans
57ef49b154
client-node: fix port implementation
...
Make the port forward the port methods to the node.
Fix io area when not using adapter
2018-07-31 14:28:15 +02:00
Wim Taymans
ca898a00db
work on separating port mixers
...
Make it possible to assign an arbitary node as the port mixer.
Also remove dynamically added ports.
Improve negotiation and allocation on the mixer ports
Add some more SSE optimisations
Move float mixer from the audio dsp to the port
Remove pw_node_get_free_port() and do things more explicitly.
Handle mixer ports in client-node
2018-07-31 12:23:35 +02:00
Wim Taymans
0d148654c0
stream: add more timing info
...
Keep track of queued data in the stream
Pass delay field around to make it possible to know about the raw
software read/write pointer and the hardware one.
Start stream position at 0
2018-07-19 13:30:27 +02:00
Wim Taymans
cc542935ea
client-node: add more generic set_io method
...
Replace the set_position method with set_io that allows us to share
other types of state with the client.
2018-07-12 15:33:07 +02:00
Wim Taymans
5a3eee9cac
command: remove clock-update
2018-07-12 13:22:50 +02:00
Wim Taymans
1b4a0e8d5d
client-node: also implement io on the node itself
2018-07-03 21:45:07 +02:00
Wim Taymans
79a3b594f9
client-node: set parent id and owner
...
Make sure we set the right parent id and owner for the client node
and client-stream
Move the remote id in the proxy object and use it in the stream to
get the node id.
2018-07-03 21:43:21 +02:00
Wim Taymans
c01112d6c2
node: move position calculation to the node
2018-06-22 17:38:36 +02:00
Wim Taymans
bbd5c941d2
client-stream: send node_id to client
...
Send the node_id of the client-stream node to the client.
2018-06-18 13:19:54 +02:00
Wim Taymans
e5629b23f3
client-node: pass position around
...
Pass the position from server to clients
Implement current time in stream.c using the position info
2018-06-07 11:01:20 +02:00
Wim Taymans
3d25e254ef
client-node: implement node property update
...
Make it possible to update the node properties
Make it possible to update the remote properties
2018-06-07 10:23:41 +02:00
Wim Taymans
bf2a6bb1d7
client-node: small cleanups
2018-06-01 11:19:22 +02:00
Wim Taymans
f5f1a435cc
client-node: improve time and position reporting
2018-05-24 16:10:22 +02:00
Wim Taymans
6450c64542
clean up listeners
2018-05-17 17:30:30 +02:00
Wim Taymans
bed26040ef
node: add driver position struct
...
Pass driver info to client
use current buffersize and samplerate in client
update the buffer size dynamically based on session
2018-05-11 10:15:59 +02:00
Wim Taymans
6d79ce2589
small cleanups
2018-05-10 11:28:02 +02:00
Wim Taymans
d93dd5ec93
graph: remove io from graph port, it's not needed
2018-05-08 12:21:57 +02:00
Wim Taymans
a6cb6b740c
client-node: make it possible to skip signal
...
Add an option to not signal the remote implementation when we still
have enough data.
2018-04-26 09:49:29 +02:00
Wim Taymans
d165b3b842
pipewire: improve memory cleanup
...
Add method to unload a spa interface.
Various other memory cleanups
2018-04-20 16:27:19 +02:00
Wim Taymans
57cbc5e503
various cleanups
2018-04-19 20:15:30 +02:00
Wim Taymans
efa35c2911
node: add option to not register a node
2018-04-13 20:05:46 +02:00
Wim Taymans
fa07400c2e
port_mix: place io area in separate field
...
We would like to remove it from the spa_graph_port...
2018-04-13 20:04:22 +02:00
Wim Taymans
adf8bc7804
client-node: fix buffer data offset
2018-04-13 20:03:14 +02:00
Wim Taymans
04f3044f1c
client-node: implement add/remove port
2018-04-13 20:02:35 +02:00
Wim Taymans
f4f2e4bf68
small cleanups
2018-04-13 19:57:34 +02:00
Wim Taymans
03b914405d
client-node: remove transport area
...
We don't need the area anymore
2018-04-12 10:12:40 +02:00
Wim Taymans
b07c4932cd
stream: remove client_reuse
...
We can't have client-reuse with the client-node interface.
2018-04-12 09:45:07 +02:00
Wim Taymans
008df86c8f
small cleanups
2018-04-11 10:54:47 +02:00
Wim Taymans
ba518c0d9b
small fixes
2018-04-05 15:37:34 +02:00
Wim Taymans
97547d726f
client-node: track io areas per mixer
2018-04-03 16:29:36 +02:00
Wim Taymans
a7341ce583
node: fix support for remote driver nodes
2018-04-03 16:29:36 +02:00
Wim Taymans
811ea2b1c9
client-node: manage io areas
...
Manage the memory of io areas
2018-04-03 16:29:36 +02:00
Wim Taymans
33a322b96e
graph: new scheduling model
...
Make explicit links between elements that are used to activate the
next element in the graph.
Make subgraphs a special regular node. Make a link from the
subgraph children to the parent so that the subgraph completes when
all the children completed.
Implement a single process function in plugins
Remove many messages in the client node
2018-04-03 16:29:36 +02:00
Wim Taymans
9b0a880afb
simplify things with just 1 process function
...
Make just one process function in spa node. With the io area states
we can do more complicated io patterns.
2018-04-03 16:29:36 +02:00
Wim Taymans
933635f63f
WIP: work on per driver graphs
...
Make a graph per driver node and let nodes that link to this join this
graph
Work on an idea for an even simpler scheduling mechanism.
2018-04-03 16:29:36 +02:00
Wim Taymans
05b3c666d9
improve debug
2018-04-03 16:29:36 +02:00
Wim Taymans
f599120433
mix: keep track of mix id
2018-04-03 16:29:36 +02:00
Wim Taymans
a50ea4c929
client-node: we need io on the mixer nodes
2018-04-03 16:29:36 +02:00
Wim Taymans
c547baf952
client-node: remove the area
...
Remove the share node area, we don't need it
2018-04-03 16:29:36 +02:00
Wim Taymans
a3033ee2b7
client-node: improve debug
2018-04-03 16:29:36 +02:00
Wim Taymans
1f077c7e0a
client-node: fix mem_offset of io areas
2018-04-03 16:29:36 +02:00
Wim Taymans
b9880dbd5f
Add some more debug
2018-04-03 16:29:36 +02:00
Wim Taymans
2ea9addcf2
port: delegate initialization of mix ports to port
2018-04-03 16:29:36 +02:00
Wim Taymans
319098b4c8
client-node: implement set_io on mixer and regular node
2018-04-03 16:29:36 +02:00
Wim Taymans
28a094a65b
client-node: free io_area
2018-04-03 16:29:36 +02:00