mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-05 13:30:02 -05:00
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:
parent
0ae797ea28
commit
843e733479
40 changed files with 979 additions and 302 deletions
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue