| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
* Fix a s/sink/source/ copy paste issue when dumping the database.
* Only show priority list when routing is enabled (as the list is not updated if not)
* Fix a memory access issue when finding the highest priority sinks/sources
* key name->device name efficiency fix.
* Silence noisy debug on reorder - it seems to work :)
* Reroute after reordering.
* Initialise preferred lists to PA_INVALID_INDEX
|
| |
|
| |
|
|
|
|
|
|
| |
We put in the devices from the wire into a hashmap and then add all like type device in the database
and then order them based on priority (with the ones specified on the wire always being in that order at
the top of the list.
|
|
|
|
|
|
| |
the time).
Also compare the entries fully before saving.
|
|
|
|
|
| |
This also ensures we let clients know whenver a sink changes in some capacity.
Also correct some debug code.
|
|
|
|
| |
Also leave space for 'icon' and 'available' details too, althought currently this info is dummy.
|
|
|
|
| |
save it (and on startup)
|
|
|
|
|
|
|
| |
be updated mid-stream.
We do not handle the _EVENT_NEW subscription here as the PA_CORE_HOOK_SINK_INPUT_NEW/PA_CORE_HOOK_SOURCE_OUTPUT_NEW
hook should handle the initial routing.
|
|
|
|
| |
stream
|
| |
|
| |
|
|
|
|
| |
Rather than querying our database on every new stream, we keep a cache and only update it when a sink/source is added/removed.
|
| |
|
| |
|
| |
|
|
|
|
| |
argument as well as via protocol extn.
|
| |
|
|
|
|
| |
created
|
|
|
|
| |
are added/removed.
|
|
|
|
| |
indexes for each role.
|
|
|
|
| |
module-stream-restore. We can co-exist
|
|
|
|
|
|
|
|
| |
This is incomplete, it just adds the slots in question and assigns noops to them.
Some minor cleanup of types.
Due to the priority of the hooks, it seems we can actually coexist with module-stream restore so
the code to detect and unload it will be removed shortly.
|
| |
|
|
|
|
| |
Also fix a log typo
|
|
|
|
| |
list to an appropriate value
|
| |
|
|
|
|
|
|
|
| |
The structure itself will contain various bits of info so exposing this fully to the client is a bad idea.
By keeping to a rename operation we keep what we do store abstracted from the clients.
Also fix some doxy comments.
|
|
|
|
|
|
|
|
|
|
| |
This allows clients to edit the priroity order. What is not yet in place is the initialisation of that priority list
when new devices are detected or the cleaning (remove holes) when devices are removed.
In order to keep the storage transparent I will likely remove the write functionality and replace it with a
simple rename method.
I also still need to expose the priority itself when reading the data.
|
|
|
|
| |
necessary
|
|
|
|
|
|
|
| |
device-priority routing.
The routing logic itself does not yet exist, but the command currently will unload/load module-stream-restore as approriate.
(module-stream-restore would conflict with the role-based priority-routing).
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
There is not technically a bug here due to the early return and the knowledge that one of the if blocks
will definitely be run, but this makes sure we don't call free on uninitialised data or do
anything else suitibly daft. Also helps when you copy the code and change it slightly and don't realise
you've left things open...
|
|
|
|
|
|
| |
of devices.
This fixes a few bugs in the copy+pasted implementation of apply_entry()/get_name().
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This is effectively copied from the stream restore extension.
|
|
|
|
|
|
|
|
|
|
| |
of various sinks.
This will be used as the basis for a queryable system for past and present devices, initially for use in KDE.
Currently all this module does is save lists of sinks/sources and their descriptions, so it needs to
gain a protocol extension to make this queryable.
As things stand it will save the device descriptions of all sinks and restore them if they differ from whats on record.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are multiple package management systems out there which implement
packages using symlinks. The recent (otherwise useful) check to ensure that
a re-executed pulseaudio is actually reexecuting itself unfortunately breaks
in the presence of all these packaging systems, because PA_BINARY refers
to its installed location (e.g. /usr/local/bin/pulseaudio), which is a
symlink to the binary (e.g. /usr/local/stow/pulseaudio-0.9.18/bin/pulseaudio),
because /proc/self/exe always contains the canonical path of the executable,
with all symlinks resolved.
(At least one distribution uses a symlink-based packaging system, so
will be forced to apply this locally in any case.)
The fix is simple: canonicalize PA_BINARY before equality-testing. (This
should be completely safe, because the OS does just that when PA_BINARY
is executed.)
The patch is against 0.9.18, but applies without fuzz to current master.
|
|
|
|
| |
sessions does not create spew in syslog
|
|
|
|
|
|
| |
Tweak the constraints a little so that register starved 32bit systems
can select a stack variable for the channel paramter instead of reusing one of
the registers we're using in the code.
|
|
|
|
| |
This avoids the need for ugly casting in client implementations.
|
| |
|
| |
|
| |
|