// // Created by xemon on 17.11.22. // #ifndef UVEOS_ON_NATION_AUDIOPLAYERINTERFACE_H #define UVEOS_ON_NATION_AUDIOPLAYERINTERFACE_H #include "stdint.h" #include "stddef.h" #include "stdbool.h" typedef bool (*audioPlayerCallStart)(void *env, char *sampleName, uint16_t sampleNameLength, uint32_t timeout); typedef bool (*audioPlayerCall)(void *env, uint32_t timeout); typedef bool (*audioPlayerTone)(void *env, uint32_t count); typedef struct { void *env; audioPlayerCallStart start; audioPlayerCallStart startToEnd; audioPlayerCall wait; audioPlayerCall stop; audioPlayerCall isBusy; audioPlayerTone startTone; } tAudioPlayerInterface; bool AudioPlayerInterfacePlay(tAudioPlayerInterface *env, char *sampleName, uint16_t snLength, uint32_t timeout); bool AudioPlayerInterfacePlayToEnd(tAudioPlayerInterface *env, char *sampleName, uint16_t snLength, uint32_t timeout); bool AudioPlayerInterfacePlayTone(tAudioPlayerInterface *env, uint16_t count); #define AudioPlayer_Start(PLAYER, NAME, LEN, TIMEOUT) PLAYER->start((PLAYER)->env,NAME,LEN,TIMEOUT) #define AudioPlayer_Wait(PLAYER, TIMEOUT) PLAYER->wait((PLAYER)->env,TIMEOUT) #define AudioPlayer_IsBusy(PLAYER, TIMEOUT) PLAYER->isBusy((PLAYER)->env,TIMEOUT) #define AudioPlayer_Stop(PLAYER, TIMEOUT) PLAYER->stop((PLAYER)->env,TIMEOUT) #define AudioPlayer_Play(PLAYER, NAME, LEN, TIMEOUT) AudioPlayerInterfacePlay(PLAYER,NAME,LEN,TIMEOUT) #define AudioPlayer_PlayStatic(PLAYER, NAME, TIMEOUT) AudioPlayer_Play(PLAYER,NAME,sizeof(NAME)-1,TIMEOUT) #define AudioPlayer_StartToEnd(PLAYER, NAME, LEN, TIMEOUT) PLAYER->startToEnd((PLAYER)->env,NAME,LEN,TIMEOUT) #define AudioPlayer_PlayToEnd(PLAYER, NAME, LEN, TIMEOUT) AudioPlayerInterfacePlayToEnd(PLAYER,NAME,LEN,TIMEOUT) #define AudioPlayer_PlayToWait(PLAYER, NAME, TIMEOUT) AudioPlayer_PlayToEnd(PLAYER,NAME,sizeof(NAME)-1,TIMEOUT) #define AudioPlayer_PlayTone(PLAYER, COUNT) PLAYER->startTone((PLAYER)->env,COUNT) #define AudioPlayer_StartToEnd(PLAYER, NAME, LEN, TIMEOUT) PLAYER->startToEnd((PLAYER)->env,NAME,LEN,TIMEOUT) #define AudioPlayer_PlayToTone(PLAYER, COUNT) AudioPlayerInterfacePlayTone(PLAYER,COUNT) #define AudioPlayer_PlayStaticTone(PLAYER, COUNT) AudioPlayer_PlayToTone(PLAYER,COUNT) #endif //UVEOS_ON_NATION_AUDIOPLAYERINTERFACE_H