Reproductor de archivos wav

Dependencies:   SDFileSystem mbed-src mbed

Fork of SDFileSystem_HelloWorld by mbed official

Committer:
EduardoVitela
Date:
Fri Jun 12 04:49:18 2015 +0000
Revision:
1:6f7dafed256b
publicando

Who changed what in which revision?

UserRevisionLine numberNew 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