Adafruit WaveHC Arduino Library
WaveHC.h
Go to the documentation of this file.
1 
16 #ifndef WaveHC_h
17 #define WaveHC_h
18 #include "Arduino.h"
19 #include <FatReader.h>
29 #define OPTIMIZE_CONTIGUOUS 1
30 
36 #define DVOLUME 0
37 
43 #define RATE_ERROR_LEVEL 2
44 //------------------------------------------------------------------------------
45 // Set the size for wave data buffers. Must be 256 or 512.
46 #if defined(__AVR_ATmega168P__) || defined(__AVR_ATmega168__)
47 
49 #define PLAYBUFFLEN 256UL
50 #else // __AVR_ATmega168P__
51 
53 #define PLAYBUFFLEN 512UL
54 #endif //__AVR_ATmega168P__
55 
56 // Define max allowed SD read rate in bytes/sec.
57 #if PLAYBUFFLEN == 512UL && OPTIMIZE_CONTIGUOUS
58 
59 #define MAX_BYTE_RATE 88200
60 #else // MAX_BYTE_RATE
61 
62 #define MAX_BYTE_RATE 44100
63 #endif // MAX_BYTE_RATE
64 
65 // Define maximum clock rate for DAC.
66 #if !DVOLUME
67 
68 #define MAX_CLOCK_RATE 44100
69 #else // DVOLUME
70 
71 #define MAX_CLOCK_RATE 22050
72 #endif // DVOLUME
73 
74 //------------------------------------------------------------------------------
83 class WaveHC {
84 public:
86  uint8_t Channels;
88  uint32_t dwSamplesPerSec;
90  uint8_t BitsPerSample;
94  volatile uint8_t isplaying;
96  uint32_t errors;
97 
99  uint8_t volume;
102 
103  WaveHC(void);
104  uint8_t create(FatReader &f);
109  uint32_t getSize(void) { return fd->fileSize(); }
110  uint8_t isPaused(void);
111  void pause(void);
112  void play(void);
113  int16_t readWaveData(uint8_t *buff, uint16_t len);
114  void resume(void);
115  void seek(uint32_t pos);
116  void setSampleRate(uint32_t samplerate);
117  void stop(void);
118 };
119 
120 #endif // WaveHC_h
void play(void)
Definition: WaveHC.cpp:435
void setSampleRate(uint32_t samplerate)
Definition: WaveHC.cpp:561
void seek(uint32_t pos)
Definition: WaveHC.cpp:536
uint32_t fileSize(void)
Definition: FatReader.h:171
uint8_t BitsPerSample
Definition: WaveHC.h:90
uint8_t isPaused(void)
Returns true if the player is paused else false.
Definition: WaveHC.cpp:410
uint32_t getSize(void)
Return the size of the WAV file.
Definition: WaveHC.h:109
volatile uint8_t isplaying
Definition: WaveHC.h:94
WaveHC(void)
Definition: WaveHC.cpp:295
int16_t readWaveData(uint8_t *buff, uint16_t len)
Not for use in applications. Must be public so SD read ISR can access it. Insures SD sectors are alig...
Definition: WaveHC.cpp:484
FatReader implements a minimal FAT16/FAT32 file reader class.
Definition: FatReader.h:127
FatReader * fd
Definition: WaveHC.h:101
uint32_t dwSamplesPerSec
Definition: WaveHC.h:88
void resume(void)
Definition: WaveHC.cpp:522
uint32_t errors
Definition: WaveHC.h:96
uint8_t volume
Definition: WaveHC.h:99
uint32_t remainingBytesInChunk
Definition: WaveHC.h:92
uint8_t Channels
Definition: WaveHC.h:86
void pause(void)
Definition: WaveHC.cpp:420
uint8_t create(FatReader &f)
Definition: WaveHC.cpp:307
Wave file player.
Definition: WaveHC.h:83
void stop(void)
Definition: WaveHC.cpp:576