diff --git a/.gitignore b/.gitignore index fb9d26c..22cebb3 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ captures/ *.apk *.ap_ *.dex +third-party/* diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 new file mode 100644 index 0000000..e69de29 diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 new file mode 100644 index 0000000..e69de29 diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 new file mode 100644 index 0000000..e69de29 diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/cache-v2-e3afe5b456100929fa76.json b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/cache-v2-e3afe5b456100929fa76.json new file mode 100644 index 0000000..ab2c607 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/cache-v2-e3afe5b456100929fa76.json @@ -0,0 +1,1231 @@ +{ + "entries" : + [ + { + "name" : "ANDROID_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "arm64-v8a" + }, + { + "name" : "ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973" + }, + { + "name" : "ANDROID_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "android-29" + }, + { + "name" : "ANDROID_STL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "c++_shared" + }, + { + "name" : "CMAKE_ADDR2LINE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-addr2line" + }, + { + "name" : "CMAKE_ANDROID_ARCH_ABI", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "arm64-v8a" + }, + { + "name" : "CMAKE_ANDROID_NDK", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973" + }, + { + "name" : "CMAKE_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Archiver" + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_ASM_FLAGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_ASM_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_BUILD_TYPE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ..." + } + ], + "type" : "STRING", + "value" : "Debug" + }, + { + "name" : "CMAKE_CACHEFILE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "This is the directory where this CMakeCache.txt was created" + } + ], + "type" : "INTERNAL", + "value" : "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a" + }, + { + "name" : "CMAKE_CACHE_MAJOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Major version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "3" + }, + { + "name" : "CMAKE_CACHE_MINOR_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Minor version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "22" + }, + { + "name" : "CMAKE_CACHE_PATCH_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Patch version of cmake used to create the current loaded cache" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake executable." + } + ], + "type" : "INTERNAL", + "value" : "/home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake" + }, + { + "name" : "CMAKE_CPACK_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to cpack program executable." + } + ], + "type" : "INTERNAL", + "value" : "/home/foxx/Android/Sdk/cmake/3.22.1/bin/cpack" + }, + { + "name" : "CMAKE_CTEST_COMMAND", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to ctest program executable." + } + ], + "type" : "INTERNAL", + "value" : "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ctest" + }, + { + "name" : "CMAKE_CXX_FLAGS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_CXX_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_COMPILER_AR", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "LLVM archiver" + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar" + }, + { + "name" : "CMAKE_C_COMPILER_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Generate index for LLVM archive" + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_C_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during debug builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "-Os -DNDEBUG" + }, + { + "name" : "CMAKE_C_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the compiler during release builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_C_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the C compiler during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "-O2 -g -DNDEBUG" + }, + { + "name" : "CMAKE_C_STANDARD_LIBRARIES", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Libraries linked by default with all C applications." + } + ], + "type" : "STRING", + "value" : "-latomic -lm" + }, + { + "name" : "CMAKE_DLLTOOL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-dlltool" + }, + { + "name" : "CMAKE_EXECUTABLE_FORMAT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Executable file format" + } + ], + "type" : "INTERNAL", + "value" : "ELF" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_EXPORT_COMPILE_COMMANDS", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "ON" + }, + { + "name" : "CMAKE_EXTRA_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of external makefile project generator." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator." + } + ], + "type" : "INTERNAL", + "value" : "Ninja" + }, + { + "name" : "CMAKE_GENERATOR_INSTANCE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Generator instance identifier." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_PLATFORM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator platform." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_GENERATOR_TOOLSET", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Name of generator toolset." + } + ], + "type" : "INTERNAL", + "value" : "" + }, + { + "name" : "CMAKE_HOME_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Source directory with the top level CMakeLists.txt file for this project" + } + ], + "type" : "INTERNAL", + "value" : "/home/foxx/repos/My Projects/android cast/ndk" + }, + { + "name" : "CMAKE_INSTALL_PREFIX", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install path prefix, prepended onto install directories." + } + ], + "type" : "PATH", + "value" : "/usr/local" + }, + { + "name" : "CMAKE_INSTALL_SO_NO_EXE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Install .so files without execute permission." + } + ], + "type" : "INTERNAL", + "value" : "0" + }, + { + "name" : "CMAKE_LIBRARY_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a" + }, + { + "name" : "CMAKE_LINKER", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" + }, + { + "name" : "CMAKE_MAKE_PROGRAM", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of modules during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_NM", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm" + }, + { + "name" : "CMAKE_NUMBER_OF_MAKEFILES", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "number of local generators" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_OBJCOPY", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objcopy" + }, + { + "name" : "CMAKE_OBJDUMP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objdump" + }, + { + "name" : "CMAKE_PLATFORM_INFO_INITIALIZED", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Platform information initialized" + } + ], + "type" : "INTERNAL", + "value" : "1" + }, + { + "name" : "CMAKE_PROJECT_DESCRIPTION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_HOMEPAGE_URL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "" + }, + { + "name" : "CMAKE_PROJECT_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "androidcast_codecs" + }, + { + "name" : "CMAKE_RANLIB", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Ranlib" + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib" + }, + { + "name" : "CMAKE_READELF", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Path to a program." + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-readelf" + }, + { + "name" : "CMAKE_ROOT", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to CMake installation." + } + ], + "type" : "INTERNAL", + "value" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22" + }, + { + "name" : "CMAKE_RUNTIME_OUTPUT_DIRECTORY", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of dll's." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_SKIP_INSTALL_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when installing shared libraries, but are added when building." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_SKIP_RPATH", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If set, runtime paths are not added when using shared libraries." + } + ], + "type" : "BOOL", + "value" : "NO" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during all build types." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_DEBUG", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during DEBUG builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during MINSIZEREL builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELEASE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELEASE builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds." + } + ], + "type" : "STRING", + "value" : "" + }, + { + "name" : "CMAKE_STRIP", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "Strip" + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip" + }, + { + "name" : "CMAKE_SYSTEM_NAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "Android" + }, + { + "name" : "CMAKE_SYSTEM_VERSION", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "29" + }, + { + "name" : "CMAKE_TOOLCHAIN_FILE", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "No help, variable specified on the command line." + } + ], + "type" : "UNINITIALIZED", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake" + }, + { + "name" : "CMAKE_UNAME", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "uname command" + } + ], + "type" : "INTERNAL", + "value" : "/usr/bin/uname" + }, + { + "name" : "CMAKE_VERBOSE_MAKEFILE", + "properties" : + [ + { + "name" : "ADVANCED", + "value" : "1" + }, + { + "name" : "HELPSTRING", + "value" : "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo." + } + ], + "type" : "BOOL", + "value" : "FALSE" + }, + { + "name" : "androidcast_codecs_BINARY_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a" + }, + { + "name" : "androidcast_codecs_IS_TOP_LEVEL", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "ON" + }, + { + "name" : "androidcast_codecs_SOURCE_DIR", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Value Computed by CMake" + } + ], + "type" : "STATIC", + "value" : "/home/foxx/repos/My Projects/android cast/ndk" + }, + { + "name" : "log-lib", + "properties" : + [ + { + "name" : "HELPSTRING", + "value" : "Path to a library." + } + ], + "type" : "FILEPATH", + "value" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/liblog.so" + } + ], + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } +} diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-2376cad3b48f3954dc6d.json b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-2376cad3b48f3954dc6d.json new file mode 100644 index 0000000..25249d2 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-2376cad3b48f3954dc6d.json @@ -0,0 +1,149 @@ +{ + "inputs" : + [ + { + "path" : "CMakeLists.txt" + }, + { + "isGenerated" : true, + "path" : "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake" + }, + { + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android-legacy.toolchain.cmake" + }, + { + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/abis.cmake" + }, + { + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/platforms.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake" + }, + { + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Initialize.cmake" + }, + { + "isGenerated" : true, + "path" : "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake" + }, + { + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Clang.cmake" + }, + { + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/flags.cmake" + }, + { + "isCMake" : true, + "isExternal" : true, + "path" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake" + } + ], + "kind" : "cmakeFiles", + "paths" : + { + "build" : "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "source" : "/home/foxx/repos/My Projects/android cast/ndk" + }, + "version" : + { + "major" : 1, + "minor" : 0 + } +} diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-9c9e383e33b424c453d4.json b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-9c9e383e33b424c453d4.json new file mode 100644 index 0000000..13f7304 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-9c9e383e33b424c453d4.json @@ -0,0 +1,60 @@ +{ + "configurations" : + [ + { + "directories" : + [ + { + "build" : ".", + "jsonFile" : "directory-.-Debug-f5ebdc15457944623624.json", + "minimumCMakeVersion" : + { + "string" : "3.6.0" + }, + "projectIndex" : 0, + "source" : ".", + "targetIndexes" : + [ + 0 + ] + } + ], + "name" : "Debug", + "projects" : + [ + { + "directoryIndexes" : + [ + 0 + ], + "name" : "androidcast_codecs", + "targetIndexes" : + [ + 0 + ] + } + ], + "targets" : + [ + { + "directoryIndex" : 0, + "id" : "androidcast_codecs::@6890427a1f51a3e7e1df", + "jsonFile" : "target-androidcast_codecs-Debug-2912851c203504cf2578.json", + "name" : "androidcast_codecs", + "projectIndex" : 0 + } + ] + } + ], + "kind" : "codemodel", + "paths" : + { + "build" : "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "source" : "/home/foxx/repos/My Projects/android cast/ndk" + }, + "version" : + { + "major" : 2, + "minor" : 3 + } +} diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json new file mode 100644 index 0000000..3a67af9 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json @@ -0,0 +1,14 @@ +{ + "backtraceGraph" : + { + "commands" : [], + "files" : [], + "nodes" : [] + }, + "installers" : [], + "paths" : + { + "build" : ".", + "source" : "." + } +} diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/index-2026-05-17T19-41-07-0006.json b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/index-2026-05-17T19-41-07-0006.json new file mode 100644 index 0000000..0a65d81 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/index-2026-05-17T19-41-07-0006.json @@ -0,0 +1,92 @@ +{ + "cmake" : + { + "generator" : + { + "multiConfig" : false, + "name" : "Ninja" + }, + "paths" : + { + "cmake" : "/home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake", + "cpack" : "/home/foxx/Android/Sdk/cmake/3.22.1/bin/cpack", + "ctest" : "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ctest", + "root" : "/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22" + }, + "version" : + { + "isDirty" : false, + "major" : 3, + "minor" : 22, + "patch" : 1, + "string" : "3.22.1-g37088a8", + "suffix" : "g37088a8" + } + }, + "objects" : + [ + { + "jsonFile" : "codemodel-v2-9c9e383e33b424c453d4.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + }, + { + "jsonFile" : "cache-v2-e3afe5b456100929fa76.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + { + "jsonFile" : "cmakeFiles-v1-2376cad3b48f3954dc6d.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + } + ], + "reply" : + { + "client-agp" : + { + "cache-v2" : + { + "jsonFile" : "cache-v2-e3afe5b456100929fa76.json", + "kind" : "cache", + "version" : + { + "major" : 2, + "minor" : 0 + } + }, + "cmakeFiles-v1" : + { + "jsonFile" : "cmakeFiles-v1-2376cad3b48f3954dc6d.json", + "kind" : "cmakeFiles", + "version" : + { + "major" : 1, + "minor" : 0 + } + }, + "codemodel-v2" : + { + "jsonFile" : "codemodel-v2-9c9e383e33b424c453d4.json", + "kind" : "codemodel", + "version" : + { + "major" : 2, + "minor" : 3 + } + } + } + } +} diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/target-androidcast_codecs-Debug-2912851c203504cf2578.json b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/target-androidcast_codecs-Debug-2912851c203504cf2578.json new file mode 100644 index 0000000..7fb5ad6 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.cmake/api/v1/reply/target-androidcast_codecs-Debug-2912851c203504cf2578.json @@ -0,0 +1,166 @@ +{ + "artifacts" : + [ + { + "path" : "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so" + } + ], + "backtrace" : 1, + "backtraceGraph" : + { + "commands" : + [ + "add_library", + "target_link_libraries", + "target_include_directories" + ], + "files" : + [ + "CMakeLists.txt" + ], + "nodes" : + [ + { + "file" : 0 + }, + { + "command" : 0, + "file" : 0, + "line" : 9, + "parent" : 0 + }, + { + "command" : 1, + "file" : 0, + "line" : 29, + "parent" : 0 + }, + { + "command" : 2, + "file" : 0, + "line" : 16, + "parent" : 0 + } + ] + }, + "compileGroups" : + [ + { + "compileCommandFragments" : + [ + { + "fragment" : "-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC" + }, + { + "fragment" : "-std=gnu11" + } + ], + "defines" : + [ + { + "define" : "androidcast_codecs_EXPORTS" + } + ], + "includes" : + [ + { + "backtrace" : 3, + "path" : "/home/foxx/repos/My Projects/android cast/ndk/jni" + } + ], + "language" : "C", + "languageStandard" : + { + "backtraces" : + [ + 1 + ], + "standard" : "11" + }, + "sourceIndexes" : + [ + 0, + 1, + 2, + 3 + ], + "sysroot" : + { + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot" + } + } + ], + "id" : "androidcast_codecs::@6890427a1f51a3e7e1df", + "link" : + { + "commandFragments" : + [ + { + "fragment" : "-Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments", + "role" : "flags" + }, + { + "backtrace" : 2, + "fragment" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/liblog.so", + "role" : "libraries" + }, + { + "fragment" : "-latomic -lm", + "role" : "libraries" + } + ], + "language" : "C", + "sysroot" : + { + "path" : "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot" + } + }, + "name" : "androidcast_codecs", + "nameOnDisk" : "libandroidcast_codecs.so", + "paths" : + { + "build" : ".", + "source" : "." + }, + "sourceGroups" : + [ + { + "name" : "Source Files", + "sourceIndexes" : + [ + 0, + 1, + 2, + 3 + ] + } + ], + "sources" : + [ + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "jni/androidcast_codecs.c", + "sourceGroupIndex" : 0 + }, + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "jni/libvpx_bridge.c", + "sourceGroupIndex" : 0 + }, + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "jni/opus_bridge.c", + "sourceGroupIndex" : 0 + }, + { + "backtrace" : 1, + "compileGroupIndex" : 0, + "path" : "jni/speex_bridge.c", + "sourceGroupIndex" : 0 + } + ], + "type" : "SHARED_LIBRARY" +} diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.ninja_deps b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.ninja_deps new file mode 100644 index 0000000..a6fec54 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.ninja_deps differ diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/.ninja_log b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.ninja_log new file mode 100644 index 0000000..9d38235 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/.ninja_log @@ -0,0 +1,25 @@ +# ninja log v5 +0 10 1779046867003559935 build.ninja 258c7ead746e2cd9 +8 36 1779046409250131933 CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o a5066d95553dd4c4 +0 1 0 clean 2c00127b15096806 +1 31 1779046409244291009 CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o ea0353e54b42a86d +1 24 1779046409237624243 CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o 51fbdd3f91ca161f +2 31 1779046409242461072 CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o 2f47223044d415eb +36 54 1779046409267475661 /home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so 1bcdb9270aef384b +0 32 1779046867114357811 CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o ea0353e54b42a86d +5 41 1779046867122740290 CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o 2f47223044d415eb +6 41 1779046867122872251 CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o a5066d95553dd4c4 +1 44 1779046867131349827 CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o 51fbdd3f91ca161f +44 69 1779046867153798284 /home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so 1bcdb9270aef384b +0 2 0 clean 2c00127b15096806 +5 28 1779050624418143355 CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o a5066d95553dd4c4 +5 32 1779050624418109332 CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o 2f47223044d415eb +0 36 1779050624421491236 CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o ea0353e54b42a86d +0 39 1779050624428139664 CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o 51fbdd3f91ca161f +39 55 1779050624442452852 /home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so 1bcdb9270aef384b +0 1 0 clean 2c00127b15096806 +0 19 1779050908318232903 CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o ea0353e54b42a86d +1 29 1779050908323124067 CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o 51fbdd3f91ca161f +2 37 1779050908333124208 CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o 2f47223044d415eb +3 40 1779050908338916410 CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o a5066d95553dd4c4 +40 55 1779050908353124490 /home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so 1bcdb9270aef384b diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeCache.txt b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeCache.txt new file mode 100644 index 0000000..f69f323 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeCache.txt @@ -0,0 +1,368 @@ +# This is the CMakeCache file. +# For build in directory: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a +# It was generated by CMake: /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//No help, variable specified on the command line. +ANDROID_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +ANDROID_NDK:UNINITIALIZED=/home/foxx/Android/Sdk/ndk/27.0.12077973 + +//No help, variable specified on the command line. +ANDROID_PLATFORM:UNINITIALIZED=android-29 + +//No help, variable specified on the command line. +ANDROID_STL:UNINITIALIZED=c++_shared + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-addr2line + +//No help, variable specified on the command line. +CMAKE_ANDROID_ARCH_ABI:UNINITIALIZED=arm64-v8a + +//No help, variable specified on the command line. +CMAKE_ANDROID_NDK:UNINITIALIZED=/home/foxx/Android/Sdk/ndk/27.0.12077973 + +//Archiver +CMAKE_AR:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar + +//Flags used by the compiler during all build types. +CMAKE_ASM_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_ASM_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_ASM_FLAGS_RELEASE:STRING= + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING= + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING= + +//LLVM archiver +CMAKE_C_COMPILER_AR:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar + +//Generate index for LLVM archive +CMAKE_C_COMPILER_RANLIB:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING= + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING= + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Libraries linked by default with all C applications. +CMAKE_C_STANDARD_LIBRARIES:STRING=-latomic -lm + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-dlltool + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:UNINITIALIZED=ON + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//No help, variable specified on the command line. +CMAKE_LIBRARY_OUTPUT_DIRECTORY:UNINITIALIZED=/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a + +//Path to a program. +CMAKE_LINKER:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld + +//No help, variable specified on the command line. +CMAKE_MAKE_PROGRAM:UNINITIALIZED=/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=androidcast_codecs + +//Ranlib +CMAKE_RANLIB:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-readelf + +//No help, variable specified on the command line. +CMAKE_RUNTIME_OUTPUT_DIRECTORY:UNINITIALIZED=/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Strip +CMAKE_STRIP:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip + +//No help, variable specified on the command line. +CMAKE_SYSTEM_NAME:UNINITIALIZED=Android + +//No help, variable specified on the command line. +CMAKE_SYSTEM_VERSION:UNINITIALIZED=29 + +//No help, variable specified on the command line. +CMAKE_TOOLCHAIN_FILE:UNINITIALIZED=/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Value Computed by CMake +androidcast_codecs_BINARY_DIR:STATIC=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a + +//Value Computed by CMake +androidcast_codecs_IS_TOP_LEVEL:STATIC=ON + +//Value Computed by CMake +androidcast_codecs_SOURCE_DIR:STATIC=/home/foxx/repos/My Projects/android cast/ndk + +//Path to a library. +log-lib:FILEPATH=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/liblog.so + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=22 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/foxx/Android/Sdk/cmake/3.22.1/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/foxx/Android/Sdk/cmake/3.22.1/bin/ctest +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_STANDARD_LIBRARIES +CMAKE_C_STANDARD_LIBRARIES-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Ninja +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/foxx/repos/My Projects/android cast/ndk +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake new file mode 100644 index 0000000..158438c --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake @@ -0,0 +1,72 @@ +set(CMAKE_C_COMPILER "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "Clang") +set(CMAKE_C_COMPILER_VERSION "18.0.1") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_C_COMPILER_AR "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar") +set(CMAKE_RANLIB "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_C_COMPILER_RANLIB "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ranlib") +set(CMAKE_LINKER "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC ) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "-l:libunwind.a;dl;c;-l:libunwind.a;dl") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000..f1e3c92 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin differ diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake new file mode 100644 index 0000000..c4b5c62 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.18.26-gentoo") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.18.26-gentoo") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + +include("/home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake") + +set(CMAKE_SYSTEM "Android-1") +set(CMAKE_SYSTEM_NAME "Android") +set(CMAKE_SYSTEM_VERSION "1") +set(CMAKE_SYSTEM_PROCESSOR "aarch64") + +set(CMAKE_CROSSCOMPILING "TRUE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..41b99d7 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,803 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000..6e55f25 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o differ diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/CMakeOutput.log b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..d4f75d3 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/CMakeOutput.log @@ -0,0 +1,129 @@ +The target system is: Android - 1 - aarch64 +The host system is: Linux - 6.18.26-gentoo - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +Build flags: -g;-DANDROID;-fdata-sections;-ffunction-sections;-funwind-tables;-fstack-protector-strong;-no-canonical-prefixes;-D_FORTIFY_SOURCE=2;-Wformat;-Werror=format-security; +Id flags: -c;--target=aarch64-none-linux-android29 + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o" + +The C compiler identification is Clang, found in "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o" + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/CMakeTmp + +Run Build Command(s):/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja cmTC_ed2e6 && [1/2] Building C object CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o +Android (12027248, +pgo, +bolt, +lto, +mlgo, based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) +Target: aarch64-none-linux-android29 +Thread model: posix +InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin + (in-process) + "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" -cc1 -triple aarch64-none-linux-android29 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu generic -target-feature +neon -target-feature +v8a -target-feature +fix-cortex-a53-835769 -target-abi aapcs -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb "-fdebug-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/CMakeTmp" -v -ffunction-sections -fdata-sections "-fcoverage-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/CMakeTmp" -resource-dir /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -ferror-limit 19 -stack-protector 2 -fno-signed-char -fgnuc-version=4.2.1 -target-feature +outline-atomics -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o -x c /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c +clang -cc1 version 18.0.1 based upon LLVM 18.0.1 default target x86_64-unknown-linux-gnu +ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include" +ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include" +#include "..." search starts here: +#include <...> search starts here: + /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include + /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android + /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include +End of search list. +[2/2] Linking C executable cmTC_ed2e6 +Android (12027248, +pgo, +bolt, +lto, +mlgo, based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) +Target: aarch64-none-linux-android29 +Thread model: posix +InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin + "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -EL --fix-cortex-a53-843419 -z now -z relro -z max-page-size=4096 --hash-style=gnu --eh-frame-hdr -m aarch64linux -pie -dynamic-linker /system/bin/linker64 -o cmTC_ed2e6 /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtbegin_dynamic.o -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-rosegment --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl -lc /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtend_android.o + + + +Parsed C implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + add: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] + add: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + end of search list found + collapse include dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + collapse include dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] + collapse include dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + implicit include dirs: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld\.lld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja cmTC_ed2e6 && [1/2] Building C object CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o] + ignore line: [Android (12027248 +pgo +bolt +lto +mlgo based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: aarch64-none-linux-android29] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [ (in-process)] + ignore line: [ "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" -cc1 -triple aarch64-none-linux-android29 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu generic -target-feature +neon -target-feature +v8a -target-feature +fix-cortex-a53-835769 -target-abi aapcs -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb "-fdebug-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/CMakeTmp" -v -ffunction-sections -fdata-sections "-fcoverage-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/CMakeTmp" -resource-dir /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -ferror-limit 19 -stack-protector 2 -fno-signed-char -fgnuc-version=4.2.1 -target-feature +outline-atomics -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o -x c /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c] + ignore line: [clang -cc1 version 18.0.1 based upon LLVM 18.0.1 default target x86_64-unknown-linux-gnu] + ignore line: [ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include"] + ignore line: [ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + ignore line: [ /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android] + ignore line: [ /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + ignore line: [End of search list.] + ignore line: [[2/2] Linking C executable cmTC_ed2e6] + ignore line: [Android (12027248 +pgo +bolt +lto +mlgo based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: aarch64-none-linux-android29] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin] + link line: [ "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -EL --fix-cortex-a53-843419 -z now -z relro -z max-page-size=4096 --hash-style=gnu --eh-frame-hdr -m aarch64linux -pie -dynamic-linker /system/bin/linker64 -o cmTC_ed2e6 /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtbegin_dynamic.o -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-rosegment --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl -lc /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a -l:libunwind.a -ldl /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtend_android.o] + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld] ==> ignore + arg [--sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-EL] ==> ignore + arg [--fix-cortex-a53-843419] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-zmax-page-size=4096] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [aarch64linux] ==> ignore + arg [-pie] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker64] ==> ignore + arg [-o] ==> ignore + arg [cmTC_ed2e6] ==> ignore + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtbegin_dynamic.o] ==> obj [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtbegin_dynamic.o] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--build-id=sha1] ==> ignore + arg [--no-rosegment] ==> ignore + arg [--no-undefined-version] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [CMakeFiles/cmTC_ed2e6.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] ==> lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] ==> lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtend_android.o] ==> obj [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtend_android.o] + remove lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + remove lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-aarch64-android.a] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [-l:libunwind.a;dl;c;-l:libunwind.a;dl] + implicit objs: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtbegin_dynamic.o;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/crtend_android.o] + implicit dirs: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/aarch64;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/TargetDirectories.txt b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..ede1584 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir +/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/edit_cache.dir +/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/rebuild_cache.dir diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o new file mode 100644 index 0000000..2bacaf5 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o new file mode 100644 index 0000000..433a6fe Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o new file mode 100644 index 0000000..886b267 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o new file mode 100644 index 0000000..c531982 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/cmake.check_cache b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/rules.ninja b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/rules.ninja new file mode 100644 index 0000000..88c66fc --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/CMakeFiles/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: androidcast_codecs +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for compiling C files. + +rule C_COMPILER__androidcast_codecs_Debug + depfile = $DEP_FILE + deps = gcc + command = /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building C object $out + + +############################################# +# Rule for linking C shared library. + +rule C_SHARED_LIBRARY_LINKER__androidcast_codecs_Debug + command = $PRE_LINK && /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking C shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S"/home/foxx/repos/My Projects/android cast/ndk" -B"/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a" + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja -t targets + description = All primary targets available: + diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/additional_project_files.txt b/app/.cxx/Debug/56f6p2l3/arm64-v8a/additional_project_files.txt new file mode 100644 index 0000000..e69de29 diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/android_gradle_build.json b/app/.cxx/Debug/56f6p2l3/arm64-v8a/android_gradle_build.json new file mode 100644 index 0000000..610a9a0 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/android_gradle_build.json @@ -0,0 +1,38 @@ +{ + "buildFiles": [ + "/home/foxx/repos/My Projects/android cast/ndk/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": { + "androidcast_codecs::@6890427a1f51a3e7e1df": { + "toolchain": "toolchain", + "abi": "arm64-v8a", + "artifactName": "androidcast_codecs", + "output": "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "toolchain": { + "cCompilerExecutable": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang.lld", + "cppCompilerExecutable": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++.lld" + } + }, + "cFileExtensions": [ + "c" + ], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/android_gradle_build_mini.json b/app/.cxx/Debug/56f6p2l3/arm64-v8a/android_gradle_build_mini.json new file mode 100644 index 0000000..ffd3b68 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/android_gradle_build_mini.json @@ -0,0 +1,27 @@ +{ + "buildFiles": [ + "/home/foxx/repos/My Projects/android cast/ndk/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": { + "androidcast_codecs::@6890427a1f51a3e7e1df": { + "artifactName": "androidcast_codecs", + "abi": "arm64-v8a", + "output": "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/build.ninja b/app/.cxx/Debug/56f6p2l3/arm64-v8a/build.ninja new file mode 100644 index 0000000..1c03b79 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/build.ninja @@ -0,0 +1,176 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: androidcast_codecs +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /home/foxx/repos/My$ Projects/android$ cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/ +# ============================================================================= +# Object build statements for SHARED_LIBRARY target androidcast_codecs + + +############################################# +# Order-only phony target for androidcast_codecs + +build cmake_object_order_depends_target_androidcast_codecs: phony || CMakeFiles/androidcast_codecs.dir + +build CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/androidcast_codecs.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + +build CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/libvpx_bridge.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + +build CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/opus_bridge.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + +build CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/speex_bridge.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target androidcast_codecs + + +############################################# +# Link the shared library /home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so + +build /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so: C_SHARED_LIBRARY_LINKER__androidcast_codecs_Debug CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o | /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info + LINK_FLAGS = -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/29/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libandroidcast_codecs.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so" + TARGET_PDB = androidcast_codecs.so.dbg + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a" && /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a" && /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S"/home/foxx/repos/My Projects/android cast/ndk" -B"/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a" + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +build androidcast_codecs: phony /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so + +build libandroidcast_codecs.so: phony /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a + +build all: phony /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/arm64-v8a/libandroidcast_codecs.so + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/abis.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android-legacy.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/flags.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Clang.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Initialize.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/platforms.cmake /home/foxx/repos/My$ Projects/android$ cast/ndk/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/abis.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android-legacy.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/flags.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Clang.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Initialize.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/platforms.cmake /home/foxx/repos/My$ Projects/android$ cast/ndk/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/build_file_index.txt b/app/.cxx/Debug/56f6p2l3/arm64-v8a/build_file_index.txt new file mode 100644 index 0000000..51f14ee --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/build_file_index.txt @@ -0,0 +1 @@ +/home/foxx/repos/My Projects/android cast/ndk/CMakeLists.txt \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/cmake_install.cmake b/app/.cxx/Debug/56f6p2l3/arm64-v8a/cmake_install.cmake new file mode 100644 index 0000000..5010dc6 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /home/foxx/repos/My Projects/android cast/ndk + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/compile_commands.json b/app/.cxx/Debug/56f6p2l3/arm64-v8a/compile_commands.json new file mode 100644 index 0000000..8022ccb --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/compile_commands.json @@ -0,0 +1,22 @@ +[ +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/androidcast_codecs.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/androidcast_codecs.c" +}, +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/libvpx_bridge.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/libvpx_bridge.c" +}, +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/opus_bridge.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/opus_bridge.c" +}, +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/speex_bridge.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/speex_bridge.c" +} +] \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/compile_commands.json.bin b/app/.cxx/Debug/56f6p2l3/arm64-v8a/compile_commands.json.bin new file mode 100644 index 0000000..40881df Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/arm64-v8a/compile_commands.json.bin differ diff --git a/app/.cxx/Debug/56f6p2l3/arm64-v8a/configure_fingerprint.bin b/app/.cxx/Debug/56f6p2l3/arm64-v8a/configure_fingerprint.bin new file mode 100644 index 0000000..5c24b03 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/arm64-v8a/configure_fingerprint.bin @@ -0,0 +1,29 @@ +C/C++ Structured Logl +j +h/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/additional_project_files.txtC +A +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ʽ3  ӻ3i +g +e/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/android_gradle_build.json  ʽ3 ӻ3n +l +j/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/android_gradle_build_mini.json  ʽ3 ӻ3[ +Y +W/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/build.ninja  ʽ3i ӻ3_ +] +[/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/build.ninja.txt  ʽ3d +b +`/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/build_file_index.txt  ʽ3 < ס3e +c +a/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/compile_commands.json  ʽ3 ӻ3i +g +e/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/compile_commands.json.bin  ʽ3  + ӻ3o +m +k/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/metadata_generation_command.txt  ʽ3 + ס3b +` +^/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/prefab_config.json  ʽ3  ( ס3g +e +c/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/arm64-v8a/symbol_folder_index.txt  ʽ3  b ס3@ +> +>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000..85c7a3b Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o differ diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/CMakeOutput.log b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..2c9f463 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/CMakeOutput.log @@ -0,0 +1,131 @@ +The target system is: Android - 1 - armv7-a +The host system is: Linux - 6.18.26-gentoo - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +Build flags: -g;-DANDROID;-fdata-sections;-ffunction-sections;-funwind-tables;-fstack-protector-strong;-no-canonical-prefixes;-D_FORTIFY_SOURCE=2;-march=armv7-a;-mthumb;-Wformat;-Werror=format-security; +Id flags: -c;--target=armv7-none-linux-androideabi29 + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o" + +The C compiler identification is Clang, found in "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o" + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/CMakeTmp + +Run Build Command(s):/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja cmTC_b141d && [1/2] Building C object CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o +Android (12027248, +pgo, +bolt, +lto, +mlgo, based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) +Target: armv7-none-linux-android29 +Thread model: posix +InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin + (in-process) + "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" -cc1 -triple thumbv7-none-linux-android29 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=1 -target-cpu generic -target-feature +soft-float-abi -target-feature +vfp2 -target-feature +vfp2sp -target-feature +vfp3 -target-feature +vfp3d16 -target-feature +vfp3d16sp -target-feature +vfp3sp -target-feature -fp16 -target-feature -vfp4 -target-feature -vfp4d16 -target-feature -vfp4d16sp -target-feature -vfp4sp -target-feature -fp-armv8 -target-feature -fp-armv8d16 -target-feature -fp-armv8d16sp -target-feature -fp-armv8sp -target-feature -fullfp16 -target-feature +fp64 -target-feature +d32 -target-feature +neon -target-feature -sha2 -target-feature -aes -target-feature -fp16fml -target-abi aapcs-linux -mfloat-abi soft -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb "-fdebug-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/CMakeTmp" -v -ffunction-sections -fdata-sections "-fcoverage-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/CMakeTmp" -resource-dir /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -ferror-limit 19 -stack-protector 2 -fno-signed-char -fgnuc-version=4.2.1 -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o -x c /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c +clang -cc1 version 18.0.1 based upon LLVM 18.0.1 default target x86_64-unknown-linux-gnu +ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include" +ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include" +#include "..." search starts here: +#include <...> search starts here: + /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include + /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi + /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include +End of search list. +[2/2] Linking C executable cmTC_b141d +Android (12027248, +pgo, +bolt, +lto, +mlgo, based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) +Target: armv7-none-linux-android29 +Thread model: posix +InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin + "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -EL -z now -z relro -z max-page-size=4096 -X --hash-style=gnu --eh-frame-hdr -m armelf_linux_eabi -pie -dynamic-linker /system/bin/linker -o cmTC_b141d /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtbegin_dynamic.o -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/arm -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-rosegment --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a -l:libunwind.a -ldl -lc /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a -l:libunwind.a -ldl /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtend_android.o + + + +Parsed C implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + add: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi] + add: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + end of search list found + collapse include dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + collapse include dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi] + collapse include dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + implicit include dirs: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld\.lld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja cmTC_b141d && [1/2] Building C object CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o] + ignore line: [Android (12027248 +pgo +bolt +lto +mlgo based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: armv7-none-linux-android29] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [ (in-process)] + ignore line: [ "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" -cc1 -triple thumbv7-none-linux-android29 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=1 -target-cpu generic -target-feature +soft-float-abi -target-feature +vfp2 -target-feature +vfp2sp -target-feature +vfp3 -target-feature +vfp3d16 -target-feature +vfp3d16sp -target-feature +vfp3sp -target-feature -fp16 -target-feature -vfp4 -target-feature -vfp4d16 -target-feature -vfp4d16sp -target-feature -vfp4sp -target-feature -fp-armv8 -target-feature -fp-armv8d16 -target-feature -fp-armv8d16sp -target-feature -fp-armv8sp -target-feature -fullfp16 -target-feature +fp64 -target-feature +d32 -target-feature +neon -target-feature -sha2 -target-feature -aes -target-feature -fp16fml -target-abi aapcs-linux -mfloat-abi soft -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb "-fdebug-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/CMakeTmp" -v -ffunction-sections -fdata-sections "-fcoverage-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/CMakeTmp" -resource-dir /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -ferror-limit 19 -stack-protector 2 -fno-signed-char -fgnuc-version=4.2.1 -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o -x c /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c] + ignore line: [clang -cc1 version 18.0.1 based upon LLVM 18.0.1 default target x86_64-unknown-linux-gnu] + ignore line: [ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include"] + ignore line: [ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + ignore line: [ /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/arm-linux-androideabi] + ignore line: [ /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + ignore line: [End of search list.] + ignore line: [[2/2] Linking C executable cmTC_b141d] + ignore line: [Android (12027248 +pgo +bolt +lto +mlgo based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: armv7-none-linux-android29] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin] + link line: [ "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -EL -z now -z relro -z max-page-size=4096 -X --hash-style=gnu --eh-frame-hdr -m armelf_linux_eabi -pie -dynamic-linker /system/bin/linker -o cmTC_b141d /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtbegin_dynamic.o -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/arm -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-rosegment --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a -l:libunwind.a -ldl -lc /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a -l:libunwind.a -ldl /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtend_android.o] + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld] ==> ignore + arg [--sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-EL] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-zmax-page-size=4096] ==> ignore + arg [-X] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [armelf_linux_eabi] ==> ignore + arg [-pie] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker] ==> ignore + arg [-o] ==> ignore + arg [cmTC_b141d] ==> ignore + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtbegin_dynamic.o] ==> obj [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtbegin_dynamic.o] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/arm] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/arm] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--build-id=sha1] ==> ignore + arg [--no-rosegment] ==> ignore + arg [--no-undefined-version] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [CMakeFiles/cmTC_b141d.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a] ==> lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a] ==> lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtend_android.o] ==> obj [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtend_android.o] + remove lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a] + remove lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-arm-android.a] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/arm] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/arm] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/../lib] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [-l:libunwind.a;dl;c;-l:libunwind.a;dl] + implicit objs: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtbegin_dynamic.o;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/crtend_android.o] + implicit dirs: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/arm;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/TargetDirectories.txt b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..384b25a --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir +/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/edit_cache.dir +/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/rebuild_cache.dir diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o new file mode 100644 index 0000000..903d1e9 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o new file mode 100644 index 0000000..c55db6e Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o new file mode 100644 index 0000000..d6173d5 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o new file mode 100644 index 0000000..50012cc Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/cmake.check_cache b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/rules.ninja b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/rules.ninja new file mode 100644 index 0000000..49a7968 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/CMakeFiles/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: androidcast_codecs +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for compiling C files. + +rule C_COMPILER__androidcast_codecs_Debug + depfile = $DEP_FILE + deps = gcc + command = /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building C object $out + + +############################################# +# Rule for linking C shared library. + +rule C_SHARED_LIBRARY_LINKER__androidcast_codecs_Debug + command = $PRE_LINK && /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking C shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S"/home/foxx/repos/My Projects/android cast/ndk" -B"/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a" + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja -t targets + description = All primary targets available: + diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/additional_project_files.txt b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/additional_project_files.txt new file mode 100644 index 0000000..e69de29 diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/android_gradle_build.json b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/android_gradle_build.json new file mode 100644 index 0000000..28de20b --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/android_gradle_build.json @@ -0,0 +1,38 @@ +{ + "buildFiles": [ + "/home/foxx/repos/My Projects/android cast/ndk/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": { + "androidcast_codecs::@6890427a1f51a3e7e1df": { + "toolchain": "toolchain", + "abi": "armeabi-v7a", + "artifactName": "androidcast_codecs", + "output": "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/armeabi-v7a/libandroidcast_codecs.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "toolchain": { + "cCompilerExecutable": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang.lld", + "cppCompilerExecutable": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++.lld" + } + }, + "cFileExtensions": [ + "c" + ], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/android_gradle_build_mini.json b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/android_gradle_build_mini.json new file mode 100644 index 0000000..50d8001 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/android_gradle_build_mini.json @@ -0,0 +1,27 @@ +{ + "buildFiles": [ + "/home/foxx/repos/My Projects/android cast/ndk/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": { + "androidcast_codecs::@6890427a1f51a3e7e1df": { + "artifactName": "androidcast_codecs", + "abi": "armeabi-v7a", + "output": "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/armeabi-v7a/libandroidcast_codecs.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/build.ninja b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/build.ninja new file mode 100644 index 0000000..67d72d3 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/build.ninja @@ -0,0 +1,176 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: androidcast_codecs +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /home/foxx/repos/My$ Projects/android$ cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/ +# ============================================================================= +# Object build statements for SHARED_LIBRARY target androidcast_codecs + + +############################################# +# Order-only phony target for androidcast_codecs + +build cmake_object_order_depends_target_androidcast_codecs: phony || CMakeFiles/androidcast_codecs.dir + +build CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/androidcast_codecs.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + +build CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/libvpx_bridge.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + +build CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/opus_bridge.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + +build CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/speex_bridge.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target androidcast_codecs + + +############################################# +# Link the shared library /home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/armeabi-v7a/libandroidcast_codecs.so + +build /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/armeabi-v7a/libandroidcast_codecs.so: C_SHARED_LIBRARY_LINKER__androidcast_codecs_Debug CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o | /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info + LINK_FLAGS = -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libandroidcast_codecs.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/armeabi-v7a/libandroidcast_codecs.so" + TARGET_PDB = androidcast_codecs.so.dbg + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a" && /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a" && /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S"/home/foxx/repos/My Projects/android cast/ndk" -B"/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a" + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +build androidcast_codecs: phony /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/armeabi-v7a/libandroidcast_codecs.so + +build libandroidcast_codecs.so: phony /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/armeabi-v7a/libandroidcast_codecs.so + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a + +build all: phony /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/armeabi-v7a/libandroidcast_codecs.so + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/abis.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android-legacy.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/flags.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Clang.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Initialize.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/platforms.cmake /home/foxx/repos/My$ Projects/android$ cast/ndk/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/abis.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android-legacy.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/flags.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Clang.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Initialize.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/platforms.cmake /home/foxx/repos/My$ Projects/android$ cast/ndk/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/build_file_index.txt b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/build_file_index.txt new file mode 100644 index 0000000..51f14ee --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/build_file_index.txt @@ -0,0 +1 @@ +/home/foxx/repos/My Projects/android cast/ndk/CMakeLists.txt \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/cmake_install.cmake b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/cmake_install.cmake new file mode 100644 index 0000000..f4df93e --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /home/foxx/repos/My Projects/android cast/ndk + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/compile_commands.json b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/compile_commands.json new file mode 100644 index 0000000..63697b6 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/compile_commands.json @@ -0,0 +1,22 @@ +[ +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/androidcast_codecs.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/androidcast_codecs.c" +}, +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/libvpx_bridge.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/libvpx_bridge.c" +}, +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/opus_bridge.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/opus_bridge.c" +}, +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=armv7-none-linux-androideabi29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -march=armv7-a -mthumb -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/speex_bridge.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/speex_bridge.c" +} +] \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/compile_commands.json.bin b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/compile_commands.json.bin new file mode 100644 index 0000000..9d3006b Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/compile_commands.json.bin differ diff --git a/app/.cxx/Debug/56f6p2l3/armeabi-v7a/configure_fingerprint.bin b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/configure_fingerprint.bin new file mode 100644 index 0000000..4639faf --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/armeabi-v7a/configure_fingerprint.bin @@ -0,0 +1,28 @@ +C/C++ Structured Logn +l +j/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/additional_project_files.txtC +A +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  Εʽ3  ӻ3k +i +g/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/android_gradle_build.json  Εʽ3 ӻ3p +n +l/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/android_gradle_build_mini.json  Εʽ3 ӻ3] +[ +Y/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/build.ninja  Εʽ3j ӻ3a +_ +]/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/build.ninja.txt  Εʽ3f +d +b/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/build_file_index.txt  Εʽ3 < ؤ3g +e +c/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/compile_commands.json  Εʽ3 ӻ3k +i +g/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/compile_commands.json.bin  Εʽ3  ӻ3q +o +m/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/metadata_generation_command.txt  Εʽ3 + ؤ3d +b +`/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/prefab_config.json  Εʽ3  ( ؤ3i +g +e/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/armeabi-v7a/symbol_folder_index.txt  Εʽ3  d ؤ3@ +> +>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +/* !defined(_MSC_VER) to exclude Clang's MSVC compatibility mode. */ +#if (defined(__clang__) || defined(__GNUC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) && !defined(_MSC_VER) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o new file mode 100644 index 0000000..358914c Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o differ diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/CMakeOutput.log b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..e2c0b79 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/CMakeOutput.log @@ -0,0 +1,126 @@ +The target system is: Android - 1 - x86_64 +The host system is: Linux - 6.18.26-gentoo - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang +Build flags: -g;-DANDROID;-fdata-sections;-ffunction-sections;-funwind-tables;-fstack-protector-strong;-no-canonical-prefixes;-D_FORTIFY_SOURCE=2;-Wformat;-Werror=format-security; +Id flags: -c;--target=x86_64-none-linux-android29 + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "CMakeCCompilerId.o" + +The C compiler identification is Clang, found in "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o" + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/CMakeTmp + +Run Build Command(s):/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja cmTC_52437 && [1/2] Building C object CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o +Android (12027248, +pgo, +bolt, +lto, +mlgo, based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) +Target: x86_64-none-linux-android29 +Thread model: posix +InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin + (in-process) + "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" -cc1 -triple x86_64-none-linux-android29 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -target-feature +sse4.2 -target-feature +popcnt -target-feature +cx16 -tune-cpu generic -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb "-fdebug-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/CMakeTmp" -v -ffunction-sections -fdata-sections "-fcoverage-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/CMakeTmp" -resource-dir /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/x86_64-linux-android -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -ferror-limit 19 -stack-protector 2 -fgnuc-version=4.2.1 -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o -x c /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c +clang -cc1 version 18.0.1 based upon LLVM 18.0.1 default target x86_64-unknown-linux-gnu +ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include" +ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include" +#include "..." search starts here: +#include <...> search starts here: + /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include + /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/x86_64-linux-android + /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include +End of search list. +[2/2] Linking C executable cmTC_52437 +Android (12027248, +pgo, +bolt, +lto, +mlgo, based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262) +Target: x86_64-none-linux-android29 +Thread model: posix +InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin + "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -z now -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -pie -dynamic-linker /system/bin/linker64 -o cmTC_52437 /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtbegin_dynamic.o -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/x86_64 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-rosegment --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a -l:libunwind.a -ldl -lc /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a -l:libunwind.a -ldl /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtend_android.o + + + +Parsed C implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + add: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/x86_64-linux-android] + add: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + end of search list found + collapse include dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + collapse include dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/x86_64-linux-android] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/x86_64-linux-android] + collapse include dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + implicit include dirs: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/x86_64-linux-android;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld\.lld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja cmTC_52437 && [1/2] Building C object CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o] + ignore line: [Android (12027248 +pgo +bolt +lto +mlgo based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: x86_64-none-linux-android29] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin] + ignore line: [ (in-process)] + ignore line: [ "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" -cc1 -triple x86_64-none-linux-android29 -emit-obj -mrelax-all -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name CMakeCCompilerABI.c -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -target-feature +sse4.2 -target-feature +popcnt -target-feature +cx16 -tune-cpu generic -debug-info-kind=constructor -dwarf-version=4 -debugger-tuning=gdb "-fdebug-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/CMakeTmp" -v -ffunction-sections -fdata-sections "-fcoverage-compilation-dir=/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/CMakeTmp" -resource-dir /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -dependency-file CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o.d -MT CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o -sys-header-deps -D ANDROID -D _FORTIFY_SOURCE=2 -isysroot /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include -internal-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/x86_64-linux-android -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include -internal-externc-isystem /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include -Wformat -ferror-limit 19 -stack-protector 2 -fgnuc-version=4.2.1 -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o -x c /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c] + ignore line: [clang -cc1 version 18.0.1 based upon LLVM 18.0.1 default target x86_64-unknown-linux-gnu] + ignore line: [ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/local/include"] + ignore line: [ignoring nonexistent directory "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/include] + ignore line: [ /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/x86_64-linux-android] + ignore line: [ /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include] + ignore line: [End of search list.] + ignore line: [[2/2] Linking C executable cmTC_52437] + ignore line: [Android (12027248 +pgo +bolt +lto +mlgo based on r522817) clang version 18.0.1 (https://android.googlesource.com/toolchain/llvm-project d8003a456d14a3deb8054cdaa529ffbf02d9b262)] + ignore line: [Target: x86_64-none-linux-android29] + ignore line: [Thread model: posix] + ignore line: [InstalledDir: /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin] + link line: [ "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld" --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -z now -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -pie -dynamic-linker /system/bin/linker64 -o cmTC_52437 /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtbegin_dynamic.o -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/x86_64 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29 -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android -L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib --build-id=sha1 --no-rosegment --no-undefined-version --fatal-warnings --no-undefined CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a -l:libunwind.a -ldl -lc /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a -l:libunwind.a -ldl /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtend_android.o] + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/ld.lld] ==> ignore + arg [--sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [-pie] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/system/bin/linker64] ==> ignore + arg [-o] ==> ignore + arg [cmTC_52437] ==> ignore + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtbegin_dynamic.o] ==> obj [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtbegin_dynamic.o] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/x86_64] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/x86_64] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android] + arg [-L/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + arg [--build-id=sha1] ==> ignore + arg [--no-rosegment] ==> ignore + arg [--no-undefined-version] ==> ignore + arg [--fatal-warnings] ==> ignore + arg [--no-undefined] ==> ignore + arg [CMakeFiles/cmTC_52437.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a] ==> lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [-lc] ==> lib [c] + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a] ==> lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a] + arg [-l:libunwind.a] ==> lib [-l:libunwind.a] + arg [-ldl] ==> lib [dl] + arg [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtend_android.o] ==> obj [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtend_android.o] + remove lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a] + remove lib [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/libclang_rt.builtins-x86_64-android.a] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/x86_64] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/x86_64] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android] + collapse library dir [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] ==> [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit libs: [-l:libunwind.a;dl;c;-l:libunwind.a;dl] + implicit objs: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtbegin_dynamic.o;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/crtend_android.o] + implicit dirs: [/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18/lib/linux/x86_64;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android;/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib] + implicit fwks: [] + + diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/TargetDirectories.txt b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..6e8a595 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir +/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/edit_cache.dir +/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/rebuild_cache.dir diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o new file mode 100644 index 0000000..8b29cc2 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o new file mode 100644 index 0000000..0ae2bbd Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o new file mode 100644 index 0000000..4dc423b Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o new file mode 100644 index 0000000..b3e86fa Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o differ diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/cmake.check_cache b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/rules.ninja b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/rules.ninja new file mode 100644 index 0000000..928726d --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/CMakeFiles/rules.ninja @@ -0,0 +1,64 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the rules used to get the outputs files +# built from the input files. +# It is included in the main 'build.ninja'. + +# ============================================================================= +# Project: androidcast_codecs +# Configurations: Debug +# ============================================================================= +# ============================================================================= + +############################################# +# Rule for compiling C files. + +rule C_COMPILER__androidcast_codecs_Debug + depfile = $DEP_FILE + deps = gcc + command = /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=x86_64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot $DEFINES $INCLUDES $FLAGS -MD -MT $out -MF $DEP_FILE -o $out -c $in + description = Building C object $out + + +############################################# +# Rule for linking C shared library. + +rule C_SHARED_LIBRARY_LINKER__androidcast_codecs_Debug + command = $PRE_LINK && /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=x86_64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC $LANGUAGE_COMPILE_FLAGS $ARCH_FLAGS $LINK_FLAGS -shared $SONAME_FLAG$SONAME -o $TARGET_FILE $in $LINK_PATH $LINK_LIBRARIES && $POST_BUILD + description = Linking C shared library $TARGET_FILE + restat = $RESTAT + + +############################################# +# Rule for running custom commands. + +rule CUSTOM_COMMAND + command = $COMMAND + description = $DESC + + +############################################# +# Rule for re-running cmake. + +rule RERUN_CMAKE + command = /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S"/home/foxx/repos/My Projects/android cast/ndk" -B"/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64" + description = Re-running CMake... + generator = 1 + + +############################################# +# Rule for cleaning all built files. + +rule CLEAN + command = /home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja $FILE_ARG -t clean $TARGETS + description = Cleaning all built files... + + +############################################# +# Rule for printing all primary targets available. + +rule HELP + command = /home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja -t targets + description = All primary targets available: + diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/additional_project_files.txt b/app/.cxx/Debug/56f6p2l3/x86_64/additional_project_files.txt new file mode 100644 index 0000000..e69de29 diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/android_gradle_build.json b/app/.cxx/Debug/56f6p2l3/x86_64/android_gradle_build.json new file mode 100644 index 0000000..1b9e9b4 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/android_gradle_build.json @@ -0,0 +1,38 @@ +{ + "buildFiles": [ + "/home/foxx/repos/My Projects/android cast/ndk/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": { + "androidcast_codecs::@6890427a1f51a3e7e1df": { + "toolchain": "toolchain", + "abi": "x86_64", + "artifactName": "androidcast_codecs", + "output": "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/x86_64/libandroidcast_codecs.so", + "runtimeFiles": [] + } + }, + "toolchains": { + "toolchain": { + "cCompilerExecutable": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang.lld", + "cppCompilerExecutable": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++.lld" + } + }, + "cFileExtensions": [ + "c" + ], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/android_gradle_build_mini.json b/app/.cxx/Debug/56f6p2l3/x86_64/android_gradle_build_mini.json new file mode 100644 index 0000000..b1d1990 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/android_gradle_build_mini.json @@ -0,0 +1,27 @@ +{ + "buildFiles": [ + "/home/foxx/repos/My Projects/android cast/ndk/CMakeLists.txt" + ], + "cleanCommandsComponents": [ + [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64", + "clean" + ] + ], + "buildTargetsCommandComponents": [ + "/home/foxx/Android/Sdk/cmake/3.22.1/bin/ninja", + "-C", + "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64", + "{LIST_OF_TARGETS_TO_BUILD}" + ], + "libraries": { + "androidcast_codecs::@6890427a1f51a3e7e1df": { + "artifactName": "androidcast_codecs", + "abi": "x86_64", + "output": "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/x86_64/libandroidcast_codecs.so", + "runtimeFiles": [] + } + } +} \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/build.ninja b/app/.cxx/Debug/56f6p2l3/x86_64/build.ninja new file mode 100644 index 0000000..d779f7e --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/build.ninja @@ -0,0 +1,176 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 3.22 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: androidcast_codecs +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles/rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = /home/foxx/repos/My$ Projects/android$ cast/app/.cxx/Debug/56f6p2l3/x86_64/ +# ============================================================================= +# Object build statements for SHARED_LIBRARY target androidcast_codecs + + +############################################# +# Order-only phony target for androidcast_codecs + +build cmake_object_order_depends_target_androidcast_codecs: phony || CMakeFiles/androidcast_codecs.dir + +build CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/androidcast_codecs.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + +build CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/libvpx_bridge.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + +build CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/opus_bridge.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + +build CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o: C_COMPILER__androidcast_codecs_Debug /home/foxx/repos/My$ Projects/android$ cast/ndk/jni/speex_bridge.c || cmake_object_order_depends_target_androidcast_codecs + DEFINES = -Dandroidcast_codecs_EXPORTS + DEP_FILE = CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o.d + FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 + INCLUDES = -I"/home/foxx/repos/My Projects/android cast/ndk/jni" + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + OBJECT_FILE_DIR = CMakeFiles/androidcast_codecs.dir/jni + + +# ============================================================================= +# Link build statements for SHARED_LIBRARY target androidcast_codecs + + +############################################# +# Link the shared library /home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/x86_64/libandroidcast_codecs.so + +build /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/x86_64/libandroidcast_codecs.so: C_SHARED_LIBRARY_LINKER__androidcast_codecs_Debug CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o | /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/liblog.so + LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info + LINK_FLAGS = -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments + LINK_LIBRARIES = /home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/29/liblog.so -latomic -lm + OBJECT_DIR = CMakeFiles/androidcast_codecs.dir + POST_BUILD = : + PRE_LINK = : + SONAME = libandroidcast_codecs.so + SONAME_FLAG = -Wl,-soname, + TARGET_FILE = "/home/foxx/repos/My Projects/android cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/x86_64/libandroidcast_codecs.so" + TARGET_PDB = androidcast_codecs.so.dbg + + +############################################# +# Utility command for edit_cache + +build CMakeFiles/edit_cache.util: CUSTOM_COMMAND + COMMAND = cd "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64" && /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. + DESC = No interactive CMake dialog available... + restat = 1 + +build edit_cache: phony CMakeFiles/edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND + COMMAND = cd "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64" && /home/foxx/Android/Sdk/cmake/3.22.1/bin/cmake --regenerate-during-build -S"/home/foxx/repos/My Projects/android cast/ndk" -B"/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64" + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles/rebuild_cache.util + +# ============================================================================= +# Target aliases. + +build androidcast_codecs: phony /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/x86_64/libandroidcast_codecs.so + +build libandroidcast_codecs.so: phony /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/x86_64/libandroidcast_codecs.so + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: /home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64 + +build all: phony /home/foxx/repos/My$ Projects/android$ cast/app/build/intermediates/cxx/Debug/56f6p2l3/obj/x86_64/libandroidcast_codecs.so + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja: RERUN_CMAKE | /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/abis.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android-legacy.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/flags.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Clang.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Initialize.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/platforms.cmake /home/foxx/repos/My$ Projects/android$ cast/ndk/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake /home/foxx/Android/Sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/abis.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android-legacy.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/android.toolchain.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/flags.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Clang.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android-Initialize.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/hooks/pre/Android.cmake /home/foxx/Android/Sdk/ndk/27.0.12077973/build/cmake/platforms.cmake /home/foxx/repos/My$ Projects/android$ cast/ndk/CMakeLists.txt CMakeCache.txt CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/build_file_index.txt b/app/.cxx/Debug/56f6p2l3/x86_64/build_file_index.txt new file mode 100644 index 0000000..51f14ee --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/build_file_index.txt @@ -0,0 +1 @@ +/home/foxx/repos/My Projects/android cast/ndk/CMakeLists.txt \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/cmake_install.cmake b/app/.cxx/Debug/56f6p2l3/x86_64/cmake_install.cmake new file mode 100644 index 0000000..ad33cd1 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /home/foxx/repos/My Projects/android cast/ndk + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "0") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "TRUE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/compile_commands.json b/app/.cxx/Debug/56f6p2l3/x86_64/compile_commands.json new file mode 100644 index 0000000..a53aeaa --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/compile_commands.json @@ -0,0 +1,22 @@ +[ +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=x86_64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/androidcast_codecs.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/androidcast_codecs.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/androidcast_codecs.c" +}, +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=x86_64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/libvpx_bridge.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/libvpx_bridge.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/libvpx_bridge.c" +}, +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=x86_64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/opus_bridge.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/opus_bridge.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/opus_bridge.c" +}, +{ + "directory": "/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64", + "command": "/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=x86_64-none-linux-android29 --sysroot=/home/foxx/Android/Sdk/ndk/27.0.12077973/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Dandroidcast_codecs_EXPORTS -I\"/home/foxx/repos/My Projects/android cast/ndk/jni\" -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fno-limit-debug-info -fPIC -std=gnu11 -o CMakeFiles/androidcast_codecs.dir/jni/speex_bridge.c.o -c \"/home/foxx/repos/My Projects/android cast/ndk/jni/speex_bridge.c\"", + "file": "/home/foxx/repos/My Projects/android cast/ndk/jni/speex_bridge.c" +} +] \ No newline at end of file diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/compile_commands.json.bin b/app/.cxx/Debug/56f6p2l3/x86_64/compile_commands.json.bin new file mode 100644 index 0000000..003fd09 Binary files /dev/null and b/app/.cxx/Debug/56f6p2l3/x86_64/compile_commands.json.bin differ diff --git a/app/.cxx/Debug/56f6p2l3/x86_64/configure_fingerprint.bin b/app/.cxx/Debug/56f6p2l3/x86_64/configure_fingerprint.bin new file mode 100644 index 0000000..e619a41 --- /dev/null +++ b/app/.cxx/Debug/56f6p2l3/x86_64/configure_fingerprint.bin @@ -0,0 +1,29 @@ +C/C++ Structured Logi +g +e/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/additional_project_files.txtC +A +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ʽ3  ӻ3f +d +b/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/android_gradle_build.json  ʽ3 ӻ3k +i +g/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/android_gradle_build_mini.json  ʽ3 ӻ3X +V +T/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/build.ninja  ʽ3i ӻ3\ +Z +X/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/build.ninja.txt  ʽ3a +_ +]/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/build_file_index.txt  ʽ3 < ٤3b +` +^/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/compile_commands.json  ʽ3 ӻ3f +d +b/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/compile_commands.json.bin  ʽ3  + ӻ3l +j +h/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/metadata_generation_command.txt  ʽ3 + ٤3_ +] +[/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/prefab_config.json  ʽ3  ( ٤3d +b +`/home/foxx/repos/My Projects/android cast/app/.cxx/Debug/56f6p2l3/x86_64/symbol_folder_index.txt  ʽ3  _ ٤3@ +> + + + + + + + + + + + + diff --git a/app/src/main/assets/licenses/combined.html b/app/src/main/assets/licenses/combined.html new file mode 100644 index 0000000..55fe4c2 --- /dev/null +++ b/app/src/main/assets/licenses/combined.html @@ -0,0 +1,32 @@ +

