/** * @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; }
/** * @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; }