1
Fork 0
Commit Graph

36 Commits

Author SHA1 Message Date
Wim Taymans b5c21c1fbc pipewire: use dlclose unless PIPEWIRE_DLCLOSE is set to false
Always dlclose the libraries but use PIPEWIRE_DLCLOSE to override this
behaviour.

Fixes #2786
2022-12-12 17:11:04 +01:00
Wim Taymans b868ec36c5 SPA_DATA_DIR is the source root when uninstalled
Add some more error logging to bluez5 quirk loading.
2022-03-18 21:33:02 +01:00
Pauli Virtanen a7bd52d07d pwtest/Makefile: set SPA_DATA_DIR 2022-03-05 17:51:22 +00:00
Peter Hutterer b6e27822e5 pipewire: use RUNNING_ON_VALGRIND to determine if we're in valgrind
This removes the use of the VALGRIND environment variable
2021-06-07 10:44:27 +00:00
Barnabás Pőcze 0f03109cb6 Makefile: remove trailing slashes from env variables 2021-06-03 17:06:16 +02:00
Peter Hutterer 1201795c46 Makefile.in: replace the various @foo@ with $(foo) variables
This leaves us with the actual meson replacements at the top and, at least
IMO, makes the file easier to read - in part because $(foo) is
syntax-highlighted so variables stick out more.
2021-04-20 07:11:06 +00:00
Huang-Huang Bao 762663e74e
meson: create soft link for 'pipewire-uninstalled', fix gdb target in Makefile 2021-03-14 13:32:08 +08:00
James f0ca888112 PATH not needed for run-pulse 2021-02-25 12:05:24 +00:00
James 8784445eae Add run-pulse rule. Not sure if all env vars are needed here. 2021-02-25 12:05:24 +00:00
Wim Taymans 80825aeaea conf: more work on config changes
Add -c option to pipewire to select config file. Use this to select
the uninstalled conf file.
Rename conf properties, prefix with context.
Simplify the main daemon now that everything can go in config.
Simplify pipewire-pulse now that we can put everything in config, it's
now virtually the same as pipewire but with a differenct config file.
Parse server addresses as array of strings.
2021-02-12 10:31:29 +01:00
Wim Taymans fc90a4e48a Implement config/state file handling
Make methods to load_config and load/save state. For now the config
and state directories are the same but it might not be. Implement
the search path for all config/state files as:

  $XDG_CONFIG_HOME/[$prefix]/$name
  $HOME/.config/[$prefix]/$name
  $PIPEWIRE_CONFIG_DIR/pipewire/[$prefix]/$name
  /etc/pipewire/[$prefix]/$name

Make some config files for jack and RT clients. Make pw-cat use the
client-rt config.

Use core state and config management in media-session.
Move all session manager state and config files to the build dir and
set the PIPEWIRE_CONFIG_DIR to this build dir.
2021-02-12 10:25:11 +01:00
Wim Taymans c605672d43 Implement per client config files
Move the daemon config file loading to a new conf.c file used by
the context to load the configuration. This replaces the module
profiles and some hacks to move properties around.

If there is nothing other specified with $PIPEWIRE_CONFIG_NAME or
a property, the client.conf file is loaded as a fallback.

Update the session manager config file to load the modules via the
config now. Rename the session modules section to another name.

Update pipewire-pulse to also load a specific pulse property file.
This then makes it pssible to assign specific RT priorities for the
pipewire-pulse process.
2021-02-12 10:07:16 +01:00
Marijn Suijten 580bdcd5bf Makefile.in: Point PIPEWIRE_CONFIG_DIR to source directory
Config files read from this variable - currently only media-session.d -
do not get copied to the build directory but are only ever copied during
install. In order to have media-session.d/with-pulseaudio detected when
`make run`'ing from the build directory PIPEWIRE_CONFIG_DIR must point
to the source directory containing these files.
2020-12-14 11:32:31 +01:00
Marijn Suijten 990903ac8e Makefile.in: PIPEWIRE_MODULE_DIR should point to src/modules
The root of the build directory does not contain modules, these reside
in src/modules/.
2020-12-14 11:32:26 +01:00
Andres Freund 1e89e7559b Fix paths used in 'make run'.
In particular ACP_PATHS_DIR, ACP_PROFILES_DIR ended up pointing to the
build directory, despite only existing in the source directory.

I also adjusted PIPEWIRE_CONFIG_DIR to be explicit about referencing
the build directory, given that the other environment variables are
doing so.

