// // Created by Teo-CD on 22/10/23. // #ifndef JIN_BARBAPAPA_SPEAKER_H #define JIN_BARBAPAPA_SPEAKER_H #include #include #include #include #include #include #include "Com.h" #include "IDs.h" #include "Pinout.h" static constexpr uint8_t audioMemReservation = 10; class Speaker { public: Speaker() : sd(SD) {}; static void init(); /** Play the entry sound for a specific tag ID. */ void playNewSound(int8_t ID); /** Check if a sound and playing an disable the amp if not anymore. */ bool checkPlayingAndDisable(); private: SDClass &sd; /* * Below are members needed to set up the audio pipeline. * We need an input, output, and to connect them to one another. * We also need some specially reserved memory to store the data to playback. */ static audio_block_t audioMemory[audioMemReservation]; static bool memoryInitialized; AudioPlaySdWav sdWavSource; AudioOutputI2S i2sOut; AudioConnection connectLeftChannels{sdWavSource, 0, i2sOut, 0}; AudioConnection connectRightChannels{sdWavSource, 1, i2sOut, 1}; }; #endif //JIN_BARBAPAPA_SPEAKER_H