X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Ftas5706a.h;h=3df9be43ecfa2674fd58b5afffc127abde92868f;hb=00a56e3c9af3422795c598fda5e9e6ff74ca6b48;hp=394c7e482a2746651026ea50e288664f51c77526;hpb=b46f64914c62fbb0297728280478681659469654;p=bertos.git diff --git a/bertos/drv/tas5706a.h b/bertos/drv/tas5706a.h index 394c7e48..3df9be43 100644 --- a/bertos/drv/tas5706a.h +++ b/bertos/drv/tas5706a.h @@ -44,8 +44,22 @@ #ifndef DRV_TAS5706A_H #define DRV_TAS5706A_H +#include "cfg/cfg_i2c.h" + #include +#include + +#if COMPILER_C99 + #define tas5706a_init(...) PP_CAT(tas5706a_init ## _, COUNT_PARMS(__VA_ARGS__)) (__VA_ARGS__) + #define tas5706a_setLowPower(...) PP_CAT(tas5706a_setLowPower ## _, COUNT_PARMS(__VA_ARGS__)) (__VA_ARGS__) + #define tas5706a_setVolume(...) PP_CAT(tas5706a_setVolume ## _, COUNT_PARMS(__VA_ARGS__)) (__VA_ARGS__) +#else + #define tas5706a_init(args...) PP_CAT(tas5706a_init ## _, COUNT_PARMS(args)) (args) + #define tas5706a_setLowPower(args...) PP_CAT(tas5706a_setLowPower ## _, COUNT_PARMS(args)) (args) + #define tas5706a_setVolume(args...) PP_CAT(tas5706a_setVolume ## _, COUNT_PARMS(args)) (args) +#endif + typedef enum Tas5706aCh { TAS_CH1, @@ -70,15 +84,11 @@ typedef uint8_t tas5706a_vol_t; * * The volume must be expressed in % and will be at maximum CONFIG_TAS_MAX_VOL. * + * \param i2c The i2c context. * \param ch The channel to be controlled. * \param vol The volume you want to set. */ -void tas5706a_setVolume(Tas5706aCh ch, tas5706a_vol_t vol); - -/** - * Initialize the TAS chip. - */ -void tas5706a_init(void); +void tas5706a_setVolume_3(I2c *i2c, Tas5706aCh ch, tas5706a_vol_t vol); /** * Set TAS chip to low power mode. @@ -86,8 +96,33 @@ void tas5706a_init(void); * When in low power mode, the TAS will not play any sound. You should put the TAS chip in low * power whenever possible to prevent overheating and to save power. * + * \param i2c The i2c context. * \param val True if you want to enable low power mode, false otherwise. */ -void tas5706a_setLowPower(bool val); +void tas5706a_setLowPower_2(I2c *i2c, bool val); + +/** + * Initialize the TAS chip. + * + * \param i2c The i2c context. + */ +void tas5706a_init_1(I2c *i2c); + +#if !CONFIG_I2C_DISABLE_OLD_API + +DEPRECATED INLINE void tas5706a_setVolume_2(Tas5706aCh ch, tas5706a_vol_t vol) +{ + tas5706a_setVolume_3(&local_i2c_old_api, ch, vol); +} +DEPRECATED INLINE void tas5706a_setLowPower_1(bool val) +{ + tas5706a_setLowPower_2(&local_i2c_old_api, val); +} +DEPRECATED INLINE void tas5706a_init_0(void) +{ + tas5706a_init_1(&local_i2c_old_api); +} + +#endif /* !CONFIG_I2C_DISABLE_OLD_API */ #endif /* DRV_TAS5706A_H */