Advertisement
Guest User

UB_CS43L22_PlayWAVSingle

a guest
Sep 29th, 2014
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.40 KB | None | 0 0
  1. WAV_ERR_t UB_CS43L22_PlayWAVSingle(uint8_t Volume)
  2. {
  3.   WAV_ERR_t ret_wert=WAV_INIT_ERR;
  4.   UB_WAV wav_file;
  5.   UB_WAV * wav_file_pt;
  6.   FATFS_t controle;
  7.   FATFS_t buffer_check;
  8.   FIL recording;
  9.   uint8_t wav_buff[256]="0";
  10.  
  11.   if((cs43l22_status==CS43L22_INIT_OK) || (cs43l22_status==CS43L22_STOP)) {
  12.     // check vom WAV-Header
  13.  
  14.     wav_start = wav_buff;
  15.     wav_file_pt = &wav_file;
  16.     controle=UB_Fatfs_OpenFile(&recording,"test16k.wav",F_RD);
  17.     buffer_check=UB_Fatfs_ReadBlock(&recording,wav_start,256,wav_file.size);
  18.     wav_file.size = UB_Fatfs_FileSize(&recording);
  19.     wav_file.table = wav_start;
  20.  
  21.     ret_wert=P_CS43L22_CheckWAV(wav_file_pt);
  22.  
  23.     if(ret_wert==WAV_OK) {
  24.       cs43l22_status=CS43L22_PLAY;
  25.       wav_loop=0; // single play
  26.       wav_start=wav_file.table[my_wav.data_start];
  27.  
  28.       if(my_wav.channels==2) {
  29.         // stereo
  30.         UB_AUDIO_InitNew(OUTPUT_DEVICE_HEADPHONE, Volume, my_wav.samplerate);
  31.       }
  32.       else {
  33.         // mono
  34.         UB_AUDIO_InitNew(OUTPUT_DEVICE_HEADPHONE, Volume, my_wav.samplerate/2);
  35.       }
  36.       UB_Led_On(LED_BLUE);
  37.       EVAL_AUDIO_Play((uint16_t*)wav_start, 256);
  38.  
  39.       wav_start = wav_buff;
  40.      
  41.       while(buffer_check!=FATFS_EOF)
  42.       {
  43.           buffer_check=UB_Fatfs_ReadBlock(&recording,wav_start,256,wav_file.size);
  44.           EVAL_AUDIO_Play((uint16_t*)wav_start, 256);
  45.           wav_start = wav_buff;
  46.       }
  47.     }
  48.   }
  49.   return(ret_wert);
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement