Wim Taymans
120090741a
pulse: return NOENTITY when an item was not found
...
It's possible that the object was removed right after doing the call, in
that case we need to return NOENTITY because apps handle this
gracefully.
2020-08-19 17:03:44 +02:00
Wim Taymans
cde6b99890
stream: call latency_update callback
2020-08-19 16:49:30 +02:00
Wim Taymans
5037a97690
stream: call started callback when started
...
.. instead of the suspended callback
2020-08-19 16:49:02 +02:00
Wim Taymans
bb323a82a7
stream: call the moved_callback when moved
2020-08-19 16:48:25 +02:00
Wim Taymans
4e17d4cdf8
pulse: don't leak device_name
...
Small cleanups
2020-08-19 16:47:52 +02:00
Wim Taymans
1f298cb5bf
stream: guard against old timestamps
2020-08-19 16:02:52 +02:00
Wim Taymans
0c04481ba7
metadata: improve default sink/source
...
Only check defaults when subject is PW_ID_CORE
Handle NULL keys: remove the defaults
2020-08-18 17:56:05 +02:00
Wim Taymans
6aa6b4eac7
pulse: improve debug
2020-08-18 12:12:49 +02:00
Wim Taymans
a92d060de9
context: make sure required fields are not NULL
2020-08-18 12:11:54 +02:00
Wim Taymans
35bec2c7c4
context: also find monitor names
2020-08-18 12:11:24 +02:00
Wim Taymans
fa66bf8187
pulse: use device.api property to mark HARDWARE
...
Check if there is a device.api property on the sink/source and
if there is, mark the sink/source as a hardware device.
2020-08-17 20:57:32 +02:00
Wim Taymans
21e7c77e5e
pulse: add symbol to check for PipeWire lib
2020-08-17 20:07:04 +02:00
Emmanuel Gil Peyrot
14fdf07e8f
Run codespell on the entire codebase
...
This tool detects and fixes common English spelling mistakes, with
generally very few mistakes.
Here is the command I used to generate this commit. There were a few
changes that had to be done manually, and of course adding the ignore
file:
```shell
codespell -I .codespell-ignore -x .codespell-ignore -w
```
I didn’t add it to the CI, but this would be a good place for it.
2020-08-17 17:16:31 +00:00
Wim Taymans
451fee2208
pulse: implement some more extensions
...
Most just return nothing or say that the extension is not supported.
Remove some warnings, they should show up in the log from setting
the error in the context.
2020-08-17 17:40:34 +02:00
Wim Taymans
62cea9c6d5
pulse: implement some more methods
...
Makes paman work
2020-08-17 17:22:14 +02:00
Wim Taymans
ebc659330e
pulse: also update ports after profiles
...
The ports have references to the profile info.
2020-08-13 16:58:40 +02:00
Wim Taymans
f058f86670
pulse: also update the profiles when the active one changes
2020-08-13 16:10:30 +02:00
Wim Taymans
374210c890
acp: add per device port list
...
Add the list of possible ports for a device.
Pass the allowed devices in the routes.
Store the active port in the device.
Fixes enumeration of ports on devices with UCM.
2020-08-10 14:25:03 +02:00
Wim Taymans
e71936f870
Improve naming
...
master -> driving
priority_master -> priority_driver
segment_master -> segment_owner
2020-08-06 13:49:33 +02:00
Wim Taymans
8e3ae33550
pulse: enable rtkit on the client
2020-08-05 17:37:17 +02:00
Wim Taymans
9290137931
pulse: handle NULL pw_stream
...
The pipewire stream might have been destroyed when the pulse stream
is freed.
2020-08-04 18:20:20 +02:00
Wim Taymans
377b3f9d42
pulse: always load the registry
...
Always get the registry, even if we're not using the introspect API
we still need it to keep track of the linked devices.
2020-08-04 18:16:02 +02:00
Wim Taymans
653465a1b1
pulse: handle device_name of NULL as error
2020-08-04 18:15:19 +02:00
Wim Taymans
979fec288e
stream: let the operation emit the TERMINATED state
...
When we disconnect, let the operation emit the TERMINATED state
because some apps expect this state to be emited asynchronously.
Makes GStreamer pulsesink work.
Fixes #210
2020-08-04 18:13:37 +02:00
Wim Taymans
94c23b7ed1
pulse: handle memory user_data of NULL
2020-08-04 18:11:58 +02:00
Wim Taymans
35376fc415
pulse: improve debug
2020-08-04 18:07:20 +02:00
Wim Taymans
9edb0c1206
pulse: actually remember the default source
2020-08-04 17:21:15 +02:00
Wim Taymans
007c50df56
stream: clear user data on flush
...
Or else we might add the memory to the free list again when
we free the buffers. Fixes audacity using the pulseaudio backend
in portaudio.
2020-08-03 21:53:51 +02:00
Wim Taymans
2d76a00e20
stream: fix printf modifier
2020-08-03 09:56:37 +02:00
Wim Taymans
0b12cc96cc
pulse: remove metadata store
...
We don't actually need to store all the metadata, we just need to
track the default sink and source property and store the value.
2020-07-31 15:47:14 +02:00
Wim Taymans
f231392093
pulse: improve param enumeration
...
Use user data field in param to check for changes and only
perform a clear+enum when it changed.
2020-07-31 13:57:19 +02:00
Wim Taymans
47ce374636
pulse: refactor param enumeration
2020-07-31 13:33:28 +02:00
Wim Taymans
a5f85deabe
pulse: also use PIPEWIRE_LATENCY as a fallback
2020-07-30 18:23:23 +02:00
Wim Taymans
aee95e76bb
pulse: use the right sample spec
2020-07-30 18:22:03 +02:00
Wim Taymans
c7d7dd91f8
permission: add M permission
...
The M permission is needed to set metadata on an object.
2020-07-30 16:35:14 +02:00
Wim Taymans
f5e78196c4
pulse: check that we have access to change metadata
2020-07-30 16:23:13 +02:00
Wim Taymans
24755afee9
pulse: use format from node if available
...
And fall back to some defaults otherwise.
2020-07-29 14:42:29 +02:00
Wim Taymans
18b4aee677
Parse format param and store in node
2020-07-29 14:29:03 +02:00
Wim Taymans
55bef12cda
pulse: take queued data into account when asking for more
...
Don't use always ask for the maximum amount of data in the
write_callback but subtract the queued amount of data from it or else
we will queue too much and cause huge lag.
Fixes #258
2020-07-29 09:49:06 +02:00
Wim Taymans
c04d57d5d5
pulse: fix signedness warning
2020-07-28 16:53:13 +02:00
Wim Taymans
cb91e9c536
stream: improve flags
2020-07-28 10:49:33 +02:00
Wim Taymans
6184c0fe32
keys: add stream to avoid remixing channels
2020-07-28 10:16:04 +02:00
Wim Taymans
63dbf7b7b7
context: connect to given server
2020-07-23 20:12:10 +02:00
Wim Taymans
266e1301d2
use id to store default sink/source
...
This is easier to handle in general and we should not use the name
as a unique id. If the session manager wants to save things, it can
use whatever fields it wants from the object to create a unique
persistent name.
2020-07-23 11:59:13 +02:00
Wim Taymans
cc0727e62f
pulse: remove useless leaked property
2020-07-21 17:39:08 +02:00
Wim Taymans
2909786eb2
stream: put target string in node.target
2020-07-20 16:27:50 +02:00
Wim Taymans
ff876bf58e
introspect: set metadata type as well
2020-07-20 14:40:34 +02:00
Wim Taymans
5d0a1c4838
stream: remove wrong warning
2020-07-20 13:27:25 +02:00
Wim Taymans
62f7da880a
pulse: clean up introspection
...
Make sure we always first update the registry.
Call callbacks with the right return value and set the context
error on errors correctly.
Remove some old code.
2020-07-20 13:13:22 +02:00
Wim Taymans
246ad5fb37
introspect: set target node as property
...
Use the metadata to tag streams with the desired target node.
2020-07-20 11:26:32 +02:00