[Feature][ZXW-285]merge P56U05 version
Only Configure: No
Affected branch: master
Affected module: unknow
Is it affected on both ZXIC and MTK: only ZXIC
Self-test: Yes
Doc Update: No
Change-Id: Ied657102425a179a89ef41847170152e8a5d437c
diff --git a/ap/lib/libtinyalsa/audio_mixer_ctrl.c b/ap/lib/libtinyalsa/audio_mixer_ctrl.c
index 311ceca..57d2435 100755
--- a/ap/lib/libtinyalsa/audio_mixer_ctrl.c
+++ b/ap/lib/libtinyalsa/audio_mixer_ctrl.c
@@ -1510,6 +1510,80 @@
return 0;
}
+int mix_set_voice_vol_gain(struct mixer *mixer, int vol_gain)
+{
+ struct mixer_ctl *ctl;
+ char name[] = "voice processing path Volume Gain";
+ ctl = mixer_get_ctl_by_name(mixer, name);
+ if (!ctl) {
+ fprintf(stderr, "Invalid mixer control\n");
+ return -1;
+ }
+
+ mixer_ctl_set_value(ctl, 0, vol_gain);
+
+ return 0;
+}
+
+int mix_get_voice_vol_gain(struct mixer *mixer, int *vol_gain)
+{
+ struct mixer_ctl *ctl;
+ int val;
+
+ printf("%s: start !\n",__func__);
+ char name[] = "voice processing path Volume Gain";
+ ctl = mixer_get_ctl_by_name(mixer, name);
+ if (!ctl) {
+ fprintf(stderr, "Invalid mixer control\n");
+ return -1;
+ }
+
+ val = mixer_ctl_get_value(ctl, 0);
+ if((val < -15)||(val > 24)){
+ fprintf(stderr, "Invalid val=%d\n",val);
+ return -2;
+ }
+ *vol_gain = val;
+ return 0;
+}
+
+int mix_set_tx_voice_vol_gain(struct mixer *mixer, int vol_gain)
+{
+ struct mixer_ctl *ctl;
+ char name[] = "voice processing tx path Volume Gain";
+ ctl = mixer_get_ctl_by_name(mixer, name);
+ if (!ctl) {
+ fprintf(stderr, "Invalid mixer control\n");
+ return -1;
+ }
+
+ mixer_ctl_set_value(ctl, 0, vol_gain);
+
+ return 0;
+}
+
+int mix_get_tx_voice_vol_gain(struct mixer *mixer, int *vol_gain)
+{
+ struct mixer_ctl *ctl;
+ int val;
+
+ printf("%s: start !\n",__func__);
+ char name[] = "voice processing tx path Volume Gain";
+ ctl = mixer_get_ctl_by_name(mixer, name);
+ if (!ctl) {
+ fprintf(stderr, "Invalid mixer control\n");
+ return -1;
+ }
+
+ val = mixer_ctl_get_value(ctl, 0);
+ if((val < -15)||(val > 24)){
+ fprintf(stderr, "Invalid val=%d\n",val);
+ return -2;
+ }
+ *vol_gain = val;
+ return 0;
+}
+
int mix_set_tx_voice_vol(struct mixer *mixer, int volume)
{
struct mixer_ctl *ctl;