From 3b2a5bdc106fcdca8653a5d36470958d29a542b8 Mon Sep 17 00:00:00 2001 From: Nazar Mokrynskyi Date: Wed, 9 May 2018 01:51:23 +0300 Subject: [PATCH] alsa-mixer: More output modes for SB Omni Surround 5.1 and cleanup There are only stereo and 5.1 output modes supported natively on this sound card, but with this config more modes like 2.1, 4.0, 4.1 and 5.0 are now exposed. Also profiles list is cleaner now with all profiles explicitly specified. Last thing is removed support for microphone on Linux kernels older than 4.3-rc1, which shouldn't be an issue with future version of PulseAudio likely be installed on newer kernels anyway. Signed-off-by: Nazar Mokrynskyi --- .../profile-sets/sb-omni-surround-5.1.conf | 90 +++++++++++++++---- 1 file changed, 72 insertions(+), 18 deletions(-) diff --git a/src/modules/alsa/mixer/profile-sets/sb-omni-surround-5.1.conf b/src/modules/alsa/mixer/profile-sets/sb-omni-surround-5.1.conf index d5922da7e..11985bb39 100644 --- a/src/modules/alsa/mixer/profile-sets/sb-omni-surround-5.1.conf +++ b/src/modules/alsa/mixer/profile-sets/sb-omni-surround-5.1.conf @@ -15,44 +15,98 @@ ; Creative Sound Blaster Omni Surround 5.1 ; -; This sound card have Mic/Line in at hw:%f,1,0 on Linux prior to 4.3-rc1, -; but starting from Linux 4.3-rc1 Mic/Line is at hw:%f,0,0 -; This config supports both cases. -; Also by default there are some non-existing (physically) inputs -; and outputs that are not present here. -; And finally officially supported modes are stereo and 5.1 + stereo S/PDIF, -; so only these modes included. +; This config supports Linux 4.3-rc1+. +; By default there are some non-existing (physically) inputs and outputs that +; are not present in this config. +; Also in addition to natively supported modes (such as stereo, 5.1 and stereo +; S/PDIF) following useful output modes are added: 2.1, 4.0, 4.1 and 5.0. +; +; NOTE: in 2.1 and 4.1 physical LFE output will be different than in 5.1 mode. ; ; See default.conf for an explanation on the directives used here. [General] -auto-profiles = yes +auto-profiles = no + +[Mapping analog-stereo-input] +device-strings = hw:%f +channel-map = left,right +paths-input = analog-input-mic analog-input-linein +direction = input [Mapping analog-stereo-output] device-strings = front:%f channel-map = left,right paths-output = analog-output -priority = 10 direction = output -; Linux 4.2.x- have microphone input as device 1 -; While Linux 4.3-rc1+ have microphone input as device 0 -[Mapping analog-stereo-input] -device-strings = hw:%f hw:%f,1,0 -paths-input = analog-input-mic analog-input-linein -channel-map = left,right -direction = input +[Mapping analog-surround-21] +device-strings = surround51:%f +channel-map = front-left,front-right,lfe +paths-output = analog-output +direction = output + +[Mapping analog-surround-40] +device-strings = surround51:%f +channel-map = front-left,front-right,rear-left,rear-right +paths-output = analog-output +direction = output + +[Mapping analog-surround-41] +device-strings = surround51:%f +channel-map = front-left,front-right,rear-left,rear-right,lfe +paths-output = analog-output +direction = output + +[Mapping analog-surround-50] +device-strings = surround51:%f +channel-map = front-left,front-right,rear-left,rear-right,front-center +paths-output = analog-output +direction = output [Mapping analog-surround-51] device-strings = surround51:%f channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe paths-output = analog-output -priority = 9 direction = output [Mapping iec958-stereo] device-strings = iec958:%f channel-map = left,right paths-output = iec958-stereo-output -priority = 5 direction = output + +[Profile output:analog-stereo-output+input:analog-stereo-input] +output-mappings = analog-stereo-output +input-mappings = analog-stereo-input +priority = 7 + +[Profile output:analog-surround-21+input:analog-stereo-input] +output-mappings = analog-surround-21 +input-mappings = analog-stereo-input +priority = 6 + +[Profile output:analog-surround-40+input:analog-stereo-input] +output-mappings = analog-surround-40 +input-mappings = analog-stereo-input +priority = 5 + +[Profile output:analog-surround-41+input:analog-stereo-input] +output-mappings = analog-surround-41 +input-mappings = analog-stereo-input +priority = 4 + +[Profile output:analog-surround-50+input:analog-stereo-input] +output-mappings = analog-surround-50 +input-mappings = analog-stereo-input +priority = 3 + +[Profile output:analog-surround-51+input:analog-stereo-input] +output-mappings = analog-surround-51 +input-mappings = analog-stereo-input +priority = 2 + +[Profile output:iec958-stereo+input:analog-stereo-input] +output-mappings = iec958-stereo +input-mappings = analog-stereo-input +priority = 1