X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fdrv%2Ftas5706a.h;h=3df9be43ecfa2674fd58b5afffc127abde92868f;hb=4278d44ef7681c56f4bd16615c3c4d9338112df4;hp=b379e0911a531c0501016fd1f68d92c15c9def68;hpb=c921d09b2bb71feaf1dd954200db6f7e1e88e7c2;p=bertos.git diff --git a/bertos/drv/tas5706a.h b/bertos/drv/tas5706a.h index b379e091..3df9be43 100644 --- a/bertos/drv/tas5706a.h +++ b/bertos/drv/tas5706a.h @@ -33,10 +33,10 @@ * \brief TAS5706A Power DAC i2c driver. * * - * \version $Id$ * \author Francesco Sacchi * * $WIZ$ module_name = "tas5706a" + * $WIZ$ module_depends = "timer", "i2c" * $WIZ$ module_configuration = "bertos/cfg/cfg_tas5706a.h" * $WIZ$ module_hw = "bertos/hw/hw_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 */