Thomas Zimmermann
21cd78fe9e
autogen.sh: Reuse existing build directory
...
Removing the build directory might delete important development files
as well.
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
2019-05-23 10:13:50 +02:00
Wim Taymans
e20857ccd1
destroy resources first, then the global
...
The clients see the proxy disappear before the global is removed.
2019-05-23 10:11:56 +02:00
Wim Taymans
f57a806cf8
Return -EEXIST when registering an object twice
2019-05-23 10:00:23 +02:00
Wim Taymans
fbf6acd271
list: use spa_list_consume some more
...
If we know the item is removed in each iteration, _consume can handle
deletion of any item while being iterated.
2019-05-23 09:56:02 +02:00
Wim Taymans
58fa5561b8
interface: get_registry always returns a Registry type
2019-05-21 15:46:31 +02:00
Wim Taymans
a564d9f3f1
Move implementation helpers to utils
2019-05-20 10:14:00 +02:00
Wim Taymans
b195a25636
pipewire: only load spa_handle
...
Only provide a method to load a spa_handle, getting the interface
from that is easy and we only use refcounting on the handle.
2019-05-20 09:49:39 +02:00
Wim Taymans
da9f0ed160
core: simply load the dbus interface in core
2019-05-17 17:33:15 +02:00
Michael Olbrich
4be788962e
core: fix pw_core_find_format() for active ports
...
pw_core_find_format() is currently broken when one of the ports is already
active: The format of the active port is used and the other port is
completely ignored.
As a result, the autolink module may try to link a new port to the first
already active port even if the formats do not match.
To fix this, use the format of the active port as a filter and enumerate
the formats of the other port.
2019-05-17 12:52:18 +02:00
Jonas Ådahl
b1c193346e
pipewire/node: Pass along 'media.role' node property too
2019-05-17 12:42:45 +02:00
Wim Taymans
51e900c9d3
Remove libv4l2 dependency
...
It's not used anywhere right now.
2019-05-17 12:41:57 +02:00
Wim Taymans
3cb400bb61
audioconvert: don't use range
...
Use the spa_io_position->size to decide how many samples to output
from the resampler.
2019-05-17 10:31:20 +02:00
Wim Taymans
4ae771ccc1
a2dp: also acquire when the state is pending
2019-05-16 16:43:35 +02:00
Wim Taymans
e009fead09
io: remove unused range
2019-05-16 16:42:49 +02:00
Wim Taymans
6cfddde39c
bluez: fix a2dp source
...
Actually compile the codec config and declare the config as extern
or else it's just all 0.
Only acquire the transport when ACTIVE.
Implement transport state_change signal and acquire the transport
when going to pending/active.
Try to acquire the transport before we expose the device if we
can.
Force device expose when we get the device ServicesResolved=1 property
update.
Free transport when the rfcomm is closed.
Implement various DBus signals to detect dynamic property updates.
2019-05-16 13:18:45 +02:00
Wim Taymans
c348790ca1
map: handle more error cases
2019-05-15 15:19:25 +02:00
Wim Taymans
448c1937ad
hook: separate spa_callbacks from the hook
...
Make a spa_callbacks with just the functions and data and use this
in the hook and objects.
2019-05-15 12:17:52 +02:00
Wim Taymans
6ee192dff5
hooks: use hook to implement the callbacks
...
This way we get the version check implemented and save some
code.
2019-05-15 11:19:23 +02:00
Wim Taymans
a78617c6a8
a2dp: cleanups
2019-05-15 10:20:28 +02:00
Wim Taymans
f6ace8a000
a2dp: add events and implementation
...
Use hooks for the implementation of the transport
Add events to the transport
Handle the destroy event of the transport to release the reference
in source and sink.
2019-05-14 18:10:18 +02:00
Wim Taymans
903cbeb7c1
hook: handle port and factory implementation with hook
...
This way we can also handle the version number.
2019-05-14 18:08:02 +02:00
Wim Taymans
23d4ed62dd
device: rename internal variable for consistency with node
2019-05-14 18:06:48 +02:00
Wim Taymans
5858c992ef
audioconvert: improve debug
2019-05-14 18:05:51 +02:00
Wim Taymans
e6c42d3324
hook: add option to call hook with return value
2019-05-14 18:04:34 +02:00
Julian Bouzas
674f3e197e
bluez5: add a2dp-source plugin
2019-05-14 13:02:55 +02:00
Wim Taymans
29164a0f54
link: remove error from method
...
We return a reason in errno
2019-05-14 12:59:18 +02:00
Wim Taymans
2889db8efb
link: listen to permission changes on the ports
...
If one of the ports becomes invisible to a client, hide the link.
If one of the ports is owned by a client and the peer port becomes
invisible for the client, destroy the link.
2019-05-14 12:09:34 +02:00
Wim Taymans
d7c7e9bf6f
global: update child permissions
...
When the permissions of a global change, update the child permissions
as well.
2019-05-14 12:08:35 +02:00
Wim Taymans
d39d15b0d9
global: keep track of child globals
...
Keep track of the child globals and unregister when the parent
is unregistered.
2019-05-14 12:07:30 +02:00
Wim Taymans
b474666e2e
link: listen for permission changes
...
Destroy the link when the ports or nodes are no longer visible
to the other side of the link.
2019-05-13 18:03:27 +02:00
Wim Taymans
a224234acd
global: don't follow NULL parent
2019-05-13 18:00:50 +02:00
Wim Taymans
79fe89412a
client: update permission before calling global_update
...
first update the permission and then call the global update method. This
ensures that any query of the permissions will have the new permissions.
2019-05-13 17:58:58 +02:00
Wim Taymans
04c153d410
global: add permissions_changed event
2019-05-13 17:24:33 +02:00
Wim Taymans
9221b8dedd
global: combine all permissions of the object tree
...
To get the permissions of an object, combine the permissions
of the object and all the parent nodes up to the root.
This is necessary to enforce that a client can never see and
object id (in this case the parent id) it is not allowed to see.
2019-05-13 17:13:58 +02:00
Wim Taymans
23d0b9e5e2
link: check permissions
...
When creating a link between two nodes, check if the owner of a
node (when it is a client) can see the other node.
2019-05-13 17:11:15 +02:00
Wim Taymans
07ff967285
client: call find_permission only once
2019-05-13 10:14:08 +02:00
Wim Taymans
2d3f30fb96
introspect: fix enum
2019-05-13 10:12:33 +02:00
Wim Taymans
795b14f48b
protocol-native: also handle 0 recvmsg as EOF
...
When recvmsg returns 0, also handle it like an EOF and close to
connection otherwise we keep spinning forever.
2019-05-13 10:10:41 +02:00
Wim Taymans
a2bf4ce96e
protocol: add security label to a client
...
Don't pass the ucred to the client construct, just set the properties
in the protocol.
Use the client properties to get ucred.
Add the security label to the client properties (from SO_PEERSEC)
2019-05-10 13:28:18 +02:00
Wim Taymans
4e70cddf1d
core: don't remove client resource in hello
...
Keep the client resource of a client around and make sure we don't
destroy it in hello.
2019-05-10 12:36:28 +02:00
Wim Taymans
a804b71267
core: destroy all resources on hello
...
Destroy all resources (except the core) for a client when it
does a hello. This typically needs to be done after passing the
connection fd from one client to another.
2019-05-10 11:56:30 +02:00
Wim Taymans
a70fd80c2d
fmtconvert: fix format enumeration
...
Rework the format enumeration so that it also return the other
rate/channels, even when using a canonical format.
2019-05-10 11:39:51 +02:00
Wim Taymans
1a7fcaf9c6
Fix cleanup
2019-05-10 11:15:48 +02:00
Wim Taymans
41ab051b68
fmtconvert: fix format enumeration
...
Even if the other pad is already negotiated, we can convert all
formats to F32.
2019-05-09 09:35:03 +02:00
Wim Taymans
ecde090a1f
pod: remove type check, it causes errors
2019-05-09 09:34:23 +02:00
Wim Taymans
35c2aca706
remote: only remove the proxy id when it existed
2019-05-07 17:53:57 +02:00
Wim Taymans
9a842e4643
pipewiresrc: actually use the fd when set
2019-05-07 14:53:53 +02:00
Wim Taymans
b01858931c
v4l2: add camera media.role
2019-04-30 15:42:17 +02:00
Wim Taymans
636c02d38b
audioconvert: fix native variable rate resampler
2019-04-30 15:14:05 +02:00
Wim Taymans
5ac383e7f7
alsa: improve capture slave resync
...
When we underrun, send out a buffer of 0 samples and catch up next
time.
Detect discont in the master and resync.
2019-04-29 10:00:42 +02:00