arduino-audio-driver
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AudioDriverWM8978Class Class Reference

Driver API for the wm8978 codec chip. More...

#include <Driver.h>

Inheritance diagram for AudioDriverWM8978Class:
AudioDriver

Public Member Functions

 AudioDriverWM8978Class ()
 
bool begin (CodecConfig codecCfg, DriverPins &pins) override
 
WM8978 & driver ()
 
bool end () override
 
int getVolume () override
 
bool isInputVolumeSupported () override
 
bool isVolumeSupported () override
 
DriverPinspins ()
 
virtual bool setConfig (CodecConfig codecCfg)
 
bool setInputVolume (int volume) override
 
bool setMute (bool mute) override
 
virtual bool setMute (bool mute, int line)
 Mute individual lines: only supported for some rare DACs. More...
 
bool setPAPower (bool enable)
 Sets the PA Power pin to active or inactive. More...
 
bool setVolume (int volume) override
 Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100. More...
 

Protected Member Functions

virtual bool configInterface (codec_mode_t mode, I2SDefinition iface)
 
virtual bool controlState (codec_mode_t mode)
 
virtual bool deinit ()
 
TwoWire * getI2C ()
 Determine the TwoWire object from the I2C config or use Wire. More...
 
int getI2CAddress ()
 
virtual bool init (codec_config_t codec_cfg)
 
int limitValue (int volume, int min=0, int max=100)
 
int toBits (sample_bits_t bits)
 
int toI2S (i2s_format_t fmt)
 

Protected Attributes

CodecConfig codec_cfg
 
DriverPinsp_pins = nullptr
 
int volume = 0
 
WM8978 wm8078
 

Detailed Description

Driver API for the wm8978 codec chip.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ AudioDriverWM8978Class()

Member Function Documentation

◆ begin()

bool begin ( CodecConfig  codecCfg,
DriverPins pins 
)
inlineoverridevirtual

Reimplemented from AudioDriver.

◆ configInterface()

virtual bool configInterface ( codec_mode_t  mode,
I2SDefinition  iface 
)
inlineprotectedvirtualinherited

◆ controlState()

virtual bool controlState ( codec_mode_t  mode)
inlineprotectedvirtualinherited

◆ deinit()

virtual bool deinit ( )
inlineprotectedvirtualinherited

◆ driver()

WM8978& driver ( )
inline

◆ end()

bool end ( void  )
inlineoverridevirtual

Reimplemented from AudioDriver.

◆ getI2C()

TwoWire* getI2C ( )
inlineprotectedinherited

Determine the TwoWire object from the I2C config or use Wire.

◆ getI2CAddress()

int getI2CAddress ( )
inlineprotectedinherited

◆ getVolume()

int getVolume ( )
inlineoverridevirtual

Implements AudioDriver.

◆ init()

virtual bool init ( codec_config_t  codec_cfg)
inlineprotectedvirtualinherited

◆ isInputVolumeSupported()

bool isInputVolumeSupported ( )
inlineoverridevirtual

Reimplemented from AudioDriver.

◆ isVolumeSupported()

bool isVolumeSupported ( )
inlineoverridevirtual

Reimplemented from AudioDriver.

◆ limitValue()

int limitValue ( int  volume,
int  min = 0,
int  max = 100 
)
inlineprotectedinherited

make sure that value is in range

Parameters
volume
Returns

◆ pins()

DriverPins& pins ( )
inlineinherited

◆ setConfig()

virtual bool setConfig ( CodecConfig  codecCfg)
inlinevirtualinherited

◆ setInputVolume()

bool setInputVolume ( int  volume)
inlineoverridevirtual

Reimplemented from AudioDriver.

◆ setMute() [1/2]

bool setMute ( bool  mute)
inlineoverridevirtual

Implements AudioDriver.

◆ setMute() [2/2]

virtual bool setMute ( bool  mute,
int  line 
)
inlinevirtualinherited

Mute individual lines: only supported for some rare DACs.

Reimplemented in AudioDriverES8388Class, AudioDriverAD1938Class, and AudioDriverCS42448Class.

◆ setPAPower()

bool setPAPower ( bool  enable)
inlineinherited

Sets the PA Power pin to active or inactive.

◆ setVolume()

bool setVolume ( int  volume)
inlineoverridevirtual

Defines the Volume (in %) if volume is 0, mute is enabled,range is 0-100.

Implements AudioDriver.

◆ toBits()

int toBits ( sample_bits_t  bits)
inlineprotected

◆ toI2S()

int toI2S ( i2s_format_t  fmt)
inlineprotected

fmt:0,LSB(right-aligned);1,MSB(left-aligned);2,Philips standard, I2S;3,PCM/DSP;

Member Data Documentation

◆ codec_cfg

CodecConfig codec_cfg
protectedinherited

◆ p_pins

DriverPins* p_pins = nullptr
protectedinherited

◆ volume

int volume = 0
protected

◆ wm8078

WM8978 wm8078
protected

The documentation for this class was generated from the following file: