Commit graph

4202 commits

Author SHA1 Message Date
Wim Taymans
b896d65723 acp: emit param change when port changed 2020-07-08 16:16:43 +02:00
Wim Taymans
6d41e17ca3 pulse: improve name of monitors 2020-07-08 16:10:45 +02:00
Wim Taymans
4de3403c99 metadata: free item value as well 2020-07-07 20:25:01 +02:00
Julian Bouzas
2ae4322cca a2dpsource: fill the buffer as much as possible
Fills the buffer until the buffer data size is maxsize / frame_size
2020-07-07 15:34:57 +00:00
Julian Bouzas
60eb8dae87 a2dpsource: add RateMatch IO 2020-07-07 15:34:57 +00:00
Frédéric Danis
e17688a43b Fix missing headers check
Current Gillab CI fails with:
  $ ./check_missing_headers.sh
  spa/monitor/event.h not installed
2020-07-07 17:33:57 +02:00
Wim Taymans
ee54cb96aa pulse: use metadata to store default source/sink
The metadata is implemented by the session manager and it can decide
what to do when the defaults change. It can also choose to save
(some of) the metadata to a database.

The metadata is also shared between applications so that changes can
be picked up immediately.
2020-07-07 17:09:46 +02:00
Wim Taymans
2991a814cd pulse: wait for READY before calling callbacks 2020-07-07 13:42:56 +02:00
Wim Taymans
e030445e49 acp: add volume base and step
Add a READONLY property flag to makr properties READONLY
Set the base_volume and volume_step in the acp device
Send the base volume and step as REAONLY properties. Use these
in pulse layer.
2020-07-07 13:12:57 +02:00
Julian Bouzas
f75dfde89c remote-node: process the mixer if io status have HAVE_DATA flag
Needed for audio sources created locally
2020-07-06 12:08:27 -04:00
Wim Taymans
cf8db93cd4 pod: add HARDWARE flag to spa_pod_prop
Add HARDWARE flag to mark a property that does some hardware control.
Mark the device volume/mute property as HARDWARE or not.
Use the HARDWARE property in pulse to set the right flags.
2020-07-06 17:46:32 +02:00
Wim Taymans
8e6b276d51 alsa-monitor: parse device events
Parse the device events and set the Props from the ObjectConfig
as the Props param on the node.
This propagates the software volume from the device to the
node.
2020-07-06 17:26:01 +02:00
Wim Taymans
b9d412e618 monitor: add device event
Add device events and signal soft volume with an object config
event.
2020-07-06 17:25:05 +02:00
Wim Taymans
d80d593271 acp: add support for soft volume
Add a set_soft_volume/mute event.
If we can't configure the hardware volume completely, notify
the remainder with the soft_volume/mute events.
2020-07-06 17:22:42 +02:00
Wim Taymans
4db6e0e2b3 client-device: fix event marshall 2020-07-06 17:13:50 +02:00
Wim Taymans
ea6dfe204c acp: don't install library for now 2020-07-06 12:58:33 +02:00
Wim Taymans
0bbc25e3e2 media-session: add option to enable acp device 2020-07-06 12:51:38 +02:00
Wim Taymans
1612f5e4d2 alsa-acp: Add libacp based card device
libacp is a port and wrapper around the pulseaudio card profile code.
It uses a set of templates for construct a card profile and mixer port
settings. It also has support for UCM when available for the hardware.
2020-07-06 12:20:09 +02:00
Wim Taymans
5c6247daef internal: improve assert
Pulse just logs to the debug log for a return_val_if_fail
2020-07-03 17:32:20 +02:00
Wim Taymans
c28ca320d1 Fix bluez node destroy
We create a ClientNode but monitor the resulting Node.
Destroy the object when removing a node.
2020-07-03 16:28:10 +02:00
Wim Taymans
8ad769b943 bluez: improve profile description 2020-07-03 16:25:46 +02:00
Wim Taymans
471c1a071c policy: improve debug 2020-07-03 16:25:28 +02:00
Wim Taymans
a607174033 node: Pause when Suspend is not implemented 2020-07-03 16:24:55 +02:00
Wim Taymans
49332eb30f bluez5: handle suspend 2020-07-03 16:23:17 +02:00
Wim Taymans
7778f8d70e bluez5: remove devices correctly
Remember how many devices we emited for the current profile and
remove them all when we switch profile.
2020-07-03 16:12:19 +02:00
Wim Taymans
7b129c1020 sco: remove transport hooks on destroy 2020-07-03 16:10:46 +02:00
Wim Taymans
357868eeb5 a2dp: remove transport hooks on destroy 2020-07-03 16:08:53 +02:00
Wim Taymans
1e2ad41d94 remote-node: fix user_data
Pass the node_data around instead of the proxy. Get the proxy from
the node data.
Allocate user_data before the node_data so that the caller can
use the proxy user_data without overwriting the node_data.
2020-07-03 15:19:40 +02:00
Wim Taymans
1091d2eaf1 bluez5: improve profile enumeration 2020-07-03 12:14:00 +02:00
Frédéric Danis
0b970ec965 bluez: Update BT profiles
Only provide high-level A2DP and HSP/HFP profiles in pw.
Expose nodes based on pw profiles and BT profiles available on remote
device.
2020-07-03 11:53:52 +02:00
Wim Taymans
a520335581 fmt-ops: add sse2 version of f32 to s16 planar/interleaved 2020-07-03 11:05:26 +02:00
Wim Taymans
21fc163c49 stream: fix some more leaks in error paths 2020-07-02 16:22:49 +02:00
Wim Taymans
5295caf0f3 examples: dlclose on some errors 2020-07-02 16:07:54 +02:00
Wim Taymans
e11d35107f alsa: don't leak properties on error 2020-07-02 15:53:16 +02:00
Wim Taymans
ac54b7ace1 alsa: don't leak structure on error 2020-07-02 15:52:50 +02:00
Wim Taymans
f353042460 client: send an error to all bound resources
When we need to send an error to a global, send the error to
all resources bound to that global. This can also be resources
that implement the global (like client-node)
2020-07-02 15:39:23 +02:00
Wim Taymans
d3ab5bc3b8 stream: only unconnect when core unconnects
Ignore all other core errors, only make the stream unconnected
when the core is unconnected.
2020-07-02 15:39:15 +02:00
Wim Taymans
82a83afd6b policy: activate Unknown stream media type
And try to link them using the media.type property
2020-07-02 15:39:11 +02:00
Wim Taymans
9eb9fe4fbe stream: handle missing EnumFormat params
When we don't have an EnumFormat param, don't fail but fall back to
the MEDIA_TYPE property to calculate the media class.

