f303k8 wav player

Dependencies:   SDFileSystem mbed

Committer:
nameless129
Date:
Sun Jul 31 12:13:36 2016 +0000
Revision:
0:1561c4efda0e
Child:
1:7a3f34b2d18b
wabPlayer??????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nameless129 0:1561c4efda0e 1 #include "mbed.h"
nameless129 0:1561c4efda0e 2 #include "wavChunks.h"
nameless129 0:1561c4efda0e 3 #include "wavPlayer.h"
nameless129 0:1561c4efda0e 4 #include <stdio.h>
nameless129 0:1561c4efda0e 5 #include "SDFileSystem.h"
nameless129 0:1561c4efda0e 6
nameless129 0:1561c4efda0e 7
nameless129 0:1561c4efda0e 8 wavPlayerOnDAC::wavPlayerOnDAC(PinName pinDAC) :
nameless129 0:1561c4efda0e 9 DACout(pinDAC)
nameless129 0:1561c4efda0e 10 {
nameless129 0:1561c4efda0e 11 }
nameless129 0:1561c4efda0e 12
nameless129 0:1561c4efda0e 13 void wavPlayerOnDAC::setFile(FIL* tgtFile)
nameless129 0:1561c4efda0e 14 {
nameless129 0:1561c4efda0e 15 uint16_t i;
nameless129 0:1561c4efda0e 16 wavfil = *tgtFile;
nameless129 0:1561c4efda0e 17 f_read(&wavfil,&wavReadData,sizeof(wavReadData),&wavReadByte);
nameless129 0:1561c4efda0e 18 for(i=0;i<WAV_READ_SIZE;i++)
nameless129 0:1561c4efda0e 19 {
nameless129 0:1561c4efda0e 20 DACData[0][i] = wavReadData[i]+32768;
nameless129 0:1561c4efda0e 21 }
nameless129 0:1561c4efda0e 22 dac_flag[0] = 1;
nameless129 0:1561c4efda0e 23
nameless129 0:1561c4efda0e 24 f_read(&wavfil,&wavReadData,sizeof(wavReadData),&wavReadByte);
nameless129 0:1561c4efda0e 25 for(i=0;i<WAV_READ_SIZE;i++)
nameless129 0:1561c4efda0e 26 {
nameless129 0:1561c4efda0e 27 DACData[1][i] = wavReadData[i]+32768;
nameless129 0:1561c4efda0e 28 }
nameless129 0:1561c4efda0e 29 dac_flag[1] = 1;
nameless129 0:1561c4efda0e 30 fWavPlaying = 1;
nameless129 0:1561c4efda0e 31 dac_c = 0;
nameless129 0:1561c4efda0e 32 }
nameless129 0:1561c4efda0e 33
nameless129 0:1561c4efda0e 34 //return 0:playing 1:stop
nameless129 0:1561c4efda0e 35 uint8_t wavPlayerOnDAC::readProc(void)
nameless129 0:1561c4efda0e 36 {
nameless129 0:1561c4efda0e 37 uint16_t i,j;
nameless129 0:1561c4efda0e 38
nameless129 0:1561c4efda0e 39 if(f_eof(&wavfil) != 0)
nameless129 0:1561c4efda0e 40 {
nameless129 0:1561c4efda0e 41 fWavPlaying = 0;
nameless129 0:1561c4efda0e 42 }
nameless129 0:1561c4efda0e 43
nameless129 0:1561c4efda0e 44 if(fWavPlaying == 0)
nameless129 0:1561c4efda0e 45 {
nameless129 0:1561c4efda0e 46 dac_on = 0;
nameless129 0:1561c4efda0e 47 return 1;
nameless129 0:1561c4efda0e 48 }
nameless129 0:1561c4efda0e 49 dac_on = 1;
nameless129 0:1561c4efda0e 50 for(j=0;j<2;j++)
nameless129 0:1561c4efda0e 51 {
nameless129 0:1561c4efda0e 52 if(dac_flag[j] == 0)
nameless129 0:1561c4efda0e 53 {
nameless129 0:1561c4efda0e 54
nameless129 0:1561c4efda0e 55 f_read(&wavfil,&wavReadData,sizeof(wavReadData),&wavReadByte);
nameless129 0:1561c4efda0e 56 for(i=0;i<WAV_READ_SIZE;i++)
nameless129 0:1561c4efda0e 57 {
nameless129 0:1561c4efda0e 58 DACData[j][i] = wavReadData[i]+32768;
nameless129 0:1561c4efda0e 59 }
nameless129 0:1561c4efda0e 60 dac_flag[j] = 1;
nameless129 0:1561c4efda0e 61 }
nameless129 0:1561c4efda0e 62 }
nameless129 0:1561c4efda0e 63 return 0;
nameless129 0:1561c4efda0e 64 }
nameless129 0:1561c4efda0e 65
nameless129 0:1561c4efda0e 66 void wavPlayerOnDAC::rewind(void)
nameless129 0:1561c4efda0e 67 {
nameless129 0:1561c4efda0e 68 f_lseek(&wavfil,0);
nameless129 0:1561c4efda0e 69 fWavPlaying = 1;
nameless129 0:1561c4efda0e 70 }
nameless129 0:1561c4efda0e 71 void wavPlayerOnDAC::stop(void)
nameless129 0:1561c4efda0e 72 {
nameless129 0:1561c4efda0e 73 fWavPlaying = 0;
nameless129 0:1561c4efda0e 74 }
nameless129 0:1561c4efda0e 75
nameless129 0:1561c4efda0e 76 void wavPlayerOnDAC::DACOutProc(void)
nameless129 0:1561c4efda0e 77 {
nameless129 0:1561c4efda0e 78 if(dac_on == 1) {
nameless129 0:1561c4efda0e 79 if(dac_flag[dac_c] == 1)
nameless129 0:1561c4efda0e 80 {
nameless129 0:1561c4efda0e 81 DACout.write_u16(DACData[dac_c][rp]);
nameless129 0:1561c4efda0e 82 if( rp == WAV_READ_SIZE-1)
nameless129 0:1561c4efda0e 83 {
nameless129 0:1561c4efda0e 84 dac_flag[dac_c] = 0;
nameless129 0:1561c4efda0e 85 rp = 0;
nameless129 0:1561c4efda0e 86 dac_c = (dac_c+1)%2;
nameless129 0:1561c4efda0e 87 }
nameless129 0:1561c4efda0e 88 else
nameless129 0:1561c4efda0e 89 {
nameless129 0:1561c4efda0e 90 rp++;
nameless129 0:1561c4efda0e 91 }
nameless129 0:1561c4efda0e 92 }
nameless129 0:1561c4efda0e 93 }
nameless129 0:1561c4efda0e 94 }
nameless129 0:1561c4efda0e 95