1 //----------------------------------------------------------------------------- 2 // Copyright (c) 2015-2018 Marcelo Fernandez 3 // 4 // Permission is hereby granted, free of charge, to any person obtaining a copy 5 // of this software and associated documentation files (the "Software"), to 6 // deal in the Software without restriction, including without limitation the 7 // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 8 // sell copies of the Software, and to permit persons to whom the Software is 9 // furnished to do so, subject to the following conditions: 10 // 11 // The above copyright notice and this permission notice shall be included in 12 // all copies or substantial portions of the Software. 13 // 14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 19 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 20 // IN THE SOFTWARE. 21 //----------------------------------------------------------------------------- 22 23 #ifndef __WAV_H__ 24 #define __WAV_H__ 25 26 class wavFile : public audioFile { 27 private: 28 int format; 29 int channels; 30 int samplesPerSec; 31 int bitsPerSample; 32 int totalSamples; 33 34 int chunkSize; 35 int status; 36 37 int ReadChunk(); 38 public: 39 wavFile(oamlFileCallbacks *cbs); 40 ~wavFile(); 41 GetFormat()42 int GetFormat() const { return format; } GetChannels()43 int GetChannels() const { return channels; } GetSamplesPerSec()44 int GetSamplesPerSec() const { return samplesPerSec; } GetBitsPerSample()45 int GetBitsPerSample() const { return bitsPerSample; } GetBytesPerSample()46 int GetBytesPerSample() const { return bitsPerSample / 8; } GetTotalSamples()47 int GetTotalSamples() const { return totalSamples; } 48 49 int Open(const char *filename); 50 int Read(char *buffer, int size); 51 52 void WriteToFile(const char *filename, ByteBuffer *buffer, int channels, unsigned int sampleRate, int bytesPerSample); 53 54 void Close(); 55 }; 56 57 #endif /* __WAV_H__ */ 58