2020-10-01 10:24:40 -04:00
|
|
|
if host_machine.system() != 'windows'
|
|
|
|
|
subdir('rtp')
|
|
|
|
|
endif
|
2018-09-20 15:10:08 +07:00
|
|
|
|
virtual sink: Factor out common code
This patch moves the code for the virtual sink callbacks and initialization to
a separate file. The code is re-factored, extended and built as library, so that
it can be used by other virtual sinks as well. The suspend-virtual-on-master-suspend
fix for the ladspa sink (!68) was incorporated into the common code as well as the
sink part of !78 which fixes a crash with stacked virtual sinks. !68 has a bug
which leaves a virtual sink unavailable when the master sink disappears. This bug
is also fixed.
Additionally, fixed block size filters, fixed window size filters and updating filter
parameters are supported by the library. Fixed window size filters always deliver the
same number of frames to the filter, padding new data with history frames if necessary.
Rewinding can be disabled or or limited to the number of frames that the virtual sink
supports. Thanks to Alexander E. Patrakov for pointing out how to rewind fixed block
size filters.
The library implements following command line arguments if they are enabled in
valid_modargs: sink_name, sink_properties, sink_input_properties, force_flat_volume,
remix, resample_method and autoloaded.
2021-01-01 15:56:58 +01:00
|
|
|
libvirtual_sink = shared_library('virtual_sink',
|
|
|
|
|
'virtual-sink-common.c',
|
|
|
|
|
'virtual-sink-common.h',
|
|
|
|
|
c_args : [pa_c_args, server_c_args],
|
|
|
|
|
include_directories : [configinc, topinc],
|
|
|
|
|
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep],
|
|
|
|
|
install_rpath : privlibdir,
|
|
|
|
|
install : true,
|
|
|
|
|
install_dir : modlibexecdir
|
|
|
|
|
)
|
|
|
|
|
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
# module name, sources, [headers, extra flags, extra deps, extra libs]
|
|
|
|
|
all_modules = [
|
|
|
|
|
[ 'module-allow-passthrough', 'module-allow-passthrough.c' ],
|
|
|
|
|
[ 'module-always-sink', 'module-always-sink.c' ],
|
|
|
|
|
[ 'module-always-source', 'module-always-source.c' ],
|
|
|
|
|
[ 'module-augment-properties', 'module-augment-properties.c' ],
|
|
|
|
|
[ 'module-card-restore', 'module-card-restore.c' ],
|
2018-09-20 15:41:49 +07:00
|
|
|
[ 'module-cli', 'module-cli.c', [], [], [], libcli ],
|
|
|
|
|
[ 'module-cli-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_CLI', '-DUSE_TCP_SOCKETS'], [], libprotocol_cli ],
|
|
|
|
|
[ 'module-cli-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_CLI', '-DUSE_UNIX_SOCKETS'], [], libprotocol_cli ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-combine', 'module-combine.c' ],
|
2022-07-04 13:49:34 +02:00
|
|
|
[ 'module-combine-sink', 'module-combine-sink.c', [], [], [libatomic_ops_dep] ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-default-device-restore', 'module-default-device-restore.c', [], [], [], libprotocol_native ],
|
|
|
|
|
[ 'module-detect', 'module-detect.c' ],
|
2018-09-20 15:41:49 +07:00
|
|
|
[ 'module-device-manager', 'module-device-manager.c', [], [], [], libprotocol_native ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-device-restore', 'module-device-restore.c', [], [], [dbus_dep], libprotocol_native ],
|
2018-11-26 17:38:31 +07:00
|
|
|
# [ 'module-esound-compat-spawnfd', 'module-esound-compat-spawnfd.c' ],
|
|
|
|
|
# [ 'module-esound-compat-spawnpid', 'module-esound-compat-spawnpid.c' ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
# [ 'module-esound-protocol-tcp', 'module-protocol-stub.c' ],
|
|
|
|
|
# [ 'module-esound-protocol-unix', 'module-protocol-stub.c' ],
|
2018-11-26 17:38:31 +07:00
|
|
|
# [ 'module-esound-sink', 'module-esound-sink.c' ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-filter-apply', 'module-filter-apply.c' ],
|
|
|
|
|
[ 'module-filter-heuristics', 'module-filter-heuristics.c' ],
|
2018-09-20 15:41:49 +07:00
|
|
|
[ 'module-http-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_HTTP', '-DUSE_TCP_SOCKETS'], [], libprotocol_http ],
|
|
|
|
|
[ 'module-http-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_HTTP', '-DUSE_UNIX_SOCKETS'], [], libprotocol_http ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-intended-roles', 'module-intended-roles.c' ],
|
2021-09-20 20:12:34 +03:00
|
|
|
[ 'module-ladspa-sink', 'module-ladspa-sink.c', 'ladspa.h', ['-DLADSPA_PATH=' + join_paths(libdir, 'ladspa') + ':/usr/local/lib/ladspa:/usr/lib/ladspa:/usr/local/lib64/ladspa:/usr/lib64/ladspa'], [dbus_dep, libm_dep, ltdl_dep] ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-loopback', 'module-loopback.c' ],
|
|
|
|
|
[ 'module-match', 'module-match.c' ],
|
2018-09-20 15:41:49 +07:00
|
|
|
[ 'module-native-protocol-fd', 'module-native-protocol-fd.c', [], [], [], libprotocol_native ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-native-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_NATIVE', '-DUSE_TCP_SOCKETS'], [], libprotocol_native ],
|
|
|
|
|
[ 'module-native-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_NATIVE', '-DUSE_UNIX_SOCKETS'], [], libprotocol_native ],
|
|
|
|
|
[ 'module-null-sink', 'module-null-sink.c' ],
|
|
|
|
|
[ 'module-null-source', 'module-null-source.c' ],
|
|
|
|
|
[ 'module-position-event-sounds', 'module-position-event-sounds.c' ],
|
2021-01-01 15:58:16 +01:00
|
|
|
[ 'module-remap-sink', 'module-remap-sink.c', [], [], [], libvirtual_sink ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-remap-source', 'module-remap-source.c' ],
|
|
|
|
|
[ 'module-rescue-streams', 'module-rescue-streams.c' ],
|
|
|
|
|
[ 'module-role-cork', ['module-role-cork.c', 'stream-interaction.c'], 'stream-interaction.h' ],
|
|
|
|
|
[ 'module-role-ducking', ['module-role-ducking.c', 'stream-interaction.c'], 'stream-interaction.h' ],
|
2018-09-20 15:41:49 +07:00
|
|
|
[ 'module-simple-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_SIMPLE', '-DUSE_TCP_SOCKETS'], [], libprotocol_simple ],
|
|
|
|
|
[ 'module-simple-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_SIMPLE', '-DUSE_UNIX_SOCKETS'], [], libprotocol_simple ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-sine', 'module-sine.c' ],
|
|
|
|
|
[ 'module-sine-source', 'module-sine-source.c' ],
|
|
|
|
|
# [ 'module-solaris', 'module-solaris.c' ],
|
|
|
|
|
[ 'module-stream-restore', 'module-stream-restore.c', [], [], [dbus_dep], libprotocol_native ],
|
|
|
|
|
[ 'module-suspend-on-idle', 'module-suspend-on-idle.c' ],
|
|
|
|
|
[ 'module-switch-on-connect', 'module-switch-on-connect.c' ],
|
|
|
|
|
[ 'module-switch-on-port-available', 'module-switch-on-port-available.c' ],
|
2022-05-06 16:05:33 -07:00
|
|
|
[ 'module-tunnel-sink', ['module-tunnel.c', 'restart-module.c'], [], ['-DTUNNEL_SINK=1'], [x11_dep] ],
|
2022-05-06 17:17:44 -07:00
|
|
|
[ 'module-tunnel-sink-new', ['module-tunnel-sink-new.c', 'restart-module.c'] ],
|
2022-05-06 16:05:33 -07:00
|
|
|
[ 'module-tunnel-source', ['module-tunnel.c', 'restart-module.c'], [], [], [x11_dep] ],
|
2022-05-06 16:32:13 -07:00
|
|
|
[ 'module-tunnel-source-new', ['module-tunnel-source-new.c', 'restart-module.c'] ],
|
virtual sink: Factor out common code
This patch moves the code for the virtual sink callbacks and initialization to
a separate file. The code is re-factored, extended and built as library, so that
it can be used by other virtual sinks as well. The suspend-virtual-on-master-suspend
fix for the ladspa sink (!68) was incorporated into the common code as well as the
sink part of !78 which fixes a crash with stacked virtual sinks. !68 has a bug
which leaves a virtual sink unavailable when the master sink disappears. This bug
is also fixed.
Additionally, fixed block size filters, fixed window size filters and updating filter
parameters are supported by the library. Fixed window size filters always deliver the
same number of frames to the filter, padding new data with history frames if necessary.
Rewinding can be disabled or or limited to the number of frames that the virtual sink
supports. Thanks to Alexander E. Patrakov for pointing out how to rewind fixed block
size filters.
The library implements following command line arguments if they are enabled in
valid_modargs: sink_name, sink_properties, sink_input_properties, force_flat_volume,
remix, resample_method and autoloaded.
2021-01-01 15:56:58 +01:00
|
|
|
[ 'module-virtual-sink', 'module-virtual-sink.c', [], [], [], libvirtual_sink ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
[ 'module-virtual-source', 'module-virtual-source.c' ],
|
|
|
|
|
[ 'module-volume-restore', 'module-volume-restore.c' ],
|
|
|
|
|
]
|
|
|
|
|
|
2020-10-01 10:24:40 -04:00
|
|
|
if host_machine.system() == 'windows'
|
|
|
|
|
winmm_dep = meson.get_compiler('c').find_library('winmm')
|
|
|
|
|
ksuser_dep = meson.get_compiler('c').find_library('ksuser')
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-waveout', 'module-waveout.c', [], [], [winmm_dep, ksuser_dep] ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
if host_machine.system() != 'windows'
|
|
|
|
|
all_modules += [
|
2022-07-04 13:49:34 +02:00
|
|
|
[ 'module-rtp-recv', 'rtp/module-rtp-recv.c', [], [], [libatomic_ops_dep], librtp ],
|
2020-10-01 10:24:40 -04:00
|
|
|
[ 'module-rtp-send', 'rtp/module-rtp-send.c' , [], [], [], librtp ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2022-08-29 04:13:55 +09:00
|
|
|
if host_machine.system() == 'darwin'
|
|
|
|
|
bonjour_dep = dependency('appleframeworks', modules : ['CoreFoundation'])
|
|
|
|
|
coreaudio_dep = dependency('appleframeworks', modules : ['CoreAudio'])
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-bonjour-publish', 'macosx/module-bonjour-publish.c', [], [], [bonjour_dep] ],
|
|
|
|
|
[ 'module-coreaudio-detect', 'macosx/module-coreaudio-detect.c', [], [], [coreaudio_dep] ],
|
|
|
|
|
[ 'module-coreaudio-device', 'macosx/module-coreaudio-device.c', [], [], [coreaudio_dep] ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-09-20 18:55:10 +07:00
|
|
|
# Modules enabled by headers
|
|
|
|
|
|
|
|
|
|
if cc.has_header('linux/input.h')
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-mmkbd-evdev', 'module-mmkbd-evdev.c' ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2020-12-14 08:48:11 +03:00
|
|
|
if cdata.has('HAVE_OSS_OUTPUT')
|
2018-11-26 16:29:12 +07:00
|
|
|
subdir('oss')
|
2018-09-27 15:39:21 +07:00
|
|
|
all_modules += [
|
2018-11-26 16:29:12 +07:00
|
|
|
[ 'module-oss', 'oss/module-oss.c', [], [], [], liboss_util ],
|
2018-09-27 15:39:21 +07:00
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2019-08-15 15:30:41 +05:30
|
|
|
if cc.has_function('mkfifo')
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-pipe-sink', 'module-pipe-sink.c' ],
|
|
|
|
|
[ 'module-pipe-source', 'module-pipe-source.c' ]
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-09-20 18:55:10 +07:00
|
|
|
# Modules enabled by dependencies
|
|
|
|
|
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
if alsa_dep.found()
|
|
|
|
|
subdir('alsa')
|
|
|
|
|
all_modules += [
|
2018-09-20 15:41:49 +07:00
|
|
|
[ 'module-alsa-card', 'alsa/module-alsa-card.c', [], [], [alsa_dep, libm_dep], libalsa_util ],
|
|
|
|
|
[ 'module-alsa-sink', 'alsa/module-alsa-sink.c', [], [], [alsa_dep, libm_dep], libalsa_util ],
|
|
|
|
|
[ 'module-alsa-source', 'alsa/module-alsa-source.c', [], [], [alsa_dep, libm_dep], libalsa_util ],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-09-20 18:43:05 +07:00
|
|
|
if avahi_dep.found()
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-zeroconf-discover', 'module-zeroconf-discover.c', [], [], [avahi_dep], libavahi_wrap ],
|
|
|
|
|
[ 'module-zeroconf-publish', 'module-zeroconf-publish.c', [], [], [avahi_dep, dbus_dep], [libavahi_wrap, libprotocol_native] ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2021-06-18 20:48:12 +03:00
|
|
|
if cdata.has('HAVE_BLUEZ_5')
|
2018-10-19 17:40:06 +07:00
|
|
|
subdir('bluetooth')
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-bluetooth-discover', 'bluetooth/module-bluetooth-discover.c' ],
|
|
|
|
|
[ 'module-bluetooth-policy', 'bluetooth/module-bluetooth-policy.c', [], [], [dbus_dep] ],
|
2022-08-02 12:05:17 +02:00
|
|
|
[ 'module-bluez5-device', 'bluetooth/module-bluez5-device.c', [], [], [], libbluez5_util ],
|
2018-10-19 17:40:06 +07:00
|
|
|
[ 'module-bluez5-discover', 'bluetooth/module-bluez5-discover.c', [], [], [dbus_dep], libbluez5_util ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-09-20 16:36:34 +07:00
|
|
|
if dbus_dep.found()
|
|
|
|
|
all_modules += [
|
2018-09-22 16:17:43 +07:00
|
|
|
[ 'module-dbus-protocol',
|
|
|
|
|
[ 'dbus/iface-card.c', 'dbus/iface-card.h',
|
|
|
|
|
'dbus/iface-card-profile.c', 'dbus/iface-card-profile.h',
|
|
|
|
|
'dbus/iface-client.c', 'dbus/iface-client.h',
|
|
|
|
|
'dbus/iface-core.c', 'dbus/iface-core.h',
|
|
|
|
|
'dbus/iface-device.c', 'dbus/iface-device.h',
|
|
|
|
|
'dbus/iface-device-port.c', 'dbus/iface-device-port.h',
|
|
|
|
|
'dbus/iface-memstats.c', 'dbus/iface-memstats.h',
|
|
|
|
|
'dbus/iface-module.c', 'dbus/iface-module.h',
|
|
|
|
|
'dbus/iface-sample.c', 'dbus/iface-sample.h',
|
|
|
|
|
'dbus/iface-stream.c', 'dbus/iface-stream.h',
|
|
|
|
|
'dbus/module-dbus-protocol.c',
|
|
|
|
|
],
|
2018-10-19 16:24:25 +07:00
|
|
|
[], [], [dbus_dep] ],
|
|
|
|
|
[ 'module-rygel-media-server', 'module-rygel-media-server.c', [], [], [dbus_dep], libprotocol_http ],
|
|
|
|
|
]
|
2022-06-12 21:49:32 +03:00
|
|
|
|
|
|
|
|
if not get_option('consolekit').disabled()
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-console-kit', 'module-console-kit.c', [], [], [dbus_dep] ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
2018-10-19 16:24:25 +07:00
|
|
|
endif
|
|
|
|
|
|
2020-01-23 21:21:59 -08:00
|
|
|
if fftw_dep.found()
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-virtual-surround-sink', 'module-virtual-surround-sink.c', [], [], [fftw_dep, libm_dep] ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-10-19 16:24:25 +07:00
|
|
|
if dbus_dep.found() and fftw_dep.found()
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-equalizer-sink', 'module-equalizer-sink.c', [], [], [dbus_dep, fftw_dep, libm_dep] ],
|
2018-09-20 16:36:34 +07:00
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2021-11-11 01:44:30 +03:00
|
|
|
if get_option('gsettings').enabled() and glib_dep.found() and gio_dep.found()
|
2018-10-21 15:39:30 +07:00
|
|
|
subdir('gsettings')
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-gsettings',
|
|
|
|
|
[ 'gsettings/module-gsettings.c', 'stdin-util.c', 'stdin-util.h' ],
|
2019-08-13 21:47:23 +02:00
|
|
|
[], ['-DPA_GSETTINGS_HELPER="' + join_paths(pulselibexecdir, 'gsettings-helper') + '"'] ]
|
2018-10-21 15:39:30 +07:00
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-09-20 16:48:25 +07:00
|
|
|
if jack_dep.found()
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-jack-sink', 'jack/module-jack-sink.c', [], [], [jack_dep] ],
|
|
|
|
|
[ 'module-jack-source', 'jack/module-jack-source.c', [], [], [jack_dep] ],
|
|
|
|
|
]
|
2018-10-19 16:24:25 +07:00
|
|
|
if dbus_dep.found()
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-jackdbus-detect', 'jack/module-jackdbus-detect.c', [], [], [dbus_dep] ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
2018-09-20 16:48:25 +07:00
|
|
|
endif
|
|
|
|
|
|
2018-09-20 19:30:21 +07:00
|
|
|
if lirc_dep.found()
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-lirc', 'module-lirc.c', [], [], [lirc_dep] ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-09-20 17:05:06 +07:00
|
|
|
if openssl_dep.found()
|
2020-10-01 10:24:40 -04:00
|
|
|
if host_machine.system() != 'windows'
|
|
|
|
|
subdir('raop')
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-raop-sink', 'raop/module-raop-sink.c', [], [], [], libraop ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-09-20 17:37:12 +07:00
|
|
|
if avahi_dep.found()
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-raop-discover', 'raop/module-raop-discover.c', [], [], [avahi_dep], libavahi_wrap ],
|
|
|
|
|
]
|
|
|
|
|
endif
|
2018-09-20 17:05:06 +07:00
|
|
|
endif
|
|
|
|
|
|
2021-02-11 08:56:22 +03:00
|
|
|
if libsystemd_dep.found() or libelogind_dep.found()
|
2018-09-20 15:34:48 +07:00
|
|
|
all_modules += [
|
2021-02-11 08:56:22 +03:00
|
|
|
[ 'module-systemd-login', 'module-systemd-login.c', [], [], [libsystemd_dep, libelogind_dep] ],
|
2018-09-20 15:34:48 +07:00
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
if udev_dep.found()
|
|
|
|
|
all_modules += [ [ 'module-udev-detect', 'module-udev-detect.c', [], [], [udev_dep] ] ]
|
2018-10-19 18:18:58 +07:00
|
|
|
if get_option('hal-compat')
|
|
|
|
|
all_modules += [ [ 'module-hal-detect', 'module-hal-detect-compat.c' ] ]
|
|
|
|
|
endif
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
endif
|
|
|
|
|
|
2020-04-03 15:37:24 +03:00
|
|
|
if host_machine.system() == 'freebsd'
|
|
|
|
|
all_modules += [ [ 'module-devd-detect', 'module-devd-detect.c', [], [], [] ] ]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-09-20 18:35:53 +07:00
|
|
|
if x11_dep.found()
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-x11-bell', 'x11/module-x11-bell.c', [], [], [x11_dep] ],
|
2018-10-09 11:41:07 +07:00
|
|
|
[ 'module-x11-cork-request', 'x11/module-x11-cork-request.c', [], [], [x11_dep, xtst_dep] ],
|
2018-09-20 18:35:53 +07:00
|
|
|
[ 'module-x11-publish', 'x11/module-x11-publish.c', [], [], [x11_dep], libprotocol_native ],
|
2018-10-09 11:41:07 +07:00
|
|
|
[ 'module-x11-xsmp', 'x11/module-x11-xsmp.c', [], [], [x11_dep, ice_dep, sm_dep] ],
|
2018-09-20 18:35:53 +07:00
|
|
|
]
|
|
|
|
|
endif
|
|
|
|
|
|
2018-10-01 11:01:47 +07:00
|
|
|
# Module echo-cancel is quite modular itself and requires a section of its own
|
|
|
|
|
|
|
|
|
|
module_echo_cancel_sources = [
|
|
|
|
|
'echo-cancel/echo-cancel.h',
|
|
|
|
|
'echo-cancel/module-echo-cancel.c',
|
|
|
|
|
'echo-cancel/null.c',
|
|
|
|
|
]
|
2018-11-28 15:42:25 +07:00
|
|
|
module_echo_cancel_orc_sources = []
|
2018-10-01 11:01:47 +07:00
|
|
|
module_echo_cancel_flags = []
|
2022-07-04 13:49:34 +02:00
|
|
|
module_echo_cancel_deps = [libatomic_ops_dep]
|
2018-10-01 11:01:47 +07:00
|
|
|
module_echo_cancel_libs = []
|
|
|
|
|
|
2018-10-19 18:39:09 +07:00
|
|
|
if get_option('adrian-aec')
|
|
|
|
|
module_echo_cancel_sources += [
|
|
|
|
|
'echo-cancel/adrian.c', 'echo-cancel/adrian.h',
|
|
|
|
|
'echo-cancel/adrian-aec.c', 'echo-cancel/adrian-aec.h',
|
|
|
|
|
]
|
|
|
|
|
module_echo_cancel_flags += ['-DHAVE_ADRIAN_EC=1']
|
2018-11-28 15:42:25 +07:00
|
|
|
module_echo_cancel_deps += [libm_dep]
|
|
|
|
|
|
|
|
|
|
if have_orcc
|
|
|
|
|
orcsrc = 'adrian-aec'
|
|
|
|
|
orc_h = custom_target(orcsrc + '-orc-gen.h',
|
|
|
|
|
input : join_paths('echo-cancel', orcsrc + '.orc'),
|
|
|
|
|
output : orcsrc + '-orc-gen.h',
|
|
|
|
|
command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@']
|
|
|
|
|
)
|
|
|
|
|
orc_c = custom_target(orcsrc + '-orc-gen.c',
|
|
|
|
|
input : join_paths('echo-cancel', orcsrc + '.orc'),
|
|
|
|
|
output : orcsrc + '-orc-gen.c',
|
|
|
|
|
command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@']
|
|
|
|
|
)
|
|
|
|
|
module_echo_cancel_orc_sources += [orc_c, orc_h]
|
|
|
|
|
module_echo_cancel_deps += [orc_dep]
|
|
|
|
|
endif
|
2018-10-01 11:01:47 +07:00
|
|
|
|
2018-11-28 15:42:25 +07:00
|
|
|
endif
|
2018-10-01 11:01:47 +07:00
|
|
|
|
|
|
|
|
if speex_dep.found()
|
|
|
|
|
module_echo_cancel_sources += ['echo-cancel/speex.c']
|
|
|
|
|
module_echo_cancel_deps += [speex_dep]
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
if webrtc_dep.found()
|
|
|
|
|
subdir('echo-cancel')
|
|
|
|
|
module_echo_cancel_libs += [libwebrtc_util]
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
all_modules += [
|
|
|
|
|
[ 'module-echo-cancel',
|
2018-11-28 15:42:25 +07:00
|
|
|
module_echo_cancel_sources + module_echo_cancel_orc_sources,
|
2018-10-01 11:01:47 +07:00
|
|
|
[],
|
|
|
|
|
module_echo_cancel_flags,
|
|
|
|
|
module_echo_cancel_deps,
|
|
|
|
|
module_echo_cancel_libs,
|
|
|
|
|
]
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
# Generate a shared module object for each modules
|
|
|
|
|
|
2019-08-03 02:41:55 +05:30
|
|
|
# FIXME: Not all modules actually have a dep in modlibexecdir
|
|
|
|
|
# FIXME: meson doesn't support multiple RPATH arguments currently
|
|
|
|
|
rpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir)
|
|
|
|
|
|
2022-08-29 04:13:55 +09:00
|
|
|
if host_machine.system() != 'windows' and host_machine.system() != 'darwin'
|
|
|
|
|
no_undefined_args = ['-Wl,--no-undefined']
|
|
|
|
|
else
|
|
|
|
|
no_undefined_args = []
|
|
|
|
|
endif
|
|
|
|
|
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
foreach m : all_modules
|
|
|
|
|
name = m[0]
|
|
|
|
|
sources = m[1]
|
|
|
|
|
headers = m.get(2, [])
|
|
|
|
|
extra_flags = m.get(3, [])
|
|
|
|
|
extra_deps = m.get(4, [])
|
|
|
|
|
extra_libs = m.get(5, [])
|
|
|
|
|
|
|
|
|
|
mod = shared_module(name,
|
|
|
|
|
sources,
|
|
|
|
|
headers,
|
2021-05-12 21:10:54 +02:00
|
|
|
include_directories : [configinc, topinc, include_directories('.')],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
c_args : [pa_c_args, server_c_args, '-DPA_MODULE_NAME=' + name.underscorify()] + extra_flags,
|
|
|
|
|
install : true,
|
2019-08-03 02:41:55 +05:30
|
|
|
install_rpath : rpath_dirs,
|
2018-10-13 11:50:03 +05:30
|
|
|
install_dir : modlibexecdir,
|
2020-10-01 10:24:40 -04:00
|
|
|
dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libintl_dep, platform_dep, platform_socket_dep] + extra_deps,
|
2022-08-29 04:13:55 +09:00
|
|
|
link_args : [nodelete_link_args, no_undefined_args],
|
build-sys: First pass at a meson-ified build system
This is a working implementation of a build with meson. The server,
utils, and most modules build with this, and it is possible to run from
a build tree and play/capture audio on ALSA devices.
There are a number of FIXMEs, of course, and a number of features that
need to be enabled (modules, dependencies, installation, etc.), but this
should provide everything we need to get there relatively quickly.
To use this, install meson (distro package, or mesonbuild.com) and run:
$ cd <pulseaudio src dir>
$ meson <builddir>
$ ninja -C <builddir>
2017-07-31 12:37:36 +01:00
|
|
|
link_with : extra_libs,
|
|
|
|
|
name_prefix : '',
|
|
|
|
|
implicit_include_directories : false)
|
|
|
|
|
endforeach
|