Plays 8-bit Mono Wav Files for PWM
Diff: WDplayer.cpp
- Revision:
- 3:574fdfeb949e
- Parent:
- 0:c2f3d752d98f
--- a/WDplayer.cpp Tue Apr 09 04:32:52 2019 +0000 +++ b/WDplayer.cpp Wed Apr 17 05:07:15 2019 +0000 @@ -1,6 +1,5 @@ #include "WDplayer.h" -PwmOut dac(PTC10); unsigned char *buffer = (unsigned char *)malloc(1); void WDplayer::intWD(const char *path) { @@ -16,27 +15,26 @@ fseek(_fptr,0,SEEK_END); unsigned int len = ftell(_fptr); _pwmfreq = (1.0f / samplerate); - dac.period(_pwmfreq / (8.0f * 1.75f));//wave control and playback factor control _path = path; _length = len - 44; _fptr = NULL; _tck = 0; }; -void WDplayer::WDplay() { +void WDplayer::WDplay(PwmOut &dac) { _fptr = fopen(_path,"r"); fseek(_fptr,44,SEEK_SET); //sampling loop _ source of main performance issues for (_tck = _length; _tck > 1; _tck--) { fread(buffer,1,1,_fptr); - dac.write((int)buffer[0] / 255.00); - wait(_pwmfreq / 1.75f); //I dont like this & Playback present here + dac.write((float)buffer[0] / 255.00f); + wait(_pwmfreq / 2.0f); //I dont like this & Playback present here } _fptr = NULL; _tck = 0; }; -void WDplayer::WDtck() { +void WDplayer::WDtck(PwmOut &dac) { if (_fptr == NULL) { _fptr = fopen(_path,"r"); fseek(_fptr,44,SEEK_SET); @@ -48,11 +46,11 @@ } else { fread(buffer,1,1,_fptr); dac.write( (int)buffer[0] / 255.00 ); - wait(_pwmfreq / 1.75f); //I dont like this remove to tick mode - + //wait(_pwmfreq / 2.0f); //I dont like this remove to tick mode + _tck++; } }; -unsigned long WDplayer::get_pwmfreq() { +float WDplayer::get_pwmfreq() { return _pwmfreq; }; \ No newline at end of file