Advertisement
Guest User

Untitled

a guest
Jul 21st, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. void Game::Load_Wave_File(char *fname)
  2. {
  3. FILE *fp;
  4.  
  5. fp = fopen(fname,"rb");
  6. if (fp)
  7. {
  8. char id[4], *sound_buffer; //four chars to hold 'RIFF'
  9. for(int i = 0; i < 4; i++)
  10. id[i] = '\0';
  11.  
  12. DWORD size; //32 bit value to hold file size
  13. short format_tag, channels, block_align, bits_per_sample; //our 16 values
  14. DWORD format_length, sample_rate, avg_chars_sec, data_size, i; //our 32 bit values
  15.  
  16. fread(id, sizeof(char), 4, fp); //read in first four chars
  17. //int n =memcmp((char*)id, "RIFF",4);
  18. //if (!strncmp( (char*)id, "RIFF", 4 ))
  19.  
  20. if(!strncmp(id, "RIFF",4))
  21. { //we had 'RIFF' let's continue
  22. fread(&size, sizeof(DWORD), 1, fp); //read in 32bit size value
  23. fread(id, sizeof(char), 4, fp); //read in 4 char string now
  24. if (!strncmp((char*)id,"WAVE",4))
  25. { //this is probably a wave file since it contained "WAVE"
  26. fread(id, sizeof(char), 4, fp); //read in 4 chars "fmt ";
  27. fread(&format_length, sizeof(DWORD),1,fp);
  28. fread(&format_tag, sizeof(short), 1, fp); //check mmreg.h (i think?) for other
  29. // possible format tags like ADPCM
  30. fread(&channels, sizeof(short),1,fp); //1 mono, 2 stereo
  31. fread(&sample_rate, sizeof(DWORD), 1, fp); //like 44100, 22050, etc...
  32. fread(&avg_chars_sec, sizeof(short), 1, fp); //probably won't need this
  33. fread(&block_align, sizeof(short), 1, fp); //probably won't need this
  34. fread(&bits_per_sample, sizeof(short), 1, fp); //8 bit or 16 bit file?
  35. fread(id, sizeof(char), 4, fp); //read in 'data'
  36. fread(&data_size, sizeof(DWORD), 1, fp); //how many chars of sound data we have
  37. sound_buffer = ((char *) malloc (sizeof(char) * data_size)); //set aside sound buffer space
  38. fread(sound_buffer, sizeof(char), data_size, fp); //read in our whole sound data chunk
  39. }
  40. else
  41. printf("Error: RIFF file but not a wave file\n");
  42. }
  43. else
  44. printf("Error: not a RIFF file\n");
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement