Reproductor de archivos wav
Dependencies: SDFileSystem mbed-src mbed
Fork of SDFileSystem_HelloWorld by
wavplayer.h@1:6f7dafed256b, 2015-06-12 (annotated)
- Committer:
- EduardoVitela
- Date:
- Fri Jun 12 04:49:18 2015 +0000
- Revision:
- 1:6f7dafed256b
publicando
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
EduardoVitela | 1:6f7dafed256b | 1 | /* |
EduardoVitela | 1:6f7dafed256b | 2 | Library wave file player by Tom Coxon |
EduardoVitela | 1:6f7dafed256b | 3 | |
EduardoVitela | 1:6f7dafed256b | 4 | Based on WAVEplayer by Vlad Cazan/Stephan Rochon modified by Tom Coxon to: |
EduardoVitela | 1:6f7dafed256b | 5 | |
EduardoVitela | 1:6f7dafed256b | 6 | 1. Run correctly on the Embedded Artists LPCXpresso baseboard. |
EduardoVitela | 1:6f7dafed256b | 7 | 2. To play 8 bit sample size in addition to original 16 bit |
EduardoVitela | 1:6f7dafed256b | 8 | 3. To be more fault tolerant when playing wav files. |
EduardoVitela | 1:6f7dafed256b | 9 | */ |
EduardoVitela | 1:6f7dafed256b | 10 | |
EduardoVitela | 1:6f7dafed256b | 11 | #ifndef WAVPLAYER_H |
EduardoVitela | 1:6f7dafed256b | 12 | #define WAVPLAYER_H |
EduardoVitela | 1:6f7dafed256b | 13 | |
EduardoVitela | 1:6f7dafed256b | 14 | #include "mbed.h" |
EduardoVitela | 1:6f7dafed256b | 15 | |
EduardoVitela | 1:6f7dafed256b | 16 | #define SAMPLE_FREQ 40000 |
EduardoVitela | 1:6f7dafed256b | 17 | #define BUF_SIZE (SAMPLE_FREQ/10) |
EduardoVitela | 1:6f7dafed256b | 18 | #define SLICE_BUF_SIZE 1 |
EduardoVitela | 1:6f7dafed256b | 19 | |
EduardoVitela | 1:6f7dafed256b | 20 | typedef struct uFMT_STRUCT { |
EduardoVitela | 1:6f7dafed256b | 21 | short comp_code; |
EduardoVitela | 1:6f7dafed256b | 22 | short num_channels; |
EduardoVitela | 1:6f7dafed256b | 23 | unsigned sample_rate; |
EduardoVitela | 1:6f7dafed256b | 24 | unsigned avg_Bps; |
EduardoVitela | 1:6f7dafed256b | 25 | short block_align; |
EduardoVitela | 1:6f7dafed256b | 26 | short sig_bps; |
EduardoVitela | 1:6f7dafed256b | 27 | } FMT_STRUCT; |
EduardoVitela | 1:6f7dafed256b | 28 | |
EduardoVitela | 1:6f7dafed256b | 29 | class WavPlayer { |
EduardoVitela | 1:6f7dafed256b | 30 | |
EduardoVitela | 1:6f7dafed256b | 31 | public: |
EduardoVitela | 1:6f7dafed256b | 32 | |
EduardoVitela | 1:6f7dafed256b | 33 | void play_wave(char *wavname); |
EduardoVitela | 1:6f7dafed256b | 34 | |
EduardoVitela | 1:6f7dafed256b | 35 | private: |
EduardoVitela | 1:6f7dafed256b | 36 | |
EduardoVitela | 1:6f7dafed256b | 37 | void cleanup(char *); |
EduardoVitela | 1:6f7dafed256b | 38 | void fill_adc_buf(short *, unsigned); |
EduardoVitela | 1:6f7dafed256b | 39 | void swapword(unsigned *); |
EduardoVitela | 1:6f7dafed256b | 40 | |
EduardoVitela | 1:6f7dafed256b | 41 | // a FIFO for the DAC |
EduardoVitela | 1:6f7dafed256b | 42 | short DAC_fifo[256]; |
EduardoVitela | 1:6f7dafed256b | 43 | short DAC_wptr; |
EduardoVitela | 1:6f7dafed256b | 44 | short DAC_rptr; |
EduardoVitela | 1:6f7dafed256b | 45 | short DAC_on; |
EduardoVitela | 1:6f7dafed256b | 46 | |
EduardoVitela | 1:6f7dafed256b | 47 | void dac_out(); |
EduardoVitela | 1:6f7dafed256b | 48 | |
EduardoVitela | 1:6f7dafed256b | 49 | }; |
EduardoVitela | 1:6f7dafed256b | 50 | |
EduardoVitela | 1:6f7dafed256b | 51 | #endif |