├── .gitattributes ├── .github ├── FUNDING.yml ├── fps.jpg ├── rep1.png ├── rep2.jpg ├── LogoPVR.png ├── LogoPVRCotent.png ├── workflows │ ├── stale.yml │ └── ok-to-test.yml ├── dependabot.yml └── ISSUE_TEMPLATE │ └── issue-bug-report-template.yml ├── code ├── mobile │ ├── android │ │ └── PhoneVR │ │ │ ├── app │ │ │ ├── .gitignore │ │ │ ├── PhoneVRKeyStore.jks │ │ │ ├── PhoneVRKeyStorePR.jks │ │ │ ├── src │ │ │ │ ├── main │ │ │ │ │ ├── res │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ ├── ic_launcher_alvr.png │ │ │ │ │ │ │ ├── ic_launcher_alvr_round.png │ │ │ │ │ │ │ └── ic_launcher_alvr_foreground.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ ├── ic_launcher_alvr.png │ │ │ │ │ │ │ ├── ic_launcher_alvr_round.png │ │ │ │ │ │ │ └── ic_launcher_alvr_foreground.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ ├── ic_launcher_alvr.png │ │ │ │ │ │ │ ├── ic_launcher_alvr_round.png │ │ │ │ │ │ │ └── ic_launcher_alvr_foreground.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ ├── ic_launcher_alvr.png │ │ │ │ │ │ │ ├── ic_launcher_alvr_round.png │ │ │ │ │ │ │ └── ic_launcher_alvr_foreground.png │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ ├── ic_launcher_alvr.png │ │ │ │ │ │ │ ├── ic_launcher_alvr_round.png │ │ │ │ │ │ │ └── ic_launcher_alvr_foreground.png │ │ │ │ │ │ ├── values │ │ │ │ │ │ │ ├── ic_launcher_alvr_background.xml │ │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ │ ├── styles.xml │ │ │ │ │ │ │ └── strings.xml │ │ │ │ │ │ ├── drawable-xxhdpi │ │ │ │ │ │ │ ├── cardboard_oss_quantum_ic_close_white_24.png │ │ │ │ │ │ │ └── cardboard_oss_quantum_ic_settings_white_24.png │ │ │ │ │ │ ├── xml │ │ │ │ │ │ │ └── provider_paths_app.xml │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ │ ├── ic_launcher_alvr.xml │ │ │ │ │ │ │ └── ic_launcher_alvr_round.xml │ │ │ │ │ │ ├── menu │ │ │ │ │ │ │ ├── main.xml │ │ │ │ │ │ │ └── settings_menu.xml │ │ │ │ │ │ └── layout │ │ │ │ │ │ │ ├── activity_vr.xml │ │ │ │ │ │ │ ├── content_main.xml │ │ │ │ │ │ │ ├── activity_init_nogvr.xml │ │ │ │ │ │ │ └── activity_init.xml │ │ │ │ │ ├── java │ │ │ │ │ │ └── viritualisres │ │ │ │ │ │ │ └── phonevr │ │ │ │ │ │ │ ├── BatteryLevelListener.java │ │ │ │ │ │ │ ├── DiscordReportSenderFactory.java │ │ │ │ │ │ │ ├── ErrorReporting.java │ │ │ │ │ │ │ ├── InitActivity.kt │ │ │ │ │ │ │ ├── ErrorReportingDialog.java │ │ │ │ │ │ │ └── DiscordReportSender.java │ │ │ │ │ ├── cpp │ │ │ │ │ │ └── utils.h │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── noGvr │ │ │ │ │ ├── res │ │ │ │ │ │ ├── drawable-v21 │ │ │ │ │ │ │ └── rippleable.xml │ │ │ │ │ │ ├── values │ │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ │ └── vr_shim.xml │ │ │ │ │ │ └── drawable │ │ │ │ │ │ │ └── rippleable.xml │ │ │ │ │ └── java │ │ │ │ │ │ └── viritualisres │ │ │ │ │ │ └── phonevr │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ ├── gvr │ │ │ │ │ ├── res │ │ │ │ │ │ ├── values │ │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ └── layout │ │ │ │ │ │ │ ├── activity_main.xml │ │ │ │ │ │ │ └── activity_game.xml │ │ │ │ │ ├── cpp │ │ │ │ │ │ └── common.h │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ └── java │ │ │ │ │ │ └── viritualisres │ │ │ │ │ │ └── phonevr │ │ │ │ │ │ ├── Globals.kt │ │ │ │ │ │ ├── Wrap.kt │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ ├── test │ │ │ │ │ └── java │ │ │ │ │ │ └── viritualisres │ │ │ │ │ │ └── phonevr │ │ │ │ │ │ └── ExampleUnitTest.kt │ │ │ │ ├── androidTest │ │ │ │ │ └── java │ │ │ │ │ │ └── viritualisres │ │ │ │ │ │ └── phonevr │ │ │ │ │ │ ├── AppPackageTest.kt │ │ │ │ │ │ ├── utils │ │ │ │ │ │ ├── pvr-adb-telnet.sh │ │ │ │ │ │ └── PVRInstrumentationBase.kt │ │ │ │ │ │ └── InitActivityTest.kt │ │ │ │ └── androidTestGvr │ │ │ │ │ └── java │ │ │ │ │ └── viritualisres │ │ │ │ │ └── phonevr │ │ │ │ │ ├── SettingsActivityTest.kt │ │ │ │ │ └── MainActivityTest.kt │ │ │ ├── proguard-rules.pro │ │ │ ├── google-services.json │ │ │ ├── CMakeLists.txt │ │ │ └── build.gradle │ │ │ ├── .gitattributes │ │ │ ├── settings.gradle │ │ │ ├── version.properties │ │ │ ├── keystore.properties │ │ │ ├── gradlew │ │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── versioning.gradle │ │ │ ├── gradle.properties │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── prepare-alvr-deps.sh │ │ │ └── gradlew.bat │ └── mobile-common │ │ ├── Utils │ │ ├── Watch.h │ │ ├── Watch.cpp │ │ └── RenderUtils.h │ │ ├── PVRRenderer.h │ │ ├── PVRSockets.h │ │ └── PVRRenderer.cpp ├── common │ ├── src │ │ ├── version.info │ │ ├── PVRSocketUtils.h │ │ ├── Utils │ │ │ ├── Watch.h │ │ │ ├── StrUtils.h │ │ │ └── ThreadUtils.h │ │ ├── PVRGlobals.h │ │ ├── PVRGlobals.cpp │ │ └── PVRSocketUtils.cpp │ └── libs │ │ └── ifaddrs │ │ ├── ScopedFd.h │ │ ├── LocalArray.h │ │ └── pvr_google_ifaddrs.h ├── windows │ ├── PhoneVR │ │ ├── PhoneVR │ │ │ ├── PVRMath.cpp │ │ │ ├── PVRGraphics.h │ │ │ ├── resource.h │ │ │ ├── PVRFileManager.cpp │ │ │ ├── PVRMath.h │ │ │ ├── PVRSockets.h │ │ │ ├── PhoneVR.vcxproj.filters │ │ │ ├── resource.rc │ │ │ └── PVRFileManager.h │ │ └── PhoneVR.sln │ └── libs │ │ └── x264 │ │ ├── lib │ │ ├── x64 │ │ │ └── x264.lib │ │ └── x86 │ │ │ └── x264.lib │ │ └── include │ │ └── x264_config.h ├── .gitattributes └── .gitignore ├── driver └── PVRServer │ ├── logs │ └── pvrlog.txt │ ├── bin │ ├── win32 │ │ └── x264.dll │ └── win64 │ │ └── x264.dll │ ├── resources │ ├── icons │ │ ├── hmd_off.png │ │ ├── hmd_alert.png │ │ ├── hmd_error.png │ │ ├── hmd_ready.png │ │ ├── hmd_standby.png │ │ └── hmd_ready_low.png │ └── driver.vrresources │ ├── default.vrdrivermanifest │ └── pvrsettings.json ├── .gitmodules ├── Makefile ├── .clang-format └── .cirrus.yml /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | open_collective: phonevr 2 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /driver/PVRServer/logs/pvrlog.txt: -------------------------------------------------------------------------------- 1 | PVR SERVER LOG HERE --> 2 | 3 | -------------------------------------------------------------------------------- /.github/fps.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/.github/fps.jpg -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/version.properties: -------------------------------------------------------------------------------- 1 | VERSION=2.0.0 2 | VERSION_NAME=2.0.0-beta 3 | -------------------------------------------------------------------------------- /.github/rep1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/.github/rep1.png -------------------------------------------------------------------------------- /.github/rep2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/.github/rep2.jpg -------------------------------------------------------------------------------- /.github/LogoPVR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/.github/LogoPVR.png -------------------------------------------------------------------------------- /code/common/src/version.info: -------------------------------------------------------------------------------- 1 | #define PVR_BINVERSION 2,0,0 2 | #define PVR_STRVERSION "2.0.0-beta" 3 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/keystore.properties: -------------------------------------------------------------------------------- 1 | keyAlias=PhoneVRKey 2 | storeFile=PhoneVRKeyStore.jks -------------------------------------------------------------------------------- /.github/LogoPVRCotent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/.github/LogoPVRCotent.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/gradlew -------------------------------------------------------------------------------- /driver/PVRServer/bin/win32/x264.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/driver/PVRServer/bin/win32/x264.dll -------------------------------------------------------------------------------- /driver/PVRServer/bin/win64/x264.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/driver/PVRServer/bin/win64/x264.dll -------------------------------------------------------------------------------- /code/windows/PhoneVR/PhoneVR/PVRMath.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/windows/PhoneVR/PhoneVR/PVRMath.cpp -------------------------------------------------------------------------------- /code/windows/libs/x264/lib/x64/x264.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/windows/libs/x264/lib/x64/x264.lib -------------------------------------------------------------------------------- /code/windows/libs/x264/lib/x86/x264.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/windows/libs/x264/lib/x86/x264.lib -------------------------------------------------------------------------------- /driver/PVRServer/resources/icons/hmd_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/driver/PVRServer/resources/icons/hmd_off.png -------------------------------------------------------------------------------- /driver/PVRServer/resources/icons/hmd_alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/driver/PVRServer/resources/icons/hmd_alert.png -------------------------------------------------------------------------------- /driver/PVRServer/resources/icons/hmd_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/driver/PVRServer/resources/icons/hmd_error.png -------------------------------------------------------------------------------- /driver/PVRServer/resources/icons/hmd_ready.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/driver/PVRServer/resources/icons/hmd_ready.png -------------------------------------------------------------------------------- /driver/PVRServer/resources/icons/hmd_standby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/driver/PVRServer/resources/icons/hmd_standby.png -------------------------------------------------------------------------------- /driver/PVRServer/resources/icons/hmd_ready_low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/driver/PVRServer/resources/icons/hmd_ready_low.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/PhoneVRKeyStore.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/PhoneVRKeyStore.jks -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/PhoneVRKeyStorePR.jks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/PhoneVRKeyStorePR.jks -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-hdpi/ic_launcher_alvr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-hdpi/ic_launcher_alvr.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-mdpi/ic_launcher_alvr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-mdpi/ic_launcher_alvr.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xhdpi/ic_launcher_alvr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xhdpi/ic_launcher_alvr.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxhdpi/ic_launcher_alvr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxhdpi/ic_launcher_alvr.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxxhdpi/ic_launcher_alvr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxxhdpi/ic_launcher_alvr.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/values/ic_launcher_alvr_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-hdpi/ic_launcher_alvr_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-hdpi/ic_launcher_alvr_round.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-mdpi/ic_launcher_alvr_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-mdpi/ic_launcher_alvr_round.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xhdpi/ic_launcher_alvr_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xhdpi/ic_launcher_alvr_round.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxhdpi/ic_launcher_alvr_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxhdpi/ic_launcher_alvr_round.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/noGvr/res/drawable-v21/rippleable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-hdpi/ic_launcher_alvr_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-hdpi/ic_launcher_alvr_foreground.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-mdpi/ic_launcher_alvr_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-mdpi/ic_launcher_alvr_foreground.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxxhdpi/ic_launcher_alvr_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxxhdpi/ic_launcher_alvr_round.png -------------------------------------------------------------------------------- /driver/PVRServer/default.vrdrivermanifest: -------------------------------------------------------------------------------- 1 | { 2 | "alwaysActivate": false, 3 | "name" : "PVRServer", 4 | "directory" : "", 5 | "resourceOnly" : false, 6 | "hmd_presence" : 7 | [ 8 | "*.*" 9 | ] 10 | } -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xhdpi/ic_launcher_alvr_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xhdpi/ic_launcher_alvr_foreground.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxhdpi/ic_launcher_alvr_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxhdpi/ic_launcher_alvr_foreground.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxxhdpi/ic_launcher_alvr_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/mipmap-xxxhdpi/ic_launcher_alvr_foreground.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/gvr/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | @string/app_name_full 3 | Select either one based on your setup. 4 | 5 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/drawable-xxhdpi/cardboard_oss_quantum_ic_close_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/drawable-xxhdpi/cardboard_oss_quantum_ic_close_white_24.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/noGvr/java/viritualisres/phonevr/MainActivity.kt: -------------------------------------------------------------------------------- 1 | /* (C)2023 */ 2 | package viritualisres.phonevr 3 | 4 | import androidx.appcompat.app.AppCompatActivity 5 | 6 | class MainActivity : AppCompatActivity() { 7 | // Empty def 8 | } 9 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/drawable-xxhdpi/cardboard_oss_quantum_ic_settings_white_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PhoneVR-Developers/PhoneVR/HEAD/code/mobile/android/PhoneVR/app/src/main/res/drawable-xxhdpi/cardboard_oss_quantum_ic_settings_white_24.png -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/xml/provider_paths_app.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/java/viritualisres/phonevr/BatteryLevelListener.java: -------------------------------------------------------------------------------- 1 | /* (C)2023 */ 2 | package viritualisres.phonevr; 3 | 4 | public interface BatteryLevelListener { 5 | void onBatteryLevelChanged(float batteryPercentage, boolean plugged); 6 | } 7 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /code/windows/libs/x264/include/x264_config.h: -------------------------------------------------------------------------------- 1 | #define X264_BIT_DEPTH 8 2 | #define X264_GPL 1 3 | #define X264_INTERLACED 1 4 | #define X264_CHROMA_FORMAT 0 5 | #define X264_REV 3015 6 | #define X264_REV_DIFF 0 7 | #define X264_VERSION " r3015" 8 | #define X264_POINTVER "0.161.3015" 9 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: 'Close stale issues and PRs' 2 | on: 3 | schedule: 4 | - cron: '30 1 * * *' 5 | 6 | jobs: 7 | stale: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/stale@v9 11 | with: 12 | only-labels: 'waiting-for-response' 13 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/gvr/cpp/common.h: -------------------------------------------------------------------------------- 1 | #ifndef PHONEVR_COMMON_H 2 | #define PHONEVR_COMMON_H 3 | 4 | #include 5 | extern JavaVM *jVM; 6 | 7 | #define FUNC(type, func) extern "C" JNIEXPORT type JNICALL Java_viritualisres_phonevr_Wrap_##func 8 | 9 | #endif // PHONEVR_COMMON_H 10 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Apr 25 03:20:28 IST 2023 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/noGvr/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | @string/app_name_lite 3 | You currently have noGvr APK variant installed, so there only is ALVR-CardboardAPI available. 4 | 5 | -------------------------------------------------------------------------------- /code/mobile/mobile-common/Utils/Watch.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifdef __cplusplus 4 | extern "C" { 5 | #endif 6 | 7 | extern char watchMode; 8 | 9 | void startWatch(const char *const name); 10 | void stopWatch(const char *const name); 11 | void watchTick(const char *const name); 12 | 13 | #ifdef __cplusplus 14 | } 15 | #endif 16 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # TODO: setup Gradle and cargo, after automated tests 2 | 3 | version: 2 4 | updates: 5 | - package-ecosystem: "github-actions" 6 | directory: "/" 7 | schedule: 8 | interval: "weekly" 9 | - package-ecosystem: "gitsubmodule" 10 | directory: "/" 11 | schedule: 12 | interval: "daily" 13 | -------------------------------------------------------------------------------- /code/windows/PhoneVR/PhoneVR/PVRGraphics.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | void PVRInitDX(); 5 | void PVRUpdTexHdl(uint64_t texHdl, int whichBuffer); 6 | void PVRStartGraphics(std::vector> vvbuf, uint32_t width, uint32_t height); 7 | void PVRStopGraphics(); 8 | void PVRReleaseDX(); 9 | 10 | extern float fpsRenderer; -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-anydpi-v26/ic_launcher_alvr.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/mipmap-anydpi-v26/ic_launcher_alvr_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /driver/PVRServer/pvrsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "enable" : true, 3 | "game_fps" : 60, 4 | "video_stream_port" : 15243, 5 | "pose_stream_port" : 51423, 6 | "pairing_port" : 33333, 7 | "connection_timeout" : 5, 8 | "encoder" : { 9 | "preset" : "ultrafast", 10 | "tune" : "zerolatency", 11 | "qp" : 20, 12 | "profile" : "baseline" 13 | } 14 | } -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /code/windows/PhoneVR/PhoneVR/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by version.rc 4 | 5 | // Next default values for new objects 6 | // 7 | #ifdef APSTUDIO_INVOKED 8 | #ifndef APSTUDIO_READONLY_SYMBOLS 9 | #define _APS_NEXT_RESOURCE_VALUE 101 10 | #define _APS_NEXT_COMMAND_VALUE 40001 11 | #define _APS_NEXT_CONTROL_VALUE 1001 12 | #define _APS_NEXT_SYMED_VALUE 101 13 | #endif 14 | #endif 15 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/test/java/viritualisres/phonevr/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | /* (C)2023 */ 2 | package viritualisres.phonevr 3 | 4 | import org.junit.Assert.* 5 | import org.junit.Test 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "code/mobile/android/PhoneVR/ALVR"] 2 | path = code/mobile/android/PhoneVR/ALVR 3 | url = https://github.com/PhoneVR-Developers/ALVR-phonevr 4 | [submodule "code/windows/libs/json"] 5 | path = code/common/libs/json 6 | url = https://github.com/nlohmann/json 7 | [submodule "code/common/libs/eigen"] 8 | path = code/common/libs/eigen 9 | url = https://gitlab.com/libeigen/eigen 10 | [submodule "code/common/libs/asio"] 11 | path = code/common/libs/asio 12 | url = https://github.com/chriskohlhoff/asio 13 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/gvr/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/noGvr/res/drawable/rippleable.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /driver/PVRServer/resources/driver.vrresources: -------------------------------------------------------------------------------- 1 | { 2 | "jsonid": "vrresources", 3 | "statusicons": { 4 | "HMD": { 5 | "Prop_NamedIconPathDeviceOff_String": "", 6 | "Prop_NamedIconPathDeviceSearching_String": "", 7 | "Prop_NamedIconPathDeviceSearchingAlert_String": "", 8 | "Prop_NamedIconPathDeviceReady_String": "", 9 | "Prop_NamedIconPathDeviceReadyAlert_String": "", 10 | "Prop_NamedIconPathDeviceNotReady_String": "", 11 | "Prop_NamedIconPathDeviceStandby_String": "", 12 | "Prop_NamedIconPathDeviceAlertLow_String": "" 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /code/windows/PhoneVR/PhoneVR/PVRFileManager.cpp: -------------------------------------------------------------------------------- 1 | #include "PVRFileManager.h" 2 | 3 | #include "PVRGlobals.h" 4 | #include 5 | 6 | using namespace std; 7 | using namespace nlohmann; 8 | 9 | namespace { 10 | const wchar_t *setsFile = L"C:\\Program Files\\PhoneVR\\pvrsettings.json"; 11 | } 12 | 13 | json PVRGetSets() { 14 | try { 15 | return json::parse(ifstream(setsFile)); 16 | } catch (const exception &err) { 17 | PVR_DB("Error retrieving setting: "s + err.what()); 18 | } 19 | return json(); 20 | } 21 | 22 | void PVRSaveSets(json j) { ofstream(setsFile) << j.dump(4); } -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/menu/settings_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 7 | 9 | 13 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/versioning.gradle: -------------------------------------------------------------------------------- 1 | ext { 2 | versionProps = { 3 | def props = new Properties() 4 | file("../version.properties").withInputStream { props.load(it) } 5 | return props 6 | } 7 | buildVersionCode = { 8 | def props = versionProps() 9 | def version = props.getProperty("VERSION") 10 | def (major, minor, patch) = version.toLowerCase().tokenize('.') 11 | (major, minor, patch) = [major, minor, patch].collect { it.toInteger() } 12 | (major * 10000) + (minor * 100) + patch 13 | } 14 | buildVersionName = { 15 | def props = versionProps() 16 | return props.getProperty("VERSION_NAME") 17 | } 18 | } -------------------------------------------------------------------------------- /code/windows/PhoneVR/PhoneVR/PVRMath.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "PVRGlobals.h" 3 | 4 | #include "Eigen" 5 | 6 | class PoseEstimQueue { 7 | Eigen::Quaternionf pos[3]; 8 | float t[3]; 9 | int idx = 0; 10 | 11 | public: 12 | void enqueue(const Eigen::Quaternionf &quat, float deltaT); 13 | Eigen::Quaternionf getQuatIn(float deltaT); 14 | }; 15 | 16 | extern PoseEstimQueue prePEQ, postPEQ; 17 | 18 | Eigen::Quaternionf PVRMat34ToQuat(float (*mat)[3][4]); 19 | 20 | inline bool isValidOrient(Eigen::Quaternionf &quat) { 21 | float lenSqrd = 22 | quat.w() * quat.w() + quat.x() * quat.x() + quat.y() * quat.y() + quat.z() * quat.z(); 23 | return lenSqrd > 0.9f && lenSqrd < 1.1f; 24 | } -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # settings will be taken from .clang-format. .editorconfig is just for android studio & VSStudio if ever used 2 | .PHONY: format 3 | 4 | format: 5 | find . -type f \( -name "*.cpp" -o -name "*.h" -o -name "*.hpp" -o -name "*.c" \) ! -path "*/lib*" \ 6 | ! -path "*/ALVR/*" \ 7 | ! -path "*gvr*" \ 8 | ! -path "*cardboard*" \ 9 | ! -path "*.cxx*" \ 10 | ! -path "*/build/*" \ 11 | -exec clang-format -i {} + -print 12 | 13 | format-check: 14 | find . -type f \( -name "*.cpp" -o -name "*.h" -o -name "*.hpp" -o -name "*.c" \) ! -path "*/lib*" \ 15 | ! -path "*/ALVR/*" \ 16 | ! -path "*gvr*" \ 17 | ! -path "*cardboard*" \ 18 | ! -path "*.cxx*" \ 19 | ! -path "*/build/*" \ 20 | -exec clang-format --dry-run --Werror {} + -print -------------------------------------------------------------------------------- /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | NamespaceIndentation: All 3 | 4 | ColumnLimit: 100 5 | # does (int) x instead of (int)x 6 | SpaceAfterCStyleCast: true 7 | # spaces, not tabs! 8 | UseTab: Never 9 | # if (x) doStuff() is not allowed, bad style 10 | AllowShortIfStatementsOnASingleLine: false 11 | # 12 | AlignTrailingComments: true 13 | SpacesBeforeTrailingComments: 3 14 | # change the next line to All for Alistair's textbook style 15 | # AlwaysBreakAfterReturnType: TopLevelDefinitions 16 | # #define SHORT_NAME 42 17 | # #define LONGER_NAME 0x007f # does nice spacing for macros 18 | AlignConsecutiveMacros: Consecutive 19 | # use \n instead of \r\n 20 | UseCRLF: false 21 | IndentWidth: 4 22 | BinPackArguments: false 23 | BinPackParameters: false 24 | AlwaysBreakAfterReturnType: None 25 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/java/viritualisres/phonevr/DiscordReportSenderFactory.java: -------------------------------------------------------------------------------- 1 | /* (C)2023 */ 2 | package viritualisres.phonevr; 3 | 4 | import android.content.Context; 5 | import org.acra.config.CoreConfiguration; 6 | import org.acra.sender.ReportSender; 7 | import org.acra.sender.ReportSenderFactory; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class DiscordReportSenderFactory implements ReportSenderFactory { 11 | 12 | @NotNull 13 | @Override 14 | public ReportSender create(@NotNull Context context, @NotNull CoreConfiguration config) { 15 | return new DiscordReportSender(); 16 | } 17 | 18 | @Override 19 | public boolean enabled(@NotNull CoreConfiguration coreConfig) { 20 | return true; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/noGvr/res/values/vr_shim.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #4cFFFFFF 4 | 24mm 5 | 2dip 6 | #b4b4b4 7 | 13 | 14 | -------------------------------------------------------------------------------- /code/windows/PhoneVR/PhoneVR/PVRSockets.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Geometry" 4 | #include "openvr_driver.h" 5 | 6 | #include "PVRGlobals.h" 7 | #include "PVRSocketUtils.h" 8 | 9 | void PVRStartConnectionListener(std::function callback); 10 | void PVRStopConnectionListener(); 11 | 12 | void PVRStartStreamer(std::string ip, 13 | uint16_t width, 14 | uint16_t height, 15 | std::function)> headerCb, 16 | std::function onErrCb); 17 | void PVRProcessFrame(uint64_t hdl, Eigen::Quaternionf quat); 18 | void PVRStopStreamer(); 19 | 20 | void PVRStartReceiveData(std::string ip, vr::DriverPose_t *pose, uint32_t *objId); 21 | void PVRStopReceiveData(); 22 | -------------------------------------------------------------------------------- /.cirrus.yml: -------------------------------------------------------------------------------- 1 | # windows_container: 2 | # image: cirrusci/windowsservercore:2019 3 | 4 | # assemble_task: 5 | # env: 6 | # API_LEVEL: 30 7 | # TARGET: google_apis 8 | # ARCH: x86 9 | # container: 10 | # image: reactivecircus/android-emulator-30:latest 11 | # kvm: true 12 | # cpu: 8 13 | # memory: 24G 14 | # create_device_script: 15 | # echo no | avdmanager create avd --force --name "api-${API_LEVEL}" --abi "${TARGET}/${ARCH}" --package "system-images;android-${API_LEVEL};${TARGET};${ARCH}" 16 | # # start_emulator_background_script: 17 | # # $ANDROID_HOME/emulator/emulator -avd "api-${API_LEVEL}" -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim -camera-back none 18 | # # wait_for_emulator_script: 19 | # assemble_script: 20 | # emulator -accel-check -------------------------------------------------------------------------------- /code/mobile/mobile-common/PVRRenderer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "vr/gvr/capi/include/gvr.h" 4 | 5 | #ifdef __cplusplus 6 | 7 | namespace PVR { 8 | extern std::unique_ptr gvrApi; 9 | } 10 | 11 | extern "C" { 12 | #endif 13 | 14 | extern float fpsRenderer; 15 | 16 | unsigned int PVRInitSystem(int maxWidth, 17 | int maxHeight, 18 | float offFov, 19 | bool reproj, 20 | bool debug); // return render texture id 21 | void PVRRender(int64_t pts); 22 | void PVRTrigger(); 23 | void PVRPause(); 24 | void PVRResume(); 25 | void PVRDestroyGVR(); 26 | 27 | #ifdef __ANDROID__ 28 | void PVRCreateGVR(gvr_context *gvr_ctx); 29 | #else 30 | void PVRCreateGVRAndContext(); 31 | #endif 32 | 33 | #ifdef __cplusplus 34 | } 35 | #endif 36 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/androidTest/java/viritualisres/phonevr/AppPackageTest.kt: -------------------------------------------------------------------------------- 1 | /* (C)2023 */ 2 | package viritualisres.phonevr 3 | 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | import androidx.test.platform.app.InstrumentationRegistry 6 | import org.junit.Assert.* 7 | import org.junit.Test 8 | import org.junit.runner.RunWith 9 | import viritualisres.phonevr.utils.PVRInstrumentationBase 10 | 11 | @RunWith(AndroidJUnit4::class) 12 | class AppPackageTest : PVRInstrumentationBase() { 13 | @Test 14 | fun useAppContext() { 15 | // Context of the app under test. 16 | // Basic Test used to ensure that app starts up properly 17 | val appContext = InstrumentationRegistry.getInstrumentation().context 18 | assertEquals("viritualisres.phonevr", appContext.packageName.subSequence(0, 21)) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | android.enableJetifier=false 13 | android.useAndroidX=true 14 | org.gradle.jvmargs=-Xmx3g 15 | 16 | # When configured, Gradle will run in incubating parallel mode. 17 | # This option should only be used with decoupled projects. More details, visit 18 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 19 | # org.gradle.parallel=true 20 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/gvr/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 14 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /code/mobile/android/PhoneVR/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 12 | 13 | 17 | 18 |