Android Cast

+

Copyright © Android Cast contributors.

+

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

+
    +
  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. +
  3. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  4. +
  5. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
  6. +
+

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ +

AndroidX AppCompat

+

Licensed under the Apache License, Version 2.0.

+

Copyright The Android Open Source Project.

+ +

Google Material Components for Android

+

Licensed under the Apache License, Version 2.0.

+ +

AndroidX ConstraintLayout

+

Licensed under the Apache License, Version 2.0.

+ +

Google Play services Cronet

+

Licensed under the BSD 3-Clause License (Chromium Cronet).

+ +

JUnit 4

+

Licensed under the Eclipse Public License 1.0 (test dependency only).

+ +

Future components (not yet bundled)

+
    +
  • libvpx — BSD-style license (VP8/VP9 software codec, planned).
  • +
  • Speex — revised BSD license (speech codec, planned).
  • +
  • Opus — BSD-style license (speech codec with in-band FEC, planned).
  • +
diff --git a/app/src/main/java/com/foxx/androidcast/AndroidCastApplication.java b/app/src/main/java/com/foxx/androidcast/AndroidCastApplication.java index ed5cc7c..e39ba85 100644 --- a/app/src/main/java/com/foxx/androidcast/AndroidCastApplication.java +++ b/app/src/main/java/com/foxx/androidcast/AndroidCastApplication.java @@ -1,12 +1,20 @@ package com.foxx.androidcast; import android.app.Application; +import android.content.Context; -/** Applies saved theme mode at process start. */ +/** Applies saved theme and locale at process start. */ public class AndroidCastApplication extends Application { + @Override + protected void attachBaseContext(Context base) { + super.attachBaseContext(CastLocaleHelper.attach(base)); + } + @Override public void onCreate() { super.onCreate(); + CastLocaleHelper.applyStoredLocale(this); CastThemeHelper.applyNightMode(this); + CastTrayNotifier.syncOnAppStart(this); } } diff --git a/app/src/main/java/com/foxx/androidcast/AppPreferences.java b/app/src/main/java/com/foxx/androidcast/AppPreferences.java index 0810983..e41eae8 100644 --- a/app/src/main/java/com/foxx/androidcast/AppPreferences.java +++ b/app/src/main/java/com/foxx/androidcast/AppPreferences.java @@ -16,6 +16,7 @@ public final class AppPreferences { private static final String KEY_PIN = "pin"; private static final String KEY_SHOW_TRAY = "show_tray_icon"; private static final String KEY_THEME = "theme_mode"; + private static final String KEY_LOCALE = "locale_mode"; private static final String KEY_PLAY_INCOMING_AUDIO = "play_incoming_audio"; private static final String PREFIX_SENDER = "sender_"; @@ -69,6 +70,20 @@ public final class AppPreferences { mode != null ? mode.name() : CastThemeHelper.AppThemeMode.SYSTEM.name()).apply(); } + public static CastLocaleHelper.AppLocaleMode getLocaleMode(Context context) { + String name = prefs(context).getString(KEY_LOCALE, CastLocaleHelper.AppLocaleMode.SYSTEM.name()); + try { + return CastLocaleHelper.AppLocaleMode.valueOf(name); + } catch (Exception e) { + return CastLocaleHelper.AppLocaleMode.SYSTEM; + } + } + + public static void setLocaleMode(Context context, CastLocaleHelper.AppLocaleMode mode) { + prefs(context).edit().putString(KEY_LOCALE, + mode != null ? mode.name() : CastLocaleHelper.AppLocaleMode.SYSTEM.name()).apply(); + } + public static boolean isPlayIncomingAudio(Context context) { return prefs(context).getBoolean(KEY_PLAY_INCOMING_AUDIO, true); } @@ -141,12 +156,18 @@ public final class AppPreferences { CastSettings.NetworkAdoption.ESTIMATED)); s.setCaptureMode(readEnum(p, prefix + "capture_mode", CastSettings.CaptureMode.values(), PlatformCastSupport.defaultCaptureMode())); - s.setStreamProtection(readEnum(p, prefix + "stream_protection", CastSettings.StreamProtection.values(), - CastSettings.StreamProtection.AUTO)); + CastSettings.StreamProtection protection = readEnum(p, prefix + "stream_protection", + CastSettings.StreamProtection.values(), CastSettings.StreamProtection.NONE); + if (protection == CastSettings.StreamProtection.AUTO) { + protection = CastSettings.StreamProtection.NONE; + } + s.setStreamProtection(protection); s.setReceiverDisplayResolution(readEnum(p, prefix + "receiver_display", CastSettings.ReceiverDisplayResolution.values(), CastSettings.ReceiverDisplayResolution.AUTO_FIT)); s.setAudioEnabled(p.getBoolean(prefix + "audio_enabled", PlatformCastSupport.isAudioCaptureSupported())); + s.setAudioCodec(readEnum(p, prefix + "audio_codec", CastSettings.AudioCodec.values(), + CastSettings.AudioCodec.AUTO)); } private static void storeCastSettings(Context context, String prefix, CastSettings s) { @@ -160,6 +181,7 @@ public final class AppPreferences { .putString(prefix + "stream_protection", s.getStreamProtection().name()) .putString(prefix + "receiver_display", s.getReceiverDisplayResolution().name()) .putBoolean(prefix + "audio_enabled", s.isAudioRequested()) + .putString(prefix + "audio_codec", s.getAudioCodec().name()) .apply(); } diff --git a/app/src/main/java/com/foxx/androidcast/CastLocaleHelper.java b/app/src/main/java/com/foxx/androidcast/CastLocaleHelper.java new file mode 100644 index 0000000..199799a --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/CastLocaleHelper.java @@ -0,0 +1,79 @@ +package com.foxx.androidcast; + +import android.content.Context; +import android.content.res.Configuration; +import android.os.Build; + +import androidx.appcompat.app.AppCompatDelegate; +import androidx.core.os.LocaleListCompat; + +import java.util.Locale; + +/** Applies user-selected app language (per-app locales). */ +public final class CastLocaleHelper { + private CastLocaleHelper() {} + + public enum AppLocaleMode { + /** Follow system locale. */ + SYSTEM, + /** Force English resources. */ + ENGLISH, + /** Force Russian resources. */ + RUSSIAN + } + + public static void applyStoredLocale(Context context) { + AppCompatDelegate.setApplicationLocales(toLocaleList(AppPreferences.getLocaleMode(context))); + } + + /** Wraps base context so resources resolve with the saved locale. */ + public static Context attach(Context context) { + AppLocaleMode mode = AppPreferences.getLocaleMode(context); + if (mode == AppLocaleMode.SYSTEM) { + return context; + } + Locale locale = toLocale(mode); + if (locale == null) { + return context; + } + return localizedContext(context, locale); + } + + public static LocaleListCompat toLocaleList(AppLocaleMode mode) { + if (mode == null) { + mode = AppLocaleMode.SYSTEM; + } + switch (mode) { + case ENGLISH: + return LocaleListCompat.forLanguageTags("en"); + case RUSSIAN: + return LocaleListCompat.forLanguageTags("ru"); + case SYSTEM: + default: + return LocaleListCompat.getEmptyLocaleList(); + } + } + + private static Locale toLocale(AppLocaleMode mode) { + switch (mode) { + case ENGLISH: + return Locale.ENGLISH; + case RUSSIAN: + return new Locale("ru"); + case SYSTEM: + default: + return null; + } + } + + private static Context localizedContext(Context context, Locale locale) { + Locale.setDefault(locale); + Configuration config = new Configuration(context.getResources().getConfiguration()); + config.setLocale(locale); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + return context.createConfigurationContext(config); + } + config.setLocales(new android.os.LocaleList(locale)); + return context.createConfigurationContext(config); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/CastSettings.java b/app/src/main/java/com/foxx/androidcast/CastSettings.java index 87d6563..fb00699 100644 --- a/app/src/main/java/com/foxx/androidcast/CastSettings.java +++ b/app/src/main/java/com/foxx/androidcast/CastSettings.java @@ -22,7 +22,19 @@ public class CastSettings implements Serializable { } public enum VideoCodec { - AUTO, H264, H265, PASSTHROUGH + AUTO, H264, H265, PASSTHROUGH, + /** Future software VP8 (UI disabled until integrated). */ + LIBVPX_VP8, + /** Future software VP9 (UI disabled until integrated). */ + LIBVPX_VP9 + } + + public enum AudioCodec { + AUTO, AAC, + /** Future Speex (UI disabled until integrated). */ + SPEEX, + /** Future Opus with in-band FEC (UI disabled until integrated). */ + OPUS } public enum AdjustmentPreset { @@ -61,7 +73,9 @@ public class CastSettings implements Serializable { FEC_3_4, FEC_REED_SOLOMON, NACK, - FEC_NACK + FEC_NACK, + /** No FEC/NACK (default). */ + NONE } /** How the receiver fits incoming video on its display. */ @@ -95,11 +109,12 @@ public class CastSettings implements Serializable { private Resolution resolution = Resolution.ADAPTIVE; private boolean audioEnabled; private VideoCodec videoCodec = VideoCodec.AUTO; + private AudioCodec audioCodec = AudioCodec.AUTO; private AdjustmentPreset adjustmentPreset = AdjustmentPreset.AUTO; private BitrateMode bitrateMode = BitrateMode.AUTO; private NetworkAdoption networkAdoption = NetworkAdoption.AUTO; private CaptureMode captureMode = PlatformCastSupport.defaultCaptureMode(); - private StreamProtection streamProtection = StreamProtection.AUTO; + private StreamProtection streamProtection = StreamProtection.NONE; private ReceiverDisplayResolution receiverDisplayResolution = ReceiverDisplayResolution.AUTO_FIT; /** Filled after codec handshake (e.g. video/avc). */ private transient String negotiatedVideoMime; @@ -152,6 +167,14 @@ public class CastSettings implements Serializable { this.videoCodec = videoCodec; } + public AudioCodec getAudioCodec() { + return audioCodec; + } + + public void setAudioCodec(AudioCodec audioCodec) { + this.audioCodec = audioCodec != null ? audioCodec : AudioCodec.AUTO; + } + public AdjustmentPreset getAdjustmentPreset() { return adjustmentPreset; } @@ -222,7 +245,7 @@ public class CastSettings implements Serializable { } public void setStreamProtection(StreamProtection streamProtection) { - this.streamProtection = streamProtection != null ? streamProtection : StreamProtection.AUTO; + this.streamProtection = streamProtection != null ? streamProtection : StreamProtection.NONE; } public ReceiverDisplayResolution getReceiverDisplayResolution() { @@ -251,6 +274,7 @@ public class CastSettings implements Serializable { resolution = other.resolution; audioEnabled = other.audioEnabled; videoCodec = other.videoCodec; + audioCodec = other.audioCodec; adjustmentPreset = other.adjustmentPreset; bitrateMode = other.bitrateMode; networkAdoption = other.networkAdoption; diff --git a/app/src/main/java/com/foxx/androidcast/CastSettingsBinder.java b/app/src/main/java/com/foxx/androidcast/CastSettingsBinder.java index 9701e82..a5cff87 100644 --- a/app/src/main/java/com/foxx/androidcast/CastSettingsBinder.java +++ b/app/src/main/java/com/foxx/androidcast/CastSettingsBinder.java @@ -12,6 +12,8 @@ import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import com.foxx.androidcast.sender.CodecCatalog; +import com.foxx.androidcast.ui.SettingsEnumSpinner; +import com.foxx.androidcast.ui.SettingsStringArrayAdapter; import java.util.ArrayList; import java.util.List; @@ -64,6 +66,30 @@ public final class CastSettingsBinder { return CastThemeHelper.AppThemeMode.SYSTEM; } + public static void bindLanguage(AppCompatActivity activity, Spinner spinner) { + CastLocaleHelper.AppLocaleMode[] modes = CastLocaleHelper.AppLocaleMode.values(); + String[] labels = { + activity.getString(R.string.language_system), + activity.getString(R.string.language_english), + activity.getString(R.string.language_russian) + }; + bindEnumSpinner(spinner, modes, labels, AppPreferences.getLocaleMode(activity), + mode -> AppPreferences.setLocaleMode(activity, mode)); + } + + public static void saveLanguage(AppCompatActivity activity, Spinner spinner) { + readEnumSpinner(spinner, (CastLocaleHelper.AppLocaleMode mode) -> + AppPreferences.setLocaleMode(activity, mode)); + } + + public static CastLocaleHelper.AppLocaleMode localeModeAt(int position) { + CastLocaleHelper.AppLocaleMode[] modes = CastLocaleHelper.AppLocaleMode.values(); + if (position >= 0 && position < modes.length) { + return modes[position]; + } + return CastLocaleHelper.AppLocaleMode.SYSTEM; + } + public static void bindSender(AppCompatActivity activity, CastSettings settings) { bindTransport(activity, settings, R.id.spinner_sender_transport, true); bindVideoCodec(activity, settings, R.id.spinner_sender_video_codec); @@ -73,6 +99,7 @@ public final class CastSettingsBinder { bindCaptureMode(activity, settings); bindStreamProtection(activity, settings); bindAudioSpinner(activity, settings, R.id.spinner_sender_audio); + bindAudioCodec(activity, settings); } public static void bindReceiver(AppCompatActivity activity, CastSettings settings) { @@ -96,6 +123,7 @@ public final class CastSettingsBinder { readCaptureMode(activity, settings); readStreamProtection(activity, settings); readAudioSpinner(activity, settings, R.id.spinner_sender_audio); + readAudioCodec(activity, settings); settings.setAdjustmentPreset(CastSettings.AdjustmentPreset.AUTO); AppPreferences.saveSenderDefaults(activity, settings); } @@ -147,26 +175,70 @@ public final class CastSettingsBinder { private static void bindVideoCodec(AppCompatActivity activity, CastSettings settings, int spinnerId) { Spinner spinner = activity.findViewById(spinnerId); - List codecs = CodecCatalog.supportedChoices(); - List labels = new ArrayList<>(); - for (CastSettings.VideoCodec c : codecs) { - labels.add(labelVideoCodec(activity, c)); + List choices = CodecCatalog.videoCodecChoicesForUi(); + CastSettings.VideoCodec[] values = new CastSettings.VideoCodec[choices.size()]; + String[] labels = new String[choices.size()]; + boolean[] selectable = new boolean[choices.size()]; + for (int i = 0; i < choices.size(); i++) { + values[i] = choices.get(i).codec; + labels[i] = labelVideoCodec(activity, choices.get(i).codec); + selectable[i] = choices.get(i).selectable; } - bindEnumSpinner(spinner, codecs.toArray(new CastSettings.VideoCodec[0]), - labels.toArray(new String[0]), settings.getVideoCodec(), - v -> settings.setVideoCodec(v)); + CastSettings.VideoCodec current = settings.getVideoCodec(); + if (!isVideoCodecSelectable(choices, current)) { + current = CastSettings.VideoCodec.AUTO; + settings.setVideoCodec(current); + } + SettingsEnumSpinner.bind(spinner, values, labels, selectable, current, settings::setVideoCodec); + } + + private static boolean isVideoCodecSelectable(List choices, + CastSettings.VideoCodec codec) { + for (CodecCatalog.VideoCodecChoice c : choices) { + if (c.codec == codec) { + return c.selectable; + } + } + return false; } private static void readVideoCodec(AppCompatActivity activity, CastSettings settings, int spinnerId) { Spinner spinner = activity.findViewById(spinnerId); - Object tag = spinner.getTag(R.id.tag_spinner_enum); - if (tag instanceof CastSettings.VideoCodec[]) { - CastSettings.VideoCodec[] values = (CastSettings.VideoCodec[]) tag; - int pos = spinner.getSelectedItemPosition(); - if (pos >= 0 && pos < values.length) { - settings.setVideoCodec(values[pos]); + CastSettings.VideoCodec v = SettingsEnumSpinner.read(spinner, CastSettings.VideoCodec.AUTO); + settings.setVideoCodec(v); + } + + private static void bindAudioCodec(AppCompatActivity activity, CastSettings settings) { + Spinner spinner = activity.findViewById(R.id.spinner_sender_audio_codec); + if (spinner == null) { + return; + } + List choices = CodecCatalog.audioCodecChoicesForUi(); + CastSettings.AudioCodec[] values = new CastSettings.AudioCodec[choices.size()]; + String[] labels = new String[choices.size()]; + boolean[] selectable = new boolean[choices.size()]; + for (int i = 0; i < choices.size(); i++) { + values[i] = choices.get(i).codec; + labels[i] = labelAudioCodec(activity, choices.get(i).codec); + selectable[i] = choices.get(i).selectable; + } + CastSettings.AudioCodec current = settings.getAudioCodec(); + for (CodecCatalog.AudioCodecChoice c : choices) { + if (c.codec == current && !c.selectable) { + current = CastSettings.AudioCodec.AUTO; + settings.setAudioCodec(current); + break; } } + SettingsEnumSpinner.bind(spinner, values, labels, selectable, current, settings::setAudioCodec); + } + + private static void readAudioCodec(AppCompatActivity activity, CastSettings settings) { + Spinner spinner = activity.findViewById(R.id.spinner_sender_audio_codec); + if (spinner == null) { + return; + } + settings.setAudioCodec(SettingsEnumSpinner.read(spinner, CastSettings.AudioCodec.AUTO)); } private static void bindBitrate(AppCompatActivity activity, CastSettings settings) { @@ -292,9 +364,16 @@ public final class CastSettingsBinder { activity.getString(R.string.protection_fec_34), activity.getString(R.string.protection_fec_rs), activity.getString(R.string.protection_nack), - activity.getString(R.string.protection_fec_nack) + activity.getString(R.string.protection_fec_nack), + activity.getString(R.string.protection_none) }; - bindEnumSpinner(spinner, modes, labels, settings.getStreamProtection(), + boolean[] selectable = new boolean[modes.length]; + java.util.Arrays.fill(selectable, true); + CastSettings.StreamProtection current = settings.getStreamProtection(); + if (current == CastSettings.StreamProtection.AUTO) { + current = CastSettings.StreamProtection.NONE; + } + SettingsEnumSpinner.bind(spinner, modes, labels, selectable, current, settings::setStreamProtection); updateStreamProtectionEnabled(activity, settings); } @@ -348,8 +427,13 @@ public final class CastSettingsBinder { private static void bindOnOffSpinner(AppCompatActivity activity, Spinner spinner, boolean on, java.util.function.Consumer consumer) { String[] labels = {activity.getString(R.string.option_on), activity.getString(R.string.option_off)}; - spinner.setAdapter(new ArrayAdapter<>(activity, android.R.layout.simple_spinner_dropdown_item, labels)); + SettingsStringArrayAdapter adapter = new SettingsStringArrayAdapter(activity, labels); + spinner.setBackgroundResource(R.drawable.bg_settings_spinner); + spinner.setPopupBackgroundResource(R.drawable.bg_settings_spinner_popup); + spinner.setAdapter(adapter); spinner.setSelection(on ? 0 : 1); + adapter.setSelectedPosition(on ? 0 : 1); + SettingsStringArrayAdapter.wireSelectionRefresh(spinner, adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { @@ -364,8 +448,10 @@ public final class CastSettingsBinder { private static void bindStringSpinner(Spinner spinner, String[] labels, String[] values, String current, java.util.function.Consumer onSelect) { spinner.setTag(R.id.tag_spinner_values, values); - spinner.setAdapter(new ArrayAdapter<>(spinner.getContext(), - android.R.layout.simple_spinner_dropdown_item, labels)); + SettingsStringArrayAdapter adapter = new SettingsStringArrayAdapter(spinner.getContext(), labels); + spinner.setBackgroundResource(R.drawable.bg_settings_spinner); + spinner.setPopupBackgroundResource(R.drawable.bg_settings_spinner_popup); + spinner.setAdapter(adapter); int sel = 0; for (int i = 0; i < values.length; i++) { if (values[i].equals(current)) { @@ -374,6 +460,8 @@ public final class CastSettingsBinder { } } spinner.setSelection(sel); + adapter.setSelectedPosition(sel); + SettingsStringArrayAdapter.wireSelectionRefresh(spinner, adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { @@ -390,8 +478,10 @@ public final class CastSettingsBinder { private static > void bindEnumSpinner(Spinner spinner, T[] values, String[] labels, T current, java.util.function.Consumer onSelect) { spinner.setTag(R.id.tag_spinner_enum, values); - spinner.setAdapter(new ArrayAdapter<>(spinner.getContext(), - android.R.layout.simple_spinner_dropdown_item, labels)); + SettingsStringArrayAdapter adapter = new SettingsStringArrayAdapter(spinner.getContext(), labels); + spinner.setBackgroundResource(R.drawable.bg_settings_spinner); + spinner.setPopupBackgroundResource(R.drawable.bg_settings_spinner_popup); + spinner.setAdapter(adapter); int sel = 0; for (int i = 0; i < values.length; i++) { if (values[i] == current) { @@ -400,6 +490,8 @@ public final class CastSettingsBinder { } } spinner.setSelection(sel); + adapter.setSelectedPosition(sel); + SettingsStringArrayAdapter.wireSelectionRefresh(spinner, adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { @@ -433,6 +525,10 @@ public final class CastSettingsBinder { return activity.getString(R.string.codec_h264); case H265: return activity.getString(R.string.codec_h265); + case LIBVPX_VP8: + return activity.getString(R.string.codec_libvpx_vp8); + case LIBVPX_VP9: + return activity.getString(R.string.codec_libvpx_vp9); case PASSTHROUGH: return activity.getString(R.string.codec_passthrough); case AUTO: @@ -440,4 +536,18 @@ public final class CastSettingsBinder { return activity.getString(R.string.option_auto); } } + + private static String labelAudioCodec(AppCompatActivity activity, CastSettings.AudioCodec codec) { + switch (codec) { + case AAC: + return activity.getString(R.string.codec_aac); + case SPEEX: + return activity.getString(R.string.codec_speex); + case OPUS: + return activity.getString(R.string.codec_opus); + case AUTO: + default: + return activity.getString(R.string.codec_audio_auto); + } + } } diff --git a/app/src/main/java/com/foxx/androidcast/CastSettingsFragment.java b/app/src/main/java/com/foxx/androidcast/CastSettingsFragment.java index fbe4afa..6eab506 100644 --- a/app/src/main/java/com/foxx/androidcast/CastSettingsFragment.java +++ b/app/src/main/java/com/foxx/androidcast/CastSettingsFragment.java @@ -1,12 +1,15 @@ package com.foxx.androidcast; +import android.content.Intent; import android.os.Bundle; +import android.os.SystemClock; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Spinner; +import android.widget.ArrayAdapter; import android.widget.TextView; import android.widget.Toast; @@ -26,6 +29,9 @@ public class CastSettingsFragment extends Fragment { private EditText pinInput; private CheckBox trayIconCheck; private Spinner themeSpinner; + private Spinner languageSpinner; + private int versionTapCount; + private long versionTapWindowStartMs; @Nullable @Override @@ -43,11 +49,16 @@ public class CastSettingsFragment extends Fragment { headerGlobal.setText(R.string.settings_section_global); headerSender.setText(R.string.settings_section_sender); headerReceiver.setText(R.string.settings_section_receiver); + TextView headerAppInfo = view.findViewById(R.id.header_app_info); + if (headerAppInfo != null) { + headerAppInfo.setText(R.string.settings_section_app_info); + } usernameInput = view.findViewById(R.id.edit_username); pinInput = view.findViewById(R.id.edit_settings_pin); trayIconCheck = view.findViewById(R.id.check_tray_icon); themeSpinner = view.findViewById(R.id.spinner_theme); + languageSpinner = view.findViewById(R.id.spinner_language); senderSettings.copyFrom(AppPreferences.loadSenderDefaults(requireContext())); receiverSettings.copyFrom(AppPreferences.loadReceiverDefaults(requireContext())); @@ -55,8 +66,11 @@ public class CastSettingsFragment extends Fragment { AppCompatActivity activity = (AppCompatActivity) requireActivity(); CastSettingsBinder.bindGlobal(activity, usernameInput, pinInput, trayIconCheck); CastSettingsBinder.bindTheme(activity, themeSpinner); + CastSettingsBinder.bindLanguage(activity, languageSpinner); CastSettingsBinder.bindSender(activity, senderSettings); CastSettingsBinder.bindReceiver(activity, receiverSettings); + bindAppInfo(view); + styleSpinners(view); trayIconCheck.setOnCheckedChangeListener((btn, checked) -> { AppPreferences.setShowTrayIcon(requireContext(), checked); @@ -79,6 +93,27 @@ public class CastSettingsFragment extends Fragment { } } + @Override + public void onNothingSelected(android.widget.AdapterView parent) {} + }); + languageSpinner.setOnItemSelectedListener(new android.widget.AdapterView.OnItemSelectedListener() { + private boolean first = true; + + @Override + public void onItemSelected(android.widget.AdapterView parent, View v, int position, long id) { + CastLocaleHelper.AppLocaleMode mode = CastSettingsBinder.localeModeAt(position); + if (first) { + first = false; + return; + } + if (mode != AppPreferences.getLocaleMode(requireContext())) { + AppPreferences.setLocaleMode(requireContext(), mode); + CastLocaleHelper.applyStoredLocale(requireContext()); + Toast.makeText(requireContext(), R.string.language_apply_restart, Toast.LENGTH_LONG).show(); + requireActivity().recreate(); + } + } + @Override public void onNothingSelected(android.widget.AdapterView parent) {} }); @@ -90,6 +125,71 @@ public class CastSettingsFragment extends Fragment { super.onPause(); } + private void bindAppInfo(View view) { + TextView version = view.findViewById(R.id.text_app_version_value); + TextView protocol = view.findViewById(R.id.text_app_protocol_value); + TextView commit = view.findViewById(R.id.text_app_commit_value); + TextView built = view.findViewById(R.id.text_app_built_value); + TextView author = view.findViewById(R.id.text_app_author_value); + View.OnClickListener versionTap = v -> onVersionLabelTapped(); + if (version != null) { + version.setText(VersionInfo.APP_VERSION_STRING); + version.setOnClickListener(versionTap); + } + View versionRow = view.findViewById(R.id.row_app_version); + if (versionRow != null) { + versionRow.setOnClickListener(versionTap); + } + TextView versionLabel = view.findViewById(R.id.label_app_version); + if (versionLabel != null) { + versionLabel.setOnClickListener(versionTap); + } + if (protocol != null) { + protocol.setText(VersionInfo.PROTO_VERSION_STRING); + } + if (commit != null) { + commit.setText(VersionInfo.GIT_COMMIT_SHORT); + } + if (built != null) { + built.setText(VersionInfo.BUILD_TIME_DISPLAY); + } + if (author != null) { + author.setText(VersionInfo.GIT_COMMIT_AUTHOR); + } + View licensesBtn = view.findViewById(R.id.btn_licenses); + if (licensesBtn != null) { + licensesBtn.setOnClickListener(v -> + startActivity(new Intent(requireContext(), LicensesActivity.class))); + } + } + + private void styleSpinners(View root) { + if (root instanceof Spinner) { + Spinner spinner = (Spinner) root; + spinner.setBackgroundResource(R.drawable.bg_settings_spinner); + spinner.setPopupBackgroundResource(R.drawable.bg_settings_spinner_popup); + } + if (root instanceof android.view.ViewGroup) { + android.view.ViewGroup group = (android.view.ViewGroup) root; + for (int i = 0; i < group.getChildCount(); i++) { + styleSpinners(group.getChildAt(i)); + } + } + } + + private void onVersionLabelTapped() { + long now = SystemClock.elapsedRealtime(); + if (now - versionTapWindowStartMs > 2500) { + versionTapCount = 0; + } + versionTapWindowStartMs = now; + versionTapCount++; + if (versionTapCount >= 5) { + versionTapCount = 0; + startActivity(new Intent(requireContext(), DeveloperSettingsActivity.class)); + } + } + private void saveAll() { if (usernameInput == null) { return; @@ -97,6 +197,7 @@ public class CastSettingsFragment extends Fragment { AppCompatActivity activity = (AppCompatActivity) requireActivity(); CastSettingsBinder.saveGlobal(activity, usernameInput, pinInput, trayIconCheck); CastSettingsBinder.saveTheme(activity, themeSpinner); + CastSettingsBinder.saveLanguage(activity, languageSpinner); CastSettingsBinder.saveSender(activity, senderSettings); CastSettingsBinder.saveReceiver(activity, receiverSettings); ReceiverPrefs.setAllowAudio(requireContext(), AppPreferences.isPlayIncomingAudio(requireContext())); diff --git a/app/src/main/java/com/foxx/androidcast/CastTrayNotifier.java b/app/src/main/java/com/foxx/androidcast/CastTrayNotifier.java index 613033a..25f27f5 100644 --- a/app/src/main/java/com/foxx/androidcast/CastTrayNotifier.java +++ b/app/src/main/java/com/foxx/androidcast/CastTrayNotifier.java @@ -4,7 +4,9 @@ import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; +import android.app.Service; import android.content.Context; +import android.content.Intent; import android.os.Build; import androidx.core.app.NotificationCompat; @@ -25,48 +27,94 @@ public final class CastTrayNotifier { hide(app); return; } - if (CastActiveState.isSenderCasting() || CastActiveState.isReceiverListening()) { - show(app, false); - } else { - hide(app); - } + ensureTrayService(app); + } + + /** Apply saved preference at process start (idle tray when enabled). */ + public static void syncOnAppStart(Context context) { + onPreferenceChanged(context); } /** User toggled the preference — show or hide immediately. */ public static void onPreferenceChanged(Context context) { Context app = context.getApplicationContext(); if (AppPreferences.isShowTrayIcon(app)) { - show(app, true); + ensureTrayService(app); } else { + stopTrayService(app); hide(app); } } - private static void show(Context context, boolean idle) { - createChannel(context); - NotificationManager nm = context.getSystemService(NotificationManager.class); - if (nm == null) { + public static void ensureTrayService(Context context) { + Context app = context.getApplicationContext(); + if (!AppPreferences.isShowTrayIcon(app)) { return; } + Intent intent = new Intent(app, TrayForegroundService.class); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + app.startForegroundService(intent); + } else { + app.startService(intent); + } + } + + public static void stopTrayService(Context context) { + context.getApplicationContext().stopService(new Intent(context, TrayForegroundService.class)); + } + + /** Foreground tray — not swipe-dismissible on stock Android. */ + public static void startForegroundTray(Service service) { + if (!AppPreferences.isShowTrayIcon(service)) { + service.stopSelf(); + return; + } + createChannel(service); + boolean idle = !CastActiveState.isSenderCasting() && !CastActiveState.isReceiverListening(); + Notification n = buildNotification(service, idle); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + service.startForeground(ID_TRAY, n, android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE); + } else { + service.startForeground(ID_TRAY, n); + } + } + + private static void show(Context context, boolean idle) { + if (AppPreferences.isShowTrayIcon(context)) { + ensureTrayService(context); + return; + } + hide(context); + } + + private static Notification buildNotification(Context context, boolean idle) { String body = idle ? context.getString(R.string.tray_cast_idle) : context.getString(R.string.tray_cast_active); PendingIntent pi = PendingIntent.getActivity( context, 0, CastActivityTracker.resumeIntent(context), PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); - Notification n = new NotificationCompat.Builder(context, CHANNEL_TRAY) + Intent deleted = new Intent(context, TrayNotificationReceiver.class); + deleted.setAction("com.foxx.androidcast.TRAY_DISMISSED"); + PendingIntent deletePi = PendingIntent.getBroadcast( + context, 1, deleted, + PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); + return new NotificationCompat.Builder(context, CHANNEL_TRAY) .setContentTitle(context.getString(R.string.app_name)) .setContentText(body) .setSmallIcon(R.drawable.ic_notification) .setContentIntent(pi) + .setDeleteIntent(deletePi) .setOngoing(true) + .setAutoCancel(false) .setOnlyAlertOnce(true) .setShowWhen(false) - .setPriority(NotificationCompat.PRIORITY_DEFAULT) + .setLocalOnly(true) + .setPriority(NotificationCompat.PRIORITY_LOW) .setCategory(NotificationCompat.CATEGORY_SERVICE) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) + .setForegroundServiceBehavior(NotificationCompat.FOREGROUND_SERVICE_IMMEDIATE) .build(); - nm.notify(ID_TRAY, n); } private static void hide(Context context) { diff --git a/app/src/main/java/com/foxx/androidcast/DeveloperSettingsActivity.java b/app/src/main/java/com/foxx/androidcast/DeveloperSettingsActivity.java new file mode 100644 index 0000000..799335f --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/DeveloperSettingsActivity.java @@ -0,0 +1,15 @@ +package com.foxx.androidcast; + +import android.os.Bundle; + +import androidx.appcompat.app.AppCompatActivity; + +/** Hidden developer settings (opened via version label easter egg). */ +public class DeveloperSettingsActivity extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_developer_settings); + setTitle(R.string.developer_settings_title); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/DrawerHostActivity.java b/app/src/main/java/com/foxx/androidcast/DrawerHostActivity.java index ed0f554..8ada22d 100644 --- a/app/src/main/java/com/foxx/androidcast/DrawerHostActivity.java +++ b/app/src/main/java/com/foxx/androidcast/DrawerHostActivity.java @@ -1,7 +1,9 @@ package com.foxx.androidcast; +import android.content.Context; import android.os.Bundle; -import android.view.Gravity; +import android.view.KeyEvent; +import android.view.MotionEvent; import android.view.View; import androidx.activity.OnBackPressedCallback; @@ -12,12 +14,22 @@ import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.Fragment; /** - * Hosts main content and a start-edge settings drawer (swipe right from left edge to open). + * Hosts main content and a start-edge settings drawer. + * TV / remote: tap or drag the left-edge handle, or press DPAD_LEFT, to open settings. */ public abstract class DrawerHostActivity extends AppCompatActivity { - private DrawerLayout drawerLayout; + private static final float HANDLE_DRAG_OPEN_PX = 48f; - protected void applyActivityTheme() { + private DrawerLayout drawerLayout; + private View settingsHandle; + private float handleDragStartX; + + @Override + protected void attachBaseContext(Context newBase) { + super.attachBaseContext(CastLocaleHelper.attach(newBase)); + } + + protected void applyActivityTheme() { CastThemeHelper.applyTheme(this); } @@ -38,6 +50,7 @@ public abstract class DrawerHostActivity extends AppCompatActivity { } drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); + wireSettingsHandle(); getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { @Override public void handleOnBackPressed() { @@ -51,6 +64,41 @@ public abstract class DrawerHostActivity extends AppCompatActivity { }); } + private void wireSettingsHandle() { + settingsHandle = findViewById(R.id.settings_drawer_handle); + if (settingsHandle == null) { + return; + } + settingsHandle.setOnClickListener(v -> openSettingsDrawer()); + settingsHandle.setOnTouchListener((v, event) -> { + switch (event.getActionMasked()) { + case MotionEvent.ACTION_DOWN: + handleDragStartX = event.getRawX(); + return false; + case MotionEvent.ACTION_UP: + if (event.getRawX() - handleDragStartX >= HANDLE_DRAG_OPEN_PX) { + openSettingsDrawer(); + return true; + } + return false; + default: + return false; + } + }); + } + + @Override + public boolean dispatchKeyEvent(KeyEvent event) { + if (event.getAction() == KeyEvent.ACTION_DOWN + && event.getKeyCode() == KeyEvent.KEYCODE_DPAD_LEFT + && drawerLayout != null + && !drawerLayout.isDrawerOpen(GravityCompat.START)) { + openSettingsDrawer(); + return true; + } + return super.dispatchKeyEvent(event); + } + @Override protected void onResume() { super.onResume(); @@ -58,11 +106,15 @@ public abstract class DrawerHostActivity extends AppCompatActivity { } protected void openSettingsDrawer() { - drawerLayout.openDrawer(GravityCompat.START); + if (drawerLayout != null) { + drawerLayout.openDrawer(GravityCompat.START); + } } protected void closeSettingsDrawer() { - drawerLayout.closeDrawer(GravityCompat.START); + if (drawerLayout != null) { + drawerLayout.closeDrawer(GravityCompat.START); + } } protected abstract @LayoutRes int getContentLayoutId(); diff --git a/app/src/main/java/com/foxx/androidcast/LicensesActivity.java b/app/src/main/java/com/foxx/androidcast/LicensesActivity.java new file mode 100644 index 0000000..5c0468f --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/LicensesActivity.java @@ -0,0 +1,43 @@ +package com.foxx.androidcast; + +import android.os.Bundle; +import android.widget.Button; +import android.widget.TextView; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.text.HtmlCompat; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; + +/** Full-screen third-party and app license notice. */ +public class LicensesActivity extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_licenses); + setTitle(R.string.licenses_title); + + TextView body = findViewById(R.id.text_licenses); + body.setText(HtmlCompat.fromHtml(loadLicensesHtml(), HtmlCompat.FROM_HTML_MODE_LEGACY)); + + findViewById(R.id.btn_licenses_accept).setOnClickListener(v -> finish()); + } + + private String loadLicensesHtml() { + try (InputStream in = getAssets().open("licenses/combined.html"); + BufferedReader reader = new BufferedReader( + new InputStreamReader(in, StandardCharsets.UTF_8))) { + StringBuilder sb = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + sb.append(line).append('\n'); + } + return sb.toString(); + } catch (Exception e) { + return "

" + getString(R.string.licenses_load_error) + "

"; + } + } +} diff --git a/app/src/main/java/com/foxx/androidcast/TrayForegroundService.java b/app/src/main/java/com/foxx/androidcast/TrayForegroundService.java new file mode 100644 index 0000000..cd6f1e7 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/TrayForegroundService.java @@ -0,0 +1,41 @@ +package com.foxx.androidcast; + +import android.app.Service; +import android.content.Intent; +import android.os.IBinder; + +import androidx.annotation.Nullable; + +/** + * Holds the persistent tray notification so it cannot be swiped away + * (non-FGS status notifications are dismissible on Android 13+). + */ +public class TrayForegroundService extends Service { + @Override + public void onCreate() { + super.onCreate(); + CastTrayNotifier.startForegroundTray(this); + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + if (!AppPreferences.isShowTrayIcon(this)) { + stopSelf(); + return START_NOT_STICKY; + } + CastTrayNotifier.startForegroundTray(this); + return START_STICKY; + } + + @Override + public void onDestroy() { + stopForeground(STOP_FOREGROUND_REMOVE); + super.onDestroy(); + } + + @Nullable + @Override + public IBinder onBind(Intent intent) { + return null; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/TrayNotificationReceiver.java b/app/src/main/java/com/foxx/androidcast/TrayNotificationReceiver.java new file mode 100644 index 0000000..8e5b152 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/TrayNotificationReceiver.java @@ -0,0 +1,19 @@ +package com.foxx.androidcast; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.os.Build; + +/** + * Re-posts tray notification if the user dismisses it (backup for OEMs that allow swipe). + */ +public class TrayNotificationReceiver extends BroadcastReceiver { + @Override + public void onReceive(Context context, Intent intent) { + if (!AppPreferences.isShowTrayIcon(context)) { + return; + } + CastTrayNotifier.ensureTrayService(context); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/VersionInfo.java b/app/src/main/java/com/foxx/androidcast/VersionInfo.java index d08c86c..11e6ba4 100644 --- a/app/src/main/java/com/foxx/androidcast/VersionInfo.java +++ b/app/src/main/java/com/foxx/androidcast/VersionInfo.java @@ -11,6 +11,21 @@ public final class VersionInfo { /** Human-readable wire protocol / header version. */ public static final String PROTO_VERSION_STRING = "00.01.00.0001"; + /** Short git commit at build time ({@link com.foxx.androidcast.BuildConfig#GIT_COMMIT_SHORT}). */ + public static final String GIT_COMMIT_SHORT = BuildConfig.GIT_COMMIT_SHORT; + + /** Author of the commit at build time ({@link com.foxx.androidcast.BuildConfig#GIT_COMMIT_AUTHOR}). */ + public static final String GIT_COMMIT_AUTHOR = BuildConfig.GIT_COMMIT_AUTHOR; + + /** Human-readable build timestamp with timezone ({@link BuildConfig#BUILD_TIME_DISPLAY}). */ + public static final String BUILD_TIME_DISPLAY = BuildConfig.BUILD_TIME_DISPLAY; + + /** Build instant (epoch ms) ({@link BuildConfig#BUILD_TIME_EPOCH_MS}). */ + public static final long BUILD_TIME_EPOCH_MS = BuildConfig.BUILD_TIME_EPOCH_MS; + + /** Time zone id used for {@link #BUILD_TIME_DISPLAY} ({@link BuildConfig#BUILD_TIME_ZONE_ID}). */ + public static final String BUILD_TIME_ZONE_ID = BuildConfig.BUILD_TIME_ZONE_ID; + public static final long APP_VERSION = VersionUtils.parseToInt(APP_VERSION_STRING); public static final long PROTO_VERSION = VersionUtils.parseToInt(PROTO_VERSION_STRING); diff --git a/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsFormatter.java b/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsFormatter.java index e353561..43d70e9 100644 --- a/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsFormatter.java +++ b/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsFormatter.java @@ -3,6 +3,8 @@ package com.foxx.androidcast.diagnostics; import com.foxx.androidcast.CastSettings; import com.foxx.androidcast.CastTuningEngine; import com.foxx.androidcast.media.CodecNegotiator; +import com.foxx.androidcast.media.codec.CodecSessionRegistry; +import com.foxx.androidcast.media.codec.PassthroughCodecPolicy; import com.foxx.androidcast.network.control.NetworkStatsSnapshot; import com.foxx.androidcast.receiver.StreamMetrics; @@ -106,6 +108,7 @@ public final class CastDiagnosticsFormatter { html.append("Codec: ") .append(escape(CodecNegotiator.displayName(videoCodec))).append("
"); } + appendCodecStackSection(html, localSettings, remoteSettings); html.append("Stream: ").append(streamW).append('x').append(streamH); if (viewZoomPercent != 0) { @@ -189,6 +192,8 @@ public final class CastDiagnosticsFormatter { .append("
") .append(escape(CastDiagnosticsLabels.videoCodec(remoteSettings.getVideoCodec()))) .append("
") + .append(escape(CastDiagnosticsLabels.audioCodec(remoteSettings.getAudioCodec()))) + .append("
") .append(escape(CastDiagnosticsLabels.captureMode(remoteSettings.getCaptureMode()))); if (audioRequested) { html.append(" · audio"); @@ -318,16 +323,53 @@ public final class CastDiagnosticsFormatter { } } + private static void appendCodecStackSection(StringBuilder html, CastSettings localSettings, + CastSettings remoteSettings) { + CastSettings prefs = remoteSettings != null ? remoteSettings : localSettings; + html.append("Video stack: "); + html.append(escape(CodecSessionRegistry.getVideoBackend().label)); + html.append(" · pref "); + html.append(escape(PassthroughCodecPolicy.displayVideoPreference( + prefs != null ? prefs.getVideoCodec() : CodecSessionRegistry.getVideoPreference()))); + String wire = CodecSessionRegistry.getNegotiatedVideoMime(); + if (wire != null && !wire.isEmpty()) { + html.append(" · wire ").append(escape(CodecNegotiator.displayName(wire))); + } + html.append("
"); + html.append("Audio stack: "); + html.append(escape(CodecSessionRegistry.getAudioBackend().label)); + html.append(" · pref "); + html.append(escape(PassthroughCodecPolicy.displayAudioPreference( + prefs != null ? prefs.getAudioCodec() : CodecSessionRegistry.getAudioPreference()))); + if (prefs != null && prefs.isAudioRequested()) { + CastSettings.AudioCodec ac = prefs.getAudioCodec(); + if (ac == CastSettings.AudioCodec.OPUS) { + html.append(" · Opus in-band FEC"); + } else if (ac == CastSettings.AudioCodec.SPEEX) { + html.append(" · Speex FEC"); + } else { + html.append(" · AAC-LC (MediaCodec)"); + } + } + html.append("
"); + } + private static void appendProtectionSection(StringBuilder html, NetworkStatsSnapshot peer, NetworkStatsSnapshot local) { String mode = str(peer, local, p -> p.protectionMode, l -> l.protectionMode, "NONE"); + String summary = CodecSessionRegistry.getProtectionSummary(); html.append("Protect: "); html.append(escape(mode)); - html.append(" · FEC stub (off)"); - html.append(" · NACK stub (off)"); - long nack = val(peer, local, p -> p.nackStubRequests, l -> l.nackStubRequests); - if (nack > 0) { - html.append(" nack=").append(nack); + if (summary != null && !summary.isEmpty()) { + html.append(" · ").append(escape(summary)); + } + long fecPkts = val(peer, local, p -> p.fecStubPackets, l -> l.fecStubPackets); + long nackReq = val(peer, local, p -> p.nackStubRequests, l -> l.nackStubRequests); + if (fecPkts > 0) { + html.append("
FEC packets=").append(fecPkts); + } + if (nackReq > 0) { + html.append("
NACK events=").append(nackReq); } html.append("
"); } diff --git a/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsLabels.java b/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsLabels.java index 3df4388..f34d0af 100644 --- a/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsLabels.java +++ b/app/src/main/java/com/foxx/androidcast/diagnostics/CastDiagnosticsLabels.java @@ -104,12 +104,33 @@ public final class CastDiagnosticsLabels { return "H.265 (forced)"; case PASSTHROUGH: return "Passthrough (debug, unimplemented)"; + case LIBVPX_VP8: + return "libvpx VP8 (stub → HW)"; + case LIBVPX_VP9: + return "libvpx VP9 (stub → HW)"; case AUTO: default: return "CodecNegotiator (HEVC→AVC→VP9→VP8)"; } } + public static String audioCodec(CastSettings.AudioCodec codec) { + if (codec == null) { + return "AUTO (AAC via MediaCodec)"; + } + switch (codec) { + case AAC: + return "AAC-LC (forced)"; + case SPEEX: + return "Speex (stub → AAC)"; + case OPUS: + return "Opus + in-band FEC (stub → AAC)"; + case AUTO: + default: + return "AUTO (AAC via MediaCodec)"; + } + } + public static String captureMode(CastSettings.CaptureMode mode) { if (mode == null) { return "Entire screen"; diff --git a/app/src/main/java/com/foxx/androidcast/discovery/ReceiverCompatibility.java b/app/src/main/java/com/foxx/androidcast/discovery/ReceiverCompatibility.java new file mode 100644 index 0000000..672cea5 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/discovery/ReceiverCompatibility.java @@ -0,0 +1,45 @@ +package com.foxx.androidcast.discovery; + +import com.foxx.androidcast.CastSettings; +import com.foxx.androidcast.VersionInfo; +import com.foxx.androidcast.network.CastCodecFlags; + +/** Filters discovered receivers the sender can actually cast to. */ +public final class ReceiverCompatibility { + private ReceiverCompatibility() {} + + public static boolean isCompatible(DiscoveryManager.DiscoveredDevice device, CastSettings sender) { + if (device == null || sender == null) { + return false; + } + if (device.protoVersion != 0L && device.protoVersion != VersionInfo.PROTO_VERSION) { + return false; + } + if (device.transport == null || !device.transport.equalsIgnoreCase(sender.getTransport())) { + return false; + } + int senderMask = senderVideoMask(sender.getVideoCodec()); + if (device.videoCodecs != 0 && senderMask != 0 && (device.videoCodecs & senderMask) == 0) { + return false; + } + return true; + } + + private static int senderVideoMask(CastSettings.VideoCodec codec) { + if (codec == null || codec == CastSettings.VideoCodec.AUTO) { + return CastCodecFlags.localVideoMask(); + } + switch (codec) { + case H264: + return CastCodecFlags.VIDEO_H264; + case H265: + return CastCodecFlags.VIDEO_H265; + case LIBVPX_VP8: + return CastCodecFlags.VIDEO_VP8; + case LIBVPX_VP9: + return CastCodecFlags.VIDEO_VP9; + default: + return CastCodecFlags.localVideoMask(); + } + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/CodecNegotiator.java b/app/src/main/java/com/foxx/androidcast/media/CodecNegotiator.java index 21942a3..7b6362e 100644 --- a/app/src/main/java/com/foxx/androidcast/media/CodecNegotiator.java +++ b/app/src/main/java/com/foxx/androidcast/media/CodecNegotiator.java @@ -31,6 +31,12 @@ public final class CodecNegotiator { if (preference == CastSettings.VideoCodec.H265) { return pick(MediaFormat.MIMETYPE_VIDEO_HEVC, enc, dec); } + if (preference == CastSettings.VideoCodec.LIBVPX_VP8) { + return pick(MediaFormat.MIMETYPE_VIDEO_VP8, enc, dec); + } + if (preference == CastSettings.VideoCodec.LIBVPX_VP9) { + return pick(MediaFormat.MIMETYPE_VIDEO_VP9, enc, dec); + } for (String mime : PREFERENCE_ORDER) { if (enc.contains(mime) && dec.contains(mime)) { return mime; diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/AudioCodecBackend.java b/app/src/main/java/com/foxx/androidcast/media/codec/AudioCodecBackend.java new file mode 100644 index 0000000..743edf3 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/AudioCodecBackend.java @@ -0,0 +1,16 @@ +package com.foxx.androidcast.media.codec; + +/** Implementation backing negotiated / configured audio. */ +public enum AudioCodecBackend { + MEDIA_CODEC_AAC("MediaCodec AAC-LC"), + SPEEX_STUB("Speex (stub → AAC passthrough)"), + OPUS_STUB("Opus (stub → AAC passthrough)"), + DISABLED("off"), + UNKNOWN("?"); + + public final String label; + + AudioCodecBackend(String label) { + this.label = label; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/AudioCodecFactory.java b/app/src/main/java/com/foxx/androidcast/media/codec/AudioCodecFactory.java new file mode 100644 index 0000000..c5cba0e --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/AudioCodecFactory.java @@ -0,0 +1,18 @@ +package com.foxx.androidcast.media.codec; + +import com.foxx.androidcast.CastSettings; +import com.foxx.androidcast.sender.AudioEncoder; + +/** Creates audio encoder sinks. */ +public final class AudioCodecFactory { + private AudioCodecFactory() {} + + public static AudioEncoderSink createEncoder(CastSettings.AudioCodec preference) { + CodecSessionRegistry.setAudioPreference(preference); + AudioCodecBackend backend = PassthroughCodecPolicy.audioBackendFor(preference, true); + if (backend == AudioCodecBackend.SPEEX_STUB || backend == AudioCodecBackend.OPUS_STUB) { + return new PassthroughAudioEncoderSink(new AudioEncoder(), preference); + } + return new AudioEncoder(); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/AudioEncoderSink.java b/app/src/main/java/com/foxx/androidcast/media/codec/AudioEncoderSink.java new file mode 100644 index 0000000..2754943 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/AudioEncoderSink.java @@ -0,0 +1,21 @@ +package com.foxx.androidcast.media.codec; + +import java.io.IOException; + +/** Audio encoder pipeline (AAC via MediaCodec today; Speex/Opus later). */ +public interface AudioEncoderSink { + + interface Callback { + void onConfig(int sampleRate, int channels, byte[] csd0); + + void onEncodedFrame(long ptsUs, byte[] data); + } + + void prepare(Callback callback) throws IOException; + + void queuePcm(byte[] pcm, int length, long ptsUs); + + long getDroppedPcmFrames(); + + void stop(); +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/CodecSessionRegistry.java b/app/src/main/java/com/foxx/androidcast/media/codec/CodecSessionRegistry.java new file mode 100644 index 0000000..b4e6e0b --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/CodecSessionRegistry.java @@ -0,0 +1,69 @@ +package com.foxx.androidcast.media.codec; + +import com.foxx.androidcast.CastSettings; + +/** Active codec backends for diagnostics overlay (receiver reads sender prefs + local decode). */ +public final class CodecSessionRegistry { + private static volatile CastSettings.VideoCodec videoPreference = CastSettings.VideoCodec.AUTO; + private static volatile CastSettings.AudioCodec audioPreference = CastSettings.AudioCodec.AUTO; + private static volatile VideoCodecBackend videoBackend = VideoCodecBackend.UNKNOWN; + private static volatile AudioCodecBackend audioBackend = AudioCodecBackend.UNKNOWN; + private static volatile String negotiatedVideoMime; + private static volatile String protectionSummary = "AUTO"; + + private CodecSessionRegistry() {} + + public static void setVideoPreference(CastSettings.VideoCodec pref) { + videoPreference = pref != null ? pref : CastSettings.VideoCodec.AUTO; + } + + public static void setAudioPreference(CastSettings.AudioCodec pref) { + audioPreference = pref != null ? pref : CastSettings.AudioCodec.AUTO; + } + + public static void setVideoBackend(VideoCodecBackend backend, String negotiatedMime) { + videoBackend = backend != null ? backend : VideoCodecBackend.UNKNOWN; + negotiatedVideoMime = negotiatedMime; + } + + public static void setAudioBackend(AudioCodecBackend backend) { + audioBackend = backend != null ? backend : AudioCodecBackend.UNKNOWN; + } + + public static void setProtectionSummary(String summary) { + protectionSummary = summary != null ? summary : "AUTO"; + } + + public static CastSettings.VideoCodec getVideoPreference() { + return videoPreference; + } + + public static CastSettings.AudioCodec getAudioPreference() { + return audioPreference; + } + + public static VideoCodecBackend getVideoBackend() { + return videoBackend; + } + + public static AudioCodecBackend getAudioBackend() { + return audioBackend; + } + + public static String getNegotiatedVideoMime() { + return negotiatedVideoMime; + } + + public static String getProtectionSummary() { + return protectionSummary; + } + + public static void clear() { + videoPreference = CastSettings.VideoCodec.AUTO; + audioPreference = CastSettings.AudioCodec.AUTO; + videoBackend = VideoCodecBackend.UNKNOWN; + audioBackend = AudioCodecBackend.UNKNOWN; + negotiatedVideoMime = null; + protectionSummary = "AUTO"; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/PassthroughAudioEncoderSink.java b/app/src/main/java/com/foxx/androidcast/media/codec/PassthroughAudioEncoderSink.java new file mode 100644 index 0000000..5219901 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/PassthroughAudioEncoderSink.java @@ -0,0 +1,42 @@ +package com.foxx.androidcast.media.codec; + +import com.foxx.androidcast.CastSettings; +import com.foxx.androidcast.sender.AudioEncoder; + +import java.io.IOException; + +/** Delegates to AAC MediaCodec while UI shows a future Speex/Opus choice. */ +final class PassthroughAudioEncoderSink implements AudioEncoderSink { + private final AudioEncoderSink delegate; + private final CastSettings.AudioCodec preference; + + PassthroughAudioEncoderSink(AudioEncoderSink delegate, CastSettings.AudioCodec preference) { + this.delegate = delegate; + this.preference = preference; + } + + @Override + public void prepare(Callback callback) throws IOException { + if (preference == CastSettings.AudioCodec.OPUS) { + CodecSessionRegistry.setAudioBackend(AudioCodecBackend.OPUS_STUB); + } else if (preference == CastSettings.AudioCodec.SPEEX) { + CodecSessionRegistry.setAudioBackend(AudioCodecBackend.SPEEX_STUB); + } + delegate.prepare(callback); + } + + @Override + public void queuePcm(byte[] pcm, int length, long ptsUs) { + delegate.queuePcm(pcm, length, ptsUs); + } + + @Override + public long getDroppedPcmFrames() { + return delegate.getDroppedPcmFrames(); + } + + @Override + public void stop() { + delegate.stop(); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/PassthroughCodecPolicy.java b/app/src/main/java/com/foxx/androidcast/media/codec/PassthroughCodecPolicy.java new file mode 100644 index 0000000..536a5b5 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/PassthroughCodecPolicy.java @@ -0,0 +1,140 @@ +package com.foxx.androidcast.media.codec; + +import android.media.MediaFormat; + +import com.foxx.androidcast.CastSettings; +import com.foxx.androidcast.media.CodecNegotiator; + +/** + * Maps UI / future software codec choices to wire negotiation and HW backends. + * Disabled libvpx / Speex / Opus entries use passthrough to system codecs until integrated. + */ +public final class PassthroughCodecPolicy { + private PassthroughCodecPolicy() {} + + public static CastSettings.VideoCodec forNegotiation(CastSettings.VideoCodec preference) { + if (preference == null) { + return CastSettings.VideoCodec.AUTO; + } + switch (preference) { + case LIBVPX_VP8: + case LIBVPX_VP9: + return preference; + case PASSTHROUGH: + return CastSettings.VideoCodec.AUTO; + default: + return preference; + } + } + + public static VideoCodecBackend videoBackendFor(CastSettings.VideoCodec preference) { + if (preference == CastSettings.VideoCodec.LIBVPX_VP8 + || preference == CastSettings.VideoCodec.LIBVPX_VP9) { + return VideoCodecBackend.LIBVPX_STUB; + } + if (preference == CastSettings.VideoCodec.PASSTHROUGH) { + return VideoCodecBackend.PASSTHROUGH; + } + return VideoCodecBackend.MEDIA_CODEC_HW; + } + + public static CastSettings.AudioCodec forAudioNegotiation(CastSettings.AudioCodec preference) { + if (preference == null) { + return CastSettings.AudioCodec.AUTO; + } + switch (preference) { + case SPEEX: + case OPUS: + return CastSettings.AudioCodec.AUTO; + default: + return preference; + } + } + + public static AudioCodecBackend audioBackendFor(CastSettings.AudioCodec preference, + boolean audioEnabled) { + if (!audioEnabled) { + return AudioCodecBackend.DISABLED; + } + if (preference == CastSettings.AudioCodec.SPEEX) { + return AudioCodecBackend.SPEEX_STUB; + } + if (preference == CastSettings.AudioCodec.OPUS) { + return AudioCodecBackend.OPUS_STUB; + } + return AudioCodecBackend.MEDIA_CODEC_AAC; + } + + public static String protectionDescription(CastSettings.StreamProtection mode, String transport, + CastSettings.AudioCodec audioPref) { + StringBuilder sb = new StringBuilder(); + if (mode != null) { + sb.append(mode.name()); + } else { + sb.append("AUTO"); + } + if (CastSettings.AudioCodec.OPUS == audioPref) { + sb.append(" · Opus in-band FEC (when Opus enabled)"); + } else if (CastSettings.AudioCodec.SPEEX == audioPref) { + sb.append(" · Speex FEC (when Speex enabled)"); + } + if (transport != null && transport.equalsIgnoreCase("udp")) { + sb.append(" · UDP FEC/NACK stubs (app layer off)"); + } + return sb.toString(); + } + + public static String wireMimeHint(CastSettings.VideoCodec preference) { + switch (preference) { + case LIBVPX_VP8: + return MediaFormat.MIMETYPE_VIDEO_VP8; + case LIBVPX_VP9: + return MediaFormat.MIMETYPE_VIDEO_VP9; + case H264: + return MediaFormat.MIMETYPE_VIDEO_AVC; + case H265: + return MediaFormat.MIMETYPE_VIDEO_HEVC; + case AUTO: + default: + return "negotiated"; + } + } + + public static String displayVideoPreference(CastSettings.VideoCodec codec) { + if (codec == null) { + return CodecNegotiator.displayName(null); + } + switch (codec) { + case LIBVPX_VP8: + return "libvpx (VP8)"; + case LIBVPX_VP9: + return "libvpx (VP9)"; + case H264: + return "H.264"; + case H265: + return "H.265"; + case PASSTHROUGH: + return "Passthrough"; + case AUTO: + default: + return "AUTO"; + } + } + + public static String displayAudioPreference(CastSettings.AudioCodec codec) { + if (codec == null) { + return "AUTO"; + } + switch (codec) { + case SPEEX: + return "Speex"; + case OPUS: + return "Opus"; + case AAC: + return "AAC"; + case AUTO: + default: + return "AUTO (AAC)"; + } + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/PassthroughVideoEncoderSink.java b/app/src/main/java/com/foxx/androidcast/media/codec/PassthroughVideoEncoderSink.java new file mode 100644 index 0000000..ec92a6c --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/PassthroughVideoEncoderSink.java @@ -0,0 +1,65 @@ +package com.foxx.androidcast.media.codec; + +import android.graphics.Bitmap; +import android.view.Surface; + +import com.foxx.androidcast.CastSettings; +import com.foxx.androidcast.CastTuningEngine; + +import java.io.IOException; + +/** + * Delegates to hardware {@link VideoEncoderSink} while preference is a future software codec. + */ +final class PassthroughVideoEncoderSink implements VideoEncoderSink { + private final VideoEncoderSink delegate; + private final CastSettings.VideoCodec preference; + + PassthroughVideoEncoderSink(VideoEncoderSink delegate, CastSettings.VideoCodec preference) { + this.delegate = delegate; + this.preference = preference; + } + + @Override + public Surface getInputSurface() { + return delegate.getInputSurface(); + } + + @Override + public void requestKeyframe() { + delegate.requestKeyframe(); + } + + @Override + public Surface prepare(int width, int height, String mime, CastTuningEngine.EffectiveParams params, + Callback callback) throws IOException { + CodecSessionRegistry.setVideoBackend(VideoCodecBackend.LIBVPX_STUB, mime); + return delegate.prepare(width, height, mime, params, callback); + } + + @Override + public void prepareBufferInput(int width, int height, String mime, CastTuningEngine.EffectiveParams params, + Callback callback) throws IOException { + CodecSessionRegistry.setVideoBackend(VideoCodecBackend.LIBVPX_STUB, mime); + delegate.prepareBufferInput(width, height, mime, params, callback); + } + + @Override + public void queueBitmapFrame(Bitmap bitmap, long ptsUs) { + delegate.queueBitmapFrame(bitmap, ptsUs); + } + + @Override + public void queueYuvFrame(byte[] yuv, long ptsUs) { + delegate.queueYuvFrame(yuv, ptsUs); + } + + @Override + public void stop() { + delegate.stop(); + } + + CastSettings.VideoCodec getPreference() { + return preference; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/VideoCodecBackend.java b/app/src/main/java/com/foxx/androidcast/media/codec/VideoCodecBackend.java new file mode 100644 index 0000000..e10baaf --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/VideoCodecBackend.java @@ -0,0 +1,15 @@ +package com.foxx.androidcast.media.codec; + +/** Implementation backing a negotiated video MIME. */ +public enum VideoCodecBackend { + MEDIA_CODEC_HW("MediaCodec (HW)"), + LIBVPX_STUB("libvpx (HW fallback until native encode wired)"), + PASSTHROUGH("Passthrough (stub)"), + UNKNOWN("?"); + + public final String label; + + VideoCodecBackend(String label) { + this.label = label; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/VideoCodecFactory.java b/app/src/main/java/com/foxx/androidcast/media/codec/VideoCodecFactory.java new file mode 100644 index 0000000..dcaf5d9 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/VideoCodecFactory.java @@ -0,0 +1,28 @@ +package com.foxx.androidcast.media.codec; + +import com.foxx.androidcast.CastSettings; +import com.foxx.androidcast.media.codec.jni.NativeCodecBridge; +import com.foxx.androidcast.sender.VideoEncoder; + +/** Creates video encoder sinks; software libvpx will plug in here later. */ +public final class VideoCodecFactory { + private VideoCodecFactory() {} + + public static VideoEncoderSink createEncoder(CastSettings.VideoCodec preference) { + CodecSessionRegistry.setVideoPreference(preference); + VideoCodecBackend backend = PassthroughCodecPolicy.videoBackendFor(preference); + if (preference == CastSettings.VideoCodec.LIBVPX_VP8 + || preference == CastSettings.VideoCodec.LIBVPX_VP9) { + if (NativeCodecBridge.isLibvpxAvailable()) { + CodecSessionRegistry.setVideoBackend(VideoCodecBackend.LIBVPX_STUB, null); + return new PassthroughVideoEncoderSink(new VideoEncoder(), preference); + } + CodecSessionRegistry.setVideoBackend(VideoCodecBackend.MEDIA_CODEC_HW, null); + return new PassthroughVideoEncoderSink(new VideoEncoder(), preference); + } + if (backend == VideoCodecBackend.PASSTHROUGH) { + return new PassthroughVideoEncoderSink(new VideoEncoder(), preference); + } + return new VideoEncoder(); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/VideoDecoderFactory.java b/app/src/main/java/com/foxx/androidcast/media/codec/VideoDecoderFactory.java new file mode 100644 index 0000000..2e61fc8 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/VideoDecoderFactory.java @@ -0,0 +1,12 @@ +package com.foxx.androidcast.media.codec; + +import com.foxx.androidcast.receiver.VideoDecoder; + +/** Creates video decoder sinks. */ +public final class VideoDecoderFactory { + private VideoDecoderFactory() {} + + public static VideoDecoderSink createDecoder() { + return new VideoDecoder(); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/VideoDecoderSink.java b/app/src/main/java/com/foxx/androidcast/media/codec/VideoDecoderSink.java new file mode 100644 index 0000000..d4b257b --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/VideoDecoderSink.java @@ -0,0 +1,24 @@ +package com.foxx.androidcast.media.codec; + +import android.view.Surface; + +import java.io.IOException; + +/** Video decoder pipeline (MediaCodec today; libvpx fallback later). */ +public interface VideoDecoderSink { + + interface Listener { + void onFirstFrameRendered(); + + default void onFrameRendered() {} + + default void onOutputSizeChanged(int width, int height) {} + } + + void configure(String mime, int width, int height, byte[] csd0, byte[] csd1, Surface surface, + Listener listener) throws IOException; + + void queueFrame(long ptsUs, boolean keyFrame, byte[] data); + + void release(); +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/VideoEncoderSink.java b/app/src/main/java/com/foxx/androidcast/media/codec/VideoEncoderSink.java new file mode 100644 index 0000000..fc5f5bf --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/VideoEncoderSink.java @@ -0,0 +1,34 @@ +package com.foxx.androidcast.media.codec; + +import android.graphics.Bitmap; +import android.view.Surface; + +import com.foxx.androidcast.CastTuningEngine; + +import java.io.IOException; + +/** Video encoder pipeline (MediaCodec today; libvpx fallback later). */ +public interface VideoEncoderSink { + + interface Callback { + void onConfig(int width, int height, byte[] csd0, byte[] csd1); + + void onEncodedFrame(long ptsUs, boolean keyFrame, byte[] data); + } + + Surface getInputSurface(); + + void requestKeyframe(); + + Surface prepare(int width, int height, String mime, CastTuningEngine.EffectiveParams params, + Callback callback) throws IOException; + + void prepareBufferInput(int width, int height, String mime, CastTuningEngine.EffectiveParams params, + Callback callback) throws IOException; + + void queueBitmapFrame(Bitmap bitmap, long ptsUs); + + void queueYuvFrame(byte[] yuv, long ptsUs); + + void stop(); +} diff --git a/app/src/main/java/com/foxx/androidcast/media/codec/jni/NativeCodecBridge.java b/app/src/main/java/com/foxx/androidcast/media/codec/jni/NativeCodecBridge.java new file mode 100644 index 0000000..0eb9bae --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/media/codec/jni/NativeCodecBridge.java @@ -0,0 +1,47 @@ +package com.foxx.androidcast.media.codec.jni; + +import android.util.Log; + +/** JNI probes for third-party codecs built from {@code ndk/} + {@code third-party/}. */ +public final class NativeCodecBridge { + private static final String TAG = "NativeCodecBridge"; + private static final String LIB = "androidcast_codecs"; + + private static boolean loaded; + private static boolean loadAttempted; + + private NativeCodecBridge() {} + + public static boolean ensureLoaded() { + if (loadAttempted) { + return loaded; + } + loadAttempted = true; + try { + System.loadLibrary(LIB); + loaded = true; + } catch (UnsatisfiedLinkError e) { + Log.w(TAG, "Native codec library not available: " + e.getMessage()); + loaded = false; + } + return loaded; + } + + public static boolean isLibvpxAvailable() { + return ensureLoaded() && nativeIsLibvpxAvailable(); + } + + public static boolean isOpusAvailable() { + return ensureLoaded() && nativeIsOpusAvailable(); + } + + public static boolean isSpeexAvailable() { + return ensureLoaded() && nativeIsSpeexAvailable(); + } + + private static native boolean nativeIsLibvpxAvailable(); + + private static native boolean nativeIsOpusAvailable(); + + private static native boolean nativeIsSpeexAvailable(); +} diff --git a/app/src/main/java/com/foxx/androidcast/network/CastProtocol.java b/app/src/main/java/com/foxx/androidcast/network/CastProtocol.java index e7bc4e5..678090b 100644 --- a/app/src/main/java/com/foxx/androidcast/network/CastProtocol.java +++ b/app/src/main/java/com/foxx/androidcast/network/CastProtocol.java @@ -31,6 +31,8 @@ public final class CastProtocol { public static final byte MSG_AUDIO_CONSENT = 13; public static final byte MSG_CODEC_CAPS = 14; public static final byte MSG_CODEC_SELECTED = 15; + /** UDP NACK: payload is big-endian {@code messageId} (4 bytes). */ + public static final byte MSG_NACK = 16; /** UDP outer wrapper: payload is {@link CastPacketFramer} wire bytes. */ public static final byte MSG_WIRE_PACKET = 127; @@ -119,7 +121,7 @@ public final class CastProtocol { } if (dis.available() > 0) { settings.setStreamProtection(readEnum(CastSettings.StreamProtection.values(), dis.readInt(), - CastSettings.StreamProtection.AUTO)); + CastSettings.StreamProtection.NONE)); } if (dis.available() > 0) { settings.setReceiverDisplayResolution( diff --git a/app/src/main/java/com/foxx/androidcast/network/CastSession.java b/app/src/main/java/com/foxx/androidcast/network/CastSession.java index 3d97c52..2c0a92c 100644 --- a/app/src/main/java/com/foxx/androidcast/network/CastSession.java +++ b/app/src/main/java/com/foxx/androidcast/network/CastSession.java @@ -2,6 +2,7 @@ package com.foxx.androidcast.network; import com.foxx.androidcast.CastSettings; import com.foxx.androidcast.media.CodecNegotiator; +import com.foxx.androidcast.media.codec.PassthroughCodecPolicy; import com.foxx.androidcast.sender.CodecCatalog; import java.io.IOException; @@ -116,7 +117,8 @@ public class CastSession { if (authed && remote != null && senderCaps != null) { List receiverCaps = CodecCatalog.localDecoderMimes(); transport.send(CastProtocol.MSG_CODEC_CAPS, CastProtocol.codecCapsPayload(receiverCaps)); - String mime = CodecNegotiator.negotiate(senderCaps, receiverCaps, remote.getVideoCodec()); + String mime = CodecNegotiator.negotiate(senderCaps, receiverCaps, + PassthroughCodecPolicy.forNegotiation(remote.getVideoCodec())); transport.send(CastProtocol.MSG_CODEC_SELECTED, CastProtocol.codecSelectedPayload(mime)); remote.setNegotiatedVideoMime(mime); return new HandshakeResult(senderName, remote, mime); diff --git a/app/src/main/java/com/foxx/androidcast/network/CastTransportFactory.java b/app/src/main/java/com/foxx/androidcast/network/CastTransportFactory.java index 6bc1cc1..6b16e75 100644 --- a/app/src/main/java/com/foxx/androidcast/network/CastTransportFactory.java +++ b/app/src/main/java/com/foxx/androidcast/network/CastTransportFactory.java @@ -24,14 +24,43 @@ public final class CastTransportFactory { if (appContext == null) { throw new IOException("CastTransportFactory.init(context) required for QUIC"); } - return new QuicCronetCastTransport(appContext); + QuicCronetCastTransport quic = new QuicCronetCastTransport(appContext); + applyUdpProtection(quic.getUdpTransport(), settings); + return quic; } if (WebRtcTransportFactory.isTransportId(mode)) { return WebRtcTransportFactory.create(); } if (CastConfig.TRANSPORT_UDP.equals(mode)) { - return new UdpCastTransport(); + UdpCastTransport udp = new UdpCastTransport(); + applyUdpProtection(udp, settings); + return udp; } return new TcpCastTransport(); } + + private static void applyUdpProtection(UdpCastTransport udp, CastSettings settings) { + if (udp == null) { + return; + } + if (settings == null || !CastConfig.TRANSPORT_UDP.equals(settings.getTransport())) { + udp.setProtectionEngine(com.foxx.androidcast.network.transport.StreamProtectionEngine.noop()); + return; + } + udp.applyStreamProtection(settings); + } + + /** Apply protection after handshake using negotiated local/remote preferences. */ + public static void applyNegotiatedUdpProtection(UdpCastTransport udp, CastSettings local, + CastSettings remote) { + if (udp == null || local == null) { + return; + } + CastSettings.StreamProtection mode = com.foxx.androidcast.network.transport.StreamProtectionNegotiator + .resolve(local.getStreamProtection(), remote != null ? remote.getStreamProtection() : null); + CastSettings effective = new CastSettings(); + effective.copyFrom(local); + effective.setStreamProtection(mode); + applyUdpProtection(udp, effective); + } } diff --git a/app/src/main/java/com/foxx/androidcast/network/UdpCastTransport.java b/app/src/main/java/com/foxx/androidcast/network/UdpCastTransport.java index ddc1594..c330dc3 100644 --- a/app/src/main/java/com/foxx/androidcast/network/UdpCastTransport.java +++ b/app/src/main/java/com/foxx/androidcast/network/UdpCastTransport.java @@ -1,6 +1,9 @@ package com.foxx.androidcast.network; import com.foxx.androidcast.CastConfig; +import com.foxx.androidcast.network.transport.CombinedProtectionEngine; +import com.foxx.androidcast.network.transport.NackProtectionEngine; +import com.foxx.androidcast.network.transport.RetransmitCache; import com.foxx.androidcast.network.transport.StreamProtectionEngine; import com.foxx.androidcast.network.transport.TransportLossStats; import com.foxx.androidcast.network.transport.TransportStatsProvider; @@ -31,6 +34,8 @@ public class UdpCastTransport implements CastTransport, TransportStatsProvider { private final Map pending = new ConcurrentHashMap<>(); private final TransportLossStats lossStats = new TransportLossStats(); private StreamProtectionEngine protectionEngine = StreamProtectionEngine.noop(); + private NackProtectionEngine nackEngine; + private final RetransmitCache retransmitCache = new RetransmitCache(); private CastFramingContext framingContext; private CastSessionGate inboundSessionGate; private static final long REASSEMBLY_TIMEOUT_MS = 3_000; @@ -83,17 +88,72 @@ public class UdpCastTransport implements CastTransport, TransportStatsProvider { this.inboundSessionGate = gate; } - /** Select protection stub (default none). FEC/NACK are not active yet. */ + public void applyStreamProtection(com.foxx.androidcast.CastSettings settings) { + StreamProtectionEngine engine = com.foxx.androidcast.network.transport.StreamProtectionFactory + .create(settings != null ? settings.getStreamProtection() : null, lossStats); + setProtectionEngine(engine); + } + + /** Select stream protection engine (FEC / NACK). */ public void setProtectionEngine(StreamProtectionEngine engine) { protectionEngine = engine != null ? engine : StreamProtectionEngine.noop(); + nackEngine = extractNackEngine(protectionEngine); + if (nackEngine != null) { + nackEngine.setNackSender(messageId -> sendRaw(CastProtocol.MSG_NACK, + NackProtectionEngine.nackPayload(messageId))); + } synchronized (lossStats) { lossStats.protectionMode = protectionEngine.mode(); } } + private static NackProtectionEngine extractNackEngine(StreamProtectionEngine engine) { + if (engine instanceof NackProtectionEngine) { + return (NackProtectionEngine) engine; + } + if (engine instanceof CombinedProtectionEngine) { + return ((CombinedProtectionEngine) engine).nack(); + } + return null; + } + @Override public TransportLossStats getLossStats() { - return lossStats.copy(); + synchronized (lossStats) { + lossStats.publishLegacyCounters(); + return lossStats.copy(); + } + } + + /** Send a low-level UDP control datagram (not FEC-wrapped). */ + public void sendRaw(byte type, byte[] payload) throws IOException { + if (peer == null) { + throw new IOException("UDP peer not set"); + } + byte[] body = payload == null ? new byte[0] : payload; + sendOnce(type, body, false); + } + + void retransmitCached(byte wireType, byte[] body) { + try { + sendOnce(wireType, body, false); + } catch (IOException ignored) { + } + } + + private void handleIncomingNack(int messageId) { + protectionEngine.onNack(messageId); + RetransmitCache.CachedMessage entry = retransmitCache.get(messageId); + if (entry == null) { + synchronized (lossStats) { + lossStats.nackCacheMisses++; + } + return; + } + synchronized (lossStats) { + lossStats.nackRetransmits++; + } + retransmitCached(entry.wireType, entry.body); } @Override @@ -112,15 +172,18 @@ public class UdpCastTransport implements CastTransport, TransportStatsProvider { } body = protectionEngine.onOutboundPayload(type, body); if (body.length <= MAX_RELIABLE_BYTES) { - sendOnce(wireType, body); - sendOnce(wireType, body); + sendOnce(wireType, body, true); + sendOnce(wireType, body, true); } else { - sendOnce(wireType, body); + sendOnce(wireType, body, true); } } - private void sendOnce(byte type, byte[] body) throws IOException { + private void sendOnce(byte type, byte[] body, boolean cacheForNack) throws IOException { int messageId = nextMessageId++; + if (cacheForNack) { + retransmitCache.put(messageId, type, body); + } int chunkSize = CastConfig.UDP_CHUNK_SIZE - HEADER; int fragments = Math.max(1, (body.length + chunkSize - 1) / chunkSize); for (int i = 0; i < fragments; i++) { @@ -174,7 +237,10 @@ public class UdpCastTransport implements CastTransport, TransportStatsProvider { synchronized (lossStats) { lossStats.reassemblyIncomplete++; } - protectionEngine.onNackStub(e.getKey()); + int messageId = e.getKey(); + if (nackEngine != null) { + nackEngine.requestNack(messageId); + } } } } @@ -201,6 +267,18 @@ public class UdpCastTransport implements CastTransport, TransportStatsProvider { int messageId = readInt(data, 5); int fragIndex = readShort(data, 9); int fragCount = readShort(data, 11); + if (type == CastProtocol.MSG_NACK && fragCount <= 1) { + int payloadLenNack = length - HEADER; + byte[] nackBody = payloadLenNack > 0 ? new byte[payloadLenNack] : new byte[0]; + if (payloadLenNack > 0) { + System.arraycopy(data, HEADER, nackBody, 0, payloadLenNack); + } + int nackId = NackProtectionEngine.parseNackPayload(nackBody); + if (nackId >= 0) { + handleIncomingNack(nackId); + } + return null; + } int totalLen = readInt(data, 13); int payloadLen = length - HEADER; byte[] chunk = new byte[payloadLen]; @@ -216,6 +294,12 @@ public class UdpCastTransport implements CastTransport, TransportStatsProvider { body = chunk; } body = protectionEngine.onInboundPayload(type, body); + if (body == null) { + if (nackEngine != null) { + nackEngine.requestNack(messageId); + } + return null; + } raw = new CastProtocol.Message(type, body); return unwrapWire(raw); } @@ -248,6 +332,12 @@ public class UdpCastTransport implements CastTransport, TransportStatsProvider { } byte[] assembled = r.assemble(); assembled = protectionEngine.onInboundPayload(type, assembled); + if (assembled == null) { + if (nackEngine != null) { + nackEngine.requestNack(messageId); + } + return null; + } return unwrapWire(new CastProtocol.Message(type, assembled)); } diff --git a/app/src/main/java/com/foxx/androidcast/network/quic/QuicCronetCastTransport.java b/app/src/main/java/com/foxx/androidcast/network/quic/QuicCronetCastTransport.java index f706009..d42b63a 100644 --- a/app/src/main/java/com/foxx/androidcast/network/quic/QuicCronetCastTransport.java +++ b/app/src/main/java/com/foxx/androidcast/network/quic/QuicCronetCastTransport.java @@ -40,6 +40,11 @@ public final class QuicCronetCastTransport implements CastTransport { this.appContext = context.getApplicationContext(); } + /** Underlying UDP data plane (ACUD framing, FEC/NACK). */ + public UdpCastTransport getUdpTransport() { + return udp; + } + private CastTransport active() { return usingTcp.get() ? tcpFallback : udp; } diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/CombinedProtectionEngine.java b/app/src/main/java/com/foxx/androidcast/network/transport/CombinedProtectionEngine.java new file mode 100644 index 0000000..f7ffa04 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/CombinedProtectionEngine.java @@ -0,0 +1,44 @@ +package com.foxx.androidcast.network.transport; + +/** FEC 3/4 (default) plus NACK retransmission. */ +public final class CombinedProtectionEngine implements StreamProtectionEngine { + private final FecProtectionEngine fec; + private final NackProtectionEngine nack; + + public CombinedProtectionEngine(FecProtectionEngine fec, NackProtectionEngine nack) { + this.fec = fec; + this.nack = nack; + } + + public NackProtectionEngine nack() { + return nack; + } + + public FecProtectionEngine fec() { + return fec; + } + + @Override + public StreamProtectionMode mode() { + return StreamProtectionMode.FEC_NACK; + } + + @Override + public byte[] onOutboundPayload(byte type, byte[] payload) { + return fec.onOutboundPayload(type, payload); + } + + @Override + public byte[] onInboundPayload(byte type, byte[] payload) { + return fec.onInboundPayload(type, payload); + } + + @Override + public void onNack(int messageId) { + nack.onNack(messageId); + } + + public NackProtectionEngine getNack() { + return nack; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/FecProtectionEngine.java b/app/src/main/java/com/foxx/androidcast/network/transport/FecProtectionEngine.java new file mode 100644 index 0000000..77431fc --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/FecProtectionEngine.java @@ -0,0 +1,94 @@ +package com.foxx.androidcast.network.transport; + +import com.foxx.androidcast.network.CastProtoHeader; +import com.foxx.androidcast.network.CastProtocol; +import com.foxx.androidcast.network.transport.fec.ProtectionEnvelope; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +/** Reed-Solomon FEC wrapper for UDP logical payloads. */ +public final class FecProtectionEngine implements StreamProtectionEngine { + private final byte mode; + private final int dataShards; + private final int parityShards; + private final TransportLossStats stats; + private final StreamProtectionMode protectionMode; + + public FecProtectionEngine(byte envelopeMode, int dataShards, int parityShards, + TransportLossStats stats) { + this.mode = envelopeMode; + this.dataShards = dataShards; + this.parityShards = parityShards; + this.stats = stats; + this.protectionMode = envelopeMode == ProtectionEnvelope.MODE_REED_SOLOMON + ? StreamProtectionMode.FEC_REED_SOLOMON + : StreamProtectionMode.FEC_3_4; + } + + @Override + public StreamProtectionMode mode() { + return protectionMode; + } + + @Override + public byte[] onOutboundPayload(byte type, byte[] payload) { + if (!StreamProtectionScopes.protectsUdpPayload(type)) { + return payload; + } + if (payload == null || payload.length == 0) { + return payload; + } + try { + byte[] out = ProtectionEnvelope.encode(mode, dataShards, parityShards, payload); + if (stats != null) { + synchronized (stats) { + stats.fecPacketsEncoded++; + } + } + return out; + } catch (IOException e) { + return payload; + } + } + + @Override + public byte[] onInboundPayload(byte type, byte[] payload) { + if (!StreamProtectionScopes.protectsUdpPayload(type)) { + return payload; + } + if (type == CastProtocol.MSG_WIRE_PACKET && looksLikeWireHeader(payload)) { + return payload; + } + if (!ProtectionEnvelope.isProtected(payload)) { + return payload; + } + ProtectionEnvelope.Decoded decoded = ProtectionEnvelope.tryDecode(payload); + if (decoded == null) { + return payload; + } + if (!decoded.complete) { + if (stats != null) { + synchronized (stats) { + stats.fecDecodeFailures++; + } + } + return null; + } + if (stats != null) { + synchronized (stats) { + stats.fecPacketsDecoded++; + } + } + return decoded.payload; + } + + private static boolean looksLikeWireHeader(byte[] payload) { + if (payload == null || payload.length < 4) { + return false; + } + int magic = ByteBuffer.wrap(payload, 0, 4).order(ByteOrder.LITTLE_ENDIAN).getInt(); + return magic == CastProtoHeader.MAGIC; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/NackProtectionEngine.java b/app/src/main/java/com/foxx/androidcast/network/transport/NackProtectionEngine.java new file mode 100644 index 0000000..d7f68b5 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/NackProtectionEngine.java @@ -0,0 +1,94 @@ +package com.foxx.androidcast.network.transport; + +import com.foxx.androidcast.network.CastProtocol; + +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; + +/** NACK requests + retransmit cache (sender stores, receiver requests). */ +public final class NackProtectionEngine implements StreamProtectionEngine { + private final TransportLossStats stats; + private final RetransmitCache cache; + private NackSender nackSender; + + public interface NackSender { + void sendNack(int messageId) throws IOException; + } + + public NackProtectionEngine(TransportLossStats stats, RetransmitCache cache) { + this.stats = stats; + this.cache = cache != null ? cache : new RetransmitCache(); + } + + public void setNackSender(NackSender sender) { + this.nackSender = sender; + } + + public RetransmitCache getCache() { + return cache; + } + + @Override + public StreamProtectionMode mode() { + return StreamProtectionMode.NACK; + } + + @Override + public byte[] onOutboundPayload(byte type, byte[] payload) { + return payload; + } + + @Override + public byte[] onInboundPayload(byte type, byte[] payload) { + return payload; + } + + @Override + public void onNack(int messageId) { + if (stats != null) { + synchronized (stats) { + stats.nackRequestsReceived++; + } + } + } + + public void requestNack(int messageId) { + if (stats != null) { + synchronized (stats) { + stats.nackRequestsSent++; + } + } + if (nackSender != null) { + try { + nackSender.sendNack(messageId); + } catch (IOException ignored) { + } + } + } + + public static byte[] nackPayload(int messageId) throws IOException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(8); + DataOutputStream dos = new DataOutputStream(bos); + dos.writeInt(messageId); + return bos.toByteArray(); + } + + public static int parseNackPayload(byte[] payload) { + if (payload == null || payload.length < 4) { + return -1; + } + return ((payload[0] & 0xFF) << 24) | ((payload[1] & 0xFF) << 16) + | ((payload[2] & 0xFF) << 8) | (payload[3] & 0xFF); + } + + private RetransmitHandler retransmitHandler; + + public void setRetransmitHandler(RetransmitHandler handler) { + this.retransmitHandler = handler; + } + + public interface RetransmitHandler { + void retransmit(byte wireType, byte[] body); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/RetransmitCache.java b/app/src/main/java/com/foxx/androidcast/network/transport/RetransmitCache.java new file mode 100644 index 0000000..90230b1 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/RetransmitCache.java @@ -0,0 +1,52 @@ +package com.foxx.androidcast.network.transport; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** Ring buffer of recent UDP logical messages for NACK retransmission. */ +public final class RetransmitCache { + private static final int DEFAULT_CAPACITY = 64; + + private final int capacity; + private final LinkedHashMap map; + + public RetransmitCache() { + this(DEFAULT_CAPACITY); + } + + public RetransmitCache(int capacity) { + this.capacity = Math.max(8, capacity); + this.map = new LinkedHashMap(capacity + 1, 0.75f, true) { + @Override + protected boolean removeEldestEntry(Map.Entry eldest) { + return size() > RetransmitCache.this.capacity; + } + }; + } + + public void put(int messageId, byte wireType, byte[] body) { + if (body == null) { + return; + } + synchronized (map) { + map.put(messageId, new CachedMessage(wireType, body.clone())); + } + } + + public CachedMessage get(int messageId) { + synchronized (map) { + CachedMessage e = map.get(messageId); + return e != null ? new CachedMessage(e.wireType, e.body.clone()) : null; + } + } + + public static final class CachedMessage { + public final byte wireType; + public final byte[] body; + + CachedMessage(byte wireType, byte[] body) { + this.wireType = wireType; + this.body = body; + } + } +} diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionEngine.java b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionEngine.java index dffb504..493259b 100644 --- a/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionEngine.java +++ b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionEngine.java @@ -1,7 +1,7 @@ package com.foxx.androidcast.network.transport; /** - * Hook for future FEC / NACK over UDP. Current builds use {@link #noop()} only. + * FEC / NACK over UDP logical payloads (before ACUD fragmentation). */ public interface StreamProtectionEngine { StreamProtectionMode mode(); @@ -9,16 +9,14 @@ public interface StreamProtectionEngine { /** Called before UDP payload is fragmented (outbound). */ byte[] onOutboundPayload(byte type, byte[] payload); - /** Called when a reassembled UDP message is ready (inbound). */ + /** + * Called when a reassembled UDP message is ready (inbound). + * Return {@code null} to signal decode failure (may trigger NACK). + */ byte[] onInboundPayload(byte type, byte[] payload); - /** Future: process FEC repair block (stub). */ - default void onFecBlockStub(byte[] block) { - } - - /** Future: sender handles NACK for messageId (stub). */ - default void onNackStub(int messageId) { - } + /** Sender handles NACK for a lost {@code messageId}. */ + default void onNack(int messageId) {} static StreamProtectionEngine noop() { return new StreamProtectionEngine() { @@ -38,58 +36,4 @@ public interface StreamProtectionEngine { } }; } - - /** Placeholder for upcoming FEC — counts invocations only. */ - static StreamProtectionEngine fecStub(TransportLossStats stats) { - return new StreamProtectionEngine() { - @Override - public StreamProtectionMode mode() { - return StreamProtectionMode.FEC_STUB; - } - - @Override - public byte[] onOutboundPayload(byte type, byte[] payload) { - if (stats != null) { - synchronized (stats) { - stats.fecPacketsStub++; - } - } - return payload; - } - - @Override - public byte[] onInboundPayload(byte type, byte[] payload) { - return payload; - } - }; - } - - /** Placeholder for upcoming NACK — no retransmit yet. */ - static StreamProtectionEngine nackStub(TransportLossStats stats) { - return new StreamProtectionEngine() { - @Override - public StreamProtectionMode mode() { - return StreamProtectionMode.NACK_STUB; - } - - @Override - public byte[] onOutboundPayload(byte type, byte[] payload) { - return payload; - } - - @Override - public byte[] onInboundPayload(byte type, byte[] payload) { - return payload; - } - - @Override - public void onNackStub(int messageId) { - if (stats != null) { - synchronized (stats) { - stats.nackRequestsStub++; - } - } - } - }; - } } diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionFactory.java b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionFactory.java new file mode 100644 index 0000000..cf91586 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionFactory.java @@ -0,0 +1,47 @@ +package com.foxx.androidcast.network.transport; + +import com.foxx.androidcast.CastSettings; +import com.foxx.androidcast.network.CastProtocol; +import com.foxx.androidcast.network.UdpCastTransport; +import com.foxx.androidcast.network.transport.fec.ProtectionEnvelope; + +/** Builds {@link StreamProtectionEngine} from {@link CastSettings.StreamProtection}. */ +public final class StreamProtectionFactory { + private static final int FEC34_DATA = 4; + private static final int FEC34_PARITY = 3; + private static final int RS_DATA = 8; + private static final int RS_PARITY = 4; + + private StreamProtectionFactory() {} + + public static StreamProtectionEngine create(CastSettings.StreamProtection setting, + TransportLossStats stats) { + CastSettings.StreamProtection mode = StreamProtectionNegotiator.normalize(setting); + RetransmitCache cache = new RetransmitCache(); + switch (mode) { + case NONE: + return StreamProtectionEngine.noop(); + case FEC_3_4: + return new FecProtectionEngine(ProtectionEnvelope.MODE_FEC_34, + FEC34_DATA, FEC34_PARITY, stats); + case FEC_REED_SOLOMON: + return new FecProtectionEngine(ProtectionEnvelope.MODE_REED_SOLOMON, + RS_DATA, RS_PARITY, stats); + case NACK: + return new NackProtectionEngine(stats, cache); + case FEC_NACK: + default: + FecProtectionEngine fec = new FecProtectionEngine(ProtectionEnvelope.MODE_FEC_NACK, + FEC34_DATA, FEC34_PARITY, stats); + NackProtectionEngine nack = new NackProtectionEngine(stats, cache); + return new CombinedProtectionEngine(fec, nack); + } + } + + public static void wireUdp(UdpCastTransport udp, StreamProtectionEngine engine) { + if (udp == null || engine == null) { + return; + } + udp.setProtectionEngine(engine); + } +} diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionMode.java b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionMode.java index 142561c..3aecafd 100644 --- a/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionMode.java +++ b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionMode.java @@ -1,26 +1,30 @@ package com.foxx.androidcast.network.transport; -/** Planned LAN cast reliability features (stubs until implemented). */ +/** Active UDP stream protection mode. */ public enum StreamProtectionMode { NONE, - /** Forward-error correction over UDP (not implemented). */ - FEC_STUB, - /** Negative acknowledgement / retransmit requests (not implemented). */ - NACK_STUB; + FEC_3_4, + FEC_REED_SOLOMON, + NACK, + FEC_NACK; - public boolean isStub() { - return this == FEC_STUB || this == NACK_STUB; + public boolean isActive() { + return this != NONE; } - public String overlayLabel() { + public String wireLabel() { switch (this) { - case FEC_STUB: - return "FEC (stub)"; - case NACK_STUB: - return "NACK (stub)"; + case FEC_3_4: + return "FEC 3/4"; + case FEC_REED_SOLOMON: + return "FEC Reed-Solomon"; + case NACK: + return "NACK"; + case FEC_NACK: + return "FEC 3/4 + NACK"; case NONE: default: - return "none"; + return "NONE"; } } } diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionNegotiator.java b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionNegotiator.java new file mode 100644 index 0000000..88d1a83 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionNegotiator.java @@ -0,0 +1,28 @@ +package com.foxx.androidcast.network.transport; + +import com.foxx.androidcast.CastSettings; + +/** Picks an agreed stream protection mode for both peers. */ +public final class StreamProtectionNegotiator { + private StreamProtectionNegotiator() {} + + public static CastSettings.StreamProtection resolve(CastSettings.StreamProtection local, + CastSettings.StreamProtection remote) { + CastSettings.StreamProtection a = normalize(local); + CastSettings.StreamProtection b = normalize(remote); + if (a == CastSettings.StreamProtection.NONE || b == CastSettings.StreamProtection.NONE) { + return CastSettings.StreamProtection.NONE; + } + if (a == b) { + return a; + } + return CastSettings.StreamProtection.NONE; + } + + public static CastSettings.StreamProtection normalize(CastSettings.StreamProtection mode) { + if (mode == null || mode == CastSettings.StreamProtection.AUTO) { + return CastSettings.StreamProtection.NONE; + } + return mode; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionScopes.java b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionScopes.java new file mode 100644 index 0000000..dc509e9 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/StreamProtectionScopes.java @@ -0,0 +1,16 @@ +package com.foxx.androidcast.network.transport; + +import com.foxx.androidcast.network.CastProtocol; + +/** Which UDP cast message types use FEC/NACK payload wrapping. */ +public final class StreamProtectionScopes { + private StreamProtectionScopes() {} + + /** Handshake and control messages stay raw; only media/stats use protection. */ + public static boolean protectsUdpPayload(byte messageType) { + return messageType == CastProtocol.MSG_VIDEO_FRAME + || messageType == CastProtocol.MSG_AUDIO_FRAME + || messageType == CastProtocol.MSG_WIRE_PACKET + || messageType == CastProtocol.MSG_NETWORK_STATS; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/TransportLossStats.java b/app/src/main/java/com/foxx/androidcast/network/transport/TransportLossStats.java index ddfa402..9b82aa9 100644 --- a/app/src/main/java/com/foxx/androidcast/network/transport/TransportLossStats.java +++ b/app/src/main/java/com/foxx/androidcast/network/transport/TransportLossStats.java @@ -29,6 +29,14 @@ public final class TransportLossStats { public long recvDamagedVideoFrames; public StreamProtectionMode protectionMode = StreamProtectionMode.NONE; + public long fecPacketsEncoded; + public long fecPacketsDecoded; + public long fecDecodeFailures; + public long nackRequestsSent; + public long nackRequestsReceived; + public long nackRetransmits; + public long nackCacheMisses; + /** Legacy wire stats (mirrors real counters). */ public long fecPacketsStub; public long nackRequestsStub; public long nackRetransmitsStub; @@ -56,6 +64,13 @@ public final class TransportLossStats { recvAudioDecodeErrors += other.recvAudioDecodeErrors; recvAudioQueueDrops += other.recvAudioQueueDrops; recvDamagedVideoFrames += other.recvDamagedVideoFrames; + fecPacketsEncoded += other.fecPacketsEncoded; + fecPacketsDecoded += other.fecPacketsDecoded; + fecDecodeFailures += other.fecDecodeFailures; + nackRequestsSent += other.nackRequestsSent; + nackRequestsReceived += other.nackRequestsReceived; + nackRetransmits += other.nackRetransmits; + nackCacheMisses += other.nackCacheMisses; fecPacketsStub += other.fecPacketsStub; nackRequestsStub += other.nackRequestsStub; nackRetransmitsStub += other.nackRetransmitsStub; @@ -84,12 +99,26 @@ public final class TransportLossStats { c.recvAudioQueueDrops = recvAudioQueueDrops; c.recvDamagedVideoFrames = recvDamagedVideoFrames; c.protectionMode = protectionMode; + c.fecPacketsEncoded = fecPacketsEncoded; + c.fecPacketsDecoded = fecPacketsDecoded; + c.fecDecodeFailures = fecDecodeFailures; + c.nackRequestsSent = nackRequestsSent; + c.nackRequestsReceived = nackRequestsReceived; + c.nackRetransmits = nackRetransmits; + c.nackCacheMisses = nackCacheMisses; c.fecPacketsStub = fecPacketsStub; c.nackRequestsStub = nackRequestsStub; c.nackRetransmitsStub = nackRetransmitsStub; return c; } + /** Sync legacy fields for network stats wire format. */ + public synchronized void publishLegacyCounters() { + fecPacketsStub = fecPacketsEncoded; + nackRequestsStub = nackRequestsSent + nackRequestsReceived; + nackRetransmitsStub = nackRetransmits; + } + /** Estimated UDP loss: incomplete reassembly + invalid, not double-counting fragments. */ public synchronized long estimatedUdpLossEvents() { return reassemblyIncomplete + reassemblySuperseded + datagramsInvalid + malformedPackets; diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/TransportLossStatsBridge.java b/app/src/main/java/com/foxx/androidcast/network/transport/TransportLossStatsBridge.java index ee90f8b..340f4e5 100644 --- a/app/src/main/java/com/foxx/androidcast/network/transport/TransportLossStatsBridge.java +++ b/app/src/main/java/com/foxx/androidcast/network/transport/TransportLossStatsBridge.java @@ -11,6 +11,7 @@ public final class TransportLossStatsBridge { return; } synchronized (loss) { + loss.publishLegacyCounters(); s.udpDatagramsRx = loss.datagramsReceived; s.udpDatagramsTx = loss.datagramsSent; s.udpDatagramsInvalid = loss.datagramsInvalid; @@ -31,8 +32,8 @@ public final class TransportLossStatsBridge { s.recvAudioQueueDrops = loss.recvAudioQueueDrops; s.recvDamagedVideoFrames = loss.recvDamagedVideoFrames; s.protectionMode = loss.protectionMode.name(); - s.fecStubPackets = loss.fecPacketsStub; - s.nackStubRequests = loss.nackRequestsStub; + s.fecStubPackets = loss.fecPacketsEncoded; + s.nackStubRequests = loss.nackRequestsSent + loss.nackRequestsReceived; long lossEvents = loss.estimatedUdpLossEvents(); if (loss.datagramsReceived > 0 && lossEvents > 0) { s.lossRatio = Math.min(1f, lossEvents / (float) loss.datagramsReceived); diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/fec/GaloisField.java b/app/src/main/java/com/foxx/androidcast/network/transport/fec/GaloisField.java new file mode 100644 index 0000000..bae9745 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/fec/GaloisField.java @@ -0,0 +1,64 @@ +package com.foxx.androidcast.network.transport.fec; + +/** GF(2^8) arithmetic for Reed-Solomon. */ +final class GaloisField { + private static final int[] EXP = new int[512]; + private static final int[] LOG = new int[256]; + + static { + int x = 1; + for (int i = 0; i < 255; i++) { + EXP[i] = x; + LOG[x] = i; + x <<= 1; + if ((x & 0x100) != 0) { + x ^= 0x11D; + } + } + for (int i = 255; i < 512; i++) { + EXP[i] = EXP[i - 255]; + } + } + + private GaloisField() {} + + static int add(int a, int b) { + return a ^ b; + } + + static int mul(int a, int b) { + if (a == 0 || b == 0) { + return 0; + } + return EXP[LOG[a] + LOG[b]]; + } + + static int div(int a, int b) { + if (b == 0) { + throw new ArithmeticException("divide by zero"); + } + if (a == 0) { + return 0; + } + return EXP[(LOG[a] - LOG[b] + 255) % 255]; + } + + static int pow(int a, int power) { + if (power == 0) { + return 1; + } + if (a == 0) { + return 0; + } + return EXP[(LOG[a] * power) % 255]; + } + + static void mulAddInto(byte[] dst, byte[] src, int coeff) { + if (coeff == 0) { + return; + } + for (int i = 0; i < dst.length && i < src.length; i++) { + dst[i] ^= mul(src[i] & 0xFF, coeff); + } + } +} diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/fec/ProtectionEnvelope.java b/app/src/main/java/com/foxx/androidcast/network/transport/fec/ProtectionEnvelope.java new file mode 100644 index 0000000..a27b0c2 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/fec/ProtectionEnvelope.java @@ -0,0 +1,151 @@ +package com.foxx.androidcast.network.transport.fec; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +/** Serialized FEC-protected UDP message body (before ACUD fragmentation). */ +public final class ProtectionEnvelope { + private static final byte[] MAGIC = {'A', 'C', 'P', 'F'}; + public static final byte VERSION = 1; + private static final int HEADER_BYTES = 9; + private static final int MAX_ORIGINAL_LENGTH = 16 * 1024 * 1024; + + public static final byte MODE_FEC_34 = 1; + public static final byte MODE_REED_SOLOMON = 2; + public static final byte MODE_FEC_NACK = 3; + + private ProtectionEnvelope() {} + + public static byte[] encode(byte mode, int dataShards, int parityShards, byte[] payload) throws IOException { + ReedSolomonFec fec = new ReedSolomonFec(dataShards, parityShards); + byte[][] shards = fec.encode(payload); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(bos); + dos.write(MAGIC); + dos.writeByte(VERSION); + dos.writeByte(mode); + dos.writeInt(payload.length); + dos.writeByte(dataShards); + dos.writeByte(parityShards); + dos.writeByte(shards[0].length); + for (byte[] shard : shards) { + dos.write(shard); + } + return bos.toByteArray(); + } + + public static Decoded tryDecode(byte[] wire) { + if (wire == null || wire.length < MAGIC.length + 10) { + return null; + } + for (int i = 0; i < MAGIC.length; i++) { + if (wire[i] != MAGIC[i]) { + return null; + } + } + try { + DataInputStream dis = new DataInputStream(new ByteArrayInputStream(wire, MAGIC.length, + wire.length - MAGIC.length)); + byte ver = dis.readByte(); + if (ver != VERSION) { + return null; + } + byte mode = dis.readByte(); + int originalLen = dis.readInt(); + int dataShards = dis.readUnsignedByte(); + int parityShards = dis.readUnsignedByte(); + int shardSize = dis.readUnsignedByte(); + if (!isValidHeader(dataShards, parityShards, shardSize, originalLen)) { + return null; + } + int total = dataShards + parityShards; + int expectedLen = MAGIC.length + HEADER_BYTES + total * shardSize; + if (wire.length < expectedLen) { + return null; + } + byte[][] shards = new byte[total][shardSize]; + for (int i = 0; i < total; i++) { + dis.readFully(shards[i]); + } + ReedSolomonFec fec = new ReedSolomonFec(dataShards, parityShards); + byte[] payload = fec.decode(shards, originalLen); + if (payload == null) { + return Decoded.incomplete(mode, dataShards, parityShards); + } + return Decoded.ok(mode, payload); + } catch (IOException | RuntimeException e) { + return null; + } + } + + public static boolean isProtected(byte[] wire) { + if (wire == null || wire.length < MAGIC.length + HEADER_BYTES + 1) { + return false; + } + for (int i = 0; i < MAGIC.length; i++) { + if (wire[i] != MAGIC[i]) { + return false; + } + } + try { + DataInputStream dis = new DataInputStream(new ByteArrayInputStream(wire, MAGIC.length, + wire.length - MAGIC.length)); + if (dis.readByte() != VERSION) { + return false; + } + dis.readByte(); + int originalLen = dis.readInt(); + int dataShards = dis.readUnsignedByte(); + int parityShards = dis.readUnsignedByte(); + int shardSize = dis.readUnsignedByte(); + if (!isValidHeader(dataShards, parityShards, shardSize, originalLen)) { + return false; + } + return wire.length >= MAGIC.length + HEADER_BYTES + (dataShards + parityShards) * shardSize; + } catch (IOException e) { + return false; + } + } + + private static boolean isValidHeader(int dataShards, int parityShards, int shardSize, int originalLen) { + if (dataShards < 1 || parityShards < 1 || dataShards + parityShards > 255) { + return false; + } + if (shardSize < 1) { + return false; + } + if (originalLen < 1 || originalLen > MAX_ORIGINAL_LENGTH) { + return false; + } + long maxRecoverable = (long) dataShards * shardSize; + return originalLen <= maxRecoverable; + } + + public static final class Decoded { + public final boolean complete; + public final byte mode; + public final byte[] payload; + public final int dataShards; + public final int parityShards; + + private Decoded(boolean complete, byte mode, byte[] payload, int dataShards, int parityShards) { + this.complete = complete; + this.mode = mode; + this.payload = payload; + this.dataShards = dataShards; + this.parityShards = parityShards; + } + + static Decoded ok(byte mode, byte[] payload) { + return new Decoded(true, mode, payload, 0, 0); + } + + static Decoded incomplete(byte mode, int dataShards, int parityShards) { + return new Decoded(false, mode, null, dataShards, parityShards); + } + } +} diff --git a/app/src/main/java/com/foxx/androidcast/network/transport/fec/ReedSolomonFec.java b/app/src/main/java/com/foxx/androidcast/network/transport/fec/ReedSolomonFec.java new file mode 100644 index 0000000..8b9481f --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/network/transport/fec/ReedSolomonFec.java @@ -0,0 +1,175 @@ +package com.foxx.androidcast.network.transport.fec; + +import java.util.Arrays; + +/** + * Reed-Solomon erasure code over GF(256). Requires any {@code dataShards} of + * {@code dataShards + parityShards} shards to recover the payload. + */ +public final class ReedSolomonFec { + private final int dataShards; + private final int parityShards; + private final int totalShards; + private final int[] encodeMatrix; + + public ReedSolomonFec(int dataShards, int parityShards) { + if (dataShards < 1 || parityShards < 1 || dataShards + parityShards > 255) { + throw new IllegalArgumentException("Invalid shard counts"); + } + this.dataShards = dataShards; + this.parityShards = parityShards; + this.totalShards = dataShards + parityShards; + this.encodeMatrix = buildEncodeMatrix(dataShards, parityShards); + } + + public int dataShards() { + return dataShards; + } + + public int parityShards() { + return parityShards; + } + + public int totalShards() { + return totalShards; + } + + public static int shardSizeFor(int payloadLength, int dataShards) { + return Math.max(1, (payloadLength + dataShards - 1) / dataShards); + } + + public byte[][] encode(byte[] payload) { + int shardSize = shardSizeFor(payload.length, dataShards); + byte[][] shards = new byte[totalShards][shardSize]; + for (int i = 0; i < dataShards; i++) { + int off = i * shardSize; + int len = Math.min(shardSize, Math.max(0, payload.length - off)); + if (len > 0) { + System.arraycopy(payload, off, shards[i], 0, len); + } + } + for (int p = 0; p < parityShards; p++) { + for (int d = 0; d < dataShards; d++) { + int coeff = encodeMatrix[p * dataShards + d] & 0xFF; + GaloisField.mulAddInto(shards[dataShards + p], shards[d], coeff); + } + } + return shards; + } + + public byte[] decode(byte[][] shards, int originalLength) { + if (shards == null || shards.length != totalShards) { + return null; + } + int shardSize = 0; + for (byte[] s : shards) { + if (s != null && s.length > shardSize) { + shardSize = s.length; + } + } + if (shardSize == 0) { + return null; + } + int[] idx = new int[dataShards]; + int found = 0; + for (int i = 0; i < totalShards && found < dataShards; i++) { + if (shards[i] != null) { + idx[found++] = i; + } + } + if (found < dataShards) { + return null; + } + int[][] matrix = new int[dataShards][dataShards]; + for (int row = 0; row < dataShards; row++) { + int shardIndex = idx[row]; + if (shardIndex < dataShards) { + matrix[row][shardIndex] = 1; + } else { + int p = shardIndex - dataShards; + for (int col = 0; col < dataShards; col++) { + matrix[row][col] = encodeMatrix[p * dataShards + col] & 0xFF; + } + } + } + int[][] inv = invertMatrix(matrix); + if (inv == null) { + return null; + } + byte[][] data = new byte[dataShards][shardSize]; + for (int row = 0; row < dataShards; row++) { + Arrays.fill(data[row], (byte) 0); + for (int col = 0; col < dataShards; col++) { + int coeff = inv[row][col] & 0xFF; + if (coeff != 0) { + GaloisField.mulAddInto(data[row], shards[idx[col]], coeff); + } + } + } + byte[] out = new byte[originalLength]; + int shardSizeOut = shardSizeFor(originalLength, dataShards); + for (int i = 0; i < dataShards; i++) { + int off = i * shardSizeOut; + int len = Math.min(shardSizeOut, originalLength - off); + if (len > 0) { + len = Math.min(len, data[i].length); + System.arraycopy(data[i], 0, out, off, len); + } + } + return out; + } + + private static int[] buildEncodeMatrix(int k, int m) { + int[] matrix = new int[m * k]; + for (int row = 0; row < m; row++) { + for (int col = 0; col < k; col++) { + matrix[row * k + col] = GaloisField.pow((row + 1) & 0xFF, col); + } + } + return matrix; + } + + private static int[][] invertMatrix(int[][] matrix) { + int n = matrix.length; + int[][] aug = new int[n][2 * n]; + for (int i = 0; i < n; i++) { + System.arraycopy(matrix[i], 0, aug[i], 0, n); + aug[i][n + i] = 1; + } + for (int col = 0; col < n; col++) { + int pivot = -1; + for (int row = col; row < n; row++) { + if (aug[row][col] != 0) { + pivot = row; + break; + } + } + if (pivot < 0) { + return null; + } + if (pivot != col) { + int[] tmp = aug[pivot]; + aug[pivot] = aug[col]; + aug[col] = tmp; + } + int inv = GaloisField.div(1, aug[col][col]); + for (int j = 0; j < 2 * n; j++) { + aug[col][j] = GaloisField.mul(aug[col][j], inv); + } + for (int row = 0; row < n; row++) { + if (row == col || aug[row][col] == 0) { + continue; + } + int factor = aug[row][col]; + for (int j = 0; j < 2 * n; j++) { + aug[row][j] = GaloisField.add(aug[row][j], GaloisField.mul(factor, aug[col][j])); + } + } + } + int[][] out = new int[n][n]; + for (int i = 0; i < n; i++) { + System.arraycopy(aug[i], n, out[i], 0, n); + } + return out; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/receiver/ReceiverCastService.java b/app/src/main/java/com/foxx/androidcast/receiver/ReceiverCastService.java index d4fd588..c0930eb 100644 --- a/app/src/main/java/com/foxx/androidcast/receiver/ReceiverCastService.java +++ b/app/src/main/java/com/foxx/androidcast/receiver/ReceiverCastService.java @@ -25,6 +25,11 @@ import com.foxx.androidcast.IntentExtras; import com.foxx.androidcast.R; import com.foxx.androidcast.CastConfig; import com.foxx.androidcast.diagnostics.CastDiagnosticsFormatter; +import com.foxx.androidcast.media.codec.CodecSessionRegistry; +import com.foxx.androidcast.media.codec.PassthroughCodecPolicy; +import com.foxx.androidcast.media.codec.VideoCodecBackend; +import com.foxx.androidcast.media.codec.VideoDecoderFactory; +import com.foxx.androidcast.media.codec.VideoDecoderSink; import com.foxx.androidcast.discovery.DiscoveryManager; import com.foxx.androidcast.network.transport.TransportLossStats; import com.foxx.androidcast.network.transport.TransportLossStatsBridge; @@ -59,7 +64,7 @@ public class ReceiverCastService extends Service { private DiscoveryManager discovery; private ReceiverSession session; - private VideoDecoder videoDecoder; + private VideoDecoderSink videoDecoder; private AudioDecoder audioDecoder; private Surface attachedSurface; private String status = ""; @@ -221,7 +226,7 @@ public class ReceiverCastService extends Service { audioDecoder.release(); } } - videoDecoder = new VideoDecoder(); + videoDecoder = VideoDecoderFactory.createDecoder(); synchronized (audioDecoderLock) { audioDecoder = new AudioDecoder(this); audioDecoder.setRenderCallback((pcmBytes, levels) -> streamMetrics.onAudioRendered( @@ -469,7 +474,7 @@ public class ReceiverCastService extends Service { resetDecoderState(); if (videoDecoder != null) { videoDecoder.release(); - videoDecoder = new VideoDecoder(); + videoDecoder = VideoDecoderFactory.createDecoder(); } if (fullReset) { streamMetrics.reset(); @@ -653,11 +658,24 @@ public class ReceiverCastService extends Service { if (videoDecoder != null) { videoDecoder.release(); } - videoDecoder = new VideoDecoder(); + videoDecoder = VideoDecoderFactory.createDecoder(); String mime = negotiatedVideoMime != null ? negotiatedVideoMime : android.media.MediaFormat.MIMETYPE_VIDEO_AVC; + CodecSessionRegistry.setVideoBackend(VideoCodecBackend.MEDIA_CODEC_HW, mime); + if (remoteCastSettings != null) { + CodecSessionRegistry.setVideoPreference(remoteCastSettings.getVideoCodec()); + CodecSessionRegistry.setAudioPreference(remoteCastSettings.getAudioCodec()); + CodecSessionRegistry.setAudioBackend( + PassthroughCodecPolicy.audioBackendFor( + remoteCastSettings.getAudioCodec(), + remoteCastSettings.isAudioRequested())); + CodecSessionRegistry.setProtectionSummary(PassthroughCodecPolicy.protectionDescription( + remoteCastSettings.getStreamProtection(), + remoteCastSettings.getTransport(), + remoteCastSettings.getAudioCodec())); + } videoDecoder.configure(mime, pendingWidth, pendingHeight, pendingCsd0, pendingCsd1, attachedSurface, - new VideoDecoder.Listener() { + new VideoDecoderSink.Listener() { @Override public void onFirstFrameRendered() { ReceiverCastService.this.onFirstFrameRendered(); @@ -807,7 +825,7 @@ public class ReceiverCastService extends Service { resetDecoderState(); if (videoDecoder != null) { videoDecoder.release(); - videoDecoder = new VideoDecoder(); + videoDecoder = VideoDecoderFactory.createDecoder(); } } @@ -907,6 +925,7 @@ public class ReceiverCastService extends Service { } } attachedSurface = null; + CodecSessionRegistry.clear(); } private void stopSelfSafely() { diff --git a/app/src/main/java/com/foxx/androidcast/receiver/ReceiverSession.java b/app/src/main/java/com/foxx/androidcast/receiver/ReceiverSession.java index eb6430f..3660440 100644 --- a/app/src/main/java/com/foxx/androidcast/receiver/ReceiverSession.java +++ b/app/src/main/java/com/foxx/androidcast/receiver/ReceiverSession.java @@ -14,6 +14,8 @@ import com.foxx.androidcast.network.CastSession; import com.foxx.androidcast.network.CastSessionGate; import com.foxx.androidcast.network.CastTransport; import com.foxx.androidcast.network.CastTransportFactory; +import com.foxx.androidcast.network.UdpCastTransport; +import com.foxx.androidcast.network.quic.QuicCronetCastTransport; import com.foxx.androidcast.network.transport.TransportLossStats; import com.foxx.androidcast.network.control.NetworkFeedbackManager; import com.foxx.androidcast.network.control.NetworkStatsSnapshot; @@ -159,6 +161,7 @@ public class ReceiverSession { } session.acceptClient(); CastSession.HandshakeResult hs = session.serverHandshake(pin, localSettings); + applyNegotiatedProtection(hs.settings); listener.onAuthenticated(hs.senderName, hs.settings, hs.negotiatedVideoMime); postStatus("Streaming from " + hs.senderName); readStream(); @@ -272,6 +275,21 @@ public class ReceiverSession { || msg.contains("Broken pipe"); } + private void applyNegotiatedProtection(CastSettings remoteSettings) { + if (listenTransport == null) { + return; + } + UdpCastTransport udp = null; + if (listenTransport instanceof UdpCastTransport) { + udp = (UdpCastTransport) listenTransport; + } else if (listenTransport instanceof QuicCronetCastTransport) { + udp = ((QuicCronetCastTransport) listenTransport).getUdpTransport(); + } + if (udp != null) { + CastTransportFactory.applyNegotiatedUdpProtection(udp, localSettings, remoteSettings); + } + } + private void postStatus(String status) { listener.onStatus(status); } diff --git a/app/src/main/java/com/foxx/androidcast/receiver/VideoDecoder.java b/app/src/main/java/com/foxx/androidcast/receiver/VideoDecoder.java index dd11685..a84d58a 100644 --- a/app/src/main/java/com/foxx/androidcast/receiver/VideoDecoder.java +++ b/app/src/main/java/com/foxx/androidcast/receiver/VideoDecoder.java @@ -7,6 +7,7 @@ import android.view.Surface; import com.foxx.androidcast.media.CodecNegotiator; import com.foxx.androidcast.media.H264Bitstream; +import com.foxx.androidcast.media.codec.VideoDecoderSink; import java.io.IOException; import java.nio.ByteBuffer; @@ -14,31 +15,21 @@ import java.util.ArrayDeque; import java.util.Queue; /** Thread-safe hardware video decoder feeding a Surface. */ -public class VideoDecoder { +public class VideoDecoder implements VideoDecoderSink { private static final String TAG = "VideoDecoder"; - public interface Listener { - void onFirstFrameRendered(); - - /** Called for each frame after the first. */ - default void onFrameRendered() {} - - /** Decoder output size (may differ from stream config crop). */ - default void onOutputSizeChanged(int width, int height) {} - } - private final Object lock = new Object(); private MediaCodec codec; private final Queue pending = new ArrayDeque<>(); private boolean configured; private boolean released; - private Listener listener; + private VideoDecoderSink.Listener listener; private boolean firstFrameNotified; private String mime = MediaFormat.MIMETYPE_VIDEO_AVC; public void configure(String mime, int width, int height, byte[] csd0, byte[] csd1, Surface surface, - Listener listener) throws IOException { + VideoDecoderSink.Listener listener) throws IOException { synchronized (lock) { releaseLocked(); released = false; diff --git a/app/src/main/java/com/foxx/androidcast/sender/AudioEncoder.java b/app/src/main/java/com/foxx/androidcast/sender/AudioEncoder.java index 04ef09e..4b07f90 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/AudioEncoder.java +++ b/app/src/main/java/com/foxx/androidcast/sender/AudioEncoder.java @@ -6,21 +6,16 @@ import android.media.MediaFormat; import android.util.Log; import com.foxx.androidcast.CastConfig; +import com.foxx.androidcast.media.codec.AudioEncoderSink; import java.io.IOException; import java.nio.ByteBuffer; /** AAC encoder for captured PCM. */ -public class AudioEncoder { +public class AudioEncoder implements AudioEncoderSink { private static final String TAG = "AudioEncoder"; private static final String MIME = MediaFormat.MIMETYPE_AUDIO_AAC; - public interface Callback { - void onConfig(int sampleRate, int channels, byte[] csd0); - - void onEncodedFrame(long ptsUs, byte[] data); - } - private final Object inputLock = new Object(); private MediaCodec codec; private Callback callback; diff --git a/app/src/main/java/com/foxx/androidcast/sender/CodecCatalog.java b/app/src/main/java/com/foxx/androidcast/sender/CodecCatalog.java index 4a1875b..5d786af 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/CodecCatalog.java +++ b/app/src/main/java/com/foxx/androidcast/sender/CodecCatalog.java @@ -16,20 +16,59 @@ import java.util.Set; public final class CodecCatalog { private CodecCatalog() {} - public static List supportedChoices() { - List out = new ArrayList<>(); - out.add(CastSettings.VideoCodec.AUTO); + public static final class VideoCodecChoice { + public final CastSettings.VideoCodec codec; + public final boolean selectable; + + public VideoCodecChoice(CastSettings.VideoCodec codec, boolean selectable) { + this.codec = codec; + this.selectable = selectable; + } + } + + public static final class AudioCodecChoice { + public final CastSettings.AudioCodec codec; + public final boolean selectable; + + public AudioCodecChoice(CastSettings.AudioCodec codec, boolean selectable) { + this.codec = codec; + this.selectable = selectable; + } + } + + /** Selectable + disabled future codecs for settings spinners. */ + public static List videoCodecChoicesForUi() { + List out = new ArrayList<>(); + out.add(new VideoCodecChoice(CastSettings.VideoCodec.AUTO, true)); Set enc = new LinkedHashSet<>(localEncoderMimes()); if (enc.contains(MediaFormat.MIMETYPE_VIDEO_AVC)) { - out.add(CastSettings.VideoCodec.H264); + out.add(new VideoCodecChoice(CastSettings.VideoCodec.H264, true)); } if (enc.contains(MediaFormat.MIMETYPE_VIDEO_HEVC)) { - out.add(CastSettings.VideoCodec.H265); + out.add(new VideoCodecChoice(CastSettings.VideoCodec.H265, true)); } - if (enc.contains(MediaFormat.MIMETYPE_VIDEO_VP8) || enc.contains(MediaFormat.MIMETYPE_VIDEO_VP9)) { - // UI lists AUTO; VP8/VP9 chosen via negotiation when both sides support + out.add(new VideoCodecChoice(CastSettings.VideoCodec.LIBVPX_VP8, true)); + out.add(new VideoCodecChoice(CastSettings.VideoCodec.LIBVPX_VP9, true)); + out.add(new VideoCodecChoice(CastSettings.VideoCodec.PASSTHROUGH, true)); + return out; + } + + public static List audioCodecChoicesForUi() { + List out = new ArrayList<>(); + out.add(new AudioCodecChoice(CastSettings.AudioCodec.AUTO, true)); + out.add(new AudioCodecChoice(CastSettings.AudioCodec.AAC, true)); + out.add(new AudioCodecChoice(CastSettings.AudioCodec.SPEEX, true)); + out.add(new AudioCodecChoice(CastSettings.AudioCodec.OPUS, true)); + return out; + } + + public static List supportedChoices() { + List out = new ArrayList<>(); + for (VideoCodecChoice c : videoCodecChoicesForUi()) { + if (c.selectable) { + out.add(c.codec); + } } - out.add(CastSettings.VideoCodec.PASSTHROUGH); return out; } diff --git a/app/src/main/java/com/foxx/androidcast/sender/EncoderKeepalive.java b/app/src/main/java/com/foxx/androidcast/sender/EncoderKeepalive.java index 6d0c1b8..e2747c3 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/EncoderKeepalive.java +++ b/app/src/main/java/com/foxx/androidcast/sender/EncoderKeepalive.java @@ -5,6 +5,7 @@ import android.os.Looper; import android.util.Log; import com.foxx.androidcast.CastConfig; +import com.foxx.androidcast.media.codec.VideoEncoderSink; /** * Periodic keyframe requests so Mediatek/others don't stall on a static screen @@ -14,7 +15,7 @@ public final class EncoderKeepalive { private static final String TAG = "EncoderKeepalive"; private final Handler handler; - private VideoEncoder encoder; + private VideoEncoderSink encoder; private boolean running; public EncoderKeepalive() { @@ -37,7 +38,7 @@ public final class EncoderKeepalive { } }; - public void start(VideoEncoder encoder) { + public void start(VideoEncoderSink encoder) { this.encoder = encoder; if (running) { return; diff --git a/app/src/main/java/com/foxx/androidcast/sender/MultiCastCoordinator.java b/app/src/main/java/com/foxx/androidcast/sender/MultiCastCoordinator.java index 21f09bd..4f5b5b0 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/MultiCastCoordinator.java +++ b/app/src/main/java/com/foxx/androidcast/sender/MultiCastCoordinator.java @@ -9,7 +9,10 @@ import com.foxx.androidcast.network.CastCodecFlags; import com.foxx.androidcast.network.CastFramingContext; import com.foxx.androidcast.network.CastProtocol; import com.foxx.androidcast.network.CastSession; +import com.foxx.androidcast.network.CastTransport; import com.foxx.androidcast.network.CastTransportFactory; +import com.foxx.androidcast.network.UdpCastTransport; +import com.foxx.androidcast.network.quic.QuicCronetCastTransport; import java.io.IOException; import java.util.ArrayList; @@ -96,6 +99,7 @@ public final class MultiCastCoordinator { session = createSession(peerSettings); connectWithRetry(session, t.host, t.port); CastSession.HandshakeResult hs = session.clientHandshake(deviceName, pin, peerSettings); + applyNegotiatedProtection(session, peerSettings, hs.settings); peers.add(new ActivePeer(t, session, hs.settings, hs.negotiatedVideoMime)); Log.i(TAG, "Peer ready " + t.name + " " + hs.negotiatedVideoMime); } catch (IOException e) { @@ -121,6 +125,7 @@ public final class MultiCastCoordinator { CastSession session = createSession(peerSettings); connectWithRetry(session, target.host, target.port); CastSession.HandshakeResult hs = session.clientHandshake(deviceName, pin, peerSettings); + applyNegotiatedProtection(session, peerSettings, hs.settings); peers.add(new ActivePeer(target, session, hs.settings, hs.negotiatedVideoMime)); if (keyframeRequester != null) { keyframeRequester.requestKeyframe(); @@ -194,6 +199,23 @@ public final class MultiCastCoordinator { return session; } + private static void applyNegotiatedProtection(CastSession session, CastSettings local, + CastSettings remote) { + if (session == null) { + return; + } + CastTransport transport = session.getTransport(); + UdpCastTransport udp = null; + if (transport instanceof UdpCastTransport) { + udp = (UdpCastTransport) transport; + } else if (transport instanceof QuicCronetCastTransport) { + udp = ((QuicCronetCastTransport) transport).getUdpTransport(); + } + if (udp != null) { + CastTransportFactory.applyNegotiatedUdpProtection(udp, local, remote); + } + } + private void connectWithRetry(CastSession session, String host, int port) throws IOException { IOException last = null; for (int i = 0; i < CONNECT_RETRIES; i++) { diff --git a/app/src/main/java/com/foxx/androidcast/sender/ScreenCastService.java b/app/src/main/java/com/foxx/androidcast/sender/ScreenCastService.java index 633e3de..2b972ec 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/ScreenCastService.java +++ b/app/src/main/java/com/foxx/androidcast/sender/ScreenCastService.java @@ -41,6 +41,12 @@ import com.foxx.androidcast.network.control.NetworkStatsSnapshot; import com.foxx.androidcast.network.control.PassThroughNetworkControlPlane; import com.foxx.androidcast.network.transport.TransportLossStats; import com.foxx.androidcast.network.transport.TransportLossStatsBridge; +import com.foxx.androidcast.media.codec.AudioCodecFactory; +import com.foxx.androidcast.media.codec.CodecSessionRegistry; +import com.foxx.androidcast.media.codec.PassthroughCodecPolicy; +import com.foxx.androidcast.media.codec.VideoCodecFactory; +import com.foxx.androidcast.media.codec.VideoEncoderSink; +import com.foxx.androidcast.media.codec.AudioEncoderSink; import com.foxx.androidcast.stats.SessionStatsRecorder; import com.foxx.androidcast.stats.SessionStatsStore; @@ -81,13 +87,13 @@ public class ScreenCastService extends Service implements private MediaProjection projection; private VirtualDisplay virtualDisplay; - private VideoEncoder videoEncoder; + private VideoEncoderSink videoEncoder; private EncoderKeepalive encoderKeepalive; private CastTuningEngine.EffectiveParams effectiveParams; private long lastSignificantFrameMs; private final SenderStreamMetrics senderMetrics = new SenderStreamMetrics(); private final SenderAudioMetrics senderAudioMetrics = new SenderAudioMetrics(); - private AudioEncoder audioEncoder; + private AudioEncoderSink audioEncoder; private AudioCapture audioCapture; private long audioFramesSent; private volatile String audioCaptureMode = "playback"; @@ -464,8 +470,12 @@ public class ScreenCastService extends Service implements throw new IOException("No negotiated video codec"); } - videoEncoder = new VideoEncoder(); - VideoEncoder.Callback videoCb = buildVideoEncoderCallback(mime); + videoEncoder = VideoCodecFactory.createEncoder(settings.getVideoCodec()); + CodecSessionRegistry.setVideoBackend( + PassthroughCodecPolicy.videoBackendFor(settings.getVideoCodec()), mime); + CodecSessionRegistry.setProtectionSummary(PassthroughCodecPolicy.protectionDescription( + settings.getStreamProtection(), settings.getTransport(), settings.getAudioCodec())); + VideoEncoderSink.Callback videoCb = buildVideoEncoderCallback(mime); if (calibration) { startCalibrationVideoEncoder(mime, effectiveParams, videoCb, true); @@ -673,8 +683,10 @@ public class ScreenCastService extends Service implements if (audioCapture != null) { audioCapture.stop(); } - audioEncoder = new AudioEncoder(); - audioEncoder.prepare(new AudioEncoder.Callback() { + audioEncoder = AudioCodecFactory.createEncoder(settings.getAudioCodec()); + CodecSessionRegistry.setAudioBackend( + PassthroughCodecPolicy.audioBackendFor(settings.getAudioCodec(), true)); + audioEncoder.prepare(new AudioEncoderSink.Callback() { private boolean configSent; @Override @@ -951,8 +963,8 @@ public class ScreenCastService extends Service implements callbacks.finishBroadcast(); } - private VideoEncoder.Callback buildVideoEncoderCallback(String mime) { - return new VideoEncoder.Callback() { + private VideoEncoderSink.Callback buildVideoEncoderCallback(String mime) { + return new VideoEncoderSink.Callback() { @Override public void onConfig(int w, int h, byte[] csd0, byte[] csd1) { if (stopping.get()) { @@ -999,7 +1011,7 @@ public class ScreenCastService extends Service implements } private void startCalibrationVideoEncoder(String mime, CastTuningEngine.EffectiveParams params, - VideoEncoder.Callback videoCb, boolean tryGles) throws IOException { + VideoEncoderSink.Callback videoCb, boolean tryGles) throws IOException { if (encoderKeepalive != null) { encoderKeepalive.stop(); encoderKeepalive = null; @@ -1011,7 +1023,9 @@ public class ScreenCastService extends Service implements if (videoEncoder != null) { videoEncoder.stop(); } - videoEncoder = new VideoEncoder(); + CastSettings.VideoCodec vPref = activeSettings != null + ? activeSettings.getVideoCodec() : CastSettings.VideoCodec.AUTO; + videoEncoder = VideoCodecFactory.createEncoder(vPref); float density = getResources().getDisplayMetrics().density; calibrationDriver = new com.foxx.androidcast.sender.calibration.CalibrationCastDriver(this, this); if (tryGles) { diff --git a/app/src/main/java/com/foxx/androidcast/sender/SenderActivity.java b/app/src/main/java/com/foxx/androidcast/sender/SenderActivity.java index d76ce02..db1bbc8 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/SenderActivity.java +++ b/app/src/main/java/com/foxx/androidcast/sender/SenderActivity.java @@ -30,6 +30,7 @@ import com.foxx.androidcast.PermissionHelper; import com.foxx.androidcast.PlatformCastSupport; import com.foxx.androidcast.R; import com.foxx.androidcast.discovery.DiscoveryManager; +import com.foxx.androidcast.discovery.ReceiverCompatibility; import com.google.android.material.switchmaterial.SwitchMaterial; public class SenderActivity extends DrawerHostActivity { @@ -67,6 +68,8 @@ public class SenderActivity extends DrawerHostActivity { private boolean pendingCameraLaunch; private boolean previewConsentDeclined; private boolean previewConsentInFlight; + private final java.util.List lastDiscovered = + new java.util.ArrayList<>(); @Override protected int getContentLayoutId() { @@ -104,9 +107,6 @@ public class SenderActivity extends DrawerHostActivity { }; findViewById(R.id.text_preview_label).setOnClickListener(requestPreviewConsent); findViewById(R.id.texture_preview).setOnClickListener(requestPreviewConsent); - refreshPreview(); - maybeRequestPreviewConsent(); - ListView listView = findViewById(R.id.list_devices); listView.setChoiceMode(CastConfig.MULTI_RECEIVER_ENABLED ? ListView.CHOICE_MODE_MULTIPLE : ListView.CHOICE_MODE_SINGLE); @@ -140,10 +140,9 @@ public class SenderActivity extends DrawerHostActivity { discovery.setListener(new DiscoveryManager.Listener() { @Override public void onDevicesUpdated(java.util.List deviceList) { - deviceAdapter.setDevices(deviceList); - statusText.setText(deviceList.isEmpty() - ? getString(R.string.searching) - : getString(R.string.found_receivers, deviceList.size())); + lastDiscovered.clear(); + lastDiscovered.addAll(deviceList); + publishFilteredDevices(); } @Override @@ -177,12 +176,18 @@ public class SenderActivity extends DrawerHostActivity { startButton.setOnClickListener(v -> PlatformCastSupport.runWithAudioPolicy(this, castSettings, this::startCastFlow)); + + findViewById(R.id.panel_preview).post(() -> { + refreshPreview(); + maybeRequestPreviewConsent(); + }); } @Override protected void onResume() { super.onResume(); castSettings.copyFrom(AppPreferences.loadSenderDefaults(this)); + publishFilteredDevices(); muteSwitch.setChecked(!castSettings.isAudioRequested()); pinLocked = CastActiveState.isSenderCasting(); pinInput.setEnabled(!pinLocked); @@ -192,9 +197,35 @@ public class SenderActivity extends DrawerHostActivity { Toast.makeText(this, R.string.cast_in_progress_pin_locked, Toast.LENGTH_SHORT).show(); } refreshPreview(); + if (screenPreview.needsProjection(castSettings.getCaptureMode()) && screenPreview.hasConsent()) { + findViewById(R.id.panel_preview).post(this::refreshPreview); + } else if (!previewConsentDeclined && !previewConsentInFlight) { + findViewById(R.id.panel_preview).post(this::maybeRequestPreviewConsent); + } PermissionHelper.remindIfMissing(this, castSettings.isAudioEnabled()); } + private void publishFilteredDevices() { + if (deviceAdapter == null) { + return; + } + java.util.List compatible = new java.util.ArrayList<>(); + for (DiscoveryManager.DiscoveredDevice d : lastDiscovered) { + if (ReceiverCompatibility.isCompatible(d, castSettings)) { + compatible.add(d); + } + } + deviceAdapter.setDevices(compatible); + if (statusText == null) { + return; + } + statusText.setText(compatible.isEmpty() + ? (lastDiscovered.isEmpty() + ? getString(R.string.searching) + : getString(R.string.no_compatible_receivers)) + : getString(R.string.found_receivers, compatible.size())); + } + private void refreshPreview() { if (capturePreview == null) { return; @@ -375,7 +406,7 @@ public class SenderActivity extends DrawerHostActivity { return; } if (screenPreview.hasConsent()) { - screenPreview.stop(); + screenPreview.pauseForCastStart(); launchCastService(screenPreview.getProjectionData(), screenPreview.getProjectionResultCode()); return; } @@ -432,7 +463,7 @@ public class SenderActivity extends DrawerHostActivity { private void launchCastService(Intent projectionData, int resultCode) { if (screenPreview != null) { - screenPreview.stop(); + screenPreview.pauseForCastStart(); } pinLocked = true; pinInput.setEnabled(false); diff --git a/app/src/main/java/com/foxx/androidcast/sender/SenderCapturePreview.java b/app/src/main/java/com/foxx/androidcast/sender/SenderCapturePreview.java index 976fd9d..181be5d 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/SenderCapturePreview.java +++ b/app/src/main/java/com/foxx/androidcast/sender/SenderCapturePreview.java @@ -37,11 +37,22 @@ public final class SenderCapturePreview { private CameraDevice camera; private android.hardware.camera2.CameraCaptureSession session; private boolean useFront; + private CastSettings.CaptureMode activeMode = CastSettings.CaptureMode.FULL_SCREEN; public SenderCapturePreview(TextureView texture, TextView label, SenderScreenPreview screen) { this.textureView = texture; this.labelView = label; this.screenPreview = screen; + textureView.addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> { + if (right - left > 0 && bottom - top > 0 + && screenPreview != null + && screenPreview.needsProjection(activeMode) + && screenPreview.hasConsent()) { + labelView.setVisibility(android.view.View.GONE); + textureView.setVisibility(android.view.View.VISIBLE); + screenPreview.attach(textureView, activeMode); + } + }); } public SenderScreenPreview getScreenPreview() { @@ -49,6 +60,7 @@ public final class SenderCapturePreview { } public void updateForMode(CastSettings.CaptureMode mode) { + activeMode = mode; stopCamera(); if (mode == CastSettings.CaptureMode.CAMERA) { useFront = false; diff --git a/app/src/main/java/com/foxx/androidcast/sender/SenderScreenPreview.java b/app/src/main/java/com/foxx/androidcast/sender/SenderScreenPreview.java index 87d7619..ee970a4 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/SenderScreenPreview.java +++ b/app/src/main/java/com/foxx/androidcast/sender/SenderScreenPreview.java @@ -8,6 +8,8 @@ import android.hardware.display.DisplayManager; import android.hardware.display.VirtualDisplay; import android.media.projection.MediaProjection; import android.media.projection.MediaProjectionManager; +import android.os.Handler; +import android.os.Looper; import android.util.DisplayMetrics; import android.util.Log; import android.view.Surface; @@ -26,8 +28,11 @@ public final class SenderScreenPreview { private final Context appContext; private MediaProjection projection; private VirtualDisplay virtualDisplay; + private final Handler mainHandler = new Handler(Looper.getMainLooper()); private int resultCode; private Intent resultData; + private TextureView boundTexture; + private CastSettings.CaptureMode boundMode; public SenderScreenPreview(Context context) { appContext = context.getApplicationContext(); @@ -61,67 +66,99 @@ public final class SenderScreenPreview { } public void attach(TextureView textureView, CastSettings.CaptureMode mode) { - stop(); - if (!needsProjection(mode) || resultData == null) { + if (!needsProjection(mode) || !hasConsent()) { return; } - Runnable start = () -> startOnTexture(textureView, mode); - if (textureView.isAvailable()) { - start.run(); - } else { - textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() { + boundTexture = textureView; + boundMode = mode; + textureView.setSurfaceTextureListener(surfaceListener); + textureView.post(() -> ensureVirtualDisplay(textureView, mode)); + } + + private final TextureView.SurfaceTextureListener surfaceListener = + new TextureView.SurfaceTextureListener() { @Override public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { - startOnTexture(textureView, mode); + if (boundTexture != null && boundMode != null) { + ensureVirtualDisplay(boundTexture, boundMode); + } } @Override - public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {} + public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) { + if (boundTexture != null && boundMode != null && width > 0 && height > 0) { + ensureVirtualDisplay(boundTexture, boundMode); + } + } @Override public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { - stop(); + pausePreview(); return true; } @Override public void onSurfaceTextureUpdated(SurfaceTexture surface) {} - }); + }; + + private void ensureProjection() { + if (projection != null || resultData == null) { + return; } + MediaProjectionManager mgr = + appContext.getSystemService(MediaProjectionManager.class); + projection = mgr.getMediaProjection(resultCode, resultData); + if (projection == null) { + Log.w(TAG, "MediaProjection unavailable for preview"); + return; + } + projection.registerCallback(new MediaProjection.Callback() { + @Override + public void onStop() { + pausePreview(); + projection = null; + } + }, mainHandler); } - private void startOnTexture(TextureView textureView, CastSettings.CaptureMode mode) { + private void ensureVirtualDisplay(TextureView textureView, CastSettings.CaptureMode mode) { + if (!needsProjection(mode) || !hasConsent()) { + return; + } try { - MediaProjectionManager mgr = - appContext.getSystemService(MediaProjectionManager.class); - projection = mgr.getMediaProjection(resultCode, resultData); + ensureProjection(); if (projection == null) { return; } DisplayMetrics metrics = new DisplayMetrics(); WindowManager wm = (WindowManager) appContext.getSystemService(Context.WINDOW_SERVICE); wm.getDefaultDisplay().getRealMetrics(metrics); - int w = Math.max(320, textureView.getWidth() > 0 ? textureView.getWidth() : metrics.widthPixels / 3); - int h = Math.max(240, textureView.getHeight() > 0 ? textureView.getHeight() : metrics.heightPixels / 3); + int w = Math.max(320, textureView.getWidth() > 0 ? textureView.getWidth() : metrics.widthPixels / 2); + int h = Math.max(240, textureView.getHeight() > 0 ? textureView.getHeight() : metrics.heightPixels / 2); SurfaceTexture st = textureView.getSurfaceTexture(); if (st == null) { return; } st.setDefaultBufferSize(w, h); - Surface surface = new Surface(st); + if (virtualDisplay != null) { + virtualDisplay.resize(w, h, PREVIEW_DPI); + virtualDisplay.setSurface(new Surface(st)); + Log.i(TAG, "Screen preview resized " + w + "x" + h); + return; + } virtualDisplay = projection.createVirtualDisplay( "CastPreview", w, h, PREVIEW_DPI, DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, - surface, + new Surface(st), null, - null); + mainHandler); Log.i(TAG, "Screen preview " + w + "x" + h); } catch (Exception e) { - Log.w(TAG, "Screen preview failed: " + e.getMessage()); - stop(); + Log.w(TAG, "Screen preview failed: " + e.getMessage(), e); + pausePreview(); } } @@ -134,13 +171,25 @@ public final class SenderScreenPreview { } public void stop() { + boundTexture = null; + boundMode = null; pausePreview(); if (projection != null) { - projection.stop(); + try { + projection.stop(); + } catch (Exception ignored) { + } projection = null; } } + /** Pause preview surface only; keep MediaProjection consent for cast START. */ + public void pauseForCastStart() { + boundTexture = null; + boundMode = null; + pausePreview(); + } + /** Release consent and active capture (leaving sender screen). */ public void releaseConsent() { stop(); diff --git a/app/src/main/java/com/foxx/androidcast/sender/VideoEncoder.java b/app/src/main/java/com/foxx/androidcast/sender/VideoEncoder.java index 7a08cac..01a88d4 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/VideoEncoder.java +++ b/app/src/main/java/com/foxx/androidcast/sender/VideoEncoder.java @@ -11,20 +11,15 @@ import android.view.Surface; import com.foxx.androidcast.CastTuningEngine; import com.foxx.androidcast.media.RgbToYuv420; +import com.foxx.androidcast.media.codec.VideoEncoderSink; import java.io.IOException; import java.nio.ByteBuffer; -/** Hardware video encoder (H.264 / H.265) via MediaCodec. */ -public class VideoEncoder { +/** Hardware video encoder (H.264 / H.265 / VP8 / VP9) via MediaCodec. */ +public class VideoEncoder implements VideoEncoderSink { private static final String TAG = "VideoEncoder"; - public interface Callback { - void onConfig(int width, int height, byte[] csd0, byte[] csd1); - - void onEncodedFrame(long ptsUs, boolean keyFrame, byte[] data); - } - private MediaCodec codec; private Surface inputSurface; private boolean bufferInput; diff --git a/app/src/main/java/com/foxx/androidcast/sender/calibration/CalibrationCastDriver.java b/app/src/main/java/com/foxx/androidcast/sender/calibration/CalibrationCastDriver.java index 95cced0..db83713 100644 --- a/app/src/main/java/com/foxx/androidcast/sender/calibration/CalibrationCastDriver.java +++ b/app/src/main/java/com/foxx/androidcast/sender/calibration/CalibrationCastDriver.java @@ -9,7 +9,7 @@ import android.util.Log; import android.view.Surface; import com.foxx.androidcast.media.PcmLevelAnalyzer; -import com.foxx.androidcast.sender.VideoEncoder; +import com.foxx.androidcast.media.codec.VideoEncoderSink; /** * Renders calibration chart + VU border into the video encoder (GLES surface or YUV buffer fallback). @@ -19,7 +19,7 @@ public final class CalibrationCastDriver { private static final int EGL_FAIL_THRESHOLD = 5; public interface FallbackHost { - /** Recreate encoder with {@link VideoEncoder#prepareBufferInput} after GLES failure. */ + /** Recreate encoder with {@link VideoEncoderSink#prepareBufferInput} after GLES failure. */ void onCalibrationNeedBufferEncoder(); } @@ -33,7 +33,7 @@ public final class CalibrationCastDriver { private final Handler handler; private final FallbackHost fallbackHost; private CalibrationEglRenderer eglRenderer; - private VideoEncoder videoEncoder; + private VideoEncoderSink videoEncoder; private Bitmap chartBitmap; private Bitmap frameBitmap; private Canvas frameCanvas; @@ -62,7 +62,7 @@ public final class CalibrationCastDriver { } /** Preferred path: GLES into encoder {@link Surface}. */ - public void attachSurface(VideoEncoder encoder, Surface encoderSurface, int width, int height, float density) { + public void attachSurface(VideoEncoderSink encoder, Surface encoderSurface, int width, int height, float density) { this.videoEncoder = encoder; initBitmaps(width, height, density); eglFailures = 0; @@ -84,7 +84,7 @@ public final class CalibrationCastDriver { } /** Reliable path when GLES cannot use the encoder surface (e.g. EGL_BAD_ACCESS on MTK). */ - public void attachBuffer(VideoEncoder encoder, int width, int height, float density) { + public void attachBuffer(VideoEncoderSink encoder, int width, int height, float density) { this.videoEncoder = encoder; releaseEgl(); feedMode = FeedMode.YUV_BUFFER; diff --git a/app/src/main/java/com/foxx/androidcast/ui/SettingsEnumSpinner.java b/app/src/main/java/com/foxx/androidcast/ui/SettingsEnumSpinner.java new file mode 100644 index 0000000..c76b19f --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/ui/SettingsEnumSpinner.java @@ -0,0 +1,89 @@ +package com.foxx.androidcast.ui; + +import android.content.Context; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Spinner; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.foxx.androidcast.R; + +import java.util.ArrayList; +import java.util.List; + +/** Spinner with optional disabled rows (future codecs). */ +public final class SettingsEnumSpinner { + private SettingsEnumSpinner() {} + + public static void bind(Spinner spinner, T[] values, String[] labels, boolean[] selectable, + T current, java.util.function.Consumer onSelect) { + spinner.setTag(R.id.tag_spinner_enum, values); + spinner.setTag(R.id.tag_spinner_selectable, selectable); + DisabledAdapter adapter = new DisabledAdapter(spinner.getContext(), labels, selectable); + spinner.setBackgroundResource(R.drawable.bg_settings_spinner); + spinner.setAdapter(adapter); + spinner.setPopupBackgroundResource(R.drawable.bg_settings_spinner_popup); + final int[] selectedIndex = {0}; + for (int i = 0; i < values.length; i++) { + if (values[i].equals(current) && selectable[i]) { + selectedIndex[0] = i; + break; + } + } + spinner.setSelection(selectedIndex[0]); + adapter.setSelectedPosition(selectedIndex[0]); + SettingsStringArrayAdapter.wireSelectionRefresh(spinner, adapter); + spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView parent, View view, int position, long id) { + if (position < 0 || position >= values.length) { + return; + } + if (!selectable[position]) { + spinner.setSelection(selectedIndex[0]); + return; + } + selectedIndex[0] = position; + adapter.setSelectedPosition(position); + onSelect.accept(values[position]); + } + + @Override + public void onNothingSelected(AdapterView parent) {} + }); + } + + @SuppressWarnings("unchecked") + public static > T read(Spinner spinner, T fallback) { + Object tag = spinner.getTag(R.id.tag_spinner_enum); + Object selTag = spinner.getTag(R.id.tag_spinner_selectable); + if (!(tag instanceof Enum[]) || !(selTag instanceof boolean[])) { + return fallback; + } + Enum[] values = (Enum[]) tag; + boolean[] selectable = (boolean[]) selTag; + int pos = spinner.getSelectedItemPosition(); + if (pos >= 0 && pos < values.length && selectable[pos]) { + return (T) values[pos]; + } + return fallback; + } + + private static final class DisabledAdapter extends SettingsStringArrayAdapter { + private final boolean[] selectable; + + DisabledAdapter(Context context, String[] labels, boolean[] selectable) { + super(context, labels); + this.selectable = selectable; + } + + @Override + public boolean isEnabled(int position) { + return position >= 0 && position < selectable.length && selectable[position]; + } + } +} diff --git a/app/src/main/java/com/foxx/androidcast/ui/SettingsSpinnerDropdownStyle.java b/app/src/main/java/com/foxx/androidcast/ui/SettingsSpinnerDropdownStyle.java new file mode 100644 index 0000000..b379487 --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/ui/SettingsSpinnerDropdownStyle.java @@ -0,0 +1,62 @@ +package com.foxx.androidcast.ui; + +import android.graphics.Color; +import android.graphics.Typeface; +import android.view.View; +import android.widget.FrameLayout; +import android.widget.TextView; + +import androidx.core.content.ContextCompat; +import androidx.core.graphics.ColorUtils; + +import com.foxx.androidcast.R; + +/** Dropdown row styling for global settings spinners. */ +public final class SettingsSpinnerDropdownStyle { + private SettingsSpinnerDropdownStyle() {} + + public static void apply(View row, boolean selected, boolean enabled) { + if (row == null) { + return; + } + TextView tv = row.findViewById(R.id.spinner_dropdown_text); + if (tv == null && row instanceof TextView) { + tv = (TextView) row; + } + if (tv == null) { + return; + } + FrameLayout root = row.findViewById(R.id.spinner_dropdown_item_root); + if (root != null) { + root.setBackgroundResource(selected + ? R.drawable.bg_settings_spinner_item_selected + : R.drawable.bg_settings_spinner_item); + root.setAlpha(enabled ? 1f : 0.45f); + } + int textColor = ContextCompat.getColor(tv.getContext(), R.color.settings_spinner_text); + tv.setTextColor(textColor); + tv.setAlpha(enabled ? 1f : 0.45f); + tv.setTypeface(null, selected ? Typeface.BOLD : Typeface.NORMAL); + int shadowColor = ContextCompat.getColor(tv.getContext(), R.color.settings_spinner_text_shadow); + tv.setShadowLayer(selected ? 0f : 3f, 0f, 2f, shadowColor); + tv.getPaint().setUnderlineText(false); + if (selected) { + int underline = contrastUnderlineColor(textColor); + tv.setBackgroundResource(underlineBarDrawable(underline)); + } else { + tv.setBackgroundResource(0); + } + } + + private static int contrastUnderlineColor(int textColor) { + double lum = ColorUtils.calculateLuminance(textColor); + return lum > 0.55 ? Color.BLACK : Color.WHITE; + } + + private static int underlineBarDrawable(int color) { + if (color == Color.BLACK) { + return R.drawable.bg_spinner_item_underline_dark; + } + return R.drawable.bg_spinner_item_underline_light; + } +} diff --git a/app/src/main/java/com/foxx/androidcast/ui/SettingsStringArrayAdapter.java b/app/src/main/java/com/foxx/androidcast/ui/SettingsStringArrayAdapter.java new file mode 100644 index 0000000..33022da --- /dev/null +++ b/app/src/main/java/com/foxx/androidcast/ui/SettingsStringArrayAdapter.java @@ -0,0 +1,66 @@ +package com.foxx.androidcast.ui; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.Spinner; +import android.widget.TextView; + +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; + +import com.foxx.androidcast.R; + +/** Settings spinner adapter: plain row when closed, styled card rows in the dropdown. */ +public class SettingsStringArrayAdapter extends ArrayAdapter { + private final int dropdownLayout; + private int selectedPosition; + + public SettingsStringArrayAdapter(Context context, String[] labels) { + this(context, labels, R.layout.spinner_dropdown_item_settings); + } + + protected SettingsStringArrayAdapter(Context context, String[] labels, @LayoutRes int dropdownLayout) { + super(context, R.layout.spinner_item_settings, labels); + this.dropdownLayout = dropdownLayout; + } + + public void setSelectedPosition(int position) { + selectedPosition = position; + } + + public static void wireSelectionRefresh(Spinner spinner, SettingsStringArrayAdapter adapter) { + spinner.setOnTouchListener((v, event) -> { + if (event.getAction() == android.view.MotionEvent.ACTION_UP) { + adapter.setSelectedPosition(spinner.getSelectedItemPosition()); + adapter.notifyDataSetChanged(); + } + return false; + }); + } + + @Override + @NonNull + public View getView(int position, View convertView, @NonNull ViewGroup parent) { + TextView tv = (TextView) super.getView(position, convertView, parent); + tv.setText(getItem(position)); + tv.setAlpha(isEnabled(position) ? 1f : 0.45f); + return tv; + } + + @Override + public View getDropDownView(int position, View convertView, @NonNull ViewGroup parent) { + View row = convertView; + if (row == null) { + row = LayoutInflater.from(getContext()).inflate(dropdownLayout, parent, false); + } + TextView tv = row.findViewById(R.id.spinner_dropdown_text); + if (tv != null) { + tv.setText(getItem(position)); + } + SettingsSpinnerDropdownStyle.apply(row, position == selectedPosition, isEnabled(position)); + return row; + } +} diff --git a/app/src/main/res/color/settings_spinner_text.xml b/app/src/main/res/color/settings_spinner_text.xml new file mode 100644 index 0000000..8386006 --- /dev/null +++ b/app/src/main/res/color/settings_spinner_text.xml @@ -0,0 +1,4 @@ + + + + diff --git a/app/src/main/res/drawable/bg_settings_drawer_handle.xml b/app/src/main/res/drawable/bg_settings_drawer_handle.xml new file mode 100644 index 0000000..5c4c516 --- /dev/null +++ b/app/src/main/res/drawable/bg_settings_drawer_handle.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/app/src/main/res/drawable/bg_settings_spinner.xml b/app/src/main/res/drawable/bg_settings_spinner.xml new file mode 100644 index 0000000..cab0619 --- /dev/null +++ b/app/src/main/res/drawable/bg_settings_spinner.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/bg_settings_spinner_item.xml b/app/src/main/res/drawable/bg_settings_spinner_item.xml new file mode 100644 index 0000000..bd5607b --- /dev/null +++ b/app/src/main/res/drawable/bg_settings_spinner_item.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_settings_spinner_item_selected.xml b/app/src/main/res/drawable/bg_settings_spinner_item_selected.xml new file mode 100644 index 0000000..1464fbc --- /dev/null +++ b/app/src/main/res/drawable/bg_settings_spinner_item_selected.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_settings_spinner_popup.xml b/app/src/main/res/drawable/bg_settings_spinner_popup.xml new file mode 100644 index 0000000..a6a8843 --- /dev/null +++ b/app/src/main/res/drawable/bg_settings_spinner_popup.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/app/src/main/res/drawable/bg_spinner_item_underline_dark.xml b/app/src/main/res/drawable/bg_spinner_item_underline_dark.xml new file mode 100644 index 0000000..26177a3 --- /dev/null +++ b/app/src/main/res/drawable/bg_spinner_item_underline_dark.xml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_spinner_item_underline_light.xml b/app/src/main/res/drawable/bg_spinner_item_underline_light.xml new file mode 100644 index 0000000..93c0a03 --- /dev/null +++ b/app/src/main/res/drawable/bg_spinner_item_underline_light.xml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_developer_settings.xml b/app/src/main/res/layout/activity_developer_settings.xml new file mode 100644 index 0000000..0c3ab54 --- /dev/null +++ b/app/src/main/res/layout/activity_developer_settings.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/app/src/main/res/layout/activity_drawer_host.xml b/app/src/main/res/layout/activity_drawer_host.xml index 9040103..8abe7c2 100644 --- a/app/src/main/res/layout/activity_drawer_host.xml +++ b/app/src/main/res/layout/activity_drawer_host.xml @@ -6,9 +6,17 @@ android:fitsSystemWindows="true"> + android:layout_height="match_parent"> + + + + + + + + + + + + +