--- /dev/null
+Include.pcm_split.File "/common/pcm/split.conf"
+
+Macro [
+ {
+ SplitPCM {
+ Name "flow8_stereo_out"
+ Direction Playback
+ Channels 2
+ HWChannels 4
+ HWChannelPos0 FL
+ HWChannelPos1 FR
+ HWChannelPos2 FL
+ HWChannelPos3 FR
+ }
+ }
+ {
+ SplitPCM {
+ Name "flow8_stereo_in"
+ Direction Capture
+ Channels 2
+ HWChannels 10
+ HWChannelPos0 FL
+ HWChannelPos1 FR
+ HWChannelPos2 FL
+ HWChannelPos3 FR
+ HWChannelPos4 FL
+ HWChannelPos5 FR
+ HWChannelPos6 FL
+ HWChannelPos7 FR
+ HWChannelPos8 FL
+ HWChannelPos9 FR
+ }
+ }
+ {
+ SplitPCM {
+ Name "flow8_mono_in"
+ Direction Capture
+ Channels 1
+ HWChannels 10
+ HWChannelPos0 MONO
+ HWChannelPos1 MONO
+ HWChannelPos2 MONO
+ HWChannelPos3 MONO
+ HWChannelPos4 MONO
+ HWChannelPos5 MONO
+ HWChannelPos6 MONO
+ HWChannelPos7 MONO
+ HWChannelPos8 MONO
+ HWChannelPos9 MONO
+ }
+ }
+]
+
+SectionDevice."Line1" {
+ Comment "USB-12 L/R"
+
+ Value {
+ PlaybackPriority 100
+ }
+
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_stereo_out"
+ Direction Playback
+ HWChannels 4
+ Channels 2
+ Channel0 0
+ Channel1 1
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
+SectionDevice."Line2" {
+ Comment "USB-34 L/R"
+
+ Value {
+ PlaybackPriority 200
+ }
+
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_stereo_out"
+ Direction Playback
+ HWChannels 4
+ Channels 2
+ Channel0 2
+ Channel1 3
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
+SectionDevice."Mic1" {
+ Comment "Mic 1"
+
+ Value {
+ CapturePriority 100
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_mono_in"
+ Direction Capture
+ HWChannels 10
+ Channels 1
+ Channel0 0
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Mic2" {
+ Comment "Mic 2"
+
+ Value {
+ CapturePriority 101
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_mono_in"
+ Direction Capture
+ HWChannels 10
+ Channels 1
+ Channel0 1
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Mic3" {
+ Comment "Mic 3"
+
+ Value {
+ CapturePriority 102
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_mono_in"
+ Direction Capture
+ HWChannels 10
+ Channels 1
+ Channel0 2
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Mic4" {
+ Comment "Mic 4"
+
+ Value {
+ CapturePriority 103
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_mono_in"
+ Direction Capture
+ HWChannels 10
+ Channels 1
+ Channel0 3
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Line5" {
+ Comment "Line/Inst 5 (L)"
+
+ ConflictingDevice [
+ "Line56"
+ ]
+
+ Value {
+ CapturePriority 104
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_mono_in"
+ Direction Capture
+ HWChannels 10
+ Channels 1
+ Channel0 4
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Line6" {
+ Comment "Line/Inst(HiZ) 6 (R)"
+
+ ConflictingDevice [
+ "Line56"
+ ]
+
+ Value {
+ CapturePriority 105
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_mono_in"
+ Direction Capture
+ HWChannels 10
+ Channels 1
+ Channel0 5
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Line7" {
+ Comment "Line/Inst 7 (L)"
+
+ ConflictingDevice [
+ "Line78"
+ ]
+
+ Value {
+ CapturePriority 106
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_mono_in"
+ Direction Capture
+ HWChannels 10
+ Channels 1
+ Channel0 6
+ ChannelPos0 MONO
+ }
+}
+
+SectionDevice."Line8" {
+ Comment "Line/Inst(HiZ) 8 (R)"
+
+ ConflictingDevice [
+ "Line78"
+ ]
+
+ Value {
+ CapturePriority 107
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_mono_in"
+ Direction Capture
+ HWChannels 10
+ Channels 1
+ Channel0 7
+ ChannelPos0 MONO
+ }
+}
+
+
+SectionDevice."Line56" {
+ Comment "Line-56 L/R"
+
+ Value {
+ CapturePriority 108
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_stereo_in"
+ Direction Capture
+ HWChannels 10
+ Channels 2
+ Channel0 4
+ Channel1 5
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
+SectionDevice."Line78" {
+ Comment "Line-78 L/R"
+
+ Value {
+ CapturePriority 109
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_stereo_in"
+ Direction Capture
+ HWChannels 10
+ Channels 2
+ Channel0 6
+ Channel1 7
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
+SectionDevice."LineMaster" {
+ Comment "Master/Monitor L/R"
+
+ Value {
+ CapturePriority 110
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_stereo_in"
+ Direction Capture
+ HWChannels 10
+ Channels 2
+ Channel0 8
+ Channel1 9
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
--- /dev/null
+Comment "Behringer Flow8 Recording Mode"
+
+SectionUseCase."Recording" {
+ Comment "Recording Mode (4 chan output, 10 chan input)"
+ File "/USB-Audio/Behringer/Flow8-Recording-Hifi.conf"
+}
+
+Define.DirectPlaybackChannels 4
+Define.DirectCaptureChannels 10
+
+Include.dhw.File "/common/direct.conf"
--- /dev/null
+Include.pcm_split.File "/common/pcm/split.conf"
+
+Macro [
+ {
+ SplitPCM {
+ Name "flow8_stereo_out"
+ Direction Playback
+ Channels 2
+ HWChannels 4
+ HWChannelPos0 FL
+ HWChannelPos1 FR
+ HWChannelPos2 FL
+ HWChannelPos3 FR
+ }
+ }
+ {
+ SplitPCM {
+ Name "flow8_stereo_in"
+ Direction Capture
+ Channels 2
+ HWChannels 2
+ HWChannelPos0 FL
+ HWChannelPos1 FR
+ }
+ }
+]
+
+SectionDevice."Line1" {
+ Comment "USB-12 L/R"
+
+ Value {
+ PlaybackPriority 100
+ }
+
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_stereo_out"
+ Direction Playback
+ HWChannels 4
+ Channels 2
+ Channel0 0
+ Channel1 1
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
+SectionDevice."Line2" {
+ Comment "USB-34 L/R"
+
+ Value {
+ PlaybackPriority 200
+ }
+
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_stereo_out"
+ Direction Playback
+ HWChannels 4
+ Channels 2
+ Channel0 2
+ Channel1 3
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
+
+SectionDevice."Line3" {
+ Comment "Master/Mon L/R"
+
+ Value {
+ CapturePriority 100
+ }
+ Macro.pcm_split.SplitPCMDevice {
+ Name "flow8_stereo_in"
+ Direction Capture
+ HWChannels 2
+ Channels 2
+ Channel0 0
+ Channel1 1
+ ChannelPos0 FL
+ ChannelPos1 FR
+ }
+}
--- /dev/null
+Comment "Behringer Flow8 Streaming Mode"
+
+SectionUseCase."Streaming" {
+ Comment "Streaming Mode (4 chan output, 2 chan input)"
+ File "/USB-Audio/Behringer/Flow8-Streaming-Hifi.conf"
+}
+
+Define.DirectPlaybackChannels 4
+Define.DirectCaptureChannels 2
+
+Include.dhw.File "/common/direct.conf"
}
}
+If.behringer-Flow8-Streaming {
+ Condition {
+ Type String
+ Haystack "${CardComponents}"
+ Needle "USB1397:050d"
+ }
+ True.Define.ProfileName "Behringer/Flow8-Streaming"
+}
+
+If.behringer-Flow8-Recording {
+ Condition {
+ Type String
+ Haystack "${CardComponents}"
+ Needle "USB1397:050c"
+ }
+ True.Define.ProfileName "Behringer/Flow8-Recording"
+}
+
If.lenovo-p620-rear {
Condition {
Type String