MCPcopy Create free account
hub / github.com/RPCSX/rpcsx / sendGameInfo

Function sendGameInfo

android/src/rpcsx-android.cpp:637–671  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

635}
636
637static void sendGameInfo(JNIEnv *env, jlong progressId,
638 std::span<const GameInfo> infos) {
639 auto gameRepositoryClass = ensure(env->FindClass("net/rpcsx/GameRepository"));
640 auto addMethodId = ensure(env->GetStaticMethodID(
641 gameRepositoryClass, "add", "([Lnet/rpcsx/GameInfo;J)V"));
642 auto gameClass = ensure(env->FindClass("net/rpcsx/GameInfo"));
643
644 jmethodID gameConstructor = ensure(env->GetMethodID(
645 gameClass, "<init>",
646 "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V"));
647
648 std::vector<jobject> objects;
649 objects.reserve(infos.size());
650
651 for (const auto &info : infos) {
652 auto path = Emu.GetCallbacks().resolve_path(info.path);
653 if (path.ends_with('/')) {
654 path.resize(path.size() - 1);
655 }
656
657 objects.push_back(env->NewObject(
658 gameClass, gameConstructor, wrap(env, path), wrap(env, info.name),
659 wrap(env, Emu.GetCallbacks().resolve_path(info.iconPath)),
660 jint(info.flags)));
661 }
662
663 auto result = env->NewObjectArray(objects.size(), gameClass, nullptr);
664
665 for (std::size_t i = 0; i < objects.size(); ++i) {
666 env->SetObjectArrayElement(result, i, objects[i]);
667 }
668
669 env->CallStaticVoidMethod(gameRepositoryClass, addMethodId, result,
670 progressId);
671}
672
673static void sendVshBootable(JNIEnv *env, jlong progressId) {
674 auto dev_flash = g_cfg_vfs.get_dev_flash();

Callers 4

sendVshBootableFunction · 0.85
collectGameInfoFunction · 0.85
installPkgFunction · 0.85
installIsoFunction · 0.85

Calls 6

push_backMethod · 0.80
wrapFunction · 0.70
ensureFunction · 0.50
reserveMethod · 0.45
sizeMethod · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected