Microphone service “mic:u” #
| Command Header | Description | 
|---|---|
| 0x00010042 | MapSharedMem | 
| 0x00020000 | UnmapSharedMem | 
| 0x00030140 | StartSampling | 
| 0x00040040 | AdjustSampling | 
| 0x00050000 | StopSampling | 
| 0x00060000 | IsSampling | 
| 0x00070000 | GetEventHandle | 
| 0x00080040 | SetGain | 
| 0x00090000 | GetGain | 
| 0x000A0040 | SetPower | 
| 0x000B0000 | GetPower | 
| 0x000C0042 | SetIirFilterMic | 
| 0x000D0040 | SetClamp | 
| 0x000E0000 | GetClamp | 
| 0x000F0040 | SetAllowShellClosed | 
| 0x00100040 | When the input value is 0, value 1 is written to an u8 MIC module state field. Otherwise, value 0 is written there. Normally the input value is non-zero. | 
This is an interface for using the MIC hardware via the “cdc:MIC” service and the MIC IO registers.
Only one session can be open for this service total(that is, only one process can use this service at a time).
Encoding #
| Enum | Value | 
|---|---|
| ENCODING_PCM8 | 0 | 
| ENCODING_PCM16 | 1 | 
| ENCODING_PCM8_SIGNED | 2 | 
| ENCODING_PCM16_SIGNED | 3 | 
SampleRate #
| Enum | Value | 
|---|---|
| SAMPLE_RATE_32730 | 0 | 
| SAMPLE_RATE_16360 | 1 | 
| SAMPLE_RATE_10910 | 2 | 
| SAMPLE_RATE_8180 | 3 | 
The actual accurate sampling rate can be calculated using
(16756991 / 512) / (SampleRate + 1) where SampleRate is one of the
above values.