doc: add documentation for pipewire-pulse modules

Add (minimal) reference documentation for each pipewire-pulse module.

Add some preprocessing to substitute @pulse_module_options@ in docs from
PW_KEY_MODULE_USAGE so the module options don't need to be repeated.

Produce Doxygen docs + generate manpages pipewire-pulse-modules.7,
pipewire-pulse-module-*.7
This commit is contained in:
Pauli Virtanen 2023-11-19 23:08:09 +02:00 committed by Wim Taymans
parent 0ae797ea28
commit 843e733479
40 changed files with 979 additions and 302 deletions

View file

@ -7,6 +7,43 @@
#include "../manager.h"
#include "../module.h"
/** \page page_pulse_module_alsa_sink ALSA Sink
*
* ## Module Name
*
* `module-alsa-sink`
*
* ## Module Options
*
* @pulse_module_options@
*/
static const char *const pulse_module_options =
"name=<name of the sink, to be prefixed> "
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"namereg_fail=<when false attempt to synthesise new sink_name if it is already taken> "
"device=<ALSA device> "
"device_id=<ALSA card index> "
"format=<sample format> "
"rate=<sample rate> "
"alternate_rate=<alternate sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"fragments=<number of fragments> "
"fragment_size=<fragment size> "
"mmap=<enable memory mapping?> "
"tsched=<enable system timer based scheduling mode?> "
"tsched_buffer_size=<buffer size when using timer based scheduling> "
"tsched_buffer_watermark=<lower fill watermark> "
"ignore_dB=<ignore dB information from the device?> "
"control=<name of mixer control, or name and index separated by a comma> "
"rewind_safeguard=<number of bytes that cannot be rewound> "
"deferred_volume=<Synchronize software and hardware volume changes to avoid momentary jumps?> "
"deferred_volume_safety_margin=<usec adjustment depending on volume direction> "
"deferred_volume_extra_delay=<usec adjustment to HW volume changes> "
"fixed_latency_range=<disable latency range changes on underrun?> ";
#define NAME "alsa-sink"
#define DEFAULT_DEVICE "default"
@ -131,31 +168,7 @@ static int module_alsa_sink_unload(struct module *module)
static const struct spa_dict_item module_alsa_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "An ALSA sink" },
{ PW_KEY_MODULE_USAGE,
"name=<name of the sink, to be prefixed> "
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"namereg_fail=<when false attempt to synthesise new sink_name if it is already taken> "
"device=<ALSA device> "
"device_id=<ALSA card index> "
"format=<sample format> "
"rate=<sample rate> "
"alternate_rate=<alternate sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"fragments=<number of fragments> "
"fragment_size=<fragment size> "
"mmap=<enable memory mapping?> "
"tsched=<enable system timer based scheduling mode?> "
"tsched_buffer_size=<buffer size when using timer based scheduling> "
"tsched_buffer_watermark=<lower fill watermark> "
"ignore_dB=<ignore dB information from the device?> "
"control=<name of mixer control, or name and index separated by a comma> "
"rewind_safeguard=<number of bytes that cannot be rewound> "
"deferred_volume=<Synchronize software and hardware volume changes to avoid momentary jumps?> "
"deferred_volume_safety_margin=<usec adjustment depending on volume direction> "
"deferred_volume_extra_delay=<usec adjustment to HW volume changes> "
"fixed_latency_range=<disable latency range changes on underrun?>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -7,6 +7,43 @@
#include "../manager.h"
#include "../module.h"
/** \page page_pulse_module_alsa_source ALSA Source
*
* ## Module Name
*
* `module-alsa-source`
*
* ## Module Options
*
* @pulse_module_options@
*/
static const char *const pulse_module_options =
"name=<name of the source, to be prefixed> "
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"namereg_fail=<when false attempt to synthesise new source_name if it is already taken> "
"device=<ALSA device> "
"device_id=<ALSA card index> "
"format=<sample format> "
"rate=<sample rate> "
"alternate_rate=<alternate sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"fragments=<number of fragments> "
"fragment_size=<fragment size> "
"mmap=<enable memory mapping?> "
"tsched=<enable system timer based scheduling mode?> "
"tsched_buffer_size=<buffer size when using timer based scheduling> "
"tsched_buffer_watermark=<lower fill watermark> "
"ignore_dB=<ignore dB information from the device?> "
"control=<name of mixer control, or name and index separated by a comma> "
"rewind_safeguard=<number of bytes that cannot be rewound> "
"deferred_volume=<Synchronize software and hardware volume changes to avoid momentary jumps?> "
"deferred_volume_safety_margin=<usec adjustment depending on volume direction> "
"deferred_volume_extra_delay=<usec adjustment to HW volume changes> "
"fixed_latency_range=<disable latency range changes on underrun?>";
#define NAME "alsa-source"
#define DEFAULT_DEVICE "default"
@ -131,31 +168,7 @@ static int module_alsa_source_unload(struct module *module)
static const struct spa_dict_item module_alsa_source_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "An ALSA source" },
{ PW_KEY_MODULE_USAGE,
"name=<name of the source, to be prefixed> "
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"namereg_fail=<when false attempt to synthesise new source_name if it is already taken> "
"device=<ALSA device> "
"device_id=<ALSA card index> "
"format=<sample format> "
"rate=<sample rate> "
"alternate_rate=<alternate sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"fragments=<number of fragments> "
"fragment_size=<fragment size> "
"mmap=<enable memory mapping?> "
"tsched=<enable system timer based scheduling mode?> "
"tsched_buffer_size=<buffer size when using timer based scheduling> "
"tsched_buffer_watermark=<lower fill watermark> "
"ignore_dB=<ignore dB information from the device?> "
"control=<name of mixer control, or name and index separated by a comma> "
"rewind_safeguard=<number of bytes that cannot be rewound> "
"deferred_volume=<Synchronize software and hardware volume changes to avoid momentary jumps?> "
"deferred_volume_safety_margin=<usec adjustment depending on volume direction> "
"deferred_volume_extra_delay=<usec adjustment to HW volume changes> "
"fixed_latency_range=<disable latency range changes on underrun?>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -6,6 +6,19 @@
#include "../module.h"
/** \page page_pulse_module_always_sink Always Sink
*
* ## Module Name
*
* `module-always-sink`
*
* ## Module Options
*
* @pulse_module_options@
*/
static const char *const pulse_module_options = "sink_name=<name of sink>";
#define NAME "always-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -77,7 +90,7 @@ static int module_always_sink_unload(struct module *module)
static const struct spa_dict_item module_always_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Pauli Virtanen <pav@iki.fi>" },
{ PW_KEY_MODULE_DESCRIPTION, "Always keeps at least one sink loaded even if it's a null one" },
{ PW_KEY_MODULE_USAGE, "sink_name=<name of sink>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -12,6 +12,32 @@
#include "../manager.h"
#include "../module.h"
/** \page page_pulse_module_combine_sink Combine Sink
*
* ## Module Name
*
* `module-combine-sink`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_combine_stream "libpipewire-module-combine-stream"
*/
static const char *const pulse_module_options =
"sink_name=<name of the sink> "
"sink_properties=<properties for the sink> "
/* not a great name, but for backwards compatibility... */
"slaves=<sinks to combine> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"remix=<remix channels> "
"latency_compensate=<bool> ";
#define NAME "combine-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -24,15 +50,7 @@ PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
static const struct spa_dict_item module_combine_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Arun Raghavan <arun@asymptotic.io>" },
{ PW_KEY_MODULE_DESCRIPTION, "Combine multiple sinks into a single sink" },
{ PW_KEY_MODULE_USAGE, "sink_name=<name of the sink> "
"sink_properties=<properties for the sink> "
/* not a great name, but for backwards compatibility... */
"slaves=<sinks to combine> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"remix=<remix channels> "
"latency_compensate=<bool> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -11,6 +11,45 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_echo_cancel Echo Cancel
*
* ## Module Name
*
* `module-echo-cancel`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_echo_cancel "libpipewire-module-echo-cancel"
*/
static const char *const pulse_module_options =
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"source_master=<name of source to filter> "
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"sink_master=<name of sink to filter> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"aec_method=<implementation to use> "
"aec_args=<parameters for the AEC engine> ";
#if 0
/* These are not implemented because they don't
* really make sense in the PipeWire context */
"format=<sample format> "
"adjust_time=<how often to readjust rates in s> "
"adjust_threshold=<how much drift to readjust after in ms> "
"autoloaded=<set if this module is being loaded automatically> "
"save_aec=<save AEC data in /tmp> "
"use_volume_sharing=<yes or no> "
"use_master_format=<yes or no> "
#endif
#define NAME "echo-cancel"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -114,29 +153,7 @@ static int module_echo_cancel_unload(struct module *module)
static const struct spa_dict_item module_echo_cancel_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Arun Raghavan <arun@asymptotic.io>" },
{ PW_KEY_MODULE_DESCRIPTION, "Acoustic echo canceller" },
{ PW_KEY_MODULE_USAGE, "source_name=<name for the source> "
"source_properties=<properties for the source> "
"source_master=<name of source to filter> "
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"sink_master=<name of sink to filter> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"aec_method=<implementation to use> "
"aec_args=<parameters for the AEC engine> "
#if 0
/* These are not implemented because they don't
* really make sense in the PipeWire context */
"format=<sample format> "
"adjust_time=<how often to readjust rates in s> "
"adjust_threshold=<how much drift to readjust after in ms> "
"autoloaded=<set if this module is being loaded automatically> "
"save_aec=<save AEC data in /tmp> "
"use_volume_sharing=<yes or no> "
"use_master_format=<yes or no> "
#endif
},
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -11,6 +11,17 @@
#include "../module.h"
/** \page page_pulse_module_gsettings GSettings
*
* ## Module Name
*
* `module-gsettings`
*
* ## Module Options
*
* No options.
*/
#define NAME "gsettings"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);

View file

@ -8,6 +8,35 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_jackdbus_detect JackDBus Detect
*
* ## Module Name
*
* `module-jackdbus-detect`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_jackdbus_detect "libpipewire-module-jackdbus-detect"
*/
static const char *const pulse_module_options =
"channels=<number of channels> "
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"sink_client_name=<jack client name> "
"sink_channels=<number of channels> "
"sink_channel_map=<channel map> "
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"source_client_name=<jack client name> "
"source_channels=<number of channels> "
"source_channel_map=<channel map> "
"connect=<connect ports?>";
#define NAME "jackdbus-detect"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -93,19 +122,7 @@ static int module_jackdbus_detect_unload(struct module *module)
static const struct spa_dict_item module_jackdbus_detect_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.con>" },
{ PW_KEY_MODULE_DESCRIPTION, "Creates a JACK client when jackdbus is started" },
{ PW_KEY_MODULE_USAGE,
"channels=<number of channels> "
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"sink_client_name=<jack client name> "
"sink_channels=<number of channels> "
"sink_channel_map=<channel map> "
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"source_client_name=<jack client name> "
"source_channels=<number of channels> "
"source_channel_map=<channel map> "
"connect=<connect ports?>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -11,6 +11,37 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_ladspa_sink LADSPA Sink
*
* ## Module Name
*
* `module-ladspa-sink`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_filter_chain "libpipewire-module-filter-chain"
*/
static const char *const pulse_module_options =
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"sink_input_properties=<properties for the sink input> "
"master=<name of sink to filter> "
"sink_master=<name of sink to filter> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<input channel map> "
"plugin=<ladspa plugin name> "
"label=<ladspa plugin label> "
"control=<comma separated list of input control values> "
"input_ladspaport_map=<comma separated list of input LADSPA port names> "
"output_ladspaport_map=<comma separated list of output LADSPA port names> ";
#define NAME "ladspa-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -126,21 +157,7 @@ static int module_ladspa_sink_unload(struct module *module)
static const struct spa_dict_item module_ladspa_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Virtual LADSPA sink" },
{ PW_KEY_MODULE_USAGE,
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"sink_input_properties=<properties for the sink input> "
"master=<name of sink to filter> "
"sink_master=<name of sink to filter> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<input channel map> "
"plugin=<ladspa plugin name> "
"label=<ladspa plugin label> "
"control=<comma separated list of input control values> "
"input_ladspaport_map=<comma separated list of input LADSPA port names> "
"output_ladspaport_map=<comma separated list of output LADSPA port names> "},
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -11,6 +11,37 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_ladspa_source LADSPA Source
*
* ## Module Name
*
* `module-ladspa-source`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_filter_chain "libpipewire-module-filter-chain"
*/
static const char *const pulse_module_options =
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"source_output_properties=<properties for the source output> "
"master=<name of source to filter> "
"source_master=<name of source to filter> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<input channel map> "
"plugin=<ladspa plugin name> "
"label=<ladspa plugin label> "
"control=<comma separated list of input control values> "
"input_ladspaport_map=<comma separated list of input LADSPA port names> "
"output_ladspaport_map=<comma separated list of output LADSPA port names> ";
#define NAME "ladspa-source"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -126,21 +157,7 @@ static int module_ladspa_source_unload(struct module *module)
static const struct spa_dict_item module_ladspa_source_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Virtual LADSPA source" },
{ PW_KEY_MODULE_USAGE,
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"source_output_properties=<properties for the source output> "
"master=<name of source to filter> "
"source_master=<name of source to filter> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<input channel map> "
"plugin=<ladspa plugin name> "
"label=<ladspa plugin label> "
"control=<comma separated list of input control values> "
"input_ladspaport_map=<comma separated list of input LADSPA port names> "
"output_ladspaport_map=<comma separated list of output LADSPA port names> "},
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -11,6 +11,34 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_loopback Loopback
*
* ## Module Name
*
* `module-loopback`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_loopback "libpipewire-module-loopback"
*/
static const char *const pulse_module_options =
"source=<source to connect to> "
"sink=<sink to connect to> "
"latency_msec=<latency in ms> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"sink_input_properties=<proplist> "
"source_output_properties=<proplist> "
"source_dont_move=<boolean> "
"sink_dont_move=<boolean> "
"remix=<remix channels?> ";
#define NAME "loopback"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -99,17 +127,7 @@ static int module_loopback_unload(struct module *module)
static const struct spa_dict_item module_loopback_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Arun Raghavan <arun@asymptotic.io>" },
{ PW_KEY_MODULE_DESCRIPTION, "Loopback from source to sink" },
{ PW_KEY_MODULE_USAGE, "source=<source to connect to> "
"sink=<sink to connect to> "
"latency_msec=<latency in ms> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"sink_input_properties=<proplist> "
"source_output_properties=<proplist> "
"source_dont_move=<boolean> "
"sink_dont_move=<boolean> "
"remix=<remix channels?> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -8,6 +8,22 @@
#include "../pulse-server.h"
#include "../server.h"
/** \page page_pulse_module_native_protocol_tcp Pulseaudio TCP Protocol
*
* ## Module Name
*
* `module-native-protocol-tcp`
*
* ## Module Options
*
* @pulse_module_options@
*/
static const char *const pulse_module_options =
"port=<TCP port number> "
"listen=<address to listen on> "
"auth-anonymous=<don't check for cookies?>";
#define NAME "protocol-tcp"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -53,9 +69,7 @@ static int module_native_protocol_tcp_unload(struct module *module)
static const struct spa_dict_item module_native_protocol_tcp_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Native protocol (TCP sockets)" },
{ PW_KEY_MODULE_USAGE, "port=<TCP port number> "
"listen=<address to listen on> "
"auth-anonymous=<don't check for cookies?>"},
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -7,6 +7,25 @@
#include "../manager.h"
#include "../module.h"
/** \page page_pulse_module_null_sink Null Sink
*
* ## Module Name
*
* `module-null-sink`
*
* ## Module Options
*
* @pulse_module_options@
*/
static const char *const pulse_module_options =
"sink_name=<name of sink> "
"sink_properties=<properties for the sink> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map>";
#define NAME "null-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -129,12 +148,7 @@ static int module_null_sink_unload(struct module *module)
static const struct spa_dict_item module_null_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "A NULL sink" },
{ PW_KEY_MODULE_USAGE, "sink_name=<name of sink> "
"sink_properties=<properties for the sink> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -14,6 +14,31 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_pipe_sink Pipe Sink
*
* ## Module Name
*
* `module-pipe-sink`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_pipe_tunnel "libpipewire-module-pipe-tunnel"
*/
static const char *const pulse_module_options =
"file=<name of the FIFO special file to use> "
"sink_name=<name for the sink> "
"sink_properties=<sink properties> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"use_system_clock_for_timing=<yes or no> ";
#define NAME "pipe-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -94,14 +119,7 @@ static int module_pipe_sink_unload(struct module *module)
static const struct spa_dict_item module_pipe_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Sanchayan Maity <sanchayan@asymptotic.io>" },
{ PW_KEY_MODULE_DESCRIPTION, "Pipe sink" },
{ PW_KEY_MODULE_USAGE, "file=<name of the FIFO special file to use> "
"sink_name=<name for the sink> "
"sink_properties=<sink properties> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"use_system_clock_for_timing=<yes or no> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -14,6 +14,30 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_pipe_source Pipe Source
*
* ## Module Name
*
* `module-pipe-source`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_pipe_tunnel "libpipewire-module-pipe-tunnel"
*/
static const char *const pulse_module_options =
"file=<name of the FIFO special file to use> "
"source_name=<name for the source> "
"source_properties=<source properties> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> ";
#define NAME "pipe-source"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -94,13 +118,7 @@ static int module_pipe_source_unload(struct module *module)
static const struct spa_dict_item module_pipe_source_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Sanchayan Maity <sanchayan@asymptotic.io>" },
{ PW_KEY_MODULE_DESCRIPTION, "Pipe source" },
{ PW_KEY_MODULE_USAGE, "file=<name of the FIFO special file to use> "
"source_name=<name for the source> "
"source_properties=<source properties> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -8,6 +8,21 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_raop_discover RAOP Discover
*
* ## Module Name
*
* `module-raop-discover`
*
* ## Module Options
*
* No options.
*
* ## See Also
*
* \ref page_module_raop_discover "libpipewire-module-raop-discover"
*/
#define NAME "raop-discover"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);

View file

@ -10,6 +10,33 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_remap_sink Remap Sink
*
* ## Module Name
*
* `module-remap-sink`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_loopback "libpipewire-module-loopback"
*/
static const char *const pulse_module_options =
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"master=<name of sink to remap> "
"master_channel_map=<channel map> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"resample_method=<resampler> "
"remix=<remix channels?>";
#define NAME "remap-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -96,16 +123,7 @@ static int module_remap_sink_unload(struct module *module)
static const struct spa_dict_item module_remap_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Remap sink channels" },
{ PW_KEY_MODULE_USAGE, "sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"master=<name of sink to remap> "
"master_channel_map=<channel map> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"resample_method=<resampler> "
"remix=<remix channels?>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -10,6 +10,33 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_remap_source Remap Source
*
* ## Module Name
*
* `module-remap-source`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_loopback "libpipewire-module-loopback"
*/
static const char *const pulse_module_options =
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"master=<name of source to filter> "
"master_channel_map=<channel map> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"resample_method=<resampler> "
"remix=<remix channels?>";
#define NAME "remap-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -96,16 +123,7 @@ static int module_remap_source_unload(struct module *module)
static const struct spa_dict_item module_remap_source_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Remap source channels" },
{ PW_KEY_MODULE_USAGE, "source_name=<name for the source> "
"source_properties=<properties for the source> "
"master=<name of source to filter> "
"master_channel_map=<channel map> "
"format=<sample format> "
"rate=<sample rate> "
"channels=<number of channels> "
"channel_map=<channel map> "
"resample_method=<resampler> "
"remix=<remix channels?>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -9,7 +9,32 @@
#include "../defs.h"
#include "../module.h"
#define NAME "roc-source"
/** \page page_pulse_module_roc_sink_input ROC Sink Input
*
* ## Module Name
*
* `module-roc-sink-input`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_roc_source "libpipewire-module-roc-source"
*/
static const char *const pulse_module_options =
"sink=<name for the sink> "
"sink_input_properties=<properties for the sink_input> "
"resampler_profile=<empty>|disable|high|medium|low "
"fec_code=<empty>|disable|rs8m|ldpc "
"sess_latency_msec=<target network latency in milliseconds> "
"local_ip=<local receiver ip> "
"local_source_port=<local receiver port for source packets> "
"local_repair_port=<local receiver port for repair packets> ";
#define NAME "roc-sink-input"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
#define PW_LOG_TOPIC_DEFAULT mod_topic
@ -92,14 +117,7 @@ static int module_roc_sink_input_unload(struct module *module)
static const struct spa_dict_item module_roc_sink_input_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Sanchayan Maity <sanchayan@asymptotic.io>" },
{ PW_KEY_MODULE_DESCRIPTION, "roc sink-input" },
{ PW_KEY_MODULE_USAGE, "sink=<name for the sink> "
"sink_input_properties=<properties for the sink_input> "
"resampler_profile=<empty>|disable|high|medium|low "
"fec_code=<empty>|disable|rs8m|ldpc "
"sess_latency_msec=<target network latency in milliseconds> "
"local_ip=<local receiver ip> "
"local_source_port=<local receiver port for source packets> "
"local_repair_port=<local receiver port for repair packets> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -9,6 +9,29 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_roc_sink ROC Sink
*
* ## Module Name
*
* `module-roc-sink`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_roc_sink "libpipewire-module-roc-sink"
*/
static const char *const pulse_module_options =
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"fec_code=<empty>|disable|rs8m|ldpc "
"remote_ip=<remote receiver ip> "
"remote_source_port=<remote receiver port for source packets> "
"remote_repair_port=<remote receiver port for repair packets> ";
#define NAME "roc-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -101,12 +124,7 @@ static const char* const valid_args[] = {
static const struct spa_dict_item module_roc_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Sanchayan Maity <sanchayan@asymptotic.io>" },
{ PW_KEY_MODULE_DESCRIPTION, "roc sink" },
{ PW_KEY_MODULE_USAGE, "sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"fec_code=<empty>|disable|rs8m|ldpc "
"remote_ip=<remote receiver ip> "
"remote_source_port=<remote receiver port for source packets> "
"remote_repair_port=<remote receiver port for repair packets> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -9,6 +9,31 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_roc_source ROC Source
*
* ## Module Name
*
* `module-roc-source`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_roc_source "libpipewire-module-roc-source"
*/
static const char *const pulse_module_options =
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"resampler_profile=<empty>|disable|high|medium|low "
"fec_code=<empty>|disable|rs8m|ldpc "
"sess_latency_msec=<target network latency in milliseconds> "
"local_ip=<local receiver ip> "
"local_source_port=<local receiver port for source packets> "
"local_repair_port=<local receiver port for repair packets> ";
#define NAME "roc-source"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -104,14 +129,7 @@ static const char* const valid_args[] = {
static const struct spa_dict_item module_roc_source_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Sanchayan Maity <sanchayan@asymptotic.io>" },
{ PW_KEY_MODULE_DESCRIPTION, "roc source" },
{ PW_KEY_MODULE_USAGE, "source_name=<name for the source> "
"source_properties=<properties for the source> "
"resampler_profile=<empty>|disable|high|medium|low "
"fec_code=<empty>|disable|rs8m|ldpc "
"sess_latency_msec=<target network latency in milliseconds> "
"local_ip=<local receiver ip> "
"local_source_port=<local receiver port for source packets> "
"local_repair_port=<local receiver port for repair packets> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -8,6 +8,26 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_rtp_recv RTP Receiver
*
* ## Module Name
*
* `module-rtp-recv`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_rtp_sap "libpipewire-module-rtp-sap"
*/
static const char *const pulse_module_options =
"sink=<name of the sink> "
"sap_address=<multicast address to listen on> "
"latency_msec=<latency in ms> ";
#define NAME "rtp-recv"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -94,9 +114,7 @@ static int module_rtp_recv_unload(struct module *module)
static const struct spa_dict_item module_rtp_recv_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Receive data from a network via RTP/SAP/SDP" },
{ PW_KEY_MODULE_USAGE, "sink=<name of the sink> "
"sap_address=<multicast address to listen on> "
"latency_msec=<latency in ms> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -8,6 +8,36 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_rtp_send RTP Sender
*
* ## Module Name
*
* `module-rtp-send`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_rtp_sink "libpipewire-module-rtp-sink"
*/
static const char *const pulse_module_options =
"source=<name of the source> "
"format=<sample format> "
"channels=<number of channels> "
"rate=<sample rate> "
"destination_ip=<destination IP address> "
"source_ip=<source IP address> "
"port=<port number> "
"mtu=<maximum transfer unit> "
"loop=<loopback to local host?> "
"ttl=<ttl value> "
"inhibit_auto_suspend=<always|never|only_with_non_monitor_sources> "
"stream_name=<name of the stream> "
"enable_opus=<enable OPUS codec>";
#define NAME "rtp-send"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -136,19 +166,7 @@ static int module_rtp_send_unload(struct module *module)
static const struct spa_dict_item module_rtp_send_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Read data from source and send it to the network via RTP/SAP/SDP" },
{ PW_KEY_MODULE_USAGE, "source=<name of the source> "
"format=<sample format> "
"channels=<number of channels> "
"rate=<sample rate> "
"destination_ip=<destination IP address> "
"source_ip=<source IP address> "
"port=<port number> "
"mtu=<maximum transfer unit> "
"loop=<loopback to local host?> "
"ttl=<ttl value> "
"inhibit_auto_suspend=<always|never|only_with_non_monitor_sources> "
"stream_name=<name of the stream> "
"enable_opus=<enable OPUS codec>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -8,6 +8,33 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_simple_protocol_tcp Simple TCP Protocol
*
* ## Module Name
*
* `module-simple-protocol-tcp`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_protocol_simple "libpipewire-module-protocol-simple"
*/
static const char *const pulse_module_options =
"rate=<sample rate> "
"format=<sample format> "
"channels=<number of channels> "
"channel_map=<number of channels> "
"sink=<sink to connect to> "
"source=<source to connect to> "
"playback=<enable playback?> "
"record=<enable record?> "
"port=<TCP port number> "
"listen=<address to listen on>";
#define NAME "simple-protocol-tcp"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -84,16 +111,7 @@ static int module_simple_protocol_tcp_unload(struct module *module)
static const struct spa_dict_item module_simple_protocol_tcp_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Simple protocol (TCP sockets)" },
{ PW_KEY_MODULE_USAGE, "rate=<sample rate> "
"format=<sample format> "
"channels=<number of channels> "
"channel_map=<number of channels> "
"sink=<sink to connect to> "
"source=<source to connect to> "
"playback=<enable playback?> "
"record=<enable record?> "
"port=<TCP port number> "
"listen=<address to listen on>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -15,6 +15,22 @@
#include "../manager.h"
#include "../collect.h"
/** \page page_pulse_module_switch_on_connect Switch on Connect
*
* ## Module Name
*
* `module-switch-on-connect`
*
* ## Module Options
*
* @pulse_module_options@
*/
static const char *const pulse_module_options =
"only_from_unavailable=<boolean, only switch from unavailable ports (not implemented yet)> "
"ignore_virtual=<boolean, ignore new virtual sinks and sources, defaults to true> "
"blocklist=<regex, ignore matching devices, default=hdmi> ";
#define NAME "switch-on-connect"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -215,9 +231,7 @@ static const struct spa_dict_item module_switch_on_connect_info[] = {
"This module exists for Pulseaudio compatibility, and is useful only when some applications "
"try to manage the default sinks/sources themselves and interfere with PipeWire's builtin "
"default device switching." },
{ PW_KEY_MODULE_USAGE, "only_from_unavailable=<boolean, only switch from unavailable ports (not implemented yet)> "
"ignore_virtual=<boolean, ignore new virtual sinks and sources, defaults to true> "
"blocklist=<regex, ignore matching devices, default=hdmi> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -12,6 +12,33 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_tunnel_sink Tunnel Sink
*
* ## Module Name
*
* `module-tunnel-sink`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_pulse_tunnel "libpipewire-module-pulse-tunnel"
*/
static const char *const pulse_module_options =
"server=<address> "
"sink=<name of the remote sink> "
"sink_name=<name for the local sink> "
"sink_properties=<properties for the local sink> "
"format=<sample format> "
"channels=<number of channels> "
"rate=<sample rate> "
"channel_map=<channel map> "
"latency_msec=<fixed latency in ms> "
"cookie=<cookie file path>";
#define NAME "tunnel-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -92,17 +119,7 @@ static int module_tunnel_sink_unload(struct module *module)
static const struct spa_dict_item module_tunnel_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Create a network sink which connects to a remote PulseAudio server" },
{ PW_KEY_MODULE_USAGE,
"server=<address> "
"sink=<name of the remote sink> "
"sink_name=<name for the local sink> "
"sink_properties=<properties for the local sink> "
"format=<sample format> "
"channels=<number of channels> "
"rate=<sample rate> "
"channel_map=<channel map> "
"latency_msec=<fixed latency in ms> "
"cookie=<cookie file path>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -12,6 +12,33 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_tunnel_source Tunnel Source
*
* ## Module Name
*
* `module-tunnel-source`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_pulse_tunnel "libpipewire-module-pulse-tunnel"
*/
static const char *const pulse_module_options =
"server=<address> "
"source=<name of the remote source> "
"source_name=<name for the local source> "
"source_properties=<properties for the local source> "
"format=<sample format> "
"channels=<number of channels> "
"rate=<sample rate> "
"channel_map=<channel map> "
"latency_msec=<fixed latency in ms> "
"cookie=<cookie file path>";
#define NAME "tunnel-source"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -92,17 +119,7 @@ static int module_tunnel_source_unload(struct module *module)
static const struct spa_dict_item module_tunnel_source_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Create a network source which connects to a remote PulseAudio server" },
{ PW_KEY_MODULE_USAGE,
"server=<address> "
"source=<name of the remote source> "
"source_name=<name for the local source> "
"source_properties=<properties for the local source> "
"format=<sample format> "
"channels=<number of channels> "
"rate=<sample rate> "
"channel_map=<channel map> "
"latency_msec=<fixed latency in ms> "
"cookie=<cookie file path>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -10,6 +10,30 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_virtual_sink Virtual Sink
*
* ## Module Name
*
* `module-virtual-sink`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_loopback "libpipewire-module-loopback"
*/
static const char *const pulse_module_options =
"sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"master=<name of sink to filter> "
"channels=<number of channels> "
"channel_map=<channel map> "
"use_volume_sharing=<yes or no> "
"force_flat_volume=<yes or no> ";
#define NAME "virtual-sink"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -98,13 +122,7 @@ static int module_virtual_sink_unload(struct module *module)
static const struct spa_dict_item module_virtual_sink_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "Virtual sink" },
{ PW_KEY_MODULE_USAGE, "sink_name=<name for the sink> "
"sink_properties=<properties for the sink> "
"master=<name of sink to filter> "
"channels=<number of channels> "
"channel_map=<channel map> "
"use_volume_sharing=<yes or no> "
"force_flat_volume=<yes or no> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -11,6 +11,31 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_virtual_source Virtual Source
*
* ## Module Name
*
* `module-virtual-source`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_loopback "libpipewire-module-loopback"
*/
static const char *const pulse_module_options =
"source_name=<name for the source> "
"source_properties=<properties for the source> "
"master=<name of source to filter> "
"uplink_sink=<name> (optional)"
"channels=<number of channels> "
"channel_map=<channel map> "
"use_volume_sharing=<yes or no> "
"force_flat_volume=<yes or no> ";
#define NAME "virtual-source"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -99,14 +124,7 @@ static int module_virtual_source_unload(struct module *module)
static const struct spa_dict_item module_virtual_source_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Arun Raghavan <arun@asymptotic.io>" },
{ PW_KEY_MODULE_DESCRIPTION, "Loopback from source to sink" },
{ PW_KEY_MODULE_USAGE, "source_name=<name for the source> "
"source_properties=<properties for the source> "
"master=<name of source to filter> "
"uplink_sink=<name> (optional)"
"channels=<number of channels> "
"channel_map=<channel map> "
"use_volume_sharing=<yes or no> "
"force_flat_volume=<yes or no> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -6,6 +6,27 @@
#include "../module.h"
/** \page page_pulse_module_x11_bell X11 Bell
*
* ## Module Name
*
* `module-x11-bell`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_x11_bell "libpipewire-module-x11-bell"
*/
static const char *const pulse_module_options =
"sink=<sink to connect to> "
"sample=<the sample to play> "
"display=<X11 display> "
"xauthority=<X11 Authority>";
#define NAME "x11-bell"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -93,10 +114,7 @@ static int module_x11_bell_prepare(struct module * const module)
static const struct spa_dict_item module_x11_bell_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
{ PW_KEY_MODULE_DESCRIPTION, "X11 bell interceptor" },
{ PW_KEY_MODULE_USAGE, "sink=<sink to connect to> "
"sample=<the sample to play> "
"display=<X11 display> "
"xauthority=<X11 Authority>" },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -8,6 +8,24 @@
#include "../defs.h"
#include "../module.h"
/** \page page_pulse_module_zeroconf_discover Zeroconf Discover
*
* ## Module Name
*
* `module-zeroconf-discover`
*
* ## Module Options
*
* @pulse_module_options@
*
* ## See Also
*
* \ref page_module_zeroconf_discover "libpipewire-module-zeroconf-discover"
*/
static const char *const pulse_module_options =
"latency_msec=<fixed latency in ms> ";
#define NAME "zeroconf-discover"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);
@ -84,8 +102,7 @@ static int module_zeroconf_discover_unload(struct module *module)
static const struct spa_dict_item module_zeroconf_discover_info[] = {
{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.con>" },
{ PW_KEY_MODULE_DESCRIPTION, "mDNS/DNS-SD Service Discovery" },
{ PW_KEY_MODULE_USAGE,
"latency_msec=<fixed latency in ms> " },
{ PW_KEY_MODULE_USAGE, pulse_module_options },
{ PW_KEY_MODULE_VERSION, PACKAGE_VERSION },
};

View file

@ -24,6 +24,17 @@
#include <avahi-common/domain.h>
#include <avahi-common/malloc.h>
/** \page page_pulse_module_zeroconf_publish Zeroconf Publish
*
* ## Module Name
*
* `module-zeroconf-publish`
*
* ## Module Options
*
* No options.
*/
#define NAME "zeroconf-publish"
PW_LOG_TOPIC_STATIC(mod_topic, "mod." NAME);