| 492 | } |
| 493 | |
| 494 | void CFileBrowser::UpdateFilePreview() |
| 495 | { |
| 496 | if(m_PreviewState != EPreviewState::UNLOADED || |
| 497 | !str_endswith(m_vpFilteredFileList[m_SelectedFileIndex]->m_aFilename, FILETYPE_EXTENSIONS[(int)m_FileType])) |
| 498 | { |
| 499 | return; |
| 500 | } |
| 501 | |
| 502 | if(m_FileType == CFileBrowser::EFileType::IMAGE) |
| 503 | { |
| 504 | char aImagePath[IO_MAX_PATH_LENGTH]; |
| 505 | str_format(aImagePath, sizeof(aImagePath), "%s/%s", m_pCurrentPath, m_vpFilteredFileList[m_SelectedFileIndex]->m_aFilename); |
| 506 | CImageInfo PreviewImageInfo; |
| 507 | if(Graphics()->LoadPng(PreviewImageInfo, aImagePath, m_vpFilteredFileList[m_SelectedFileIndex]->m_StorageType)) |
| 508 | { |
| 509 | Graphics()->UnloadTexture(&m_PreviewImage); |
| 510 | m_PreviewImageWidth = PreviewImageInfo.m_Width; |
| 511 | m_PreviewImageHeight = PreviewImageInfo.m_Height; |
| 512 | m_PreviewImage = Graphics()->LoadTextureRawMove(PreviewImageInfo, 0, aImagePath); |
| 513 | m_PreviewState = EPreviewState::LOADED; |
| 514 | } |
| 515 | else |
| 516 | { |
| 517 | m_PreviewState = EPreviewState::ERROR; |
| 518 | } |
| 519 | } |
| 520 | else if(m_FileType == CFileBrowser::EFileType::SOUND) |
| 521 | { |
| 522 | char aSoundPath[IO_MAX_PATH_LENGTH]; |
| 523 | str_format(aSoundPath, sizeof(aSoundPath), "%s/%s", m_pCurrentPath, m_vpFilteredFileList[m_SelectedFileIndex]->m_aFilename); |
| 524 | Sound()->UnloadSample(m_PreviewSound); |
| 525 | m_PreviewSound = Sound()->LoadOpus(aSoundPath, m_vpFilteredFileList[m_SelectedFileIndex]->m_StorageType); |
| 526 | m_PreviewState = m_PreviewSound == -1 ? EPreviewState::ERROR : EPreviewState::LOADED; |
| 527 | } |
| 528 | } |
| 529 | |
| 530 | void CFileBrowser::RenderFilePreview(CUIRect Preview) |
| 531 | { |
nothing calls this directly
no test coverage detected