Jaroslav Kysela 271350
From e8fabec7adc70220f52588dc170d90d146b92ba7 Mon Sep 17 00:00:00 2001
Jaroslav Kysela 271350
From: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 271350
Date: Thu, 5 Apr 2018 09:23:09 +0200
Jaroslav Kysela 8ac4c9
Subject: [PATCH 1/6] samplerate: fix unused variable warning
Jaroslav Kysela 271350
Jaroslav Kysela 271350
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 271350
---
Jaroslav Kysela 271350
 rate/rate_samplerate.c | 4 ++--
Jaroslav Kysela 271350
 1 file changed, 2 insertions(+), 2 deletions(-)
Jaroslav Kysela 271350
Jaroslav Kysela 271350
diff --git a/rate/rate_samplerate.c b/rate/rate_samplerate.c
Jaroslav Kysela 271350
index 0b14a59..100d6f2 100644
Jaroslav Kysela 271350
--- a/rate/rate_samplerate.c
Jaroslav Kysela 271350
+++ b/rate/rate_samplerate.c
Jaroslav Kysela 271350
@@ -154,14 +154,14 @@ static void pcm_src_close(void *obj)
Jaroslav Kysela 271350
 }
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 #if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
Jaroslav Kysela 271350
-static int get_supported_rates(void *obj, unsigned int *rate_min,
Jaroslav Kysela 271350
+static int get_supported_rates(void *obj ATTRIBUTE_UNUSED, unsigned int *rate_min,
Jaroslav Kysela 271350
 			       unsigned int *rate_max)
Jaroslav Kysela 271350
 {
Jaroslav Kysela 271350
 	*rate_min = *rate_max = 0; /* both unlimited */
Jaroslav Kysela 271350
 	return 0;
Jaroslav Kysela 271350
 }
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
-static void dump(void *obj, snd_output_t *out)
Jaroslav Kysela 271350
+static void dump(void *obj ATTRIBUTE_UNUSED, snd_output_t *out)
Jaroslav Kysela 271350
 {
Jaroslav Kysela 271350
 	snd_output_printf(out, "Converter: libsamplerate\n");
Jaroslav Kysela 271350
 }
Jaroslav Kysela 271350
-- 
Jaroslav Kysela 271350
2.13.6
Jaroslav Kysela 271350
Jaroslav Kysela 271350
Jaroslav Kysela 271350
From 6e40eb5fd346207021a95d06bc30205a537926ea Mon Sep 17 00:00:00 2001
Jaroslav Kysela 271350
From: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 271350
Date: Wed, 4 Apr 2018 19:57:56 +0200
Jaroslav Kysela 8ac4c9
Subject: [PATCH 2/6] configure: add --with-alsaaddondir, add default config
Jaroslav Kysela 271350
 files for plugins
Jaroslav Kysela 271350
Jaroslav Kysela 271350
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 271350
---
Jaroslav Kysela 271350
 a52/60-a52-encoder.conf       | 38 ++++++++++++++++++++++++++
Jaroslav Kysela 271350
 a52/Makefile.am               |  4 +++
Jaroslav Kysela 271350
 a52/pcm_a52.c                 |  2 +-
Jaroslav Kysela 271350
 arcam-av/50-arcam-av-ctl.conf | 16 +++++++++++
Jaroslav Kysela 271350
 arcam-av/Makefile.am          |  4 +++
Jaroslav Kysela 271350
 configure.ac                  | 12 +++++++++
Jaroslav Kysela 271350
 jack/50-jack.conf             | 18 +++++++++++++
Jaroslav Kysela 271350
 jack/Makefile.am              |  4 +++
Jaroslav Kysela 271350
 maemo/98-maemo.conf           | 11 ++++++++
Jaroslav Kysela 271350
 maemo/Makefile.am             |  4 +++
Jaroslav Kysela 271350
 mix/60-upmix.conf             | 26 ++++++++++++++++++
Jaroslav Kysela 271350
 mix/60-vdownmix.conf          | 24 +++++++++++++++++
Jaroslav Kysela 271350
 mix/Makefile.am               |  5 +++-
Jaroslav Kysela 271350
 oss/50-oss.conf               | 26 ++++++++++++++++++
Jaroslav Kysela 271350
 oss/Makefile.am               |  4 +++
Jaroslav Kysela 271350
 pph/10-speexrate.conf         | 28 +++++++++++++++++++
Jaroslav Kysela 271350
 pph/Makefile.am               |  4 +++
Jaroslav Kysela 271350
 pulse/50-pulseaudio.conf      | 15 ++++++-----
Jaroslav Kysela 271350
 pulse/Makefile.am             |  4 +--
Jaroslav Kysela 271350
 rate-lavc/10-rate-lavc.conf   | 28 +++++++++++++++++++
Jaroslav Kysela 271350
 rate-lavc/Makefile.am         |  4 +++
Jaroslav Kysela 271350
 rate/10-samplerate.conf       | 28 +++++++++++++++++++
Jaroslav Kysela 271350
 rate/Makefile.am              |  4 +++
Jaroslav Kysela 271350
 speex/60-speex.conf           | 63 +++++++++++++++++++++++++++++++++++++++++++
Jaroslav Kysela 271350
 speex/Makefile.am             |  4 +++
Jaroslav Kysela 271350
 usb_stream/98-usb-stream.conf | 27 +++++++++++++++++++
Jaroslav Kysela 271350
 usb_stream/Makefile.am        |  4 +++
Jaroslav Kysela 271350
 27 files changed, 401 insertions(+), 10 deletions(-)
Jaroslav Kysela 271350
 create mode 100644 a52/60-a52-encoder.conf
Jaroslav Kysela 271350
 create mode 100644 arcam-av/50-arcam-av-ctl.conf
Jaroslav Kysela 271350
 create mode 100644 jack/50-jack.conf
Jaroslav Kysela 271350
 create mode 100644 maemo/98-maemo.conf
Jaroslav Kysela 271350
 create mode 100644 mix/60-upmix.conf
Jaroslav Kysela 271350
 create mode 100644 mix/60-vdownmix.conf
Jaroslav Kysela 271350
 create mode 100644 oss/50-oss.conf
Jaroslav Kysela 271350
 create mode 100644 pph/10-speexrate.conf
Jaroslav Kysela 271350
 create mode 100644 rate-lavc/10-rate-lavc.conf
Jaroslav Kysela 271350
 create mode 100644 rate/10-samplerate.conf
Jaroslav Kysela 271350
 create mode 100644 speex/60-speex.conf
Jaroslav Kysela 271350
 create mode 100644 usb_stream/98-usb-stream.conf
Jaroslav Kysela 271350
Jaroslav Kysela 271350
diff --git a/a52/60-a52-encoder.conf b/a52/60-a52-encoder.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..346c94f
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/a52/60-a52-encoder.conf
Jaroslav Kysela 271350
@@ -0,0 +1,38 @@
Jaroslav Kysela 271350
+pcm.a52 {
Jaroslav Kysela 271350
+	@args [ CARD SLAVE RATE BITRATE CHANNELS ]
Jaroslav Kysela 271350
+	@args.CARD {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.pcm.card
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.SLAVE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.RATE {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 48000
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.BITRATE {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 448
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.CHANNELS {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default 6
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type a52
Jaroslav Kysela 271350
+	card $CARD
Jaroslav Kysela 271350
+	slavepcm $SLAVE
Jaroslav Kysela 271350
+	rate $RATE
Jaroslav Kysela 271350
+	bitrate $BITRATE
Jaroslav Kysela 271350
+	channels $CHANNELS
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+                description "Plugin to convert multichannel stream to A52 (AC3) bitstream"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/a52/Makefile.am b/a52/Makefile.am
Jaroslav Kysela 271350
index 48567b4..cbc1497 100644
Jaroslav Kysela 271350
--- a/a52/Makefile.am
Jaroslav Kysela 271350
+++ b/a52/Makefile.am
Jaroslav Kysela 271350
@@ -1,6 +1,10 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 60-a52-encoder.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_pcm_a52_LTLIBRARIES = libasound_module_pcm_a52.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 60-a52-encoder.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_pcm_a52dir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@ \
Jaroslav Kysela 271350
 	-DAVCODEC_HEADER="@AVCODEC_HEADER@"
Jaroslav Kysela 271350
diff --git a/a52/pcm_a52.c b/a52/pcm_a52.c
Jaroslav Kysela 271350
index 348d58f..155da36 100644
Jaroslav Kysela 271350
--- a/a52/pcm_a52.c
Jaroslav Kysela 271350
+++ b/a52/pcm_a52.c
Jaroslav Kysela 271350
@@ -937,7 +937,7 @@ SND_PCM_PLUGIN_DEFINE_FUNC(a52)
Jaroslav Kysela 271350
 		goto error;
Jaroslav Kysela 271350
 	}
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
-	if (! pcm_string) {
Jaroslav Kysela 271350
+	if (! pcm_string || pcm_string[0] == '\0') {
Jaroslav Kysela 271350
 		snprintf(devstr, sizeof(devstr),
Jaroslav Kysela 271350
 			 "iec958:{AES0 0x%x AES1 0x%x AES2 0x%x AES3 0x%x %s%s}",
Jaroslav Kysela 271350
 			 IEC958_AES0_CON_EMPHASIS_NONE | IEC958_AES0_NONAUDIO |
Jaroslav Kysela 271350
diff --git a/arcam-av/50-arcam-av-ctl.conf b/arcam-av/50-arcam-av-ctl.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..b76caa9
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/arcam-av/50-arcam-av-ctl.conf
Jaroslav Kysela 271350
@@ -0,0 +1,16 @@
Jaroslav Kysela 271350
+ctl.arcam_av {
Jaroslav Kysela 271350
+	@args [ PORT ]
Jaroslav Kysela 271350
+	@args.PORT {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "/dev/ttyUSB0"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type arcam_av
Jaroslav Kysela 271350
+	port $PORT
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+		description "Arcam-AV Amplifier"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/arcam-av/Makefile.am b/arcam-av/Makefile.am
Jaroslav Kysela 271350
index 5c7855f..4a54ccd 100644
Jaroslav Kysela 271350
--- a/arcam-av/Makefile.am
Jaroslav Kysela 271350
+++ b/arcam-av/Makefile.am
Jaroslav Kysela 271350
@@ -1,6 +1,10 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 50-arcam-av-ctl.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_ctl_arcam_av_LTLIBRARIES = libasound_module_ctl_arcam_av.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 50-arcam-av-ctl.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_ctl_arcam_avdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined
Jaroslav Kysela 271350
diff --git a/configure.ac b/configure.ac
Jaroslav Kysela 271350
index ecc265b..ae98caa 100644
Jaroslav Kysela 271350
--- a/configure.ac
Jaroslav Kysela 271350
+++ b/configure.ac
Jaroslav Kysela 271350
@@ -206,6 +206,18 @@ AC_DEFINE_UNQUOTED(ALSA_DATA_DIR, "$alsadatadir", [directory containing ALSA dat
Jaroslav Kysela 271350
 ALSA_DATA_DIR="$alsadatadir"
Jaroslav Kysela 271350
 AC_SUBST(ALSA_DATA_DIR)
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
+dnl ALSA add-on config directory
Jaroslav Kysela 271350
+AC_ARG_WITH(alsaaddondir,
Jaroslav Kysela 271350
+    AS_HELP_STRING([--with-alsaaddondir=dir],
Jaroslav Kysela 271350
+	[path where ALSA add-on config files are stored]),
Jaroslav Kysela 271350
+    alsaaddondir="$withval", alsaaddondir="")
Jaroslav Kysela 271350
+if test -z "$alsaaddondir"; then
Jaroslav Kysela 271350
+    alsaaddondir="/etc/alsa/conf.d"
Jaroslav Kysela 271350
+fi
Jaroslav Kysela 271350
+AC_DEFINE_UNQUOTED(ALSA_ADDON_DIR, "$alsaaddondir", [directory containing ALSA add-on config files])
Jaroslav Kysela 271350
+ALSA_ADDON_DIR="$alsaaddondir"
Jaroslav Kysela 271350
+AC_SUBST(ALSA_ADDON_DIR)
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 SAVE_PLUGINS_VERSION
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AC_OUTPUT([
Jaroslav Kysela 271350
diff --git a/jack/50-jack.conf b/jack/50-jack.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..d780dfc
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/jack/50-jack.conf
Jaroslav Kysela 271350
@@ -0,0 +1,18 @@
Jaroslav Kysela 271350
+pcm.jack {
Jaroslav Kysela 271350
+	type jack
Jaroslav Kysela 271350
+	playback_ports {
Jaroslav Kysela 271350
+		0 alsa_pcm:playback_1
Jaroslav Kysela 271350
+		1 alsa_pcm:playback_2
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	capture_ports {
Jaroslav Kysela 271350
+		0 alsa_pcm:capture_1
Jaroslav Kysela 271350
+		1 alsa_pcm:capture_2
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+		description "JACK Audio Connection Kit"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/jack/Makefile.am b/jack/Makefile.am
Jaroslav Kysela 271350
index f913cb6..0a3d6ae 100644
Jaroslav Kysela 271350
--- a/jack/Makefile.am
Jaroslav Kysela 271350
+++ b/jack/Makefile.am
Jaroslav Kysela 271350
@@ -1,6 +1,10 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 50-jack.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_pcm_jack_LTLIBRARIES = libasound_module_pcm_jack.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 50-jack.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_pcm_jackdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @JACK_CFLAGS@
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 271350
diff --git a/maemo/98-maemo.conf b/maemo/98-maemo.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..a9ad6a0
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/maemo/98-maemo.conf
Jaroslav Kysela 271350
@@ -0,0 +1,11 @@
Jaroslav Kysela 271350
+pcm.!default {
Jaroslav Kysela 271350
+	type alsa_dsp
Jaroslav Kysela 271350
+	playback_device_file [ "/dev/dsptask/pcm2" ]
Jaroslav Kysela 271350
+	recording_device_file [ "/dev/dsptask/pcm_rec" ]
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
+ctl.!default {
Jaroslav Kysela 271350
+	type dsp_ctl
Jaroslav Kysela 271350
+	playback_devices [ "/dev/dsptask/pcm2" ]
Jaroslav Kysela 271350
+	recording_devices [ "/dev/dsptask/pcm_rec" ]
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/maemo/Makefile.am b/maemo/Makefile.am
Jaroslav Kysela 271350
index 2684781..aca481d 100644
Jaroslav Kysela 271350
--- a/maemo/Makefile.am
Jaroslav Kysela 271350
+++ b/maemo/Makefile.am
Jaroslav Kysela 271350
@@ -1,8 +1,12 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 98-maemo.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_pcm_alsa_dsp_LTLIBRARIES = libasound_module_pcm_alsa_dsp.la
Jaroslav Kysela 271350
 asound_module_ctl_dsp_ctl_LTLIBRARIES = libasound_module_ctl_dsp_ctl.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 98-maemo.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_pcm_alsa_dspdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
 asound_module_ctl_dsp_ctldir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -O2 @ALSA_CFLAGS@ $(DBUS_CFLAGS)
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 271350
diff --git a/mix/60-upmix.conf b/mix/60-upmix.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..028cfe1
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/mix/60-upmix.conf
Jaroslav Kysela 271350
@@ -0,0 +1,26 @@
Jaroslav Kysela 271350
+pcm.upmix {
Jaroslav Kysela 271350
+	@args [ SLAVE CHANNELS DELAY ]
Jaroslav Kysela 271350
+	@args.SLAVE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "plug:hw"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.CHANNELS {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 6
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.DELAY {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 0
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type upmix
Jaroslav Kysela 271350
+	channels $CHANNELS
Jaroslav Kysela 271350
+	delay $DELAY
Jaroslav Kysela 271350
+	slave.pcm $SLAVE
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+                description "Plugin for channel upmix (4,6,8)"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/mix/60-vdownmix.conf b/mix/60-vdownmix.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..32e9c56
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/mix/60-vdownmix.conf
Jaroslav Kysela 271350
@@ -0,0 +1,24 @@
Jaroslav Kysela 271350
+pcm.vdownmix {
Jaroslav Kysela 271350
+	@args [ SLAVE CHANNELS DELAY ]
Jaroslav Kysela 271350
+	@args.SLAVE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "plug:hw"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.CHANNELS {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 6
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.DELAY {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 0
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type vdownmix
Jaroslav Kysela 271350
+	slave.pcm $SLAVE
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+                description "Plugin for channel downmix (stereo) with a simple spacialization"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/mix/Makefile.am b/mix/Makefile.am
Jaroslav Kysela 271350
index e31839a..710606c 100644
Jaroslav Kysela 271350
--- a/mix/Makefile.am
Jaroslav Kysela 271350
+++ b/mix/Makefile.am
Jaroslav Kysela 271350
@@ -1,8 +1,12 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 60-upmix.conf 60-vdownmix.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_pcm_upmix_LTLIBRARIES = libasound_module_pcm_upmix.la
Jaroslav Kysela 271350
 asound_module_pcm_vdownmix_LTLIBRARIES = libasound_module_pcm_vdownmix.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 60-upmix.conf 60-vdownmix.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_pcm_upmixdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
 asound_module_pcm_vdownmixdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 271350
@@ -11,4 +15,3 @@ libasound_module_pcm_upmix_la_SOURCES = pcm_upmix.c
Jaroslav Kysela 271350
 libasound_module_pcm_upmix_la_LIBADD = @ALSA_LIBS@
Jaroslav Kysela 271350
 libasound_module_pcm_vdownmix_la_SOURCES = pcm_vdownmix.c
Jaroslav Kysela 271350
 libasound_module_pcm_vdownmix_la_LIBADD = @ALSA_LIBS@
Jaroslav Kysela 271350
-
Jaroslav Kysela 271350
diff --git a/oss/50-oss.conf b/oss/50-oss.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..5b2817b
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/oss/50-oss.conf
Jaroslav Kysela 271350
@@ -0,0 +1,26 @@
Jaroslav Kysela 271350
+pcm.oss {
Jaroslav Kysela 271350
+	@args [ DEVICE ]
Jaroslav Kysela 271350
+	@args.DEVICE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "/dev/dsp"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type oss
Jaroslav Kysela 271350
+	port $DEVICE
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+		description "Open Sound System"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
+ctl.oss {
Jaroslav Kysela 271350
+	@args [ DEVICE ]
Jaroslav Kysela 271350
+	@args.DEVICE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "/dev/mixer"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type oss
Jaroslav Kysela 271350
+	device $DEVICE
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/oss/Makefile.am b/oss/Makefile.am
Jaroslav Kysela 271350
index 302538b..df83d20 100644
Jaroslav Kysela 271350
--- a/oss/Makefile.am
Jaroslav Kysela 271350
+++ b/oss/Makefile.am
Jaroslav Kysela 271350
@@ -1,8 +1,12 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 50-oss.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_pcm_oss_LTLIBRARIES = libasound_module_pcm_oss.la
Jaroslav Kysela 271350
 asound_module_ctl_oss_LTLIBRARIES = libasound_module_ctl_oss.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 50-oss.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_pcm_ossdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
 asound_module_ctl_ossdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 271350
diff --git a/pph/10-speexrate.conf b/pph/10-speexrate.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..1d9eae9
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/pph/10-speexrate.conf
Jaroslav Kysela 271350
@@ -0,0 +1,28 @@
Jaroslav Kysela 271350
+pcm.speexrate {
Jaroslav Kysela 271350
+	@args [ SLAVE RATE CONVERTER ]
Jaroslav Kysela 271350
+	@args.SLAVE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "plug:hw"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.RATE {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 48000
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.CONVERTER {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "speexrate"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type rate
Jaroslav Kysela 271350
+	converter $CONVERTER
Jaroslav Kysela 271350
+	slave {
Jaroslav Kysela 271350
+		pcm $SLAVE
Jaroslav Kysela 271350
+		rate $RATE
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+                description "Rate Converter Plugin Using Speex Resampler"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/pph/Makefile.am b/pph/Makefile.am
Jaroslav Kysela 271350
index 551e5bd..abb950b 100644
Jaroslav Kysela 271350
--- a/pph/Makefile.am
Jaroslav Kysela 271350
+++ b/pph/Makefile.am
Jaroslav Kysela 271350
@@ -1,6 +1,10 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 10-speexrate.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_rate_speexrate_LTLIBRARIES = libasound_module_rate_speexrate.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 10-speexrate.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_rate_speexratedir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -DVAR_ARRAYS -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 271350
diff --git a/pulse/50-pulseaudio.conf b/pulse/50-pulseaudio.conf
Jaroslav Kysela 271350
index dd85dab..62da207 100644
Jaroslav Kysela 271350
--- a/pulse/50-pulseaudio.conf
Jaroslav Kysela 271350
+++ b/pulse/50-pulseaudio.conf
Jaroslav Kysela 271350
@@ -1,13 +1,16 @@
Jaroslav Kysela 271350
 # Add a specific named PulseAudio pcm and ctl (typically useful for testing)
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 pcm.pulse {
Jaroslav Kysela 271350
-    type pulse
Jaroslav Kysela 271350
-    hint {
Jaroslav Kysela 271350
-        show on
Jaroslav Kysela 271350
-        description "PulseAudio Sound Server"
Jaroslav Kysela 271350
-    }
Jaroslav Kysela 271350
+	type pulse
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+		description "PulseAudio Sound Server"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
 }
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 ctl.pulse {
Jaroslav Kysela 271350
-    type pulse
Jaroslav Kysela 271350
+	type pulse
Jaroslav Kysela 271350
 }
Jaroslav Kysela 271350
diff --git a/pulse/Makefile.am b/pulse/Makefile.am
Jaroslav Kysela 271350
index a5550b9..835808c 100644
Jaroslav Kysela 271350
--- a/pulse/Makefile.am
Jaroslav Kysela 271350
+++ b/pulse/Makefile.am
Jaroslav Kysela 271350
@@ -3,12 +3,12 @@ EXTRA_DIST = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
Jaroslav Kysela 271350
 asound_module_pcm_LTLIBRARIES = libasound_module_pcm_pulse.la
Jaroslav Kysela 271350
 asound_module_ctl_LTLIBRARIES = libasound_module_ctl_pulse.la
Jaroslav Kysela 271350
 asound_module_conf_LTLIBRARIES = libasound_module_conf_pulse.la
Jaroslav Kysela 271350
-asound_module_data_DATA = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
Jaroslav Kysela 271350
+asound_module_addon_DATA = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_pcmdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
 asound_module_ctldir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
 asound_module_confdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
-asound_module_datadir = @ALSA_DATA_DIR@/alsa.conf.d
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(PTHREAD_CFLAGS) $(pulseaudio_CFLAGS) -D_GNU_SOURCE
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 271350
diff --git a/rate-lavc/10-rate-lavc.conf b/rate-lavc/10-rate-lavc.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..bab1694
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/rate-lavc/10-rate-lavc.conf
Jaroslav Kysela 271350
@@ -0,0 +1,28 @@
Jaroslav Kysela 271350
+pcm.lavcrate {
Jaroslav Kysela 271350
+	@args [ SLAVE RATE CONVERTER ]
Jaroslav Kysela 271350
+	@args.SLAVE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "plug:hw"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.RATE {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 48000
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.CONVERTER {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "lavcrate"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type rate
Jaroslav Kysela 271350
+	converter $CONVERTER
Jaroslav Kysela 271350
+	slave {
Jaroslav Kysela 271350
+		pcm $SLAVE
Jaroslav Kysela 271350
+		rate $RATE
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+                description "Rate Converter Plugin Using AVC Library"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/rate-lavc/Makefile.am b/rate-lavc/Makefile.am
Jaroslav Kysela 271350
index 5cffd44..5f66472 100644
Jaroslav Kysela 271350
--- a/rate-lavc/Makefile.am
Jaroslav Kysela 271350
+++ b/rate-lavc/Makefile.am
Jaroslav Kysela 271350
@@ -1,6 +1,10 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 10-rate-lavc.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_rate_lavcrate_LTLIBRARIES = libasound_module_rate_lavcrate.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 10-rate-lavc.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_rate_lavcratedir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@ \
Jaroslav Kysela 271350
 	-DAVCODEC_HEADER="@AVCODEC_HEADER@"
Jaroslav Kysela 271350
diff --git a/rate/10-samplerate.conf b/rate/10-samplerate.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..0d2e604
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/rate/10-samplerate.conf
Jaroslav Kysela 271350
@@ -0,0 +1,28 @@
Jaroslav Kysela 271350
+pcm.samplerate {
Jaroslav Kysela 271350
+	@args [ SLAVE RATE CONVERTER ]
Jaroslav Kysela 271350
+	@args.SLAVE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "plug:hw"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.RATE {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 48000
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.CONVERTER {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "samplerate"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type rate
Jaroslav Kysela 271350
+	converter $CONVERTER
Jaroslav Kysela 271350
+	slave {
Jaroslav Kysela 271350
+		pcm $SLAVE
Jaroslav Kysela 271350
+		rate $RATE
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+                description "Rate Converter Plugin Using Samplerate Library"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/rate/Makefile.am b/rate/Makefile.am
Jaroslav Kysela 271350
index 0605bfd..25014d8 100644
Jaroslav Kysela 271350
--- a/rate/Makefile.am
Jaroslav Kysela 271350
+++ b/rate/Makefile.am
Jaroslav Kysela 271350
@@ -1,6 +1,10 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 10-samplerate.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_rate_samplerate_LTLIBRARIES = libasound_module_rate_samplerate.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 10-samplerate.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_rate_sampleratedir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(samplerate_CFLAGS)
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 271350
diff --git a/speex/60-speex.conf b/speex/60-speex.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..bf2ce95
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/speex/60-speex.conf
Jaroslav Kysela 271350
@@ -0,0 +1,63 @@
Jaroslav Kysela 271350
+pcm.speex {
Jaroslav Kysela 271350
+	@args [ SLAVE AGC AGC_LEVEL DENOISE ECHO
Jaroslav Kysela 271350
+                DEREVERB DEREVERB_DECAY DEREVERB_LEVEL
Jaroslav Kysela 271350
+                FRAMES FILTER_LENGTH ]
Jaroslav Kysela 271350
+	@args.SLAVE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default "plug:hw"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.AGC {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default off
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.AGC_LEVEL {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 8000
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.DENOISE {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default on
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.ECHO {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default off
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.DEREVERB {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default off
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.DEREVERB_DECAY {
Jaroslav Kysela 271350
+		type real
Jaroslav Kysela 271350
+		default 0
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.DEREVERB_LEVEL {
Jaroslav Kysela 271350
+		type real
Jaroslav Kysela 271350
+		default 0
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.FRAMES {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 64
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.FILTER_LENGTH {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+		default 256
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type speex
Jaroslav Kysela 271350
+	agc $AGC
Jaroslav Kysela 271350
+	agc_level $AGC_LEVEL
Jaroslav Kysela 271350
+	denoise $DENOISE
Jaroslav Kysela 271350
+	echo $ECHO
Jaroslav Kysela 271350
+	dereverb $DEREVERB
Jaroslav Kysela 271350
+	dereverb_decay $DEREVERB_DECAY
Jaroslav Kysela 271350
+	dereverb_level $DEREVERB_LEVEL
Jaroslav Kysela 271350
+	frames $FRAMES
Jaroslav Kysela 271350
+	filter_length $FILTER_LENGTH
Jaroslav Kysela 271350
+	slave.pcm $SLAVE
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+                description "Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/speex/Makefile.am b/speex/Makefile.am
Jaroslav Kysela 271350
index 7d84190..7891954 100644
Jaroslav Kysela 271350
--- a/speex/Makefile.am
Jaroslav Kysela 271350
+++ b/speex/Makefile.am
Jaroslav Kysela 271350
@@ -1,6 +1,10 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 60-speex.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_pcm_speex_LTLIBRARIES = libasound_module_pcm_speex.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 60-speex.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_pcm_speexdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @speexdsp_CFLAGS@
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 271350
diff --git a/usb_stream/98-usb-stream.conf b/usb_stream/98-usb-stream.conf
Jaroslav Kysela 271350
new file mode 100644
Jaroslav Kysela 271350
index 0000000..2efc95f
Jaroslav Kysela 271350
--- /dev/null
Jaroslav Kysela 271350
+++ b/usb_stream/98-usb-stream.conf
Jaroslav Kysela 271350
@@ -0,0 +1,27 @@
Jaroslav Kysela 271350
+pcm.usbstream {
Jaroslav Kysela 271350
+	@args [ CARD RATE PERIOD_SIZE ]
Jaroslav Kysela 271350
+	@args.CARD {
Jaroslav Kysela 271350
+		type string
Jaroslav Kysela 271350
+		default {
Jaroslav Kysela 271350
+			func refer
Jaroslav Kysela 271350
+			name defaults.pcm.card
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.RATE {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	@args.PERIOD_SIZE {
Jaroslav Kysela 271350
+		type integer
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+	type usb_stream
Jaroslav Kysela 271350
+	card $CARD
Jaroslav Kysela 271350
+	rate $RATE
Jaroslav Kysela 271350
+	period_size $PERIOD_SIZE
Jaroslav Kysela 271350
+	hint {
Jaroslav Kysela 271350
+		show {
Jaroslav Kysela 271350
+			@func refer
Jaroslav Kysela 271350
+			name defaults.namehint.basic
Jaroslav Kysela 271350
+		}
Jaroslav Kysela 271350
+                description "USB Stream Output"
Jaroslav Kysela 271350
+	}
Jaroslav Kysela 271350
+}
Jaroslav Kysela 271350
diff --git a/usb_stream/Makefile.am b/usb_stream/Makefile.am
Jaroslav Kysela 271350
index 50a98a0..b606d3d 100644
Jaroslav Kysela 271350
--- a/usb_stream/Makefile.am
Jaroslav Kysela 271350
+++ b/usb_stream/Makefile.am
Jaroslav Kysela 271350
@@ -1,6 +1,10 @@
Jaroslav Kysela 271350
+EXTRA_DIST = 98-usb-stream.conf
Jaroslav Kysela 271350
+
Jaroslav Kysela 271350
 asound_module_pcm_usb_stream_LTLIBRARIES = libasound_module_pcm_usb_stream.la
Jaroslav Kysela 271350
+asound_module_addon_DATA = 98-usb-stream.conf
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 asound_module_pcm_usb_streamdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 271350
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 271350
 
Jaroslav Kysela 271350
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 271350
 AM_LDFLAGS = -module -avoid-version -export-dynamic $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 271350
-- 
Jaroslav Kysela 271350
2.13.6
Jaroslav Kysela 271350
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
From cc6bed233a3167d806834460befca2c6d655f0fb Mon Sep 17 00:00:00 2001
Jaroslav Kysela 8ac4c9
From: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 8ac4c9
Date: Fri, 13 Apr 2018 13:37:36 +0200
Jaroslav Kysela 8ac4c9
Subject: [PATCH 3/6] config/Makefile: make everything modular
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 8ac4c9
---
Jaroslav Kysela 8ac4c9
 Makefile.am     | 21 ++++++++++++++++++---
Jaroslav Kysela 8ac4c9
 configure.ac    | 20 +++++++++++++++++++-
Jaroslav Kysela 8ac4c9
 doc/Makefile.am | 37 ++++++++++++++++++++++++++++++++++---
Jaroslav Kysela 8ac4c9
 3 files changed, 71 insertions(+), 7 deletions(-)
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
diff --git a/Makefile.am b/Makefile.am
Jaroslav Kysela 8ac4c9
index 69cfe0d..303bc83 100644
Jaroslav Kysela 8ac4c9
--- a/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,4 +1,10 @@
Jaroslav Kysela 8ac4c9
-SUBDIRS = oss mix usb_stream arcam-av doc
Jaroslav Kysela 8ac4c9
+SUBDIRS = doc
Jaroslav Kysela 8ac4c9
+if HAVE_OSS
Jaroslav Kysela 8ac4c9
+SUBDIRS += oss
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_MIX
Jaroslav Kysela 8ac4c9
+SUBDIRS += mix
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
 if HAVE_JACK
Jaroslav Kysela 8ac4c9
 SUBDIRS += jack
Jaroslav Kysela 8ac4c9
 endif
Jaroslav Kysela 8ac4c9
@@ -8,8 +14,17 @@ endif
Jaroslav Kysela 8ac4c9
 if HAVE_SAMPLERATE
Jaroslav Kysela 8ac4c9
 SUBDIRS += rate
Jaroslav Kysela 8ac4c9
 endif
Jaroslav Kysela 8ac4c9
-if HAVE_AVCODEC
Jaroslav Kysela 8ac4c9
-SUBDIRS += a52 rate-lavc
Jaroslav Kysela 8ac4c9
+if HAVE_A52
Jaroslav Kysela 8ac4c9
+SUBDIRS += a52
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_AVCRATE
Jaroslav Kysela 8ac4c9
+SUBDIRS += rate-lavc
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_USBSTREAM
Jaroslav Kysela 8ac4c9
+SUBDIRS += usb_stream
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_ARCAMAV
Jaroslav Kysela 8ac4c9
+SUBDIRS += arcam-av
Jaroslav Kysela 8ac4c9
 endif
Jaroslav Kysela 8ac4c9
 if HAVE_MAEMO_PLUGIN
Jaroslav Kysela 8ac4c9
 SUBDIRS += maemo
Jaroslav Kysela 8ac4c9
diff --git a/configure.ac b/configure.ac
Jaroslav Kysela 8ac4c9
index ae98caa..2d7e6aa 100644
Jaroslav Kysela 8ac4c9
--- a/configure.ac
Jaroslav Kysela 8ac4c9
+++ b/configure.ac
Jaroslav Kysela 8ac4c9
@@ -135,6 +135,22 @@ AC_SUBST(AVCODEC_CFLAGS)
Jaroslav Kysela 8ac4c9
 AC_SUBST(AVCODEC_LIBS)
Jaroslav Kysela 8ac4c9
 AC_SUBST(AVCODEC_HEADER)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
+AC_ARG_ENABLE([a52],
Jaroslav Kysela 8ac4c9
+      AS_HELP_STRING([--disable-a52], [Disable building of A52 encoder plugin]))
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+if test "x$enable_a52" != "xno" -a "$HAVE_AVCODEC" = "yes"; then
Jaroslav Kysela 8ac4c9
+  HAVE_A52=yes
Jaroslav Kysela 8ac4c9
+fi
Jaroslav Kysela 8ac4c9
+AM_CONDITIONAL(HAVE_A52, test x$HAVE_A52 = xyes)
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+AC_ARG_ENABLE([avcrate],
Jaroslav Kysela 8ac4c9
+      AS_HELP_STRING([--disable-avcrate], [Disable building of AVC rate plugin]))
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+if test "x$enable_avcrate" != "xno" -a "$HAVE_AVCODEC" = "yes"; then
Jaroslav Kysela 8ac4c9
+  HAVE_AVCRATE=yes
Jaroslav Kysela 8ac4c9
+fi
Jaroslav Kysela 8ac4c9
+AM_CONDITIONAL(HAVE_AVCRATE, test x$HAVE_AVCRATE = xyes)
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
 AC_ARG_ENABLE([speexdsp],
Jaroslav Kysela 8ac4c9
       AS_HELP_STRING([--disable-speexdsp], [Disable building of speexdsp plugin]))
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
@@ -260,12 +276,14 @@ if test "$HAVE_SAMPLERATE" = "yes"; then
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
 echo "Maemo plugin:       $HAVE_MAEMO_PLUGIN"
Jaroslav Kysela 8ac4c9
 echo "  Using Osso resource manager: $use_maemo_rm"
Jaroslav Kysela 8ac4c9
-echo "A52, lavc plugins:  $HAVE_AVCODEC"
Jaroslav Kysela 8ac4c9
 if test "$HAVE_AVCODEC" = "yes"; then
Jaroslav Kysela 8ac4c9
+  echo "AVCodec config:"
Jaroslav Kysela 8ac4c9
   echo "  AVCODEC_CFLAGS: $AVCODEC_CFLAGS"
Jaroslav Kysela 8ac4c9
   echo "  AVCODEC_LIBS: $AVCODEC_LIBS"
Jaroslav Kysela 8ac4c9
   echo "  AVCODEC_HEADER: $AVCODEC_HEADER"
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
+echo "A52 plugin:         $HAVE_A52"
Jaroslav Kysela 8ac4c9
+echo "AVC rate plugin:    $HAVE_AVCRATE"
Jaroslav Kysela 8ac4c9
 echo "Speex rate plugin:  $PPH"
Jaroslav Kysela 8ac4c9
 echo "Speex preprocess plugin:  $HAVE_SPEEXDSP"
Jaroslav Kysela 8ac4c9
 if test "$HAVE_SPEEX" = "yes"; then
Jaroslav Kysela 8ac4c9
diff --git a/doc/Makefile.am b/doc/Makefile.am
Jaroslav Kysela 8ac4c9
index 19fa0d2..0d6f6e5 100644
Jaroslav Kysela 8ac4c9
--- a/doc/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/doc/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,4 +1,35 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = README-pcm-oss README-jack README-pulse README-maemo \
Jaroslav Kysela 8ac4c9
-	upmix.txt vdownmix.txt samplerate.txt a52.txt lavcrate.txt \
Jaroslav Kysela 8ac4c9
-	speexrate.txt speexdsp.txt README-arcam-av
Jaroslav Kysela 8ac4c9
+EXTRA_DIST =
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
+if HAVE_OSS
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += README-pcm-oss
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_MIX
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += upmix.txt vdownmix.txt
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_JACK
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += README-jack
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_PULSE
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += README-pulse
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_MAEMO_PLUGIN
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += README-maemo
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_SAMPLERATE
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += samplerate.txt
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_A52
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += a52.txt
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_AVCRATE
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += lavcrate.txt
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_PPH
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += speexrate.txt
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_SPEEXDSP
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += speexdsp.txt
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
+if HAVE_ARCAMAV
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += README-arcam-av
Jaroslav Kysela 8ac4c9
+endif
Jaroslav Kysela 8ac4c9
-- 
Jaroslav Kysela 8ac4c9
2.13.6
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
From 24db7f59d76984e2901f2834a297735853cab776 Mon Sep 17 00:00:00 2001
Jaroslav Kysela 8ac4c9
From: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 8ac4c9
Date: Mon, 16 Apr 2018 16:24:29 +0200
Jaroslav Kysela 8ac4c9
Subject: [PATCH 4/6] Move rate-lavc to rate-lav subdirectory and update to use
Jaroslav Kysela 8ac4c9
 libavresample
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
- --disable-avcodec renamed to --disable-libav
Jaroslav Kysela 8ac4c9
- --avcodec-includedir renamed to --libav-includedir
Jaroslav Kysela 8ac4c9
- --avcodec-libdir renamed to --libav-libdir
Jaroslav Kysela 8ac4c9
- --disable-lavcrate renamed to --disable-lavrate
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
The .c changes are from Anton Khirnov. The rest is from Jaroslav Kysela.
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
From: Anton Khirnov
Jaroslav Kysela 8ac4c9
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 8ac4c9
---
Jaroslav Kysela 8ac4c9
 Makefile.am                                        |   4 +-
Jaroslav Kysela 8ac4c9
 a52/Makefile.am                                    |   5 +-
Jaroslav Kysela 8ac4c9
 a52/pcm_a52.c                                      |   2 +-
Jaroslav Kysela 8ac4c9
 configure.ac                                       |  85 +++---
Jaroslav Kysela 8ac4c9
 doc/Makefile.am                                    |   4 +-
Jaroslav Kysela 8ac4c9
 doc/{lavcrate.txt => lavrate.txt}                  |  10 +-
Jaroslav Kysela 8ac4c9
 .../10-rate-lavc.conf => rate-lav/10-rate-lav.conf |   6 +-
Jaroslav Kysela 8ac4c9
 rate-lav/Makefile.am                               |  25 ++
Jaroslav Kysela 8ac4c9
 {rate-lavc => rate-lav}/gcd.h                      |   0
Jaroslav Kysela 8ac4c9
 rate-lav/rate_lavrate.c                            | 235 +++++++++++++++++
Jaroslav Kysela 8ac4c9
 rate-lavc/Makefile.am                              |  26 --
Jaroslav Kysela 8ac4c9
 rate-lavc/rate_lavcrate.c                          | 291 ---------------------
Jaroslav Kysela 8ac4c9
 12 files changed, 311 insertions(+), 382 deletions(-)
Jaroslav Kysela 8ac4c9
 rename doc/{lavcrate.txt => lavrate.txt} (76%)
Jaroslav Kysela 8ac4c9
 rename rate-lavc/10-rate-lavc.conf => rate-lav/10-rate-lav.conf (73%)
Jaroslav Kysela 8ac4c9
 create mode 100644 rate-lav/Makefile.am
Jaroslav Kysela 8ac4c9
 rename {rate-lavc => rate-lav}/gcd.h (100%)
Jaroslav Kysela 8ac4c9
 create mode 100644 rate-lav/rate_lavrate.c
Jaroslav Kysela 8ac4c9
 delete mode 100644 rate-lavc/Makefile.am
Jaroslav Kysela 8ac4c9
 delete mode 100644 rate-lavc/rate_lavcrate.c
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
diff --git a/Makefile.am b/Makefile.am
Jaroslav Kysela 8ac4c9
index 303bc83..27f61a4 100644
Jaroslav Kysela 8ac4c9
--- a/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -17,8 +17,8 @@ endif
Jaroslav Kysela 8ac4c9
 if HAVE_A52
Jaroslav Kysela 8ac4c9
 SUBDIRS += a52
Jaroslav Kysela 8ac4c9
 endif
Jaroslav Kysela 8ac4c9
-if HAVE_AVCRATE
Jaroslav Kysela 8ac4c9
-SUBDIRS += rate-lavc
Jaroslav Kysela 8ac4c9
+if HAVE_LAVRATE
Jaroslav Kysela 8ac4c9
+SUBDIRS += rate-lav
Jaroslav Kysela 8ac4c9
 endif
Jaroslav Kysela 8ac4c9
 if HAVE_USBSTREAM
Jaroslav Kysela 8ac4c9
 SUBDIRS += usb_stream
Jaroslav Kysela 8ac4c9
diff --git a/a52/Makefile.am b/a52/Makefile.am
Jaroslav Kysela 8ac4c9
index cbc1497..4ac8edd 100644
Jaroslav Kysela 8ac4c9
--- a/a52/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/a52/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -6,9 +6,8 @@ asound_module_addon_DATA = 60-a52-encoder.conf
Jaroslav Kysela 8ac4c9
 asound_module_pcm_a52dir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
 asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@ \
Jaroslav Kysela 8ac4c9
-	-DAVCODEC_HEADER="@AVCODEC_HEADER@"
Jaroslav Kysela 8ac4c9
+AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @LIBAV_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_a52_la_SOURCES = pcm_a52.c
Jaroslav Kysela 8ac4c9
-libasound_module_pcm_a52_la_LIBADD = @ALSA_LIBS@ @AVCODEC_LIBS@
Jaroslav Kysela 8ac4c9
+libasound_module_pcm_a52_la_LIBADD = @ALSA_LIBS@ @LIBAV_LIBS@ @LIBAV_CODEC_LIBS@
Jaroslav Kysela 8ac4c9
diff --git a/a52/pcm_a52.c b/a52/pcm_a52.c
Jaroslav Kysela 8ac4c9
index 155da36..29ce45f 100644
Jaroslav Kysela 8ac4c9
--- a/a52/pcm_a52.c
Jaroslav Kysela 8ac4c9
+++ b/a52/pcm_a52.c
Jaroslav Kysela 8ac4c9
@@ -25,7 +25,7 @@
Jaroslav Kysela 8ac4c9
 #include <alsa/asoundlib.h>
Jaroslav Kysela 8ac4c9
 #include <alsa/pcm_external.h>
Jaroslav Kysela 8ac4c9
 #include <alsa/pcm_plugin.h>
Jaroslav Kysela 8ac4c9
-#include AVCODEC_HEADER
Jaroslav Kysela 8ac4c9
+#include <libavcodec/avcodec.h>
Jaroslav Kysela 8ac4c9
 #include <libavutil/avutil.h>
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 /* some compatibility wrappers */
Jaroslav Kysela 8ac4c9
diff --git a/configure.ac b/configure.ac
Jaroslav Kysela 8ac4c9
index 2d7e6aa..cb1ae2d 100644
Jaroslav Kysela 8ac4c9
--- a/configure.ac
Jaroslav Kysela 8ac4c9
+++ b/configure.ac
Jaroslav Kysela 8ac4c9
@@ -89,67 +89,55 @@ if test "$use_maemo_rm" = "yes"; then
Jaroslav Kysela 8ac4c9
         fi
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-AC_ARG_ENABLE([avcodec],
Jaroslav Kysela 8ac4c9
-      AS_HELP_STRING([--disable-avcodec], [Don't build plugins depending on avcodec (a52)]))
Jaroslav Kysela 8ac4c9
+AC_ARG_ENABLE([libav],
Jaroslav Kysela 8ac4c9
+      AS_HELP_STRING([--disable-avlib], [Do not build plugins depending on libav/ffmpeg (a52,lavrate...)]))
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-if test "x$enable_avcodec" != "xno"; then
Jaroslav Kysela 8ac4c9
-  PKG_CHECK_MODULES(AVCODEC, [libavcodec libavutil], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no])
Jaroslav Kysela 8ac4c9
+if test "x$enable_libav" != "xno"; then
Jaroslav Kysela 8ac4c9
+  PKG_CHECK_MODULES(LIBAV, [libavcodec libavutil libavresample], [HAVE_LIBAV=yes], [HAVE_LIBAV=no])
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-if test "x$HAVE_AVCODEC" = "xno"; then
Jaroslav Kysela 8ac4c9
-  AC_ARG_WITH([avcodec-includedir],
Jaroslav Kysela 8ac4c9
-	AS_HELP_STRING([--with-avcodec-includedir=dir],
Jaroslav Kysela 8ac4c9
-		[AVcodec include directory]),
Jaroslav Kysela 8ac4c9
-	[AVCODEC_CFLAGS="-I$withval"], [AVCODEC_CFLAGS=""])
Jaroslav Kysela 8ac4c9
-  AC_ARG_WITH([avcodec-libdir],
Jaroslav Kysela 8ac4c9
-	AS_HELP_STRING([--with-avcodec-libdir=dir],
Jaroslav Kysela 8ac4c9
-		[AVcodec library directory]),
Jaroslav Kysela 8ac4c9
-	[AVCODEC_LIBS="-L$withval"], [AVCODEC_LIBS=""])
Jaroslav Kysela 8ac4c9
+if test "x$HAVE_LIBAV" = "xno"; then
Jaroslav Kysela 8ac4c9
+  AC_ARG_WITH([libav-includedir],
Jaroslav Kysela 8ac4c9
+	AS_HELP_STRING([--with-libav-includedir=dir],
Jaroslav Kysela 8ac4c9
+		[Libav/ffmpeg include directory]),
Jaroslav Kysela 8ac4c9
+		[LIBAV_CFLAGS="-I$(withval)"], [LIBAV_CFLAGS=""])
Jaroslav Kysela 8ac4c9
+  AC_ARG_WITH([libav-libdir],
Jaroslav Kysela 8ac4c9
+	AS_HELP_STRING([--with-libav-libdir=dir],
Jaroslav Kysela 8ac4c9
+		[Libav/ffmpeg library directory]),
Jaroslav Kysela 8ac4c9
+		[LIBAV_LIBS="-L$withval"], [LIBAV_LIBS=""])
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
   CFLAGS_saved="$CFLAGS"
Jaroslav Kysela 8ac4c9
   LDFLAGS_saved="$LDFLAGS"
Jaroslav Kysela 8ac4c9
-  CFLAGS="$CFLAGS $AVCODEC_CFLAGS"
Jaroslav Kysela 8ac4c9
-  LDFLAGS="$LDFLAGS $AVCODEC_LIBS"
Jaroslav Kysela 8ac4c9
-  AVCODEC_LIBS="$AVCODEC_LIBS -lavcodec"
Jaroslav Kysela 8ac4c9
-  AC_CHECK_LIB([avcodec], [avcodec_open], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no])
Jaroslav Kysela 8ac4c9
+  CFLAGS="$CFLAGS $LIBAV_CFLAGS"
Jaroslav Kysela 8ac4c9
+  LDFLAGS="$LDFLAGS $LIBAV_LIBS"
Jaroslav Kysela 8ac4c9
+  AC_CHECK_LIB([avcodec], [avcodec_open], [HAVE_LIBAV=yes], [HAVE_LIBAV=no])
Jaroslav Kysela 8ac4c9
   CFLAGS="$CFLAGS_saved"
Jaroslav Kysela 8ac4c9
   LDFLAGS="$LDFLAGS_saved"
Jaroslav Kysela 8ac4c9
+  LIBAV_CODEC_LIBS="-lavcodec"
Jaroslav Kysela 8ac4c9
+  LIBAV_RESAMPLE_LIBS="-lavresample -lavutil"
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-if test $HAVE_AVCODEC = yes; then
Jaroslav Kysela 8ac4c9
-  AVCODEC_HEADER=""
Jaroslav Kysela 8ac4c9
-  CFLAGS_saved="$CFLAGS"
Jaroslav Kysela 8ac4c9
-  CFLAGS="$CFLAGS $AVCODEC_CFLAGS"
Jaroslav Kysela 8ac4c9
-  AC_CHECK_HEADER([ffmpeg/avcodec.h], [AVCODEC_HEADER='<ffmpeg/avcodec.h>'])
Jaroslav Kysela 8ac4c9
-  if test -z "$AVCODEC_HEADER"; then
Jaroslav Kysela 8ac4c9
-    AC_CHECK_HEADER([libavcodec/avcodec.h], [AVCODEC_HEADER='<libavcodec/avcodec.h>'])
Jaroslav Kysela 8ac4c9
-  fi
Jaroslav Kysela 8ac4c9
-  if test -z "$AVCODEC_HEADER"; then
Jaroslav Kysela 8ac4c9
-    HAVE_AVCODEC=no
Jaroslav Kysela 8ac4c9
-  fi
Jaroslav Kysela 8ac4c9
-  CFLAGS="$CFLAGS_saved"
Jaroslav Kysela 8ac4c9
-fi
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-AM_CONDITIONAL(HAVE_AVCODEC, test x$HAVE_AVCODEC = xyes)
Jaroslav Kysela 8ac4c9
-AC_SUBST(AVCODEC_CFLAGS)
Jaroslav Kysela 8ac4c9
-AC_SUBST(AVCODEC_LIBS)
Jaroslav Kysela 8ac4c9
-AC_SUBST(AVCODEC_HEADER)
Jaroslav Kysela 8ac4c9
+AM_CONDITIONAL(HAVE_LIBAV, test x$HAVE_LIBAV = xyes)
Jaroslav Kysela 8ac4c9
+AC_SUBST(LIBAV_CFLAGS)
Jaroslav Kysela 8ac4c9
+AC_SUBST(LIBAV_LIBS)
Jaroslav Kysela 8ac4c9
+AC_SUBST(LIBAV_CODEC_LIBS)
Jaroslav Kysela 8ac4c9
+AC_SUBST(LIBAV_RESAMPLE_LIBS)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AC_ARG_ENABLE([a52],
Jaroslav Kysela 8ac4c9
       AS_HELP_STRING([--disable-a52], [Disable building of A52 encoder plugin]))
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-if test "x$enable_a52" != "xno" -a "$HAVE_AVCODEC" = "yes"; then
Jaroslav Kysela 8ac4c9
+if test "x$enable_a52" != "xno" -a "$HAVE_LIBAV" = "yes"; then
Jaroslav Kysela 8ac4c9
   HAVE_A52=yes
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
 AM_CONDITIONAL(HAVE_A52, test x$HAVE_A52 = xyes)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-AC_ARG_ENABLE([avcrate],
Jaroslav Kysela 8ac4c9
-      AS_HELP_STRING([--disable-avcrate], [Disable building of AVC rate plugin]))
Jaroslav Kysela 8ac4c9
+AC_ARG_ENABLE([lavrate],
Jaroslav Kysela 8ac4c9
+      AS_HELP_STRING([--disable-lavrate], [Disable building of libav/ffmpeg rate plugin]))
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-if test "x$enable_avcrate" != "xno" -a "$HAVE_AVCODEC" = "yes"; then
Jaroslav Kysela 8ac4c9
-  HAVE_AVCRATE=yes
Jaroslav Kysela 8ac4c9
+if test "x$enable_lavrate" != "xno" -a "$HAVE_LIBAV" = "yes"; then
Jaroslav Kysela 8ac4c9
+  HAVE_LAVRATE=yes
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
-AM_CONDITIONAL(HAVE_AVCRATE, test x$HAVE_AVCRATE = xyes)
Jaroslav Kysela 8ac4c9
+AM_CONDITIONAL(HAVE_LAVRATE, test x$HAVE_LAVRATE = xyes)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AC_ARG_ENABLE([speexdsp],
Jaroslav Kysela 8ac4c9
       AS_HELP_STRING([--disable-speexdsp], [Disable building of speexdsp plugin]))
Jaroslav Kysela 8ac4c9
@@ -245,7 +233,7 @@ AC_OUTPUT([
Jaroslav Kysela 8ac4c9
 	mix/Makefile
Jaroslav Kysela 8ac4c9
 	rate/Makefile
Jaroslav Kysela 8ac4c9
 	a52/Makefile
Jaroslav Kysela 8ac4c9
-	rate-lavc/Makefile
Jaroslav Kysela 8ac4c9
+	rate-lav/Makefile
Jaroslav Kysela 8ac4c9
 	maemo/Makefile
Jaroslav Kysela 8ac4c9
 	doc/Makefile
Jaroslav Kysela 8ac4c9
 	usb_stream/Makefile
Jaroslav Kysela 8ac4c9
@@ -276,14 +264,13 @@ if test "$HAVE_SAMPLERATE" = "yes"; then
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
 echo "Maemo plugin:       $HAVE_MAEMO_PLUGIN"
Jaroslav Kysela 8ac4c9
 echo "  Using Osso resource manager: $use_maemo_rm"
Jaroslav Kysela 8ac4c9
-if test "$HAVE_AVCODEC" = "yes"; then
Jaroslav Kysela 8ac4c9
-  echo "AVCodec config:"
Jaroslav Kysela 8ac4c9
-  echo "  AVCODEC_CFLAGS: $AVCODEC_CFLAGS"
Jaroslav Kysela 8ac4c9
-  echo "  AVCODEC_LIBS: $AVCODEC_LIBS"
Jaroslav Kysela 8ac4c9
-  echo "  AVCODEC_HEADER: $AVCODEC_HEADER"
Jaroslav Kysela 8ac4c9
+if test "$HAVE_LIBAV" = "yes"; then
Jaroslav Kysela 8ac4c9
+  echo "Libav/ffmpeg config:"
Jaroslav Kysela 8ac4c9
+  echo "  LIBAV_CFLAGS:   $LIBAV_CFLAGS"
Jaroslav Kysela 8ac4c9
+  echo "  LIBAV_LIBS:     $LIBAV_LIBS / $LIBAV_CODEC_LIBS / $LIBAV_RESAMPLE_LIBS"
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
-echo "A52 plugin:         $HAVE_A52"
Jaroslav Kysela 8ac4c9
-echo "AVC rate plugin:    $HAVE_AVCRATE"
Jaroslav Kysela 8ac4c9
+echo "Libav A52 plugin:   $HAVE_A52"
Jaroslav Kysela 8ac4c9
+echo "Libav rate plugin:  $HAVE_LAVRATE"
Jaroslav Kysela 8ac4c9
 echo "Speex rate plugin:  $PPH"
Jaroslav Kysela 8ac4c9
 echo "Speex preprocess plugin:  $HAVE_SPEEXDSP"
Jaroslav Kysela 8ac4c9
 if test "$HAVE_SPEEX" = "yes"; then
Jaroslav Kysela 8ac4c9
diff --git a/doc/Makefile.am b/doc/Makefile.am
Jaroslav Kysela 8ac4c9
index 0d6f6e5..7c004e5 100644
Jaroslav Kysela 8ac4c9
--- a/doc/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/doc/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -21,8 +21,8 @@ endif
Jaroslav Kysela 8ac4c9
 if HAVE_A52
Jaroslav Kysela 8ac4c9
 EXTRA_DIST += a52.txt
Jaroslav Kysela 8ac4c9
 endif
Jaroslav Kysela 8ac4c9
-if HAVE_AVCRATE
Jaroslav Kysela 8ac4c9
-EXTRA_DIST += lavcrate.txt
Jaroslav Kysela 8ac4c9
+if HAVE_LAVRATE
Jaroslav Kysela 8ac4c9
+EXTRA_DIST += lavrate.txt
Jaroslav Kysela 8ac4c9
 endif
Jaroslav Kysela 8ac4c9
 if HAVE_PPH
Jaroslav Kysela 8ac4c9
 EXTRA_DIST += speexrate.txt
Jaroslav Kysela 8ac4c9
diff --git a/doc/lavcrate.txt b/doc/lavrate.txt
Jaroslav Kysela 8ac4c9
similarity index 76%
Jaroslav Kysela 8ac4c9
rename from doc/lavcrate.txt
Jaroslav Kysela 8ac4c9
rename to doc/lavrate.txt
Jaroslav Kysela 8ac4c9
index faf3e25..6575183 100644
Jaroslav Kysela 8ac4c9
--- a/doc/lavcrate.txt
Jaroslav Kysela 8ac4c9
+++ b/doc/lavrate.txt
Jaroslav Kysela 8ac4c9
@@ -1,14 +1,14 @@
Jaroslav Kysela 8ac4c9
-Rate Converter Plugin Using libavcodec
Jaroslav Kysela 8ac4c9
-======================================
Jaroslav Kysela 8ac4c9
+Rate Converter Plugin Using libavresample
Jaroslav Kysela 8ac4c9
+=========================================0
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-The plugin in rate-lavc subdirectory is an external rate converter using
Jaroslav Kysela 8ac4c9
-libavcodec's resampler.  You can use this rate converter plugin by defining a
Jaroslav Kysela 8ac4c9
+The plugin in rate-lavr subdirectory is an external rate converter using
Jaroslav Kysela 8ac4c9
+libavresample library. You can use this rate converter plugin by defining a
Jaroslav Kysela 8ac4c9
 rate PCM with "converter" parameter, such as:
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 	pcm.my_rate {
Jaroslav Kysela 8ac4c9
 		type rate
Jaroslav Kysela 8ac4c9
 		slave.pcm "hw"
Jaroslav Kysela 8ac4c9
-		converter "lavcrate"
Jaroslav Kysela 8ac4c9
+		converter "lavrate"
Jaroslav Kysela 8ac4c9
 	}
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 The plug plugin has also a similar field, "rate_converter".
Jaroslav Kysela 8ac4c9
diff --git a/rate-lavc/10-rate-lavc.conf b/rate-lav/10-rate-lav.conf
Jaroslav Kysela 8ac4c9
similarity index 73%
Jaroslav Kysela 8ac4c9
rename from rate-lavc/10-rate-lavc.conf
Jaroslav Kysela 8ac4c9
rename to rate-lav/10-rate-lav.conf
Jaroslav Kysela 8ac4c9
index bab1694..48ede62 100644
Jaroslav Kysela 8ac4c9
--- a/rate-lavc/10-rate-lavc.conf
Jaroslav Kysela 8ac4c9
+++ b/rate-lav/10-rate-lav.conf
Jaroslav Kysela 8ac4c9
@@ -1,4 +1,4 @@
Jaroslav Kysela 8ac4c9
-pcm.lavcrate {
Jaroslav Kysela 8ac4c9
+pcm.lavrate {
Jaroslav Kysela 8ac4c9
 	@args [ SLAVE RATE CONVERTER ]
Jaroslav Kysela 8ac4c9
 	@args.SLAVE {
Jaroslav Kysela 8ac4c9
 		type string
Jaroslav Kysela 8ac4c9
@@ -10,7 +10,7 @@ pcm.lavcrate {
Jaroslav Kysela 8ac4c9
 	}
Jaroslav Kysela 8ac4c9
 	@args.CONVERTER {
Jaroslav Kysela 8ac4c9
 		type string
Jaroslav Kysela 8ac4c9
-		default "lavcrate"
Jaroslav Kysela 8ac4c9
+		default "lavrate"
Jaroslav Kysela 8ac4c9
 	}
Jaroslav Kysela 8ac4c9
 	type rate
Jaroslav Kysela 8ac4c9
 	converter $CONVERTER
Jaroslav Kysela 8ac4c9
@@ -23,6 +23,6 @@ pcm.lavcrate {
Jaroslav Kysela 8ac4c9
 			@func refer
Jaroslav Kysela 8ac4c9
 			name defaults.namehint.basic
Jaroslav Kysela 8ac4c9
 		}
Jaroslav Kysela 8ac4c9
-                description "Rate Converter Plugin Using AVC Library"
Jaroslav Kysela 8ac4c9
+                description "Rate Converter Plugin Using Libav/FFmpeg Library"
Jaroslav Kysela 8ac4c9
 	}
Jaroslav Kysela 8ac4c9
 }
Jaroslav Kysela 8ac4c9
diff --git a/rate-lav/Makefile.am b/rate-lav/Makefile.am
Jaroslav Kysela 8ac4c9
new file mode 100644
Jaroslav Kysela 8ac4c9
index 0000000..0f6ecb6
Jaroslav Kysela 8ac4c9
--- /dev/null
Jaroslav Kysela 8ac4c9
+++ b/rate-lav/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -0,0 +1,25 @@
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = 10-rate-lav.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+asound_module_rate_lavrate_LTLIBRARIES = libasound_module_rate_lavrate.la
Jaroslav Kysela 8ac4c9
+asound_module_addon_DATA = 10-rate-lav.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+asound_module_rate_lavratedir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @LIBAV_CFLAGS@
Jaroslav Kysela 8ac4c9
+AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+libasound_module_rate_lavrate_la_SOURCES = rate_lavrate.c
Jaroslav Kysela 8ac4c9
+libasound_module_rate_lavrate_la_LIBADD = @ALSA_LIBS@ @LIBAV_LIBS@ @LIBAV_RESAMPLE_LIBS@
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+noinst_HEADERS = gcd.h
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-exec-hook:
Jaroslav Kysela 8ac4c9
+	rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_*.so
Jaroslav Kysela 8ac4c9
+	$(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_higher.so
Jaroslav Kysela 8ac4c9
+	$(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_high.so
Jaroslav Kysela 8ac4c9
+	$(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_fast.so
Jaroslav Kysela 8ac4c9
+	$(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_faster.so
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-hook:
Jaroslav Kysela 8ac4c9
+	rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_*.so
Jaroslav Kysela 8ac4c9
diff --git a/rate-lavc/gcd.h b/rate-lav/gcd.h
Jaroslav Kysela 8ac4c9
similarity index 100%
Jaroslav Kysela 8ac4c9
rename from rate-lavc/gcd.h
Jaroslav Kysela 8ac4c9
rename to rate-lav/gcd.h
Jaroslav Kysela 8ac4c9
diff --git a/rate-lav/rate_lavrate.c b/rate-lav/rate_lavrate.c
Jaroslav Kysela 8ac4c9
new file mode 100644
Jaroslav Kysela 8ac4c9
index 0000000..2b992c5
Jaroslav Kysela 8ac4c9
--- /dev/null
Jaroslav Kysela 8ac4c9
+++ b/rate-lav/rate_lavrate.c
Jaroslav Kysela 8ac4c9
@@ -0,0 +1,235 @@
Jaroslav Kysela 8ac4c9
+/*
Jaroslav Kysela 8ac4c9
+ * Rate converter plugin using libavresample
Jaroslav Kysela 8ac4c9
+ * Copyright (c) 2014 by Anton Khirnov
Jaroslav Kysela 8ac4c9
+ *
Jaroslav Kysela 8ac4c9
+ * This library is free software; you can redistribute it and/or
Jaroslav Kysela 8ac4c9
+ * modify it under the terms of the GNU Lesser General Public
Jaroslav Kysela 8ac4c9
+ * License as published by the Free Software Foundation; either
Jaroslav Kysela 8ac4c9
+ * version 2.1 of the License, or (at your option) any later version.
Jaroslav Kysela 8ac4c9
+ *
Jaroslav Kysela 8ac4c9
+ * This library is distributed in the hope that it will be useful,
Jaroslav Kysela 8ac4c9
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
Jaroslav Kysela 8ac4c9
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Jaroslav Kysela 8ac4c9
+ * Lesser General Public License for more details.
Jaroslav Kysela 8ac4c9
+ */
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+#include <stdio.h>
Jaroslav Kysela 8ac4c9
+#include <alsa/asoundlib.h>
Jaroslav Kysela 8ac4c9
+#include <alsa/pcm_rate.h>
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+#include <libavresample/avresample.h>
Jaroslav Kysela 8ac4c9
+#include <libavutil/channel_layout.h>
Jaroslav Kysela 8ac4c9
+#include <libavutil/opt.h>
Jaroslav Kysela 8ac4c9
+#include <libavutil/mathematics.h>
Jaroslav Kysela 8ac4c9
+#include <libavutil/samplefmt.h>
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static unsigned int filter_size = 16;
Jaroslav Kysela 8ac4c9
+static unsigned int phase_shift = 10; /* auto-adjusts */
Jaroslav Kysela 8ac4c9
+static double cutoff = 0; /* auto-adjusts */
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+struct rate_src {
Jaroslav Kysela 8ac4c9
+	AVAudioResampleContext *avr;
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+	unsigned int in_rate;
Jaroslav Kysela 8ac4c9
+	unsigned int out_rate;
Jaroslav Kysela 8ac4c9
+	unsigned int channels;
Jaroslav Kysela 8ac4c9
+};
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static snd_pcm_uframes_t input_frames(void *obj ATTRIBUTE_UNUSED,
Jaroslav Kysela 8ac4c9
+				      snd_pcm_uframes_t frames)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	return frames;
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static snd_pcm_uframes_t output_frames(void *obj ATTRIBUTE_UNUSED,
Jaroslav Kysela 8ac4c9
+				       snd_pcm_uframes_t frames)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	return frames;
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static void pcm_src_free(void *obj)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
+	avresample_free(&rate->avr);
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static int pcm_src_init(void *obj, snd_pcm_rate_info_t *info)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
+	int i, ir, or;
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+	if (!rate->avr || rate->channels != info->channels) {
Jaroslav Kysela 8ac4c9
+		int ret;
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+		pcm_src_free(rate);
Jaroslav Kysela 8ac4c9
+		rate->channels = info->channels;
Jaroslav Kysela 8ac4c9
+		ir = rate->in_rate = info->in.rate;
Jaroslav Kysela 8ac4c9
+		or = rate->out_rate = info->out.rate;
Jaroslav Kysela 8ac4c9
+		i = av_gcd(or, ir);
Jaroslav Kysela 8ac4c9
+		if (or > ir) {
Jaroslav Kysela 8ac4c9
+			phase_shift = or/i;
Jaroslav Kysela 8ac4c9
+		} else {
Jaroslav Kysela 8ac4c9
+			phase_shift = ir/i;
Jaroslav Kysela 8ac4c9
+		}
Jaroslav Kysela 8ac4c9
+		if (cutoff <= 0.0) {
Jaroslav Kysela 8ac4c9
+			cutoff = 1.0 - 1.0/filter_size;
Jaroslav Kysela 8ac4c9
+			if (cutoff < 0.80)
Jaroslav Kysela 8ac4c9
+				cutoff = 0.80;
Jaroslav Kysela 8ac4c9
+		}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+		rate->avr = avresample_alloc_context();
Jaroslav Kysela 8ac4c9
+		if (!rate->avr)
Jaroslav Kysela 8ac4c9
+			return -ENOMEM;
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+		av_opt_set_int(rate->avr, "in_sample_rate",     info->in.rate,  0);
Jaroslav Kysela 8ac4c9
+		av_opt_set_int(rate->avr, "out_sample_rate",    info->out.rate, 0);
Jaroslav Kysela 8ac4c9
+		av_opt_set_int(rate->avr, "in_sample_format",   AV_SAMPLE_FMT_S16, 0);
Jaroslav Kysela 8ac4c9
+		av_opt_set_int(rate->avr, "out_sample_format",  AV_SAMPLE_FMT_S16, 0);
Jaroslav Kysela 8ac4c9
+		av_opt_set_int(rate->avr, "in_channel_layout",  av_get_default_channel_layout(rate->channels), 0);
Jaroslav Kysela 8ac4c9
+		av_opt_set_int(rate->avr, "out_channel_layout", av_get_default_channel_layout(rate->channels), 0);
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+		av_opt_set_int(rate->avr, "filter_size",        filter_size, 0);
Jaroslav Kysela 8ac4c9
+		av_opt_set_int(rate->avr, "phase_shift",        phase_shift, 0);
Jaroslav Kysela 8ac4c9
+		av_opt_set_double(rate->avr, "cutoff",          cutoff,      0);
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+		ret = avresample_open(rate->avr);
Jaroslav Kysela 8ac4c9
+		if (ret < 0) {
Jaroslav Kysela 8ac4c9
+			avresample_free(&rate->avr);
Jaroslav Kysela 8ac4c9
+			return -EINVAL;
Jaroslav Kysela 8ac4c9
+		}
Jaroslav Kysela 8ac4c9
+	}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+	return 0;
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static int pcm_src_adjust_pitch(void *obj, snd_pcm_rate_info_t *info)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+	if (info->out.rate != rate->out_rate || info->in.rate != rate->in_rate)
Jaroslav Kysela 8ac4c9
+		pcm_src_init(obj, info);
Jaroslav Kysela 8ac4c9
+	return 0;
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static void pcm_src_reset(void *obj)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+	if (rate->avr) {
Jaroslav Kysela 8ac4c9
+#if 0
Jaroslav Kysela 8ac4c9
+		avresample_close(rate->avr);
Jaroslav Kysela 8ac4c9
+		avresample_open(rate->avr);
Jaroslav Kysela 8ac4c9
+#endif
Jaroslav Kysela 8ac4c9
+	}
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static void pcm_src_convert_s16(void *obj, int16_t *dst,
Jaroslav Kysela 8ac4c9
+				unsigned int dst_frames,
Jaroslav Kysela 8ac4c9
+				const int16_t *src,
Jaroslav Kysela 8ac4c9
+				unsigned int src_frames)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
+	int chans = rate->channels;
Jaroslav Kysela 8ac4c9
+	unsigned int total_in = avresample_get_delay(rate->avr) + src_frames;
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+	avresample_convert(rate->avr, (uint8_t **)&dst, dst_frames * chans * 2, dst_frames,
Jaroslav Kysela 8ac4c9
+	                   (uint8_t **)&src, src_frames * chans * 2, src_frames);
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+	avresample_set_compensation(rate->avr,
Jaroslav Kysela 8ac4c9
+                                    total_in - src_frames > filter_size ? 0 : 1, src_frames);
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static void pcm_src_close(void *obj)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	pcm_src_free(obj);
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
Jaroslav Kysela 8ac4c9
+static int get_supported_rates(void *obj ATTRIBUTE_UNUSED,
Jaroslav Kysela 8ac4c9
+			       unsigned int *rate_min,
Jaroslav Kysela 8ac4c9
+			       unsigned int *rate_max)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	*rate_min = *rate_max = 0; /* both unlimited */
Jaroslav Kysela 8ac4c9
+	return 0;
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static void dump(void *obj ATTRIBUTE_UNUSED, snd_output_t *out)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	snd_output_printf(out, "Converter: libavr\n");
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+#endif
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+static snd_pcm_rate_ops_t pcm_src_ops = {
Jaroslav Kysela 8ac4c9
+	.close = pcm_src_close,
Jaroslav Kysela 8ac4c9
+	.init = pcm_src_init,
Jaroslav Kysela 8ac4c9
+	.free = pcm_src_free,
Jaroslav Kysela 8ac4c9
+	.reset = pcm_src_reset,
Jaroslav Kysela 8ac4c9
+	.adjust_pitch = pcm_src_adjust_pitch,
Jaroslav Kysela 8ac4c9
+	.convert_s16 = pcm_src_convert_s16,
Jaroslav Kysela 8ac4c9
+	.input_frames = input_frames,
Jaroslav Kysela 8ac4c9
+	.output_frames = output_frames,
Jaroslav Kysela 8ac4c9
+#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
Jaroslav Kysela 8ac4c9
+	.version = SND_PCM_RATE_PLUGIN_VERSION,
Jaroslav Kysela 8ac4c9
+	.get_supported_rates = get_supported_rates,
Jaroslav Kysela 8ac4c9
+	.dump = dump,
Jaroslav Kysela 8ac4c9
+#endif
Jaroslav Kysela 8ac4c9
+};
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+int pcm_src_open(unsigned int version, void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	struct rate_src *rate;
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+#if SND_PCM_RATE_PLUGIN_VERSION < 0x010002
Jaroslav Kysela 8ac4c9
+	if (version != SND_PCM_RATE_PLUGIN_VERSION) {
Jaroslav Kysela 8ac4c9
+		fprintf(stderr, "Invalid rate plugin version %x\n", version);
Jaroslav Kysela 8ac4c9
+		return -EINVAL;
Jaroslav Kysela 8ac4c9
+	}
Jaroslav Kysela 8ac4c9
+#endif
Jaroslav Kysela 8ac4c9
+	rate = calloc(1, sizeof(*rate));
Jaroslav Kysela 8ac4c9
+	if (!rate)
Jaroslav Kysela 8ac4c9
+		return -ENOMEM;
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+	*objp = rate;
Jaroslav Kysela 8ac4c9
+	rate->avr = NULL;
Jaroslav Kysela 8ac4c9
+#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
Jaroslav Kysela 8ac4c9
+	if (version == 0x010001)
Jaroslav Kysela 8ac4c9
+		memcpy(ops, &pcm_src_ops, sizeof(snd_pcm_rate_old_ops_t));
Jaroslav Kysela 8ac4c9
+	else
Jaroslav Kysela 8ac4c9
+#endif
Jaroslav Kysela 8ac4c9
+		*ops = pcm_src_ops;
Jaroslav Kysela 8ac4c9
+	return 0;
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+int SND_PCM_RATE_PLUGIN_ENTRY(lavrate)(unsigned int version, void **objp,
Jaroslav Kysela 8ac4c9
+			snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+int SND_PCM_RATE_PLUGIN_ENTRY(lavrate_higher)(unsigned int version,
Jaroslav Kysela 8ac4c9
+			void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	filter_size = 64;
Jaroslav Kysela 8ac4c9
+	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+int SND_PCM_RATE_PLUGIN_ENTRY(lavrate_high)(unsigned int version,
Jaroslav Kysela 8ac4c9
+			void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	filter_size = 32;
Jaroslav Kysela 8ac4c9
+	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+int SND_PCM_RATE_PLUGIN_ENTRY(lavrate_fast)(unsigned int version,
Jaroslav Kysela 8ac4c9
+			void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	filter_size = 8;
Jaroslav Kysela 8ac4c9
+	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+int SND_PCM_RATE_PLUGIN_ENTRY(lavrate_faster)(unsigned int version,
Jaroslav Kysela 8ac4c9
+			void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
+{
Jaroslav Kysela 8ac4c9
+	filter_size = 4;
Jaroslav Kysela 8ac4c9
+	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
+}
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
diff --git a/rate-lavc/Makefile.am b/rate-lavc/Makefile.am
Jaroslav Kysela 8ac4c9
deleted file mode 100644
Jaroslav Kysela 8ac4c9
index 5f66472..0000000
Jaroslav Kysela 8ac4c9
--- a/rate-lavc/Makefile.am
Jaroslav Kysela 8ac4c9
+++ /dev/null
Jaroslav Kysela 8ac4c9
@@ -1,26 +0,0 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 10-rate-lavc.conf
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-asound_module_rate_lavcrate_LTLIBRARIES = libasound_module_rate_lavcrate.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 10-rate-lavc.conf
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-asound_module_rate_lavcratedir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@ \
Jaroslav Kysela 8ac4c9
-	-DAVCODEC_HEADER="@AVCODEC_HEADER@"
Jaroslav Kysela 8ac4c9
-AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-libasound_module_rate_lavcrate_la_SOURCES = rate_lavcrate.c
Jaroslav Kysela 8ac4c9
-libasound_module_rate_lavcrate_la_LIBADD = @ALSA_LIBS@ @AVCODEC_LIBS@
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-noinst_HEADERS = gcd.h
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-install-exec-hook:
Jaroslav Kysela 8ac4c9
-	rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_*.so
Jaroslav Kysela 8ac4c9
-	$(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_higher.so
Jaroslav Kysela 8ac4c9
-	$(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_high.so
Jaroslav Kysela 8ac4c9
-	$(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_fast.so
Jaroslav Kysela 8ac4c9
-	$(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_faster.so
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-uninstall-hook:
Jaroslav Kysela 8ac4c9
-	rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_*.so
Jaroslav Kysela 8ac4c9
diff --git a/rate-lavc/rate_lavcrate.c b/rate-lavc/rate_lavcrate.c
Jaroslav Kysela 8ac4c9
deleted file mode 100644
Jaroslav Kysela 8ac4c9
index 14a2198..0000000
Jaroslav Kysela 8ac4c9
--- a/rate-lavc/rate_lavcrate.c
Jaroslav Kysela 8ac4c9
+++ /dev/null
Jaroslav Kysela 8ac4c9
@@ -1,291 +0,0 @@
Jaroslav Kysela 8ac4c9
-/*
Jaroslav Kysela 8ac4c9
- * Rate converter plugin using libavcodec's resampler
Jaroslav Kysela 8ac4c9
- * Copyright (c) 2007 by Nicholas Kain <njkain@gmail.com>
Jaroslav Kysela 8ac4c9
- *
Jaroslav Kysela 8ac4c9
- * based on rate converter that uses libsamplerate
Jaroslav Kysela 8ac4c9
- * Copyright (c) 2006 by Takashi Iwai <tiwai@suse.de>
Jaroslav Kysela 8ac4c9
- *
Jaroslav Kysela 8ac4c9
- * This library is free software; you can redistribute it and/or
Jaroslav Kysela 8ac4c9
- * modify it under the terms of the GNU Lesser General Public
Jaroslav Kysela 8ac4c9
- * License as published by the Free Software Foundation; either
Jaroslav Kysela 8ac4c9
- * version 2.1 of the License, or (at your option) any later version.
Jaroslav Kysela 8ac4c9
- *
Jaroslav Kysela 8ac4c9
- * This library is distributed in the hope that it will be useful,
Jaroslav Kysela 8ac4c9
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
Jaroslav Kysela 8ac4c9
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Jaroslav Kysela 8ac4c9
- * Lesser General Public License for more details.
Jaroslav Kysela 8ac4c9
- */
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-#include <stdio.h>
Jaroslav Kysela 8ac4c9
-#include <alsa/asoundlib.h>
Jaroslav Kysela 8ac4c9
-#include <alsa/pcm_rate.h>
Jaroslav Kysela 8ac4c9
-#include AVCODEC_HEADER
Jaroslav Kysela 8ac4c9
-#include "gcd.h"
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static int filter_size = 16;
Jaroslav Kysela 8ac4c9
-static int phase_shift = 10; /* auto-adjusts */
Jaroslav Kysela 8ac4c9
-static double cutoff = 0; /* auto-adjusts */
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-struct rate_src {
Jaroslav Kysela 8ac4c9
-	struct AVResampleContext *context;
Jaroslav Kysela 8ac4c9
-	int in_rate;
Jaroslav Kysela 8ac4c9
-	int out_rate;
Jaroslav Kysela 8ac4c9
-	int stored;
Jaroslav Kysela 8ac4c9
-	int point;
Jaroslav Kysela 8ac4c9
-	int16_t **out;
Jaroslav Kysela 8ac4c9
-	int16_t **in;
Jaroslav Kysela 8ac4c9
-	unsigned int channels;
Jaroslav Kysela 8ac4c9
-};
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static snd_pcm_uframes_t input_frames(void *obj, snd_pcm_uframes_t frames)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	return frames;
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static snd_pcm_uframes_t output_frames(void *obj, snd_pcm_uframes_t frames)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	return frames;
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static void pcm_src_free(void *obj)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
-	int i;
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	if (rate->out) {
Jaroslav Kysela 8ac4c9
-		for (i=0; i<rate->channels; i++) {
Jaroslav Kysela 8ac4c9
-			free(rate->out[i]);
Jaroslav Kysela 8ac4c9
-		}
Jaroslav Kysela 8ac4c9
-		free(rate->out);
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-	if (rate->in) {
Jaroslav Kysela 8ac4c9
-		for (i=0; i<rate->channels; i++) {
Jaroslav Kysela 8ac4c9
-			free(rate->in[i]);
Jaroslav Kysela 8ac4c9
-		}
Jaroslav Kysela 8ac4c9
-		free(rate->in);
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-	rate->out = rate->in = NULL;
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	if (rate->context) {
Jaroslav Kysela 8ac4c9
-		av_resample_close(rate->context);
Jaroslav Kysela 8ac4c9
-		rate->context = NULL;
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static int pcm_src_init(void *obj, snd_pcm_rate_info_t *info)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
-	int i, ir, or;
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	if (! rate->context || rate->channels != info->channels) {
Jaroslav Kysela 8ac4c9
-		pcm_src_free(rate);
Jaroslav Kysela 8ac4c9
-		rate->channels = info->channels;
Jaroslav Kysela 8ac4c9
-		ir = rate->in_rate = info->in.rate;
Jaroslav Kysela 8ac4c9
-		or = rate->out_rate = info->out.rate;
Jaroslav Kysela 8ac4c9
-		i = gcd(or, ir);
Jaroslav Kysela 8ac4c9
-		if (or > ir) {
Jaroslav Kysela 8ac4c9
-			phase_shift = or/i;
Jaroslav Kysela 8ac4c9
-		} else {
Jaroslav Kysela 8ac4c9
-			phase_shift = ir/i;
Jaroslav Kysela 8ac4c9
-		}
Jaroslav Kysela 8ac4c9
-		if (cutoff <= 0.0) {
Jaroslav Kysela 8ac4c9
-			cutoff = 1.0 - 1.0/filter_size;
Jaroslav Kysela 8ac4c9
-			if (cutoff < 0.80)
Jaroslav Kysela 8ac4c9
-				cutoff = 0.80;
Jaroslav Kysela 8ac4c9
-		}
Jaroslav Kysela 8ac4c9
-		rate->context = av_resample_init(info->out.rate, info->in.rate,
Jaroslav Kysela 8ac4c9
-			filter_size, phase_shift,
Jaroslav Kysela 8ac4c9
-			(info->out.rate >= info->in.rate ? 0 : 1), cutoff);
Jaroslav Kysela 8ac4c9
-		if (!rate->context)
Jaroslav Kysela 8ac4c9
-			return -EINVAL;
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	rate->out = malloc(rate->channels * sizeof(int16_t *));
Jaroslav Kysela 8ac4c9
-	rate->in = malloc(rate->channels * sizeof(int16_t *));
Jaroslav Kysela 8ac4c9
-	for (i=0; i<rate->channels; i++) {
Jaroslav Kysela 8ac4c9
-		rate->out[i] = calloc(info->out.period_size * 2, 
Jaroslav Kysela 8ac4c9
-			sizeof(int16_t));
Jaroslav Kysela 8ac4c9
-		rate->in[i] = calloc(info->in.period_size * 2,
Jaroslav Kysela 8ac4c9
-			sizeof(int16_t));
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-	rate->point = info->in.period_size / 2;
Jaroslav Kysela 8ac4c9
-	if (!rate->out || !rate->in) {
Jaroslav Kysela 8ac4c9
-		pcm_src_free(rate);
Jaroslav Kysela 8ac4c9
-		return -ENOMEM;
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	return 0;
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static int pcm_src_adjust_pitch(void *obj, snd_pcm_rate_info_t *info)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	if (info->out.rate != rate->out_rate || info->in.rate != rate->in_rate)
Jaroslav Kysela 8ac4c9
-		pcm_src_init(obj, info);
Jaroslav Kysela 8ac4c9
-	return 0;
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static void pcm_src_reset(void *obj)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
-	rate->stored = 0;
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static void deinterleave(const int16_t *src, int16_t **dst, unsigned int frames,
Jaroslav Kysela 8ac4c9
-	unsigned int chans, int overflow)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	int i, j;
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	if (chans == 1) {
Jaroslav Kysela 8ac4c9
-		memcpy(dst + overflow, src, frames*sizeof(int16_t));
Jaroslav Kysela 8ac4c9
-	} else if (chans == 2) {
Jaroslav Kysela 8ac4c9
-		for (j=overflow; j<(frames + overflow); j++) {
Jaroslav Kysela 8ac4c9
-			dst[0][j] = *(src++);
Jaroslav Kysela 8ac4c9
-			dst[1][j] = *(src++);
Jaroslav Kysela 8ac4c9
-		}
Jaroslav Kysela 8ac4c9
-	} else {
Jaroslav Kysela 8ac4c9
-		for (j=overflow; j<(frames + overflow); j++) {
Jaroslav Kysela 8ac4c9
-			for (i=0; i
Jaroslav Kysela 8ac4c9
-				dst[i][j] = *(src++);
Jaroslav Kysela 8ac4c9
-			}
Jaroslav Kysela 8ac4c9
-		}
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static void reinterleave(int16_t **src, int16_t *dst, unsigned int frames,
Jaroslav Kysela 8ac4c9
-	unsigned int chans)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	int i, j;
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	if (chans == 1) {
Jaroslav Kysela 8ac4c9
-		memcpy(dst, src, frames*sizeof(int16_t));
Jaroslav Kysela 8ac4c9
-	} else if (chans == 2) {
Jaroslav Kysela 8ac4c9
-		for (j=0; j
Jaroslav Kysela 8ac4c9
-			*(dst++) = src[0][j];
Jaroslav Kysela 8ac4c9
-			*(dst++) = src[1][j];
Jaroslav Kysela 8ac4c9
-		}
Jaroslav Kysela 8ac4c9
-	} else {
Jaroslav Kysela 8ac4c9
-		for (j=0; j
Jaroslav Kysela 8ac4c9
-			for (i=0; i
Jaroslav Kysela 8ac4c9
-				*(dst++) = src[i][j];
Jaroslav Kysela 8ac4c9
-			}
Jaroslav Kysela 8ac4c9
-		}
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static void pcm_src_convert_s16(void *obj, int16_t *dst, unsigned int
Jaroslav Kysela 8ac4c9
-	dst_frames, const int16_t *src, unsigned int src_frames)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	struct rate_src *rate = obj;
Jaroslav Kysela 8ac4c9
-	int consumed = 0, chans=rate->channels, ret=0, i;
Jaroslav Kysela 8ac4c9
-	int total_in = rate->stored + src_frames, new_stored;
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	deinterleave(src, rate->in, src_frames, chans, rate->point);
Jaroslav Kysela 8ac4c9
-	for (i=0; i
Jaroslav Kysela 8ac4c9
-		ret = av_resample(rate->context, rate->out[i],
Jaroslav Kysela 8ac4c9
-				rate->in[i]+rate->point-rate->stored, &consumed,
Jaroslav Kysela 8ac4c9
-				total_in, dst_frames, i == (chans - 1));
Jaroslav Kysela 8ac4c9
-		new_stored = total_in-consumed;
Jaroslav Kysela 8ac4c9
-		memmove(rate->in[i]+rate->point-new_stored,
Jaroslav Kysela 8ac4c9
-				rate->in[i]+rate->point-rate->stored+consumed,
Jaroslav Kysela 8ac4c9
-				new_stored*sizeof(int16_t));
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-	av_resample_compensate(rate->context,
Jaroslav Kysela 8ac4c9
-			total_in-src_frames>filter_size?0:1, src_frames);
Jaroslav Kysela 8ac4c9
-	reinterleave(rate->out, dst, ret, chans);
Jaroslav Kysela 8ac4c9
-	rate->stored = total_in-consumed;
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static void pcm_src_close(void *obj)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	pcm_src_free(obj);
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
Jaroslav Kysela 8ac4c9
-static int get_supported_rates(void *obj, unsigned int *rate_min,
Jaroslav Kysela 8ac4c9
-			       unsigned int *rate_max)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	*rate_min = *rate_max = 0; /* both unlimited */
Jaroslav Kysela 8ac4c9
-	return 0;
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static void dump(void *obj, snd_output_t *out)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	snd_output_printf(out, "Converter: liblavc\n");
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-#endif
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-static snd_pcm_rate_ops_t pcm_src_ops = {
Jaroslav Kysela 8ac4c9
-	.close = pcm_src_close,
Jaroslav Kysela 8ac4c9
-	.init = pcm_src_init,
Jaroslav Kysela 8ac4c9
-	.free = pcm_src_free,
Jaroslav Kysela 8ac4c9
-	.reset = pcm_src_reset,
Jaroslav Kysela 8ac4c9
-	.adjust_pitch = pcm_src_adjust_pitch,
Jaroslav Kysela 8ac4c9
-	.convert_s16 = pcm_src_convert_s16,
Jaroslav Kysela 8ac4c9
-	.input_frames = input_frames,
Jaroslav Kysela 8ac4c9
-	.output_frames = output_frames,
Jaroslav Kysela 8ac4c9
-#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
Jaroslav Kysela 8ac4c9
-	.version = SND_PCM_RATE_PLUGIN_VERSION,
Jaroslav Kysela 8ac4c9
-	.get_supported_rates = get_supported_rates,
Jaroslav Kysela 8ac4c9
-	.dump = dump,
Jaroslav Kysela 8ac4c9
-#endif
Jaroslav Kysela 8ac4c9
-};
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-int pcm_src_open(unsigned int version, void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	struct rate_src *rate;
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-#if SND_PCM_RATE_PLUGIN_VERSION < 0x010002
Jaroslav Kysela 8ac4c9
-	if (version != SND_PCM_RATE_PLUGIN_VERSION) {
Jaroslav Kysela 8ac4c9
-		fprintf(stderr, "Invalid rate plugin version %x\n", version);
Jaroslav Kysela 8ac4c9
-		return -EINVAL;
Jaroslav Kysela 8ac4c9
-	}
Jaroslav Kysela 8ac4c9
-#endif
Jaroslav Kysela 8ac4c9
-	rate = calloc(1, sizeof(*rate));
Jaroslav Kysela 8ac4c9
-	if (!rate)
Jaroslav Kysela 8ac4c9
-		return -ENOMEM;
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-	*objp = rate;
Jaroslav Kysela 8ac4c9
-	rate->context = NULL;
Jaroslav Kysela 8ac4c9
-#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
Jaroslav Kysela 8ac4c9
-	if (version == 0x010001)
Jaroslav Kysela 8ac4c9
-		memcpy(ops, &pcm_src_ops, sizeof(snd_pcm_rate_old_ops_t));
Jaroslav Kysela 8ac4c9
-	else
Jaroslav Kysela 8ac4c9
-#endif
Jaroslav Kysela 8ac4c9
-		*ops = pcm_src_ops;
Jaroslav Kysela 8ac4c9
-	return 0;
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate)(unsigned int version, void **objp,
Jaroslav Kysela 8ac4c9
-			snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_higher)(unsigned int version,
Jaroslav Kysela 8ac4c9
-			void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	filter_size = 64;
Jaroslav Kysela 8ac4c9
-	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_high)(unsigned int version,
Jaroslav Kysela 8ac4c9
-			void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	filter_size = 32;
Jaroslav Kysela 8ac4c9
-	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_fast)(unsigned int version,
Jaroslav Kysela 8ac4c9
-			void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	filter_size = 8;
Jaroslav Kysela 8ac4c9
-	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_faster)(unsigned int version,
Jaroslav Kysela 8ac4c9
-			void **objp, snd_pcm_rate_ops_t *ops)
Jaroslav Kysela 8ac4c9
-{
Jaroslav Kysela 8ac4c9
-	filter_size = 4;
Jaroslav Kysela 8ac4c9
-	return pcm_src_open(version, objp, ops);
Jaroslav Kysela 8ac4c9
-}
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-
Jaroslav Kysela 8ac4c9
-- 
Jaroslav Kysela 8ac4c9
2.13.6
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
From 4afd4ab0b276b26b965bae3aadaa31cdb52b1df0 Mon Sep 17 00:00:00 2001
Jaroslav Kysela 8ac4c9
From: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 8ac4c9
Date: Mon, 16 Apr 2018 17:49:36 +0200
Jaroslav Kysela 8ac4c9
Subject: [PATCH 5/6] configure: change --with-alsaaddondir to
Jaroslav Kysela 8ac4c9
 --with-alsagconfdir and --with-alsalconfdir
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
The local add-on configuration directory (/etc/alsa/conf.d) contains
Jaroslav Kysela 8ac4c9
links to the global configuration directory (/usr/share/alsa/alsa.conf.d) now.
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 8ac4c9
---
Jaroslav Kysela 8ac4c9
 a52/Makefile.am        | 14 +++++++++++---
Jaroslav Kysela 8ac4c9
 arcam-av/Makefile.am   | 14 +++++++++++---
Jaroslav Kysela 8ac4c9
 configure.ac           | 32 ++++++++++++++++++++++----------
Jaroslav Kysela 8ac4c9
 install-hooks.am       | 16 ++++++++++++++++
Jaroslav Kysela 8ac4c9
 jack/Makefile.am       | 14 +++++++++++---
Jaroslav Kysela 8ac4c9
 maemo/Makefile.am      | 14 +++++++++++---
Jaroslav Kysela 8ac4c9
 mix/Makefile.am        | 14 +++++++++++---
Jaroslav Kysela 8ac4c9
 oss/Makefile.am        | 14 +++++++++++---
Jaroslav Kysela 8ac4c9
 pph/Makefile.am        | 16 ++++++++++++----
Jaroslav Kysela 8ac4c9
 pulse/Makefile.am      | 17 ++++++++++++++---
Jaroslav Kysela 8ac4c9
 rate-lav/Makefile.am   | 13 ++++++++++---
Jaroslav Kysela 8ac4c9
 rate/Makefile.am       | 14 +++++++++++---
Jaroslav Kysela 8ac4c9
 speex/Makefile.am      | 14 +++++++++++---
Jaroslav Kysela 8ac4c9
 usb_stream/Makefile.am | 14 +++++++++++---
Jaroslav Kysela 8ac4c9
 14 files changed, 173 insertions(+), 47 deletions(-)
Jaroslav Kysela 8ac4c9
 create mode 100644 install-hooks.am
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
diff --git a/a52/Makefile.am b/a52/Makefile.am
Jaroslav Kysela 8ac4c9
index 4ac8edd..cd5ce45 100644
Jaroslav Kysela 8ac4c9
--- a/a52/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/a52/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,13 +1,21 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 60-a52-encoder.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 60-a52-encoder.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_a52_LTLIBRARIES = libasound_module_pcm_a52.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 60-a52-encoder.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_a52dir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @LIBAV_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_a52_la_SOURCES = pcm_a52.c
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_a52_la_LIBADD = @ALSA_LIBS@ @LIBAV_LIBS@ @LIBAV_CODEC_LIBS@
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/arcam-av/Makefile.am b/arcam-av/Makefile.am
Jaroslav Kysela 8ac4c9
index 4a54ccd..c16aec0 100644
Jaroslav Kysela 8ac4c9
--- a/arcam-av/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/arcam-av/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,13 +1,21 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 50-arcam-av-ctl.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 50-arcam-av-ctl.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_ctl_arcam_av_LTLIBRARIES = libasound_module_ctl_arcam_av.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 50-arcam-av-ctl.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_ctl_arcam_avdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 libasound_module_ctl_arcam_av_la_SOURCES = ctl_arcam_av.c arcam_av.c arcam_av.h
Jaroslav Kysela 8ac4c9
 libasound_module_ctl_arcam_av_la_LIBADD = @ALSA_LIBS@
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/configure.ac b/configure.ac
Jaroslav Kysela 8ac4c9
index cb1ae2d..f49bb6b 100644
Jaroslav Kysela 8ac4c9
--- a/configure.ac
Jaroslav Kysela 8ac4c9
+++ b/configure.ac
Jaroslav Kysela 8ac4c9
@@ -210,17 +210,29 @@ AC_DEFINE_UNQUOTED(ALSA_DATA_DIR, "$alsadatadir", [directory containing ALSA dat
Jaroslav Kysela 8ac4c9
 ALSA_DATA_DIR="$alsadatadir"
Jaroslav Kysela 8ac4c9
 AC_SUBST(ALSA_DATA_DIR)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-dnl ALSA add-on config directory
Jaroslav Kysela 8ac4c9
-AC_ARG_WITH(alsaaddondir,
Jaroslav Kysela 8ac4c9
-    AS_HELP_STRING([--with-alsaaddondir=dir],
Jaroslav Kysela 8ac4c9
-	[path where ALSA add-on config files are stored]),
Jaroslav Kysela 8ac4c9
-    alsaaddondir="$withval", alsaaddondir="")
Jaroslav Kysela 8ac4c9
-if test -z "$alsaaddondir"; then
Jaroslav Kysela 8ac4c9
-    alsaaddondir="/etc/alsa/conf.d"
Jaroslav Kysela 8ac4c9
+dnl ALSA add-on global config directory
Jaroslav Kysela 8ac4c9
+AC_ARG_WITH(alsagconfdir,
Jaroslav Kysela 8ac4c9
+    AS_HELP_STRING([--with-alsagconfdir=dir],
Jaroslav Kysela 8ac4c9
+	[path where ALSA global add-on config files are stored]),
Jaroslav Kysela 8ac4c9
+    alsagconfdir="$withval", alsagconfdir="")
Jaroslav Kysela 8ac4c9
+if test -z "$alsagconfdir"; then
Jaroslav Kysela 8ac4c9
+    alsagconfdir="$ALSA_DATA_DIR/alsa.conf.d"
Jaroslav Kysela 8ac4c9
 fi
Jaroslav Kysela 8ac4c9
-AC_DEFINE_UNQUOTED(ALSA_ADDON_DIR, "$alsaaddondir", [directory containing ALSA add-on config files])
Jaroslav Kysela 8ac4c9
-ALSA_ADDON_DIR="$alsaaddondir"
Jaroslav Kysela 8ac4c9
-AC_SUBST(ALSA_ADDON_DIR)
Jaroslav Kysela 8ac4c9
+AC_DEFINE_UNQUOTED(ALSA_GCONF_DIR, "$alsagconfdir", [directory containing global ALSA add-on config files])
Jaroslav Kysela 8ac4c9
+ALSA_GCONF_DIR="$alsagconfdir"
Jaroslav Kysela 8ac4c9
+AC_SUBST(ALSA_GCONF_DIR)
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+dnl ALSA add-on local config directory
Jaroslav Kysela 8ac4c9
+AC_ARG_WITH(alsalconfdir,
Jaroslav Kysela 8ac4c9
+    AS_HELP_STRING([--with-alsalconfdir=dir],
Jaroslav Kysela 8ac4c9
+	[path where ALSA local add-on config files are stored]),
Jaroslav Kysela 8ac4c9
+    alsalconfdir="$withval", alsalconfdir="")
Jaroslav Kysela 8ac4c9
+if test -z "$alsalconfdir"; then
Jaroslav Kysela 8ac4c9
+    alsalconfdir="/etc/alsa/conf.d"
Jaroslav Kysela 8ac4c9
+fi
Jaroslav Kysela 8ac4c9
+AC_DEFINE_UNQUOTED(ALSA_LCONF_DIR, "$alsalconfdir", [directory containing local ALSA add-on config files])
Jaroslav Kysela 8ac4c9
+ALSA_LCONF_DIR="$alsalconfdir"
Jaroslav Kysela 8ac4c9
+AC_SUBST(ALSA_LCONF_DIR)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 SAVE_PLUGINS_VERSION
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
diff --git a/install-hooks.am b/install-hooks.am
Jaroslav Kysela 8ac4c9
new file mode 100644
Jaroslav Kysela 8ac4c9
index 0000000..2d6d383
Jaroslav Kysela 8ac4c9
--- /dev/null
Jaroslav Kysela 8ac4c9
+++ b/install-hooks.am
Jaroslav Kysela 8ac4c9
@@ -0,0 +1,16 @@
Jaroslav Kysela 8ac4c9
+install-conf-hook:
Jaroslav Kysela 8ac4c9
+	mkdir -p $(DESTDIR)$(ALSA_LCONF_DIR)
Jaroslav Kysela 8ac4c9
+	@(echo cd $(DESTDIR)$(ALSA_LCONF_DIR);			\
Jaroslav Kysela 8ac4c9
+	  cd $(DESTDIR)$(ALSA_LCONF_DIR);			\
Jaroslav Kysela 8ac4c9
+	  for i in $(GCONF_FILES); do				\
Jaroslav Kysela 8ac4c9
+	    echo $(RM) $$i";" ln -s $(ALSA_GCONF_DIR)/$$i .;	\
Jaroslav Kysela 8ac4c9
+	    $(RM) $$i;						\
Jaroslav Kysela 8ac4c9
+	    ln -s $(ALSA_GCONF_DIR)/$$i .;			\
Jaroslav Kysela 8ac4c9
+	  done)
Jaroslav Kysela 8ac4c9
+uninstall-conf-hook:
Jaroslav Kysela 8ac4c9
+	@(echo cd $(DESTDIR)$(ALSA_LCONF_DIR);			\
Jaroslav Kysela 8ac4c9
+	  cd $(DESTDIR)$(ALSA_LCONF_DIR);			\
Jaroslav Kysela 8ac4c9
+	  for i in $(GCONF_FILES); do				\
Jaroslav Kysela 8ac4c9
+	    echo $(RM) $$i;					\
Jaroslav Kysela 8ac4c9
+	    $(RM) $$i;						\
Jaroslav Kysela 8ac4c9
+	  done)
Jaroslav Kysela 8ac4c9
diff --git a/jack/Makefile.am b/jack/Makefile.am
Jaroslav Kysela 8ac4c9
index 0a3d6ae..7801194 100644
Jaroslav Kysela 8ac4c9
--- a/jack/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/jack/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,13 +1,21 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 50-jack.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 50-jack.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_jack_LTLIBRARIES = libasound_module_pcm_jack.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 50-jack.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_jackdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @JACK_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_jack_la_SOURCES = pcm_jack.c
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_jack_la_LIBADD = @ALSA_LIBS@ @JACK_LIBS@
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/maemo/Makefile.am b/maemo/Makefile.am
Jaroslav Kysela 8ac4c9
index aca481d..7749926 100644
Jaroslav Kysela 8ac4c9
--- a/maemo/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/maemo/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,12 +1,14 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 98-maemo.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 98-maemo.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_alsa_dsp_LTLIBRARIES = libasound_module_pcm_alsa_dsp.la
Jaroslav Kysela 8ac4c9
 asound_module_ctl_dsp_ctl_LTLIBRARIES = libasound_module_ctl_dsp_ctl.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 98-maemo.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_alsa_dspdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
 asound_module_ctl_dsp_ctldir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -O2 @ALSA_CFLAGS@ $(DBUS_CFLAGS)
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
@@ -19,3 +21,9 @@ libasound_module_ctl_dsp_ctl_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lpthread
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 noinst_HEADERS = constants.h debug.h dsp-protocol.h list.h reporting.h \
Jaroslav Kysela 8ac4c9
 	         types.h
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/mix/Makefile.am b/mix/Makefile.am
Jaroslav Kysela 8ac4c9
index 710606c..a74c200 100644
Jaroslav Kysela 8ac4c9
--- a/mix/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/mix/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,12 +1,14 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 60-upmix.conf 60-vdownmix.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 60-upmix.conf 60-vdownmix.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_upmix_LTLIBRARIES = libasound_module_pcm_upmix.la
Jaroslav Kysela 8ac4c9
 asound_module_pcm_vdownmix_LTLIBRARIES = libasound_module_pcm_vdownmix.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 60-upmix.conf 60-vdownmix.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_upmixdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
 asound_module_pcm_vdownmixdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
@@ -15,3 +17,9 @@ libasound_module_pcm_upmix_la_SOURCES = pcm_upmix.c
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_upmix_la_LIBADD = @ALSA_LIBS@
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_vdownmix_la_SOURCES = pcm_vdownmix.c
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_vdownmix_la_LIBADD = @ALSA_LIBS@
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/oss/Makefile.am b/oss/Makefile.am
Jaroslav Kysela 8ac4c9
index df83d20..46dfcac 100644
Jaroslav Kysela 8ac4c9
--- a/oss/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/oss/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,12 +1,14 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 50-oss.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILEs = 50-oss.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_oss_LTLIBRARIES = libasound_module_pcm_oss.la
Jaroslav Kysela 8ac4c9
 asound_module_ctl_oss_LTLIBRARIES = libasound_module_ctl_oss.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 50-oss.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_ossdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
 asound_module_ctl_ossdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
@@ -16,3 +18,9 @@ libasound_module_pcm_oss_la_LIBADD = @ALSA_LIBS@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 libasound_module_ctl_oss_la_SOURCES = ctl_oss.c
Jaroslav Kysela 8ac4c9
 libasound_module_ctl_oss_la_LIBADD = @ALSA_LIBS@
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/pph/Makefile.am b/pph/Makefile.am
Jaroslav Kysela 8ac4c9
index abb950b..6938b74 100644
Jaroslav Kysela 8ac4c9
--- a/pph/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/pph/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,10 +1,12 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 10-speexrate.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 10-speexrate.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_rate_speexrate_LTLIBRARIES = libasound_module_rate_speexrate.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 10-speexrate.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_rate_speexratedir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -DVAR_ARRAYS -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
@@ -20,6 +22,10 @@ libasound_module_rate_speexrate_la_SOURCES += resample.c
Jaroslav Kysela 8ac4c9
 libasound_module_rate_speexrate_la_LIBADD += -lm
Jaroslav Kysela 8ac4c9
 endif
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
+noinst_HEADERS = speex_resampler.h arch.h fixed_generic.h
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
 install-exec-hook:
Jaroslav Kysela 8ac4c9
 	rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_*.so
Jaroslav Kysela 8ac4c9
 	$(LN_S) libasound_module_rate_speexrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_best.so
Jaroslav Kysela 8ac4c9
@@ -28,4 +34,6 @@ install-exec-hook:
Jaroslav Kysela 8ac4c9
 uninstall-hook:
Jaroslav Kysela 8ac4c9
 	rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_*.so
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-noinst_HEADERS = speex_resampler.h arch.h fixed_generic.h
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/pulse/Makefile.am b/pulse/Makefile.am
Jaroslav Kysela 8ac4c9
index 835808c..c33e702 100644
Jaroslav Kysela 8ac4c9
--- a/pulse/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/pulse/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,14 +1,19 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 50-pulseaudio.conf
Jaroslav Kysela 8ac4c9
+LCONF_FILES = 99-pulseaudio-default.conf.example
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES) $(LCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_LTLIBRARIES = libasound_module_pcm_pulse.la
Jaroslav Kysela 8ac4c9
 asound_module_ctl_LTLIBRARIES = libasound_module_ctl_pulse.la
Jaroslav Kysela 8ac4c9
 asound_module_conf_LTLIBRARIES = libasound_module_conf_pulse.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
+asound_module_lconf_DATA = $(LCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcmdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
 asound_module_ctldir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
 asound_module_confdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_lconfdir = @ALSA_LCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(PTHREAD_CFLAGS) $(pulseaudio_CFLAGS) -D_GNU_SOURCE
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
@@ -21,3 +26,9 @@ libasound_module_ctl_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 libasound_module_conf_pulse_la_SOURCES = conf_pulse.c
Jaroslav Kysela 8ac4c9
 libasound_module_conf_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_LIBS)
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/rate-lav/Makefile.am b/rate-lav/Makefile.am
Jaroslav Kysela 8ac4c9
index 0f6ecb6..eb672b5 100644
Jaroslav Kysela 8ac4c9
--- a/rate-lav/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/rate-lav/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,10 +1,12 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 10-rate-lav.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 10-rate-lav.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_rate_lavrate_LTLIBRARIES = libasound_module_rate_lavrate.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 10-rate-lav.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_rate_lavratedir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @LIBAV_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
@@ -14,6 +16,8 @@ libasound_module_rate_lavrate_la_LIBADD = @ALSA_LIBS@ @LIBAV_LIBS@ @LIBAV_RESAMP
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 noinst_HEADERS = gcd.h
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
 install-exec-hook:
Jaroslav Kysela 8ac4c9
 	rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_*.so
Jaroslav Kysela 8ac4c9
 	$(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_higher.so
Jaroslav Kysela 8ac4c9
@@ -23,3 +27,6 @@ install-exec-hook:
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 uninstall-hook:
Jaroslav Kysela 8ac4c9
 	rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_*.so
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/rate/Makefile.am b/rate/Makefile.am
Jaroslav Kysela 8ac4c9
index 25014d8..488c12a 100644
Jaroslav Kysela 8ac4c9
--- a/rate/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/rate/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,10 +1,12 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 10-samplerate.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 10-samplerate.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_rate_samplerate_LTLIBRARIES = libasound_module_rate_samplerate.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 10-samplerate.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_rate_sampleratedir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(samplerate_CFLAGS)
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
@@ -12,6 +14,8 @@ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUN
Jaroslav Kysela 8ac4c9
 libasound_module_rate_samplerate_la_SOURCES = rate_samplerate.c
Jaroslav Kysela 8ac4c9
 libasound_module_rate_samplerate_la_LIBADD = @ALSA_LIBS@ @samplerate_LIBS@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
 install-exec-hook:
Jaroslav Kysela 8ac4c9
 	rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_samplerate_*.so
Jaroslav Kysela 8ac4c9
 	$(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_samplerate_best.so
Jaroslav Kysela 8ac4c9
@@ -21,3 +25,7 @@ install-exec-hook:
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 uninstall-hook:
Jaroslav Kysela 8ac4c9
 	rm -f $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_samplerate_*.so
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/speex/Makefile.am b/speex/Makefile.am
Jaroslav Kysela 8ac4c9
index 7891954..27c4ea5 100644
Jaroslav Kysela 8ac4c9
--- a/speex/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/speex/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,13 +1,21 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 60-speex.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 60-speex.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_speex_LTLIBRARIES = libasound_module_pcm_speex.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 60-speex.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_speexdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @speexdsp_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_speex_la_SOURCES = pcm_speex.c
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_speex_la_LIBADD = @ALSA_LIBS@ @speexdsp_LIBS@
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
diff --git a/usb_stream/Makefile.am b/usb_stream/Makefile.am
Jaroslav Kysela 8ac4c9
index b606d3d..203618b 100644
Jaroslav Kysela 8ac4c9
--- a/usb_stream/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/usb_stream/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,10 +1,12 @@
Jaroslav Kysela 8ac4c9
-EXTRA_DIST = 98-usb-stream.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 98-usb-stream.conf
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_usb_stream_LTLIBRARIES = libasound_module_pcm_usb_stream.la
Jaroslav Kysela 8ac4c9
-asound_module_addon_DATA = 98-usb-stream.conf
Jaroslav Kysela 8ac4c9
+asound_module_gconf_DATA = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 asound_module_pcm_usb_streamdir = @ALSA_PLUGIN_DIR@
Jaroslav Kysela 8ac4c9
-asound_module_addondir = @ALSA_ADDON_DIR@
Jaroslav Kysela 8ac4c9
+asound_module_gconfdir = @ALSA_GCONF_DIR@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
Jaroslav Kysela 8ac4c9
 AM_LDFLAGS = -module -avoid-version -export-dynamic $(LDFLAGS_NOUNDEFINED)
Jaroslav Kysela 8ac4c9
@@ -13,3 +15,9 @@ libasound_module_pcm_usb_stream_la_SOURCES = pcm_usb_stream.c
Jaroslav Kysela 8ac4c9
 libasound_module_pcm_usb_stream_la_LIBADD = @ALSA_LIBS@
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 noinst_HEADERS = usb_stream.h
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+include ../install-hooks.am
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+install-data-hook: install-conf-hook
Jaroslav Kysela 8ac4c9
+
Jaroslav Kysela 8ac4c9
+uninstall-local: uninstall-conf-hook
Jaroslav Kysela 8ac4c9
-- 
Jaroslav Kysela 8ac4c9
2.13.6
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
From beb24e58763e3b1d831fcd7ef87a478e6ac74fcc Mon Sep 17 00:00:00 2001
Jaroslav Kysela 8ac4c9
From: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 8ac4c9
Date: Mon, 16 Apr 2018 18:14:18 +0200
Jaroslav Kysela 8ac4c9
Subject: [PATCH 6/6] oss/Makefile.am: fix typo
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Jaroslav Kysela 8ac4c9
---
Jaroslav Kysela 8ac4c9
 oss/Makefile.am | 2 +-
Jaroslav Kysela 8ac4c9
 1 file changed, 1 insertion(+), 1 deletion(-)
Jaroslav Kysela 8ac4c9
Jaroslav Kysela 8ac4c9
diff --git a/oss/Makefile.am b/oss/Makefile.am
Jaroslav Kysela 8ac4c9
index 46dfcac..bff4443 100644
Jaroslav Kysela 8ac4c9
--- a/oss/Makefile.am
Jaroslav Kysela 8ac4c9
+++ b/oss/Makefile.am
Jaroslav Kysela 8ac4c9
@@ -1,4 +1,4 @@
Jaroslav Kysela 8ac4c9
-GCONF_FILEs = 50-oss.conf
Jaroslav Kysela 8ac4c9
+GCONF_FILES = 50-oss.conf
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
 EXTRA_DIST = $(GCONF_FILES)
Jaroslav Kysela 8ac4c9
 
Jaroslav Kysela 8ac4c9
-- 
Jaroslav Kysela 8ac4c9
2.13.6
Jaroslav Kysela 8ac4c9