diff --git a/meson.build b/meson.build index 2ff163ac..97c5caa0 100644 --- a/meson.build +++ b/meson.build @@ -50,6 +50,19 @@ if ccpp.has_argument('-fvisibility=hidden') add_project_arguments('-fvisibility=hidden', language: 'cpp') endif +have_audiofade = cc.compiles(''' + #include + #ifndef SPA_NAME_CONTROL_AUDIO_FADE_SOURCE + #error "not using the audio fade branch" + #endif + int main(void){return 0;} + ''', + name: 'audiofade', + dependencies: pipewire_dep) +if have_audiofade + add_project_arguments('-DHAVE_AUDIOFADE', language: 'c') +endif + subdir('lib') subdir('docs') subdir('modules') diff --git a/modules/module-config-policy/config-policy.c b/modules/module-config-policy/config-policy.c index c01ccd6a..4a726891 100644 --- a/modules/module-config-policy/config-policy.c +++ b/modules/module-config-policy/config-policy.c @@ -7,7 +7,6 @@ */ #include -#include #include @@ -16,6 +15,12 @@ #include "config-policy.h" #include "parser-endpoint-link.h" +#if !defined(HAVE_AUDIOFADE) +# define SPA_CONTROL_AUDIO_FADE_TYPE_LOGARITHMIC 2 +#else +# include +#endif + struct link_info { WpBaseEndpoint *ep; guint32 stream_id; diff --git a/modules/module-pipewire/audio-softdsp-endpoint/convert.c b/modules/module-pipewire/audio-softdsp-endpoint/convert.c index 54903626..fc68a6f4 100644 --- a/modules/module-pipewire/audio-softdsp-endpoint/convert.c +++ b/modules/module-pipewire/audio-softdsp-endpoint/convert.c @@ -133,7 +133,12 @@ on_audio_convert_core_done (WpCore *core, GAsyncResult *res, &self->format); /* Only enable control port for input streams */ - control = direction == PW_DIRECTION_INPUT; + control = +#if defined(HAVE_AUDIOFADE) + (direction == PW_DIRECTION_INPUT); +#else + FALSE; +#endif /* Configure audioconvert to be both merger and splitter; this means it will have an equal number of input and output ports and just passthrough the diff --git a/modules/module-pipewire/audio-softdsp-endpoint/stream.c b/modules/module-pipewire/audio-softdsp-endpoint/stream.c index 5fca207f..8309a00a 100644 --- a/modules/module-pipewire/audio-softdsp-endpoint/stream.c +++ b/modules/module-pipewire/audio-softdsp-endpoint/stream.c @@ -16,6 +16,14 @@ #include "stream.h" +#if !defined(HAVE_AUDIOFADE) +# define SPA_PROP_audioFadeDuration 0x30001 +# define SPA_PROP_audioFadeStep 0x30002 +# define SPA_PROP_audioFadeDirection 0x30003 +# define SPA_PROP_audioFadeType 0x30004 +# define SPA_NAME_CONTROL_AUDIO_FADE_SOURCE "control.audio.fade.source" +#endif + typedef struct _WpAudioStreamPrivate WpAudioStreamPrivate; struct _WpAudioStreamPrivate {