m4n71k0r

Untitled

Oct 19th, 2011
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <fstream>
  2. #include <string>
  3. #include <iostream>
  4.  
  5. struct WaveHeader
  6. {
  7.     char ChunkID_ [4];
  8.     int ChunkDataSize_;
  9.     char Format_ [4];
  10.     char SubChunk1ID_ [4];
  11.     int SubChunk1Size_;
  12.     short int AudioFormat_;
  13.     short int NumChannels_;
  14.     int SampleRate_;
  15.     int ByteRate_;
  16.     short int BlockAlign_;
  17.     short int BitsPerSample_;
  18.     char SubChank2ID_ [4];
  19.     int SubChank2Size_;
  20. };
  21.  
  22. int main()
  23. {
  24.     std::ifstream input_file;
  25.     int length = 0;
  26.     WaveHeader header;
  27.  
  28.     input_file.open("c:\\1.wav", std::fstream::binary);
  29.  
  30.     input_file.seekg (0, std::ios::end);
  31.     length = input_file.tellg();
  32.  
  33.     std::cout << sizeof(int) << " " << sizeof(short int) << std::endl;
  34.     std::cout << length << std::endl;
  35.  
  36.     if (length > sizeof(WaveHeader))
  37.     {
  38.         input_file.seekg (0, std::ios::beg);
  39.         input_file.read(reinterpret_cast<char*>(&header), sizeof(WaveHeader));
  40.         std::cout << input_file.gcount() << std::endl;
  41.         std::cout << header.SubChank2Size_ << std::endl;
  42.  
  43.         std::cout << std::boolalpha << ( header.SubChank2Size_ == length - sizeof(WaveHeader) ) << std::endl;
  44.  
  45.         char* wav_buffer = new char[length - sizeof(WaveHeader)];
  46.         input_file.read(wav_buffer, length - sizeof(WaveHeader));
  47.  
  48.         std::cout << input_file.gcount() << std::endl;
  49.         delete[] wav_buffer;
  50.     }
  51.     input_file.close();
  52. }
Advertisement
Add Comment
Please, Sign In to add comment