| 364 | } |
| 365 | |
| 366 | static int handleFile(const char *file, FileListEntry *entry) { |
| 367 | int res = 0; |
| 368 | |
| 369 | // try to fix GPU freeze |
| 370 | vita2d_wait_rendering_done(); |
| 371 | |
| 372 | int type = getFileType(file); |
| 373 | |
| 374 | switch (type) { |
| 375 | case FILE_TYPE_PSP2DMP: |
| 376 | case FILE_TYPE_MP3: |
| 377 | case FILE_TYPE_OGG: |
| 378 | case FILE_TYPE_VPK: |
| 379 | case FILE_TYPE_ARCHIVE: |
| 380 | if (isInArchive()) |
| 381 | type = FILE_TYPE_UNKNOWN; |
| 382 | |
| 383 | break; |
| 384 | } |
| 385 | |
| 386 | switch (type) { |
| 387 | case FILE_TYPE_PSP2DMP: |
| 388 | res = coredumpViewer(file); |
| 389 | break; |
| 390 | |
| 391 | case FILE_TYPE_INI: |
| 392 | case FILE_TYPE_TXT: |
| 393 | case FILE_TYPE_XML: |
| 394 | case FILE_TYPE_UNKNOWN: |
| 395 | res = textViewer(file); |
| 396 | break; |
| 397 | |
| 398 | case FILE_TYPE_BMP: |
| 399 | case FILE_TYPE_PNG: |
| 400 | case FILE_TYPE_JPEG: |
| 401 | res = photoViewer(file, type, &file_list, entry, &base_pos, &rel_pos); |
| 402 | break; |
| 403 | |
| 404 | case FILE_TYPE_MP3: |
| 405 | case FILE_TYPE_OGG: |
| 406 | res = audioPlayer(file, type, &file_list, entry, &base_pos, &rel_pos); |
| 407 | break; |
| 408 | |
| 409 | case FILE_TYPE_SFO: |
| 410 | res = SFOReader(file); |
| 411 | break; |
| 412 | |
| 413 | case FILE_TYPE_VPK: |
| 414 | initMessageDialog(SCE_MSG_DIALOG_BUTTON_TYPE_YESNO, language_container[INSTALL_QUESTION]); |
| 415 | setDialogStep(DIALOG_STEP_INSTALL_QUESTION); |
| 416 | break; |
| 417 | |
| 418 | case FILE_TYPE_ARCHIVE: |
| 419 | archiveClearPassword(); |
| 420 | res = archiveOpen(file); |
| 421 | if (res >= 0 && archiveNeedPassword()) { |
| 422 | initImeDialog(language_container[ENTER_PASSWORD], "", 128, SCE_IME_TYPE_BASIC_LATIN, 0, 1); |
| 423 | setDialogStep(DIALOG_STEP_ENTER_PASSWORD); |
no test coverage detected