• Ready for review
  • Audio (UCB1400)

    This describes the audio-driver for the UCB1400-codec found on the Trizeps-module.

    Registry Keys

    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Audio]

    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Audio]

    Key

    Type

    Description

    MuteMode

    DWORD

    How to mute the device during no audio ouput. (see Mute Settings)

    MutePortAdr

    DWORD

    Address to write to, if MUTE_PORTADR is used. (see Mute Settings)

    MutePortSize

    DWORD

    Bus-width, if MUTE_PORTADR is used. (see Mute Settings)

    MutePortMute

    DWORD

    Value to write for mute, if MUTE_PORTADR is used. (see Mute Settings)

    MutePortUnMute

    DWORD

    Value to write for unmute, if MUTE_PORTADR is used. (see Mute Settings)

    MuteGPIOPin

    DWORD

    GPIO-Pin to use, if MUTE_GPIOPIN is used. (see Mute Settings)

    BassTreble

    DWORD

    Value to use for CSR1 register of UCB1400

    Priority256

    DWORD

    priority used for driver-threads

    InputSource

    DWORD

    Source of audio-input: 1: MIC, 2: LINE_IN

    CaptureLatency

    DWORD

    Capture-buffer-size in milliseconds. When using VOIP-applications, reducing capture-latency might be wanted.

    PlayLatency

    DWORD

    Play-buffer-size in milliseconds. When using VOIP-applications, reducing play-latency might be wanted.

    RecordGain

    DWORD

    See Record Gain Register (0x1C) of UCB1400-codec. Bits 0..7 are the gain setting for the right channel; bits 8..15 for the left channel.

    MicVolume

    DWORD

    See MIC Volume Register (0x0E) of UCB1400-codec. Set bit 6 (0x40) to enable 20dB boost

    WM9715ALC

    DWORD

    See ALC-Registers (0x60,0x62) of WM9715L-codec. The upper 16 bits are written to Reg60h, the lower to Reg62h. Default-value if not set is 0xB0323E00.

    [HKEY_CURRENT_USER\ControlPanel\Volume]

    [HKEY_CURRENT_USER\ControlPanel\Volume]

    Key

    Type

    Description

    Volume

    DWORD

    Volume: bits0..15 left channel; bits16..32 right channel

    Mute Settings

    There are many mute-modes availlable, which may be set through the MuteMode-registry key. The audio-output is unmuted and muted automatically before and after playing sound-files. Multiple mute-modes may be selected by setting the appropiate flags:

    • MUTE_HPEN (0x01)

    • MUTE_MASTER (0x02)

    • MUTE_VOLUME (0x04)

    • MUTE_DRVLIB (0x08)

    • MUTE_PORTADR (0x10)

    • MUTE_GPIOPIN (0x20)

    MUTE_HPEN

    Enable and disable headphone-driver.

    MUTE_MASTER

    Use master-mute bit in master-volume-register (0x02) of UCB1400.

    MUTE_VOLUME

    Change volume for muting.

    MUTE_DRVLIB

    This calls a drvlib function to mute the device.
    The drvlib writes to a board-control-register.

    MUTE_PORTADR

    Write to register defined through MutePortAdr. MutePortAdr is a static virtual address.
    MutePortSize can be 2 (16bit) or 4 (32bit) depending on the bus-width of MutePortAdr. MutePortMute is written to MutePortAdr if the device is muted. MutePortUnMute is written to MutePortAdr id the device is unmuted.

    MUTE_GPIOPIN

    Toggles the gpio-pin given with MuteGPIOPin.
    0V on gpio: device muted.
    3.3V on gpio: device not muted.
    If bit 0x100 is set in MuteGPIOPin, the logic is inversed.