diff options
| -rw-r--r-- | firmware/drivers/audio/imx233-codec.c | 35 | ||||
| -rw-r--r-- | firmware/export/imx233-codec.h | 3 |
2 files changed, 33 insertions, 5 deletions
diff --git a/firmware/drivers/audio/imx233-codec.c b/firmware/drivers/audio/imx233-codec.c index f808a73..512bab6 100644 --- a/firmware/drivers/audio/imx233-codec.c +++ b/firmware/drivers/audio/imx233-codec.c @@ -53,14 +53,41 @@ void audiohw_set_frequency(int fsel) imx233_audioout_set_freq(fsel); } +void audiohw_enable_recording(bool source_mic) +{ + imx233_audioin_open(); + /* if source is microhpone we need to power the microphone too */ + imx233_audioin_enable_mic(source_mic); +} + +void audiohw_disable_recording(void) +{ + imx233_audioin_close(); +} + void audiohw_set_recvol(int left, int right, int type) { - (void) left; - (void) right; - (void) type; + if(type == AUDIO_GAIN_LINEIN) + { + imx233_audioin_set_vol(false, left, AUDIOIN_SELECT_LINE1); + imx233_audioin_set_vol(true, right, AUDIOIN_SELECT_LINE1); + imx233_audioin_set_vol(false, left, AUDIOIN_SELECT_LINE2); + imx233_audioin_set_vol(true, right, AUDIOIN_SELECT_LINE2); + imx233_audioin_set_vol(false, left, AUDIOIN_SELECT_HEADPHONE); + imx233_audioin_set_vol(true, right, AUDIOIN_SELECT_HEADPHONE); + } + else + imx233_audioin_set_vol(false, left, AUDIOIN_SELECT_MICROPHONE); } void audiohw_set_depth_3d(int val) { - (void) val; + /* input is raw value ranging from 0dB to 6dB in tenth of dB + * convert to value in 1.5dB steps */ + imx233_audioout_set_3d_effect(val / 15); +} + +void audiohw_set_monitor(bool enable) +{ + imx233_audioout_select_hp_input(enable); } diff --git a/firmware/export/imx233-codec.h b/firmware/export/imx233-codec.h index a02ef22..2bd6cba 100644 --- a/firmware/export/imx233-codec.h +++ b/firmware/export/imx233-codec.h @@ -37,6 +37,7 @@ AUDIOHW_SETTING(LEFT_GAIN, "dB", 1, 1, 0, 31, 23) AUDIOHW_SETTING(RIGHT_GAIN, "dB", 1, 1, 0, 31, 23) AUDIOHW_SETTING(MIC_GAIN, "dB", 1, 1, 0, 1, 1) #endif /* HAVE_RECORDING */ -AUDIOHW_SETTING(DEPTH_3D, "%", 0, 1, 0, 15, 0) +/* i.MX233 has four settings: 0dB, 3dB, 4.5dB, 6dB so fake 1.5dB steps */ +AUDIOHW_SETTING(DEPTH_3D, "dB", 1, 15, 0, 60, 0) #endif /* __IMX233_CODEC_H_ */ |