Wim Taymans
b681286362
pod: Use private names for variable in macros
...
Fixes #197
2019-12-13 13:13:22 +01:00
Wim Taymans
181c2de2ee
parser: only recurse into CHOICE when 1 value
...
Only try to collect the CHOICE value when there is only 1 value.
This makes it possible to parse the complete choice as a SPA_Pod.
2019-12-09 12:23:24 +01:00
Wim Taymans
3f3dfbc67e
More session manager work
...
pulseaudio card is mapped to device
pulseaudio sink/source is mapped to an endpoint
prepare to map streams to card profiles
Add Route param to implement the endpoint routing later (ports)
Create an alsa endpoint for each device
Create one stream for each endpoint (Playback/Capture)
Implement create_link on the endpoint. The idea is to call
create link on the peer endpoint to complete the link. Remove
create_link on the session.
Add stream-monitor to turn pw_stream nodes into endpoints
Add a policy manager that tries to link endpoints
Use enum pw_direction for the endpoint direction. We can use the
media_class to determine if this is a pw_stream or not but it should
not really matter, you can link any output to any input.
Add autoconnect property for endpoints to make the policy connect.
2019-11-29 13:34:07 +01:00
Wim Taymans
bca114f8c5
system: include time.h for the itimerspec struct
2019-11-21 17:52:58 +01:00
Wim Taymans
e9eabead4b
add keys.h header
2019-11-21 13:04:58 +01:00
Wim Taymans
aa4dc73b21
node: move keys to separate file
2019-11-21 09:33:50 +01:00
Wim Taymans
18974f90f6
pod: rename context to flags in spa_pod_prop
...
Flags are more useful when we can use them to describe how to
filter properties later.
2019-11-21 09:32:08 +01:00
Wim Taymans
e620412034
param: add more fields to Profile param
...
Add description and priority to profile
2019-11-21 09:31:53 +01:00
Wim Taymans
f92775719a
log: make timestamps configurable
2019-11-19 15:38:09 +01:00
Gleb Popov
aec64336fe
Do not try to include endian.h on FreeBSD.
2019-11-19 13:41:40 +01:00
Wim Taymans
6397db9d68
protocol: init spa_dict properly
...
Or else the flags might be wrong.
2019-11-04 17:30:33 +01:00
Wim Taymans
29254b688a
pulse: fix list_prev
2019-11-04 17:30:33 +01:00
Wim Taymans
6b565d2eab
format: add video modifier
2019-11-03 16:39:56 +01:00
Wim Taymans
d1e331e268
pod: add POD_None
2019-11-03 10:13:30 +01:00
Wim Taymans
a18c8df7d0
meta: make sequence number 64 bits
...
Add offset in current cycle
2019-10-29 22:44:45 +01:00
Wim Taymans
d94019ccd2
io: Add current video frame size to position
...
Add some padding, tweak some padding
Remove count in the clock, it's useless
For video frames we will want to use metadata to place
this on individual buffers.
2019-10-29 14:08:40 +01:00
Wim Taymans
f7d32e78f2
pod: remove SPA_POD_IS_OBJECT_TYPE
...
We have a safer version of that in iter.h
Use macros to get id and type of an object
Use safer checks in plugins.
2019-10-29 10:08:46 +01:00
Wim Taymans
c904809e75
param: move param_info to params.h
2019-10-26 10:24:26 +02:00
Wim Taymans
ebb5ed94a2
add some docs
2019-10-25 15:01:27 +02:00
Wim Taymans
9ffec214b8
fix includes
2019-10-25 15:01:02 +02:00
Wim Taymans
5383782336
alsa: Disable rate matching for the same card
...
Add a clock name to the clock, remove the old api/clock_id. This makes
it easier to add descriptive names
Place the alsa card number in the clock name.
Check the clock name of the master clock and if it matches our own
clock, disable rate matching.
2019-10-23 16:04:03 +02:00
Wim Taymans
54f6834de4
io: add clock_id to clock
...
Can be used to determine if we need to slave or not.
Add node abi test
Fix some headers
2019-10-23 13:13:01 +02:00
Wim Taymans
659152d392
list: improve spa_list_for_each_safe_next
2019-10-22 12:20:02 +02:00
Wim Taymans
116676e149
node: add active flag for rate match
...
Add flags to the rate match io area
Add flag to activate/deactivate rate match
Set active flag in rate match when slaved
Update rate before starting resample
2019-10-21 10:13:56 +02:00
Wim Taymans
8899d00bfc
control: add control mixer plugin
...
Add a mixer plugin for control messages and plug it in ports with
control messages.
2019-10-16 11:13:23 +02:00
Wim Taymans
e0f79bcbb8
io: add some more docs and memory io area
2019-10-16 11:10:57 +02:00
Wim Taymans
6ad52b1a11
iter: check if size can hold a spa_pod
2019-10-16 10:44:12 +02:00
Wim Taymans
9d842fb5eb
improve debug and error reporting
2019-10-08 22:33:31 +02:00
Wim Taymans
9aadc753c0
type: add missing type-info for MemId
2019-10-08 22:30:00 +02:00
Wim Taymans
0ecbe4844e
mixer: Move floatmix to the audio mixer plugin
...
Move floatmix to the audiomixer plugin and change the name to
AUDIO_MIXER_DSP.
Add runtime selectable sse and sse2 optimizations.
Load the port mixer plugin dynamically based on the factory_name.
Add some more debug
2019-10-03 16:20:12 +02:00
Wim Taymans
36904e1612
dict: add function to sort
2019-10-03 09:31:34 +02:00
Wim Taymans
1f700e7cdd
dict: add SORTED flag and faster lookup in that case
2019-10-03 09:29:51 +02:00
Wim Taymans
fb95e7660a
media-session: start the midi bridge from the session
2019-10-02 21:12:42 +02:00
Wim Taymans
e04d58ee3a
Improve some debug
2019-10-02 18:02:07 +02:00
Wim Taymans
6e0ffb0c47
flags: change flag macros
...
SPA_FLAG_CHECK -> SPA_FLAG_IS_SET
SPA_FLAG_UNSET -> SPA_FLAG_CLEAR
Add SPA_FLAG_UPDATE
2019-10-02 18:00:42 +02:00
Wim Taymans
82ee139f65
spa: improve object properties
2019-10-01 10:04:22 +02:00
Wim Taymans
db341a6450
improve properties on node and port
...
Rename some alsa filenames.
2019-09-23 20:51:34 +02:00
Wim Taymans
6756a3c8fc
monitor: remove monitor API and use device
...
Remove the monitor API, we can use the device API for it. Make sure
we support creating devices (like alsa) from another device (udev).
Use new object.id to store the object id in the object properties. Use
the port.id/node.id etc to make relations to other objects.
2019-09-20 13:04:14 +02:00
Wim Taymans
818fb9e904
alsa: add midi bridge
...
Add a node that exposes all midi input and output ports and converts to
and from PipeWire control streams.
2019-09-19 16:57:00 +02:00
Wim Taymans
ab0d1b7fad
alsa: cleanups
...
Avoid getting the clock time just for debug.
Improve time at startup.
2019-09-19 16:55:02 +02:00
Wim Taymans
d3c7acb137
iter: add helper to parse pod from memory region
2019-09-19 13:17:48 +02:00
Wim Taymans
322ccb452c
small cleanups
2019-09-19 13:17:30 +02:00
Wim Taymans
59bf522ce1
system: use the same bits as POLL and EPOLL
...
Use the same bits for the io mask as POLL and EPOLL so that we
can avoid conversions.
2019-09-19 13:15:38 +02:00
Wim Taymans
49a5e97d69
format: add application/control media type
...
Add a new application/control media type that can be used to negotiate
control streams between ports.
2019-09-16 21:09:52 +02:00
Wim Taymans
4381e79632
control: clean up some control includes
...
Remove control from channelmix, it's not used
Add control metadata
Add OSC control type
Improve some docs
2019-09-16 15:49:46 +02:00
Wim Taymans
8b85cc225e
rename HAVE/NEED_BUFFER -> HAVE/NEED_DATA
...
It is more generic and works with control-only ports as well
2019-09-16 12:55:23 +02:00
Wim Taymans
2d8bce7479
names: add vulkan compute source factory name
2019-09-10 12:38:25 +02:00
Julian Bouzas
ddd2a97f7e
bluez: set bluez profile property when emitting node
...
We need to expose the bluetooth profile in the nodes so that external
applications know how to handle them.
2019-09-10 10:42:11 +02:00
Wim Taymans
9c9bff8fe9
data-loop: add _wait function
...
Add function to wait for one iteration of the loop. This can be used
by specialized implementations of the data loop, like jack.
2019-09-09 17:17:03 +02:00
Wim Taymans
88299ab225
alsa: add sync-id to properties
2019-09-05 13:18:56 +02:00