From 318849a151f1c9f10e068d8ec4b07165a2b9d99e Mon Sep 17 00:00:00 2001 From: Fulup Ar Foll Date: Fri, 25 Aug 2017 22:43:41 +0200 Subject: Align Intel HAL with Jabra --- HAL-afb/HDA-intel/IntelHdaHAL.c | 87 +++++++++++++++++++++++++++++++---------- 1 file changed, 66 insertions(+), 21 deletions(-) (limited to 'HAL-afb') diff --git a/HAL-afb/HDA-intel/IntelHdaHAL.c b/HAL-afb/HDA-intel/IntelHdaHAL.c index e169baa..4f79f60 100644 --- a/HAL-afb/HDA-intel/IntelHdaHAL.c +++ b/HAL-afb/HDA-intel/IntelHdaHAL.c @@ -26,33 +26,78 @@ #include "audio-common.h" +// Define few private tag for not standard functions +#define PCM_Volume_Multimedia 1000 +#define PCM_Volume_Navigation 1001 +#define PCM_Volume_Emergency 1002 + // Default Values for MasterVolume Ramping -STATIC halVolRampT volRampMaster = { - .mode = RAMP_VOL_NORMAL, - .slave = Master_Playback_Volume, - .delay = 100 * 1000, // ramping delay in us - .stepDown = 1, - .stepUp = 1, +STATIC halVolRampT volRampMaster= { + .mode = RAMP_VOL_NORMAL, + .slave = Master_Playback_Volume, + .delay = 100*1000, // ramping delay in us + .stepDown=1, + .stepUp =1, +}; + +STATIC halVolRampT volRampMultimedia= { + .slave = PCM_Volume_Multimedia, + .delay = 100*1000, // ramping delay in us + .stepDown= 2, + .stepUp = 1, +}; + +STATIC halVolRampT volRampNavigation= { + .slave = PCM_Volume_Navigation, + .delay = 100*1000, // ramping delay in us + .stepDown= 4, + .stepUp = 2, +}; +// Default Values for MasterVolume Ramping +STATIC halVolRampT volRampEmergency= { + .slave = PCM_Volume_Emergency, + .delay = 50*1000, // ramping delay in us + .stepDown= 6, + .stepUp = 3, }; // Map HAL hight sndctl with Alsa numid and optionally with a custom callback for non Alsa supported functionalities. -STATIC alsaHalMapT alsaHalMap[] = { - { .tag = Master_Playback_Volume, . ctl = - { .name = "Master Playback Volume"}}, - { .tag = PCM_Playback_Volume, .ctl = - { .name = "PCM Playback Volume"}}, - { .tag = PCM_Playback_Switch, .ctl = - { .name = "Master Playback Switch"}}, - { .tag = Capture_Volume, .ctl = - { .name = "Capture Volume"}}, +STATIC alsaHalMapT alsaHalMap[]= { + { .tag=Master_Playback_Volume, . ctl={.name="PCM Playback Volume", .value=50 } }, + { .tag=PCM_Playback_Volume , .ctl={.name="PCM Playback Volume", .value=50 } }, + { .tag=PCM_Playback_Switch , .ctl={.name="PCM Playback Switch" } }, + { .tag=Capture_Volume , .ctl={.name="Mic Capture Volume" } }, - { .tag = Master_Playback_Volume, .cb = - {.callback = volumeRamp, .handle = &volRampMaster}, .info = "ramp volume linearly according to current ramp setting", - .ctl = - {.numid = 0, .type = SND_CTL_ELEM_TYPE_INTEGER, .count = 1, .minval = 0, .maxval = 100, .step = 1, .name = "Hal-VolRamp"}}, + // Sound card does not have hardware volume ramping + { .tag=Master_Playback_Ramp , .cb={.callback=volumeRamp, .handle=&volRampMaster}, .info="ramp volume linearly according to current ramp setting", + .ctl={.numid=CTL_AUTO, .type=SND_CTL_ELEM_TYPE_INTEGER, .count=1, .minval=0, .maxval=100, .step=1, .name="Rampup Master"} + }, - { .tag = EndHalCrlTag} /* marker for end of the array */ -}; + // Implement Rampup Volume for Virtual Channels + { .tag=Navigation_Playback_Volume, .cb={.callback=volumeRamp, .handle=&volRampNavigation}, .info="RampUp Navigation Volume", + .ctl={.numid=CTL_AUTO, .type=SND_CTL_ELEM_TYPE_INTEGER,.name="Playback Navigation Ramp", .value=80 } + }, + { .tag=Emergency_Playback_Volume, .cb={.callback=volumeRamp, .handle=&volRampEmergency}, .info="Rampup Emergency Volume", + .ctl={.numid=CTL_AUTO, .type=SND_CTL_ELEM_TYPE_INTEGER,.name="Playback Emergency Ramp", .value=80 } + }, + + // Sound Card does not support hardware channel volume mixer (note softvol default range 0-256) + { .tag=Multimedia_Playback_Volume, .cb={.callback=volumeRamp, .handle=&volRampMultimedia}, .info="Ramp-up Multimedia Volume", + .ctl={.numid=CTL_AUTO, .type=SND_CTL_ELEM_TYPE_INTEGER, .name="Playback Multimedia Ramp", .value=80 } + }, + { .tag=PCM_Volume_Multimedia, .info="Playback Multimedia Softvol", + .ctl={.numid=CTL_AUTO, .type=SND_CTL_ELEM_TYPE_INTEGER, .count=2, .maxval=255, .value=200, .name="Playback Multimedia"} + }, + { .tag=PCM_Volume_Navigation, .info="Playback Navigation Softvol", + .ctl={.numid=CTL_AUTO, .type=SND_CTL_ELEM_TYPE_INTEGER, .count=2, .maxval=255,.value=200, .name="Playback Navigation"} + }, + { .tag=PCM_Volume_Emergency, .info="Playback Emergency Softvol", + .ctl={.numid=CTL_AUTO, .type=SND_CTL_ELEM_TYPE_INTEGER, .count=2, .maxval=255, .value=200, .name="Playback Emergency"} + }, + + + { .tag=EndHalCrlTag} /* marker for end of the array */ +} ; // HAL sound card mapping info STATIC alsaHalSndCardT alsaHalSndCard = { -- cgit 1.2.3-korg