| 2466 | } |
| 2467 | |
| 2468 | extern "C" bool _rpcsx_install(JNIEnv *env, int fd, long progressId) { |
| 2469 | auto file = fs::file::from_native_handle(fd); |
| 2470 | AtExit atExit{[&] { file.release_handle(); }}; |
| 2471 | |
| 2472 | auto type = getFileType(file); |
| 2473 | file.seek(0); |
| 2474 | |
| 2475 | switch (type) { |
| 2476 | case FileType::Unknown: |
| 2477 | Progress(env, progressId).failure("Unsupported file type"); |
| 2478 | return false; |
| 2479 | |
| 2480 | case FileType::Pup: |
| 2481 | return installPup(env, std::move(file), progressId); |
| 2482 | |
| 2483 | case FileType::Pkg: |
| 2484 | return installPkg(env, std::move(file), progressId); |
| 2485 | |
| 2486 | case FileType::Edat: |
| 2487 | return installEdat(env, std::move(file), progressId); |
| 2488 | |
| 2489 | case FileType::Iso: |
| 2490 | return installIso(env, std::move(file), progressId); |
| 2491 | |
| 2492 | case FileType::Rap: |
| 2493 | Progress(env, progressId) |
| 2494 | .failure("RAP file cannot be preinstalled. Use lock button on " |
| 2495 | "installed game instead"); |
| 2496 | return false; |
| 2497 | } |
| 2498 | |
| 2499 | return true; |
| 2500 | } |
| 2501 | |
| 2502 | extern "C" bool _rpcsx_installKey(JNIEnv *env, int fd, long progressId, |
| 2503 | std::string_view gamePath) { |
nothing calls this directly
no test coverage detected