Fixes: #448
2020-12-07 15:46:21 +01:00
Wim Taymans 261144c27f media-session: add /etc/pipewire/media-session.d/ dir
Placing files in it will activate options in the session manager.
2020-11-25 16:13:20 +01:00
Wim Taymans 7ee166f4c6 Makefile: trace children in valgrind
So that we get info for the session manager as well
2020-10-02 16:23:29 +02:00
Wim Taymans add30965e3 meson: rename uninstalled target to pw-uninstalled
It does not seem to work anymore with recent versions.
2020-08-12 17:36:41 +02:00
Wim Taymans 505f4c14b6 Makefile: set mixer and profile paths 2020-08-03 08:14:32 +02:00
Florian Klink d1162f28ef pipewire.conf.in: use absolute path to pipewire-media-session
So pipewire daemon is able to find pipewire-media-session from the
location it's installed to, even when it's not in $PATH.

For the `pw-ininstalled.sh` and `make run` invocations, provide a
`src/daemon/pipewire-uninstalled.conf` that still uses the relative
path, but isn't installed.
2020-06-10 13:20:25 +02:00
Wim Taymans 197ffe32ba Makefile: set VALGRIND variable in valgrind 2020-06-04 10:09:35 +02:00
Wim Taymans c047bab910 rename pipewire tools
Use the pw- prefix for all pipewire tools. This makes the
commands shorter but also avoids conflicts with password
and patchwork tools (pwcli is taken, pwconv is maybe we someday
can make).

pipewire-monitor -> pw-mon
pipewire-cli -> pw-cli
pipewire-dot -> pw-dot
pwcat -> pw-cat
2020-01-27 15:42:59 +01:00
Wim Taymans 6c8fd3c29d media-session: instal media session
Install the example media-session
Load the media session according to the PATH
Include the example directory in the PATH so we can run the media
session.
2020-01-13 16:27:46 +01:00
Wim Taymans 817f8fef07 Makefile.in: fix path to pipewire daemon 2020-01-08 17:02:52 +01:00
Wim Taymans e29969f937 Use build_root to generate Makefile
Don't hardcode the buildroot but use the value from meson.

Based on patch by Jan Koester <jan.koester@gmx.net>

Fixes #202
2020-01-08 15:41:01 +01:00
Wim Taymans f41720e7db Add PortConfig parameter
Add a new PortConfig parameter to configure ports of elements that
are marked with the SPA_NODE_FLAG_*_PORT_CONFIG. This is used to
configure the operation of the audioconver/audioadapter nodes and
how it should convert the internal format. We want to use the
Profile parameter only for cases where there is an enumeration of
values, like with device configuration.

Add unit tests for audioconvert and adapter to check if they handle
PortConfig correctly.

Make the media session use the PortConfig to dynamically configure
the device nodes.

Remove audio-dsp, it is not used anymore and can/should be implemented
with a simple audioconvert spa node now and some PortConfig.
2019-08-06 12:45:20 +02:00
Wim Taymans 351fb9ce29 pod: improve parser and builder
Remove the spa_pod_iter helpers
Remove builder/parser vararg recurse option, you have to
manually recurse into structures when needed. This simplifies
things a lot.
Pass spa_pod_frames to builder and parser explicitly, we don't
have to keep an internal stack anymore.
The parser is now almost a mirror image of the builder.
Make the parser safer when iterating over objects, add functions
to check and get pod contents in a safe way.
Make the builder return errno style results on errors
Improve performance of object properties when they are stored and
retrieved in the same order.
Add many more tests for the builder and parser
Add some benchmarks
2019-01-22 17:38:23 +01:00
Wim Taymans 0023e348ac Makefile: add uninstall target 2018-10-31 10:57:26 +00:00
George Kiagiadakis 483607af3a Makefile: add 'make test' target to run the automated unit tests 2018-10-31 10:50:36 +00:00
Nicolas Dufresne 97eec36f8e makefile: Add helper to run in gdb and valgrind
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
2018-10-31 07:49:35 +00:00
Wim Taymans 6267e69638 add uninstalled target
Also update submodules
2018-10-16 11:30:38 +02:00
Wim Taymans 14dbc9c687 Makefile.in: use right build command
Use ninja instead of ninja-build, which does not seem to exist on
debian.
2017-09-19 16:04:41 +02:00
Wim Taymans 6af4f08c6e cli: small cleanups
Add make cli to start the cli
Only print changes once
Notify of changed objects
2017-09-18 22:23:18 +02:00
Wim Taymans 7ef1a1d107 Add target to publish API docs 2017-09-05 09:42:02 +02:00
Wim Taymans d1655196c3 move things around 2017-07-11 16:08:22 +02:00
Wim Taymans 5b2745498e Release 0.1.1
spec: updates
2017-06-26 13:13:21 +02:00