Commit graph

3961 commits

Author SHA1 Message Date
Wim Taymans
3c7186cfd6 INSTALL: update with info about jack plugin 2020-05-04 10:00:24 +02:00
Wim Taymans
ab03e3230e man: add pw-dot man page
Fix some arguments to parameters
2020-05-03 21:08:01 +02:00
Wim Taymans
3dc0602650 man: add mididump man page 2020-05-03 20:50:38 +02:00
Wim Taymans
8fe5b58686 pw-mididump: add getopt 2020-05-03 20:48:42 +02:00
Wim Taymans
ed2d6b2cce pulse: only find links to source or sink
Those are the only links we care about in the sink_input or
source_output info.
2020-05-03 18:49:10 +02:00
Wim Taymans
6d5563a978 tools: add tool to dump midi messages 2020-05-03 11:51:51 +02:00
Wim Taymans
713f242853 audioadapter: handle -ENOENT from enum_param 2020-05-03 11:45:06 +02:00
Wim Taymans
22cc1f903f stream: clean up enum_params 2020-05-03 11:43:56 +02:00
Wim Taymans
2efa3f00ac return -ENOENT when param doesn't exist 2020-05-03 10:13:50 +02:00
Wim Taymans
f46cbd2ac2 man: add pw-cat beginnings 2020-05-03 07:25:28 +02:00
Wim Taymans
3037dd6b48 update man pages. 2020-05-02 20:19:20 +02:00
Wim Taymans
b9bb318cb7 alsa: install conf files 2020-05-02 10:43:10 +02:00
Wim Taymans
7a7527bc90 Update README.md 2020-05-02 08:16:03 +00:00
Wim Taymans
f043ed86d9 update with jack and pulse install instructions 2020-05-02 10:12:08 +02:00
Wim Taymans
d8de4f3b9f Update docs a bit 2020-05-01 20:29:40 +02:00
Wim Taymans
5b9e82c4e8 pw-cat: add pw-midiplay and pw-midirecord aliases 2020-05-01 11:35:51 +02:00
Wim Taymans
f11cd32258 node: improve warnings
Make separate warnings for read failure and xrun
2020-05-01 11:24:14 +02:00
Wim Taymans
940ff7f53b client-node: improve error reporting
Separate read failure and missed wakeup in 2 messages.
2020-05-01 11:23:54 +02:00
Wim Taymans
e83bf8a33f log: use printf attribute for log fallback
Fixes #233
2020-05-01 11:18:28 +02:00
Wim Taymans
979a81a70d meson: add -Wformat
cc1: warning: ‘-Wformat-security’ ignored without ‘-Wformat’ [-Wformat-security]

Fixes #234
2020-05-01 11:05:38 +02:00
Wim Taymans
08543384f1 uninstalled: symlinks are not needed anymore 2020-05-01 11:05:08 +02:00
Wim Taymans
33398d7de8 0.3.4 2020-04-30 17:55:54 +02:00
Wim Taymans
3324a15fe3 protocol: use bool for Bool pod 2020-04-30 17:12:20 +02:00
Wim Taymans
c117ca0899 jack: fix unlock 2020-04-30 16:18:40 +02:00
Wim Taymans
420c186124 jack: also sync position area with data thread 2020-04-30 16:15:22 +02:00
Wim Taymans
0fd46d057e remote: free io area after we set the new area
First set the new area, then destroy the old one. Otherwise the
data thread might still be using the old area and crash.
2020-04-30 16:13:50 +02:00
Wim Taymans
dc331aa562 add more warnings and fix one 2020-04-30 16:07:23 +02:00
Wim Taymans
002bcae856 0.3.3 2020-04-30 13:46:39 +02:00
Wim Taymans
ac9f2a020f filter: make sure to sync the position with data thread 2020-04-30 13:46:39 +02:00
Wim Taymans
8141c92dde jack: free some objects 2020-04-30 13:11:01 +02:00
Wim Taymans
30d5a247e1 jack: improve locking
Protect the global metadata with a lock because we update this from
multiple clients. Avoid updating the metadata if it didn't change.

Add a simple lock to protect the session objects, they could be
accessed from the main thread or data thread. Use the simple lock
in methods that just read.

Use the new data loop invoke to make sure we sync the data update
with the data thread.

Stop the data loop when our position io is removed.
2020-04-30 12:57:56 +02:00
Wim Taymans
acd9991bfc remote-node: remove unused position area 2020-04-30 11:55:46 +02:00
Wim Taymans
cec26494f8 data-loop: add function to invoke
Add function that invokes the given function in the context of the
thread or the caller thread depending on if the thread is running.
2020-04-30 11:54:15 +02:00
Wim Taymans
5e99e7da49 alsa-monitor: remove timeout in destroy 2020-04-29 17:12:22 +02:00
Wim Taymans
0380c6d91e suspend-node: remove idle handler in destroy
Or else the idle handler might go off when we are already destroyed.
2020-04-29 16:41:41 +02:00
Wim Taymans
d8d4e2f335 jack: make dummy server and net libraries 2020-04-29 16:32:15 +02:00
Wim Taymans
9f810d1bbc add pw-jack and pw-pulse to set the library path
pw-pulse and pw-jack set the replacement library path correctly
so that pulse and jack apps run on top of PipeWire.
2020-04-29 13:28:08 +02:00
Wim Taymans
293386c21a install replacement libraries in modules directory
Don't use a special name for the replacement libraries but install
them into the modules directory by default. Add an option to install
them into another location.

This way, we don't need to set up symlinks in development, distros can
choose to install them where they want and/or we can use symlinks or
LD_LIBRARY path to select the replacement versions.
2020-04-29 11:24:24 +02:00
Wim Taymans
83b30dcd3d jack: always initialize the port buffer
Init the port buffer after we create it, not only after we get a buffer
on the port.
Cleanup a little.
2020-04-28 14:15:49 +02:00
Wim Taymans
856e1fe812 client-node: don't error in cleanup
It's possible the cleanup code might try to clean up ports we
already removed, don't show an error on that.
2020-04-28 13:56:23 +02:00
Wim Taymans
9c1ac4e850 pulse: implement cork now 2020-04-28 12:18:57 +02:00
Wim Taymans
69bc57864a link: improve state management
Only activate a link when both nodes are active
Don't try to prepare the link when already prepared.
Only unprepare the link when it was prepared
2020-04-28 12:17:33 +02:00
Wim Taymans
f5e4a6b225 link: track active state of nodes
Keep track of the node active state, when both are active, we can
prepare (negotiate) the link.

After a link has been prepared we can activate it. When we deactivate
the link, we don't need to prepare again.

When a port loses buffers or format, set the link back to the
unprepared state.

This fixes the case where:
 1) a node becomes inactive and goes to suspend, the link becomes
    unprepared
 2) the node becomes active again and need to be prepared again
2020-04-28 11:45:52 +02:00
Wim Taymans
68268a0116 context: improve states
Don't try to IDLE a suspended node.
Don't try to start an inactive node.
2020-04-28 11:42:45 +02:00
Wim Taymans
ea9a016797 context: reorganize graph recalc
Move quantum calculation after adding unassigned to fallback drivers
so that they also receive the required quantum.
2020-04-28 09:58:43 +02:00
Wim Taymans
2220d5b9b6 support: add dummy driver
Add a dummy driver node with high priority. All nodes not linked
to a device node will be linked to this when they require a driver.
2020-04-27 20:21:31 +02:00
Wim Taymans
730c85e5b0 metadata: fix order of type/value 2020-04-27 12:54:14 +02:00
Wim Taymans
90e1eb1b22 jack: add more metadata keys 2020-04-27 12:22:32 +02:00
Wim Taymans
93211549a4 log: add option to disable line numbers 2020-04-27 11:18:49 +02:00
Wim Taymans
b69bdc1eff context: improve graph states
Keep the first active node as the fallback node. We use this node
as the target when no oher active nodes exist.

Only assign the target node to active nodes.

When we assign an unassigned node, simply update the active followers
of the target, the state of the nodes and target itself will then
be taken care of later.

When registering nodes, only active nodes can influence the state of the
graph.

Update some comments
2020-04-27 11:16:14 +02:00