From a3dac255fcbbc4f4f16822711529cde00cb37a32 Mon Sep 17 00:00:00 2001
From: j1nx
Date: Sun, 1 Oct 2023 15:44:09 +0000
Subject: [PATCH] [RPI] Implement respeaker also profiles for pipewire to use.
---
.../etc/udev/rules.d/91-seeedvoicecard.rules | 13 +++++++
.../profile-sets/seeed-voicecard-4mic.conf | 17 ++++++++++
.../profile-sets/seeed-voicecard-8mic.conf | 34 +++++++++++++++++++
3 files changed, 64 insertions(+)
create mode 100644 buildroot-external/board/ovos/raspberrypi/rootfs-overlay/etc/udev/rules.d/91-seeedvoicecard.rules
create mode 100644 buildroot-external/board/ovos/raspberrypi/rootfs-overlay/usr/share/alsa-card-profile/mixer/profile-sets/seeed-voicecard-4mic.conf
create mode 100644 buildroot-external/board/ovos/raspberrypi/rootfs-overlay/usr/share/alsa-card-profile/mixer/profile-sets/seeed-voicecard-8mic.conf
diff --git a/buildroot-external/board/ovos/raspberrypi/rootfs-overlay/etc/udev/rules.d/91-seeedvoicecard.rules b/buildroot-external/board/ovos/raspberrypi/rootfs-overlay/etc/udev/rules.d/91-seeedvoicecard.rules
new file mode 100644
index 00000000..3dd4e4ec
--- /dev/null
+++ b/buildroot-external/board/ovos/raspberrypi/rootfs-overlay/etc/udev/rules.d/91-seeedvoicecard.rules
@@ -0,0 +1,13 @@
+SUBSYSTEM!="sound", GOTO="seeedvoicecard_end"
+ACTION!="change", GOTO="seeedvoicecard_end"
+KERNEL!="card*", GOTO="seeedvoicecard_end"
+
+# PulseAudio profile sets
+ATTR{id}=="seeed4micvoicec",ENV{PULSE_PROFILE_SET}="seeed-voicecard-4mic.conf"
+ATTR{id}=="seeed8micvoicec",ENV{PULSE_PROFILE_SET}="seeed-voicecard-8mic.conf"
+
+# ALSA profile sets
+ATTR{id}=="seeed4micvoicec",ENV{ACP_PROFILE_SET}="seeed-voicecard-4mic.conf"
+ATTR{id}=="seeed8micvoicec",ENV{ACP_PROFILE_SET}="seeed-voicecard-8mic.conf"
+
+LABEL="seeedvoicecard_end"
diff --git a/buildroot-external/board/ovos/raspberrypi/rootfs-overlay/usr/share/alsa-card-profile/mixer/profile-sets/seeed-voicecard-4mic.conf b/buildroot-external/board/ovos/raspberrypi/rootfs-overlay/usr/share/alsa-card-profile/mixer/profile-sets/seeed-voicecard-4mic.conf
new file mode 100644
index 00000000..1c35e171
--- /dev/null
+++ b/buildroot-external/board/ovos/raspberrypi/rootfs-overlay/usr/share/alsa-card-profile/mixer/profile-sets/seeed-voicecard-4mic.conf
@@ -0,0 +1,17 @@
+# /usr/share/pulseaudio/alsa-mixer/profile-sets/seeed-voicecard.conf
+
+[General]
+auto-profiles = no
+[Mapping seeed-source]
+device-strings = hw:%f
+channel-map = front-left,front-right,rear-left,rear-right
+exact-channels = false
+fallback = yes
+paths-input = seeed-source
+priority = 3
+direction = input
+
+[Profile input:seeed-source]
+input-mappings = seeed-source
+priority = 5
+skip-probe = yes
diff --git a/buildroot-external/board/ovos/raspberrypi/rootfs-overlay/usr/share/alsa-card-profile/mixer/profile-sets/seeed-voicecard-8mic.conf b/buildroot-external/board/ovos/raspberrypi/rootfs-overlay/usr/share/alsa-card-profile/mixer/profile-sets/seeed-voicecard-8mic.conf
new file mode 100644
index 00000000..282a6465
--- /dev/null
+++ b/buildroot-external/board/ovos/raspberrypi/rootfs-overlay/usr/share/alsa-card-profile/mixer/profile-sets/seeed-voicecard-8mic.conf
@@ -0,0 +1,34 @@
+# /usr/share/pulseaudio/alsa-mixer/profile-sets/seeed-voiced.conf
+
+[General]
+auto-profiles = no
+[Mapping seeed-8ch]
+device-strings = hw:%f
+channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
+exact-channels = false
+fallback = yes
+paths-input = seeed-8ch
+priority = 3
+direction = input
+[Mapping seeed-2ch]
+device-strings = hw:%f
+channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe,side-left,side-right
+exact-channels = false
+exact-channels = false
+fallback = yes
+paths-output = seeed-2ch
+direction = output
+priority = 2
+[Profile output:seeed-2ch+input:seeed-8ch]
+output-mappings = seeed-2ch
+input-mappings = seeed-8ch
+priority = 100
+skip-probe = yes
+[Profile output:seeed-2ch]
+output-mappings = seeed-2ch
+priority = 4
+skip-probe = yes
+[Profile input:seeed-8ch]
+input-mappings = seeed-8ch
+priority = 5
+skip-probe = yes
\ No newline at end of file