Esempio n. 1
0
/**
  * @brief  Starts Audio streaming.    
  * @param  idx: File index
  * @retval Audio error
  */ 
AUDIO_ErrorTypeDef AUDIO_Start(uint8_t idx)
{
  uint32_t bytesread;
  
  if(MTP_GetWavObjectNumber() > idx)
  { 
    AUDIO_GetFileInfo(idx, &wav_info);
    
    BSP_AUDIO_OUT_SetFrequency(wav_info.SampleRate); 
    
    buffer_ctl.offset = BUFFER_OFFSET_NONE;
    
    if(MTP_GetData(idx, 
                   44,
                   AUDIO_BUFFER_SIZE, 
                   &buffer_ctl.buff[0],
                   &bytesread) == 0)
    {
      audio_state = AUDIO_STATE_PLAY;
      BSP_LCD_DisplayStringAt(250, LINE(14), (uint8_t *)"  [PLAY ]", LEFT_MODE);
      { 
        if(bytesread != 0)
        {
          BSP_AUDIO_OUT_Play((uint16_t*)&buffer_ctl.buff[0], AUDIO_BUFFER_SIZE);
          buffer_ctl.fptr = bytesread;
          return AUDIO_ERROR_NONE;
        }
      }
    }
  }
  return AUDIO_ERROR_IO;
}
Esempio n. 2
0
/**
  * @brief  Starts Audio streaming.    
  * @param  idx: File index
  * @retval Audio error
  */
AUDIO_ErrorTypeDef AUDIO_Start(uint8_t idx)
{
  uint32_t bytesread;
  
  if((FileList.ptr > idx) && (BSP_SD_IsDetected()))
  {
    f_close(&wav_file);
    
    AUDIO_GetFileInfo(idx, &wav_info);
    
    audio_state = AUDIO_STATE_CONFIG;
    
    /* Set Frequency */
    USBH_AUDIO_SetFrequency(&hUSBHost, 
                            wav_info.SampleRate,
                            wav_info.NbrChannels,
                            wav_info.BitPerSample);
    
    /* Fill whole buffer at first time */
    if(f_read(&wav_file, 
              &buffer_ctl.buff[0], 
              AUDIO_BLOCK_SIZE *  AUDIO_BLOCK_NBR, 
              (void *)&bytesread) == FR_OK)
    { 
      if(bytesread != 0)
      {
        return AUDIO_ERROR_NONE;
      }
    }
    
    buffer_ctl.in_ptr = 0;
  }
  return AUDIO_ERROR_IO;
}
/**
  * @brief  Starts Audio streaming.    
  * @param  idx: File index
  * @retval Audio error
  */ 
AUDIO_ErrorTypeDef AUDIO_Start(uint8_t idx)
{
  uint32_t bytesread;
  
  f_close(&WavFile);
  if(AUDIO_GetWavObjectNumber() > idx)
  { 
    AUDIO_GetFileInfo(idx, &WaveFormat);
    
    /*Adjust the Audio frequency */
    AUDIO_WavePlayerInit(WaveFormat.SampleRate); 
    
    BufferCtl.offset = BUFFER_OFFSET_NONE;
    
    /* Get Data from USB Flash Disk */
    f_lseek(&WavFile, 0);
    /* Fill whole buffer at first time */
    if(f_read(&WavFile, 
              &BufferCtl.buff[0], 
              AUDIO_BUFFER_SIZE, 
              (void *)&bytesread) == FR_OK)
    {
      AudioState = AUDIO_STATE_PLAY;
      BSP_LCD_DisplayStringAt(250, LINE(14), (uint8_t *)"  [PLAY ]", LEFT_MODE);
      { 
        if(bytesread != 0)
        {
          BSP_AUDIO_OUT_Play((uint16_t*)&BufferCtl.buff[0], AUDIO_BUFFER_SIZE);
          BufferCtl.fptr = bytesread;
          return AUDIO_ERROR_NONE;
        }
      }
    }
  }
  return AUDIO_ERROR_IO;
}