Android KK上对ALC5616调试笔记——音量调节

Created with Raphaël 2.1.0 analog ADC CPU

大致流程是,模拟数据通过 line in 输入到ALC5616,经过寄存器 MX-0Fh (INL & INR Volume Control) 调节音量以后输入给ADC,ADC内部还有一次调节音量的机会,可以通过设置寄存器 MX-1Ch (Stereo1 ADC Digital Volume Control) 来实现。
如果觉得ALSA出来的数据不对的话,可以将底层数据读取出来,具体位置如下:

services/audioflinger/Threads.cpp
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index bf85b51..59b7d78 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp

@@ -4538,6 +4539,7 @@ bool AudioFlinger::RecordThread::threadLoop()
                                 readInto = mRsmpInBuffer;
                                 mRsmpInIndex = 0;
                             }
+                            //tag for 读取alsa数据 , 以及再往下追read函数的实现。
                             mBytesRead = mInput->stream->read(mInput->stream, readInto,
                                     mBufferSize);
                             if (mBytesRead <= 0) {

你可能感兴趣的:(android)