Fixes things like:

  gst-launch-1.0 -v pipewiresrc stream-properties="props,media.type=Video" ! fakesink
2020-07-02 12:56:26 +02:00
Wim Taymans
fc49c1697a context: improve negotiation
When a port doesn't implement the EnumFormat param, use NULL as
the filter or the filter as the result.
2020-07-02 12:55:39 +02:00
Wim Taymans
591244c53e module-device: remove useless assign 2020-07-02 10:58:35 +02:00
Wim Taymans
3df8139f4e spa-node: unload handle in failure case 2020-07-02 10:57:10 +02:00
Wim Taymans
d871adbd4d spa-device: fix leak of properties in error case 2020-07-02 10:52:15 +02:00
Wim Taymans
d3748ef254 introspect: fix default source/sink 2020-07-01 15:38:42 +02:00
Wim Taymans
f30a8f6895 context: fix context_id, use the client bound id 2020-07-01 15:38:36 +02:00
Wim Taymans
813e2d22a6 context: fix sorted insert 2020-07-01 15:38:29 +02:00
Wim Taymans
34775b7577 context: use different variable to avoid confusion 2020-07-01 15:38:24 +02:00
Wim Taymans
f126501f83 context: don't enum profile/route when one is pending 2020-07-01 15:38:17 +02:00
Wim Taymans
dc7868a476 pulse: control volume on device or node
Send the mute and volume values in the route param when hw volume
is available.
Check if the route has volume/mute and then use that to control the
volume instead of them node volume.
2020-07-01 15:36:50 +02:00
Wim Taymans
9ad2732405 pulse: handle volume and mute with the Route params
Update the device volume with properties from the Route param is
available.
Rework pulse a little to make sure we have all the globals ready
before performing the operation.
Update the volume/mute in the device route
2020-07-01 15:31:19 +02:00