ese 519 include files
Dependents: PROJECT_3D_AUDIO COG4050_adxl355_tilt COG4050_adxl355_tilt COG4050_adxl355_tilt_4050
WavObject.h
- Committer:
- niv17
- Date:
- 2015-04-07
- Revision:
- 0:5347612e39a3
File content as of revision 0:5347612e39a3:
// // WavObject.h // Demo // // Created by Philadelphia Game Lab on 7/7/14. // Copyright (c) 2014 Philadelphia Game Lab. All rights reserved. // #ifndef WAVOBJECT_H #define WAVOBJECT_H #include <string> #include "complextype.h" #include <cmath> #include <math.h> #include <iostream> //using std::complex; class WavObject { FILE* soundFile; struct { long n; int sampleRate; int bitDepth; int nChannels; }wavFileData; long startOfWavData; long endOfWavData; public: //Struct that holds RIFF data of Wave File. //RIFF data is meta data info that holds ID, size and format of WAVE file. struct RIFF_Header { char chunkID[4]; unsigned int chunkSize; char format[4]; }; //Struct that holds format subchunk data for WAVE file. struct WAVE_Format { unsigned int subChunkSize; short audioFormat; short nChannels; unsigned int sampleRate; unsigned int byteRate; short blockAlign; short bitsPerSample; }; //Struct that holds data of WAVE file. struct WAVE_Data { long subChunk2Size; }; //Struct to hold subchunkID struct CHUNK_ID { char chunkID[4]; }; WAVE_Format wave_format; RIFF_Header riff_header; WAVE_Data wave_data; CHUNK_ID chunk_id; short *shortTempData; Complex *complexTempData; WavObject (unsigned int size,const std::string wavFileName) : shortTempData(new short[size]), complexTempData(new Complex[size]) { extractWavHeader(wavFileName); } Complex *loadCmpWavData(const std::string fname, long *size, int *smpFreq, int *bitDepth, int *channels); void extractWavHeader (const std::string fname); // returns false if end of file reached and no repeat, true otherwise bool loadMoreData(unsigned int size, bool repeat); void seekToBeginning(); ~WavObject () { delete[] shortTempData; delete[] complexTempData; if (soundFile) fclose(soundFile); } }; #endif