diff options
20 files changed, 168 insertions, 112 deletions
diff --git a/cmake/KodiConfig.cmake.in b/cmake/KodiConfig.cmake.in index 2a572e7..560374d 100644 --- a/cmake/KodiConfig.cmake.in +++ b/cmake/KodiConfig.cmake.in | |||
| @@ -25,12 +25,8 @@ list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake) | |||
| 25 | string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@") | 25 | string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@") |
| 26 | add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON) | 26 | add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON) |
| 27 | 27 | ||
| 28 | if(NOT CORE_SYSTEM_NAME) | 28 | set(CORE_SYSTEM_NAME @CORE_SYSTEM_NAME@) |
| 29 | if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") | 29 | set(PLATFORM @CORE_SYSTEM_NAME@) |
| 30 | set(CORE_SYSTEM_NAME "osx") | 30 | set(PLATFORM_TAG @PLATFORM_TAG@) |
| 31 | else() | ||
| 32 | string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME) | ||
| 33 | endif() | ||
| 34 | endif() | ||
| 35 | 31 | ||
| 36 | include(AddonHelpers) | 32 | include(AddonHelpers) |
diff --git a/cmake/README.md b/cmake/README.md index 8637da6..2febe48 100644 --- a/cmake/README.md +++ b/cmake/README.md | |||
| @@ -21,6 +21,26 @@ cmake ... -DENABLE_VAAPI=ON -DENABLE_VDPAU=OFF ... | |||
| 21 | 21 | ||
| 22 | Unfortunately, Kodi's CMake gazillion options are not fully documented yet. For more information and an updated list of options, please check the main **[CMakeLists.txt](../CMakeLists.txt)**. | 22 | Unfortunately, Kodi's CMake gazillion options are not fully documented yet. For more information and an updated list of options, please check the main **[CMakeLists.txt](../CMakeLists.txt)**. |
| 23 | 23 | ||
| 24 | ## Buildsystem variables | ||
| 25 | The buildsystem uses the following variables (which can be passed into it when executing cmake with the -D`<variable-name>=<value>` format) to manipulate the build process (see READMEs in sub-directories for additional variables): | ||
| 26 | - `CMAKE_BUILD_TYPE` specifies the type of the build. This can be either *Debug* or *Release* (default is *Release*) | ||
| 27 | - `CMAKE_TOOLCHAIN_FILE` can be used to pass a toolchain file | ||
| 28 | - `ARCH_DEFINES` specifies the platform-specific C/C++ preprocessor defines (defaults to empty) | ||
| 29 | |||
| 30 | ## Building | ||
| 31 | To trigger the cmake-based buildsystem the following command must be executed with `<path>` set to this directory (absolute or relative) allowing for in-source and out-of-source builds | ||
| 32 | |||
| 33 | `cmake <path> -G <generator>` | ||
| 34 | |||
| 35 | CMake supports multiple generators. See [here] (https://cmake.org/cmake/help/v3.1/manual/cmake-generators.7.html) for a list. | ||
| 36 | |||
| 37 | In case of additional options the call might look like this: | ||
| 38 | |||
| 39 | cmake `<path>` [-G `<generator>`] \ | ||
| 40 | -DCMAKE_BUILD_TYPE=Release \ | ||
| 41 | -DARCH_DEFINES="-DTARGET_LINUX" \ | ||
| 42 | -DCMAKE_INSTALL_PREFIX="`<path-to-install-directory`" | ||
| 43 | |||
| 24 | ## Tests | 44 | ## Tests |
| 25 | Kodi uses Google Test as its testing framework. Each test file is scanned for tests and these are added to CTest, which is the native test driver for CMake. | 45 | Kodi uses Google Test as its testing framework. Each test file is scanned for tests and these are added to CTest, which is the native test driver for CMake. |
| 26 | 46 | ||
diff --git a/cmake/addons/README.md b/cmake/addons/README.md index e04c834..dd222f5 100644 --- a/cmake/addons/README.md +++ b/cmake/addons/README.md | |||
| @@ -24,21 +24,18 @@ Available platforms are: linux, windows, osx, ios, android, rbpi and freebsd. | |||
| 24 | If no add-on definitions could be found, the buildsystem assumes that the bootstrapping of the add-on definition repositories hasn't been performed yet and automatically executes the add-on bootstrapping buildsystem located in the *bootstrap* sub-directory with the default settings (i.e. *all* add-ons from all pre-defined add-on definition repositories are bootstrapped into the directory pointed to by the *ADDONS_DEFINITION_DIR* option). | 24 | If no add-on definitions could be found, the buildsystem assumes that the bootstrapping of the add-on definition repositories hasn't been performed yet and automatically executes the add-on bootstrapping buildsystem located in the *bootstrap* sub-directory with the default settings (i.e. *all* add-ons from all pre-defined add-on definition repositories are bootstrapped into the directory pointed to by the *ADDONS_DEFINITION_DIR* option). |
| 25 | 25 | ||
| 26 | ## Buildsystem variables | 26 | ## Buildsystem variables |
| 27 | The buildsystem uses the following variables (which can be passed into it when executing cmake with the -D`<variable-name>=<value>` format) to manipulate the build process: | 27 | The buildsystem uses the following addon-related variables (which can be passed into it when executing cmake with the -D`<variable-name>=<value>` format) to manipulate the build process: |
| 28 | - `ADDONS_TO_BUILD` has two variations, which are tested in order: | 28 | - `ADDONS_TO_BUILD` has two variations, which are tested in order: |
| 29 | - a quoted, space delimited list of `<addon-id>s` that you want to build (default is *all*) | 29 | - a quoted, space delimited list of `<addon-id>s` that you want to build (default is *all*) |
| 30 | - a regular expression that every `<addon-id>` is matched against (e.g. `ADDONS_TO_BUILD="pvr.*"`) to build all pvr add-ons | 30 | - a regular expression that every `<addon-id>` is matched against (e.g. `ADDONS_TO_BUILD="pvr.*"`) to build all pvr add-ons |
| 31 | - `ADDONS_DEFINITION_DIR` points to the directory containing the definitions for the addons to be built | 31 | - `ADDONS_DEFINITION_DIR` points to the directory containing the definitions for the addons to be built |
| 32 | - `ADDON_SRC_PREFIX` can be used to override the add-on repository location. It must point to the locally available parent directory of the add-on(s) to build. `<addon-id>` will be appended to this path automatically | 32 | - `ADDON_SRC_PREFIX` can be used to override the add-on repository location. It must point to the locally available parent directory of the add-on(s) to build. `<addon-id>` will be appended to this path automatically |
| 33 | - `CMAKE_BUILD_TYPE` specifies the type of the build. This can be either *Debug* or *Release* (default is *Release*) | ||
| 34 | - `CMAKE_INSTALL_PREFIX` points to the directory where the built add-ons and their additional files (addon.xml, resources, ...) will be installed to (defaults to `<ADDON_DEPENDS_PATH>`) | 33 | - `CMAKE_INSTALL_PREFIX` points to the directory where the built add-ons and their additional files (addon.xml, resources, ...) will be installed to (defaults to `<ADDON_DEPENDS_PATH>`) |
| 35 | - `CMAKE_TOOLCHAIN_FILE` can be used to pass a toolchain file into the add-on builds | ||
| 36 | - `ADDON_DEPENDS_PATH` points to the directory containing the *include* and *lib* directories of the add-ons' dependencies. | 34 | - `ADDON_DEPENDS_PATH` points to the directory containing the *include* and *lib* directories of the add-ons' dependencies. |
| 37 | - `CORE_SOURCE_DIR` points to the root directory of the project (default is the absolute representation of ../../.. starting from this directory) | 35 | - `CORE_SOURCE_DIR` points to the root directory of the project (default is the absolute representation of ../../.. starting from this directory) |
| 38 | - `BUILD_DIR` points to the directory where the add-ons and their dependencies will be downloaded and built | 36 | - `BUILD_DIR` points to the directory where the add-ons and their dependencies will be downloaded and built |
| 39 | - `PACKAGE_ZIP=ON` means that the add-ons will be 'packaged' into a common folder, rather than being placed in `<CMAKE_INSTALL_PREFIX>/lib/kodi/addons` and `<CMAKE_INSTALL_PREFIX>/share/kodi/addons` | 37 | - `PACKAGE_ZIP=ON` means that the add-ons will be 'packaged' into a common folder, rather than being placed in `<CMAKE_INSTALL_PREFIX>/lib/kodi/addons` and `<CMAKE_INSTALL_PREFIX>/share/kodi/addons` |
| 40 | - `PACKAGE_DIR` points to the directory where the ZIP archived add-ons will be stored after they have been packaged (defaults to `<BUILD_DIR>/zips`) | 38 | - `PACKAGE_DIR` points to the directory where the ZIP archived add-ons will be stored after they have been packaged (defaults to `<BUILD_DIR>/zips`) |
| 41 | - `ARCH_DEFINES` specifies the platform-specific C/C++ preprocessor defines (defaults to empty) | ||
| 42 | - `ADDON_TARBALL_CACHING` specifies whether downloaded add-on source tarballs should be cached or not (defaults to *ON*) | 39 | - `ADDON_TARBALL_CACHING` specifies whether downloaded add-on source tarballs should be cached or not (defaults to *ON*) |
| 43 | 40 | ||
| 44 | ## Deprecated buildsystem variables | 41 | ## Deprecated buildsystem variables |
| @@ -47,19 +44,4 @@ Buildsystem will print a warning if you use any of the below-listed variables. F | |||
| 47 | 44 | ||
| 48 | ## Building | 45 | ## Building |
| 49 | The buildsystem makes some assumptions about the environment which must be met by whoever uses it: | 46 | The buildsystem makes some assumptions about the environment which must be met by whoever uses it: |
| 50 | - Any dependencies of the add-ons must already be built and their include and library files must be present in the path pointed to by `<CMAKE_PREFIX_PATH>` (in *include* and *lib* sub-directories) | 47 | - Any dependencies of the add-ons must already be built and their include and library files must be present in the path pointed to by `<CMAKE_PREFIX_PATH>` (in *include* and *lib* sub-directories) \ No newline at end of file |
| 51 | |||
| 52 | To trigger the cmake-based buildsystem the following command must be executed with `<path>` set to this directory (absolute or relative) allowing for in-source and out-of-source builds | ||
| 53 | |||
| 54 | `cmake <path> -G <generator>` | ||
| 55 | |||
| 56 | CMake supports multiple generators. See [here] (https://cmake.org/cmake/help/v3.1/manual/cmake-generators.7.html) for a list. | ||
| 57 | |||
| 58 | In case of additional options the call might look like this: | ||
| 59 | |||
| 60 | cmake `<path>` [-G `<generator>`] \ | ||
| 61 | -DCMAKE_BUILD_TYPE=Release \ | ||
| 62 | -DCORE_SOURCE_DIR="`<path-to-app-root>`" \ | ||
| 63 | -DARCH_DEFINES="-DTARGET_LINUX" \ | ||
| 64 | -DADDON_DEPENDS_PATH=`<path-to-built-depends>` \ | ||
| 65 | -DCMAKE_INSTALL_PREFIX="`<path-to-install-directory`" | ||
diff --git a/cmake/addons/depends/README b/cmake/addons/depends/README index 584a167..6fcec8f 100644 --- a/cmake/addons/depends/README +++ b/cmake/addons/depends/README | |||
| @@ -25,37 +25,8 @@ are: | |||
| 25 | * flags.txt: additional build flags | 25 | * flags.txt: additional build flags |
| 26 | * deps.txt: whitespace separated list of dependencies of this dependency | 26 | * deps.txt: whitespace separated list of dependencies of this dependency |
| 27 | 27 | ||
| 28 | The buildsystem uses the following variables (which can be passed into it when | 28 | The buildsystem uses the following depends-related variables (which can be passed |
| 29 | executing cmake with the -D<variable-name>=<value> option) to e.g. access | 29 | into it when executing cmake with the -D<variable-name>=<value> option) to e.g. |
| 30 | specific paths: | 30 | access specific paths: |
| 31 | * CMAKE_BUILD_TYPE specifies the type of the build. This can be either "Debug" | ||
| 32 | or "Release" (default is "Release"). | ||
| 33 | * CMAKE_TOOLCHAIN_FILE can be used to pass a toolchain file into the add-on | ||
| 34 | builds. | ||
| 35 | * CORE_SYSTEM_NAME is the name of the platform (e.g. "linux" or "android") in | ||
| 36 | lower-case (defaults to lowercase(CMAKE_SYSTEM_NAME)). | ||
| 37 | * CORE_SOURCE_DIR points to the root directory of the project (default is the | ||
| 38 | absolute representation of ../../.. starting from this directory). | ||
| 39 | * ADDON_DEPENDS_PATH points to the directory where the built dependencies | ||
| 40 | (their include and library file) will be installed to. | ||
| 41 | * ARCH_DEFINES specifies the platform-specific C/C++ preprocessor defines | ||
| 42 | (defaults to empty). | ||
| 43 | * DEPENDS_TO_BUILD is a quoted, space delimited list of <dependency>s that | 31 | * DEPENDS_TO_BUILD is a quoted, space delimited list of <dependency>s that |
| 44 | you want to build (default is "all"). | 32 | you want to build (default is "all"). |
| 45 | |||
| 46 | To trigger the cmake-based buildsystem the following command must be executed | ||
| 47 | with <path> being the path to this directory (absolute or relative, allowing for | ||
| 48 | in-source and out-of-source builds). | ||
| 49 | |||
| 50 | cmake <path> -G <generator> | ||
| 51 | |||
| 52 | cmake supports multiple generators, see | ||
| 53 | http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Generators for a list. | ||
| 54 | |||
| 55 | In case of additional options the call might look like this | ||
| 56 | |||
| 57 | cmake <path> [-G <generator>] \ | ||
| 58 | -DCMAKE_BUILD_TYPE=Release \ | ||
| 59 | -DCORE_SOURCE_DIR="<path-to-project-root>" \ | ||
| 60 | -DARCH_DEFINES="-DTARGET_LINUX" \ | ||
| 61 | -DCMAKE_INSTALL_PREFIX="<path-to-install-directory" | ||
diff --git a/cmake/installdata/common/addons.txt b/cmake/installdata/common/addons.txt index b8f763c..c0ffb72 100644 --- a/cmake/installdata/common/addons.txt +++ b/cmake/installdata/common/addons.txt | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | addons/audioencoder.kodi.builtin.aac/* | 1 | addons/audioencoder.kodi.builtin.aac/* |
| 2 | addons/audioencoder.kodi.builtin.wma/* | 2 | addons/audioencoder.kodi.builtin.wma/* |
| 3 | addons/game.controller.default/* | 3 | addons/game.controller.default/* |
| 4 | addons/game.controller.snes/* | ||
| 4 | addons/kodi.audiodecoder/* | 5 | addons/kodi.audiodecoder/* |
| 5 | addons/kodi.game/* | 6 | addons/kodi.game/* |
| 6 | addons/kodi.imagedecoder/* | 7 | addons/kodi.imagedecoder/* |
diff --git a/cmake/modules/FindNFS.cmake b/cmake/modules/FindNFS.cmake index 36727c0..c2414a1 100644 --- a/cmake/modules/FindNFS.cmake +++ b/cmake/modules/FindNFS.cmake | |||
| @@ -23,20 +23,13 @@ find_path(NFS_INCLUDE_DIR nfsc/libnfs.h | |||
| 23 | 23 | ||
| 24 | set(NFS_VERSION ${PC_NFS_VERSION}) | 24 | set(NFS_VERSION ${PC_NFS_VERSION}) |
| 25 | 25 | ||
| 26 | find_library(NFS_LIBRARY NAMES nfs libnfs | ||
| 27 | PATHS ${PC_NFS_LIBDIR}) | ||
| 28 | |||
| 26 | include(FindPackageHandleStandardArgs) | 29 | include(FindPackageHandleStandardArgs) |
| 27 | if(NOT WIN32) | 30 | find_package_handle_standard_args(NFS |
| 28 | find_library(NFS_LIBRARY NAMES nfs | 31 | REQUIRED_VARS NFS_LIBRARY NFS_INCLUDE_DIR |
| 29 | PATHS ${PC_NFS_LIBDIR}) | 32 | VERSION_VAR NFS_VERSION) |
| 30 | |||
| 31 | find_package_handle_standard_args(NFS | ||
| 32 | REQUIRED_VARS NFS_LIBRARY NFS_INCLUDE_DIR | ||
| 33 | VERSION_VAR NFS_VERSION) | ||
| 34 | else() | ||
| 35 | # Dynamically loaded DLL | ||
| 36 | find_package_handle_standard_args(NFS | ||
| 37 | REQUIRED_VARS NFS_INCLUDE_DIR | ||
| 38 | VERSION_VAR NFS_VERSION) | ||
| 39 | endif() | ||
| 40 | 33 | ||
| 41 | if(NFS_FOUND) | 34 | if(NFS_FOUND) |
| 42 | set(NFS_LIBRARIES ${NFS_LIBRARY}) | 35 | set(NFS_LIBRARIES ${NFS_LIBRARY}) |
diff --git a/cmake/scripts/android/Install.cmake b/cmake/scripts/android/Install.cmake index a0fa155..a121295 100644 --- a/cmake/scripts/android/Install.cmake +++ b/cmake/scripts/android/Install.cmake | |||
| @@ -82,6 +82,7 @@ set(package_files strings.xml | |||
| 82 | src/interfaces/XBMCNsdManagerRegistrationListener.java | 82 | src/interfaces/XBMCNsdManagerRegistrationListener.java |
| 83 | src/interfaces/XBMCNsdManagerDiscoveryListener.java | 83 | src/interfaces/XBMCNsdManagerDiscoveryListener.java |
| 84 | src/interfaces/XBMCMediaDrmOnEventListener.java | 84 | src/interfaces/XBMCMediaDrmOnEventListener.java |
| 85 | src/interfaces/XBMCDisplayManagerDisplayListener.java | ||
| 85 | src/model/TVEpisode.java | 86 | src/model/TVEpisode.java |
| 86 | src/model/Movie.java | 87 | src/model/Movie.java |
| 87 | src/model/TVShow.java | 88 | src/model/TVShow.java |
diff --git a/cmake/scripts/common/AddonHelpers.cmake b/cmake/scripts/common/AddonHelpers.cmake index 4bb4c98..a91e366 100644 --- a/cmake/scripts/common/AddonHelpers.cmake +++ b/cmake/scripts/common/AddonHelpers.cmake | |||
| @@ -21,7 +21,7 @@ macro(add_cpack_workaround target version ext) | |||
| 21 | 21 | ||
| 22 | add_custom_command(TARGET addon-package POST_BUILD | 22 | add_custom_command(TARGET addon-package POST_BUILD |
| 23 | COMMAND ${CMAKE_COMMAND} -E make_directory ${PACKAGE_DIR} | 23 | COMMAND ${CMAKE_COMMAND} -E make_directory ${PACKAGE_DIR} |
| 24 | COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_PACKAGE_DIRECTORY}/addon-${target}-${version}.${ext} ${PACKAGE_DIR}/${target}-${version}.${ext}) | 24 | COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_PACKAGE_DIRECTORY}/addon-${target}-${version}-${PLATFORM_TAG}.${ext} ${PACKAGE_DIR}/${target}+${PLATFORM_TAG}/${target}-${version}.${ext}) |
| 25 | endmacro() | 25 | endmacro() |
| 26 | 26 | ||
| 27 | # Grab the version from a given add-on's addon.xml | 27 | # Grab the version from a given add-on's addon.xml |
| @@ -153,7 +153,7 @@ macro (build_addon target prefix libs) | |||
| 153 | endif() | 153 | endif() |
| 154 | endforeach() | 154 | endforeach() |
| 155 | 155 | ||
| 156 | add_library(${target} ${${prefix}_SOURCES}) | 156 | add_library(${target} ${${prefix}_SOURCES} ${${prefix}_HEADERS}) |
| 157 | target_link_libraries(${target} ${${libs}}) | 157 | target_link_libraries(${target} ${${libs}}) |
| 158 | set_target_properties(${target} PROPERTIES VERSION ${${prefix}_VERSION} | 158 | set_target_properties(${target} PROPERTIES VERSION ${${prefix}_VERSION} |
| 159 | SOVERSION ${APP_VERSION_MAJOR}.${APP_VERSION_MINOR} | 159 | SOVERSION ${APP_VERSION_MAJOR}.${APP_VERSION_MINOR} |
| @@ -187,7 +187,6 @@ macro (build_addon target prefix libs) | |||
| 187 | # if there's an addon.xml.in we need to generate the addon.xml | 187 | # if there's an addon.xml.in we need to generate the addon.xml |
| 188 | if(EXISTS ${PROJECT_SOURCE_DIR}/${target}/addon.xml.in) | 188 | if(EXISTS ${PROJECT_SOURCE_DIR}/${target}/addon.xml.in) |
| 189 | set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/${target}/addon.xml.in) | 189 | set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/${target}/addon.xml.in) |
| 190 | set(PLATFORM ${CORE_SYSTEM_NAME}) | ||
| 191 | 190 | ||
| 192 | file(READ ${PROJECT_SOURCE_DIR}/${target}/addon.xml.in addon_file) | 191 | file(READ ${PROJECT_SOURCE_DIR}/${target}/addon.xml.in addon_file) |
| 193 | 192 | ||
| @@ -199,6 +198,9 @@ macro (build_addon target prefix libs) | |||
| 199 | endif() | 198 | endif() |
| 200 | endif() | 199 | endif() |
| 201 | 200 | ||
| 201 | # TODO: remove this hack after v18 | ||
| 202 | string(REPLACE "<platform>\@PLATFORM\@</platform>" "<platform>@PLATFORM_TAG@</platform>" addon_file "${addon_file}") | ||
| 203 | |||
| 202 | string(CONFIGURE "${addon_file}" addon_file_conf @ONLY) | 204 | string(CONFIGURE "${addon_file}" addon_file_conf @ONLY) |
| 203 | file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${target}/addon.xml CONTENT "${addon_file_conf}") | 205 | file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${target}/addon.xml CONTENT "${addon_file_conf}") |
| 204 | if(${APP_NAME_UC}_BUILD_DIR) | 206 | if(${APP_NAME_UC}_BUILD_DIR) |
| @@ -209,7 +211,6 @@ macro (build_addon target prefix libs) | |||
| 209 | # if there's an settings.xml.in we need to generate the settings.xml | 211 | # if there's an settings.xml.in we need to generate the settings.xml |
| 210 | if(EXISTS ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml.in) | 212 | if(EXISTS ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml.in) |
| 211 | set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml.in) | 213 | set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml.in) |
| 212 | set(PLATFORM ${CORE_SYSTEM_NAME}) | ||
| 213 | 214 | ||
| 214 | file(READ ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml.in settings_file) | 215 | file(READ ${PROJECT_SOURCE_DIR}/${target}/resources/settings.xml.in settings_file) |
| 215 | string(CONFIGURE "${settings_file}" settings_file_conf @ONLY) | 216 | string(CONFIGURE "${settings_file}" settings_file_conf @ONLY) |
| @@ -234,10 +235,10 @@ macro (build_addon target prefix libs) | |||
| 234 | endif() | 235 | endif() |
| 235 | set(CPACK_ARCHIVE_COMPONENT_INSTALL ON) | 236 | set(CPACK_ARCHIVE_COMPONENT_INSTALL ON) |
| 236 | set(CPACK_COMPONENTS_IGNORE_GROUPS 1) | 237 | set(CPACK_COMPONENTS_IGNORE_GROUPS 1) |
| 237 | list(APPEND CPACK_COMPONENTS_ALL ${target}-${${prefix}_VERSION}) | 238 | list(APPEND CPACK_COMPONENTS_ALL ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) |
| 238 | # Pack files together to create an archive | 239 | # Pack files together to create an archive |
| 239 | install(DIRECTORY ${target} ${CMAKE_CURRENT_BINARY_DIR}/${target} DESTINATION ./ | 240 | install(DIRECTORY ${target} ${CMAKE_CURRENT_BINARY_DIR}/${target} DESTINATION ./ |
| 240 | COMPONENT ${target}-${${prefix}_VERSION} | 241 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG} |
| 241 | REGEX ".+\\.xml\\.in(clude)?$" EXCLUDE) | 242 | REGEX ".+\\.xml\\.in(clude)?$" EXCLUDE) |
| 242 | if(WIN32) | 243 | if(WIN32) |
| 243 | if(NOT CPACK_PACKAGE_DIRECTORY) | 244 | if(NOT CPACK_PACKAGE_DIRECTORY) |
| @@ -256,21 +257,24 @@ macro (build_addon target prefix libs) | |||
| 256 | if(${prefix}_SOURCES) | 257 | if(${prefix}_SOURCES) |
| 257 | # install the generated DLL file | 258 | # install the generated DLL file |
| 258 | install(PROGRAMS ${LIBRARY_LOCATION} DESTINATION ${target} | 259 | install(PROGRAMS ${LIBRARY_LOCATION} DESTINATION ${target} |
| 259 | COMPONENT ${target}-${${prefix}_VERSION}) | 260 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) |
| 260 | 261 | ||
| 261 | # for debug builds also install the PDB file | 262 | # for debug builds also install the PDB file |
| 262 | install(FILES $<TARGET_PDB_FILE:${target}> DESTINATION ${target} | 263 | install(FILES $<TARGET_PDB_FILE:${target}> DESTINATION ${target} |
| 263 | CONFIGURATIONS Debug RelWithDebInfo | 264 | CONFIGURATIONS Debug RelWithDebInfo |
| 264 | COMPONENT ${target}-${${prefix}_VERSION}) | 265 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) |
| 265 | endif() | 266 | endif() |
| 266 | if(${prefix}_CUSTOM_BINARY) | 267 | if(${prefix}_CUSTOM_BINARY) |
| 267 | install(FILES ${LIBRARY_LOCATION} DESTINATION ${target} RENAME ${LIBRARY_FILENAME}) | 268 | install(FILES ${LIBRARY_LOCATION} DESTINATION ${target} RENAME ${LIBRARY_FILENAME} |
| 269 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | ||
| 268 | endif() | 270 | endif() |
| 269 | if(${prefix}_CUSTOM_DATA) | 271 | if(${prefix}_CUSTOM_DATA) |
| 270 | install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources) | 272 | install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources |
| 273 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | ||
| 271 | endif() | 274 | endif() |
| 272 | if(${prefix}_ADDITIONAL_BINARY) | 275 | if(${prefix}_ADDITIONAL_BINARY) |
| 273 | install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target}) | 276 | install(FILES ${${prefix}_ADDITIONAL_BINARY} DESTINATION ${target} |
| 277 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) | ||
| 274 | endif() | 278 | endif() |
| 275 | else() # NOT WIN32 | 279 | else() # NOT WIN32 |
| 276 | if(NOT CPACK_PACKAGE_DIRECTORY) | 280 | if(NOT CPACK_PACKAGE_DIRECTORY) |
| @@ -278,11 +282,11 @@ macro (build_addon target prefix libs) | |||
| 278 | endif() | 282 | endif() |
| 279 | if(${prefix}_SOURCES) | 283 | if(${prefix}_SOURCES) |
| 280 | install(TARGETS ${target} DESTINATION ${target} | 284 | install(TARGETS ${target} DESTINATION ${target} |
| 281 | COMPONENT ${target}-${${prefix}_VERSION}) | 285 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) |
| 282 | endif() | 286 | endif() |
| 283 | if(${prefix}_CUSTOM_BINARY) | 287 | if(${prefix}_CUSTOM_BINARY) |
| 284 | install(FILES ${LIBRARY_LOCATION} DESTINATION ${target} RENAME ${LIBRARY_FILENAME} | 288 | install(FILES ${LIBRARY_LOCATION} DESTINATION ${target} RENAME ${LIBRARY_FILENAME} |
| 285 | COMPONENT ${target}-${${prefix}_VERSION}) | 289 | COMPONENT ${target}-${${prefix}_VERSION}-${PLATFORM_TAG}) |
| 286 | endif() | 290 | endif() |
| 287 | if(${prefix}_CUSTOM_DATA) | 291 | if(${prefix}_CUSTOM_DATA) |
| 288 | install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources) | 292 | install(DIRECTORY ${${prefix}_CUSTOM_DATA} DESTINATION ${target}/resources) |
diff --git a/cmake/scripts/common/PrepareEnv.cmake b/cmake/scripts/common/PrepareEnv.cmake index 1426148..20dbaf6 100644 --- a/cmake/scripts/common/PrepareEnv.cmake +++ b/cmake/scripts/common/PrepareEnv.cmake | |||
| @@ -32,6 +32,53 @@ if(NOT WIN32) | |||
| 32 | endif() | 32 | endif() |
| 33 | endif() | 33 | endif() |
| 34 | 34 | ||
| 35 | if(NOT CORE_SYSTEM_NAME) | ||
| 36 | if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") | ||
| 37 | set(CORE_SYSTEM_NAME "osx") | ||
| 38 | else() | ||
| 39 | string(TOLOWER ${CMAKE_SYSTEM_NAME} CORE_SYSTEM_NAME) | ||
| 40 | endif() | ||
| 41 | endif() | ||
| 42 | |||
| 43 | set(PLATFORM_TAG ${CORE_SYSTEM_NAME}) | ||
| 44 | |||
| 45 | if(CORE_SYSTEM_NAME STREQUAL android) | ||
| 46 | if (CPU MATCHES "v7a") | ||
| 47 | set(PLATFORM_TAG ${PLATFORM_TAG}-armv7) | ||
| 48 | elseif (CPU MATCHES "arm64") | ||
| 49 | set(PLATFORM_TAG ${PLATFORM_TAG}-aarch64) | ||
| 50 | elseif (CPU MATCHES "i686") | ||
| 51 | set(PLATFORM_TAG ${PLATFORM_TAG}-i686) | ||
| 52 | else() | ||
| 53 | message(FATAL_ERROR "Unsupported architecture") | ||
| 54 | endif() | ||
| 55 | elseif(CORE_SYSTEM_NAME STREQUAL ios) | ||
| 56 | if (CPU MATCHES armv7) | ||
| 57 | set(PLATFORM_TAG ${PLATFORM_TAG}-armv7) | ||
| 58 | elseif (CPU MATCHES arm64) | ||
| 59 | set(PLATFORM_TAG ${PLATFORM_TAG}-aarch64) | ||
| 60 | else() | ||
| 61 | message(FATAL_ERROR "Unsupported architecture") | ||
| 62 | endif() | ||
| 63 | elseif(CORE_SYSTEM_NAME STREQUAL osx) | ||
| 64 | set(PLATFORM_TAG ${PLATFORM_TAG}-${CPU}) | ||
| 65 | elseif(CORE_SYSTEM_NAME STREQUAL windows) | ||
| 66 | include(CheckSymbolExists) | ||
| 67 | check_symbol_exists(_X86_ "Windows.h" _X86_) | ||
| 68 | check_symbol_exists(_AMD64_ "Windows.h" _AMD64_) | ||
| 69 | |||
| 70 | if(_X86_) | ||
| 71 | set(PLATFORM_TAG ${PLATFORM_TAG}-i686) | ||
| 72 | elseif(_AMD64_) | ||
| 73 | set(PLATFORM_TAG ${PLATFORM_TAG}-x86_64) | ||
| 74 | else() | ||
| 75 | message(FATAL_ERROR "Unsupported architecture") | ||
| 76 | endif() | ||
| 77 | |||
| 78 | unset(_X86_) | ||
| 79 | unset(_AMD64_) | ||
| 80 | endif() | ||
| 81 | |||
| 35 | # generate the proper KodiConfig.cmake file | 82 | # generate the proper KodiConfig.cmake file |
| 36 | configure_file(${CORE_SOURCE_DIR}/cmake/KodiConfig.cmake.in ${APP_LIB_DIR}/KodiConfig.cmake @ONLY) | 83 | configure_file(${CORE_SOURCE_DIR}/cmake/KodiConfig.cmake.in ${APP_LIB_DIR}/KodiConfig.cmake @ONLY) |
| 37 | 84 | ||
diff --git a/cmake/scripts/ios/ArchSetup.cmake b/cmake/scripts/ios/ArchSetup.cmake index bec8a7c..6b053dc 100644 --- a/cmake/scripts/ios/ArchSetup.cmake +++ b/cmake/scripts/ios/ArchSetup.cmake | |||
| @@ -12,9 +12,13 @@ set(CMAKE_SYSTEM_NAME Darwin) | |||
| 12 | if(WITH_ARCH) | 12 | if(WITH_ARCH) |
| 13 | set(ARCH ${WITH_ARCH}) | 13 | set(ARCH ${WITH_ARCH}) |
| 14 | else() | 14 | else() |
| 15 | if(CPU STREQUAL armv7 OR CPU STREQUAL arm64) | 15 | if(CPU STREQUAL armv7) |
| 16 | set(CMAKE_OSX_ARCHITECTURES ${CPU}) | 16 | set(CMAKE_OSX_ARCHITECTURES ${CPU}) |
| 17 | set(ARCH arm-osx) | 17 | set(ARCH arm) |
| 18 | set(NEON True) | ||
| 19 | elseif(CPU STREQUAL arm64) | ||
| 20 | set(CMAKE_OSX_ARCHITECTURES ${CPU}) | ||
| 21 | set(ARCH aarch64) | ||
| 18 | set(NEON True) | 22 | set(NEON True) |
| 19 | else() | 23 | else() |
| 20 | message(SEND_ERROR "Unknown CPU: ${CPU}") | 24 | message(SEND_ERROR "Unknown CPU: ${CPU}") |
| @@ -36,7 +40,6 @@ list(APPEND DEPLIBS "-framework CoreFoundation" "-framework CoreVideo" | |||
| 36 | "-framework CoreMedia" "-framework AVFoundation" | 40 | "-framework CoreMedia" "-framework AVFoundation" |
| 37 | "-framework VideoToolbox") | 41 | "-framework VideoToolbox") |
| 38 | 42 | ||
| 39 | set(ENABLE_DVDCSS OFF CACHE BOOL "" FORCE) | ||
| 40 | set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE) | 43 | set(ENABLE_OPTICAL OFF CACHE BOOL "" FORCE) |
| 41 | 44 | ||
| 42 | set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "9.0") | 45 | set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "9.0") |
diff --git a/cmake/treedata/common/retroplayer.txt b/cmake/treedata/common/retroplayer.txt index cf9c9c5..97fc849 100644 --- a/cmake/treedata/common/retroplayer.txt +++ b/cmake/treedata/common/retroplayer.txt | |||
| @@ -4,6 +4,7 @@ xbmc/cores/RetroPlayer/buffers cores/RetroPlaye | |||
| 4 | xbmc/cores/RetroPlayer/buffers/video cores/RetroPlayer/buffers/video | 4 | xbmc/cores/RetroPlayer/buffers/video cores/RetroPlayer/buffers/video |
| 5 | xbmc/cores/RetroPlayer/guibridge cores/RetroPlayer/guibridge | 5 | xbmc/cores/RetroPlayer/guibridge cores/RetroPlayer/guibridge |
| 6 | xbmc/cores/RetroPlayer/guicontrols cores/RetroPlayer/guicontrols | 6 | xbmc/cores/RetroPlayer/guicontrols cores/RetroPlayer/guicontrols |
| 7 | xbmc/cores/RetroPlayer/guiplayback cores/RetroPlayer/guiplayback | ||
| 7 | xbmc/cores/RetroPlayer/guiwindows cores/RetroPlayer/guiwindows | 8 | xbmc/cores/RetroPlayer/guiwindows cores/RetroPlayer/guiwindows |
| 8 | xbmc/cores/RetroPlayer/playback cores/RetroPlayer/playback | 9 | xbmc/cores/RetroPlayer/playback cores/RetroPlayer/playback |
| 9 | xbmc/cores/RetroPlayer/process cores/RetroPlayer/process | 10 | xbmc/cores/RetroPlayer/process cores/RetroPlayer/process |
diff --git a/version.txt b/version.txt index e9ee792..c27a42c 100644 --- a/version.txt +++ b/version.txt | |||
| @@ -3,9 +3,9 @@ COMPANY_NAME XBMC Foundation | |||
| 3 | WEBSITE http://kodi.tv | 3 | WEBSITE http://kodi.tv |
| 4 | VERSION_MAJOR 18 | 4 | VERSION_MAJOR 18 |
| 5 | VERSION_MINOR 0 | 5 | VERSION_MINOR 0 |
| 6 | VERSION_TAG BETA2 | 6 | VERSION_TAG BETA4 |
| 7 | VERSION_CODE 17.99.802 | 7 | VERSION_CODE 17.99.804 |
| 8 | ADDON_API 17.9.802 | 8 | ADDON_API 17.9.804 |
| 9 | APP_PACKAGE org.xbmc.kodi | 9 | APP_PACKAGE org.xbmc.kodi |
| 10 | PACKAGE_IDENTITY XBMCFoundation.Kodi | 10 | PACKAGE_IDENTITY XBMCFoundation.Kodi |
| 11 | PACKAGE_PUBLISHER C62BD90A-CDD8-477F-96C3-B25992247B97 | 11 | PACKAGE_PUBLISHER C62BD90A-CDD8-477F-96C3-B25992247B97 |
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Inputstream.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Inputstream.h index 23a91e7..252edbf 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Inputstream.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Inputstream.h | |||
| @@ -120,6 +120,31 @@ extern "C" { | |||
| 120 | FLAG_HEARING_IMPAIRED = 0x0080, | 120 | FLAG_HEARING_IMPAIRED = 0x0080, |
| 121 | FLAG_VISUAL_IMPAIRED = 0x0100 | 121 | FLAG_VISUAL_IMPAIRED = 0x0100 |
| 122 | }; | 122 | }; |
| 123 | |||
| 124 | enum INPUTSTREAM_COLORSPACE | ||
| 125 | { | ||
| 126 | COLORSPACE_UNKNOWN, | ||
| 127 | COLORSPACE_BT709, | ||
| 128 | COLORSPACE_BT470M, | ||
| 129 | COLORSPACE_BT470BG, | ||
| 130 | COLORSPACE_SMPTE170M, | ||
| 131 | COLORSPACE_SMPTE240M, | ||
| 132 | COLORSPACE_FILM, | ||
| 133 | COLORSPACE_BT2020, | ||
| 134 | COLORSPACE_SMPTE428, | ||
| 135 | COLORSPACE_SMPTEST428_1, | ||
| 136 | COLORSPACE_SMPTE431, | ||
| 137 | COLORSPACE_SMPTE432, | ||
| 138 | COLORSPACE_JEDEC_P22 | ||
| 139 | }; | ||
| 140 | |||
| 141 | enum INPUTSTREAM_COLORRANGE | ||
| 142 | { | ||
| 143 | COLORRANGE_UNKNOWN, | ||
| 144 | COLORRANGE_LIMITED, | ||
| 145 | COLORRANGE_FULLRANGE | ||
| 146 | }; | ||
| 147 | |||
| 123 | uint32_t m_flags; | 148 | uint32_t m_flags; |
| 124 | 149 | ||
| 125 | char m_name[256]; /*!< @brief (optinal) name of the stream, \0 for default handling */ | 150 | char m_name[256]; /*!< @brief (optinal) name of the stream, \0 for default handling */ |
| @@ -139,6 +164,7 @@ extern "C" { | |||
| 139 | unsigned int m_Width; /*!< @brief width of the stream reported by the demuxer */ | 164 | unsigned int m_Width; /*!< @brief width of the stream reported by the demuxer */ |
| 140 | float m_Aspect; /*!< @brief display aspect of stream */ | 165 | float m_Aspect; /*!< @brief display aspect of stream */ |
| 141 | 166 | ||
| 167 | |||
| 142 | unsigned int m_Channels; /*!< @brief (required) amount of channels */ | 168 | unsigned int m_Channels; /*!< @brief (required) amount of channels */ |
| 143 | unsigned int m_SampleRate; /*!< @brief (required) sample rate */ | 169 | unsigned int m_SampleRate; /*!< @brief (required) sample rate */ |
| 144 | unsigned int m_BitRate; /*!< @brief (required) bit rate */ | 170 | unsigned int m_BitRate; /*!< @brief (required) bit rate */ |
| @@ -146,6 +172,11 @@ extern "C" { | |||
| 146 | unsigned int m_BlockAlign; | 172 | unsigned int m_BlockAlign; |
| 147 | 173 | ||
| 148 | CRYPTO_INFO m_cryptoInfo; | 174 | CRYPTO_INFO m_cryptoInfo; |
| 175 | |||
| 176 | // new in API version 2.0.8 | ||
| 177 | unsigned int m_codecFourCC; /*!< @brief Codec If available, the fourcc code codec */ | ||
| 178 | INPUTSTREAM_COLORSPACE m_colorSpace; /*!< @brief definition of colorspace */ | ||
| 179 | INPUTSTREAM_COLORRANGE m_colorRange; /*!< @brief color range if available */ | ||
| 149 | }; | 180 | }; |
| 150 | 181 | ||
| 151 | struct INPUTSTREAM_TIMES | 182 | struct INPUTSTREAM_TIMES |
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h index 78e572b..2df8a36 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/Peripheral.h | |||
| @@ -531,8 +531,7 @@ namespace addon | |||
| 531 | virtual void FreeEvents(unsigned int event_count, PERIPHERAL_EVENT* events) { } | 531 | virtual void FreeEvents(unsigned int event_count, PERIPHERAL_EVENT* events) { } |
| 532 | 532 | ||
| 533 | /*! | 533 | /*! |
| 534 | * @brief Send an input event to the specified peripheral | 534 | * @brief Send an input event to the peripheral |
| 535 | * @param peripheralIndex The index of the device receiving the input event | ||
| 536 | * @param event The input event | 535 | * @param event The input event |
| 537 | * @return true if the event was handled, false otherwise | 536 | * @return true if the event was handled, false otherwise |
| 538 | */ | 537 | */ |
| @@ -677,9 +676,9 @@ namespace addon | |||
| 677 | * @param[optional] deviceName The name of the device to refresh, or empty/null for all devices | 676 | * @param[optional] deviceName The name of the device to refresh, or empty/null for all devices |
| 678 | * @param[optional] controllerId The controller ID to refresh, or empty/null for all controllers | 677 | * @param[optional] controllerId The controller ID to refresh, or empty/null for all controllers |
| 679 | */ | 678 | */ |
| 680 | void RefreshButtonMaps(const std::string& strDeviceName = "", const std::string& strControllerId = "") | 679 | void RefreshButtonMaps(const std::string& deviceName = "", const std::string& controllerId = "") |
| 681 | { | 680 | { |
| 682 | return m_instanceData->toKodi.refresh_button_maps(m_instanceData->toKodi.kodiInstance, strDeviceName.c_str(), strControllerId.c_str()); | 681 | return m_instanceData->toKodi.refresh_button_maps(m_instanceData->toKodi.kodiInstance, deviceName.c_str(), controllerId.c_str()); |
| 683 | } | 682 | } |
| 684 | 683 | ||
| 685 | /*! | 684 | /*! |
| @@ -690,9 +689,9 @@ namespace addon | |||
| 690 | * | 689 | * |
| 691 | * @return The number of features matching the request parameters | 690 | * @return The number of features matching the request parameters |
| 692 | */ | 691 | */ |
| 693 | unsigned int FeatureCount(const std::string& strControllerId, JOYSTICK_FEATURE_TYPE type = JOYSTICK_FEATURE_TYPE_UNKNOWN) | 692 | unsigned int FeatureCount(const std::string& controllerId, JOYSTICK_FEATURE_TYPE type = JOYSTICK_FEATURE_TYPE_UNKNOWN) |
| 694 | { | 693 | { |
| 695 | return m_instanceData->toKodi.feature_count(m_instanceData->toKodi.kodiInstance, strControllerId.c_str(), type); | 694 | return m_instanceData->toKodi.feature_count(m_instanceData->toKodi.kodiInstance, controllerId.c_str(), type); |
| 696 | } | 695 | } |
| 697 | 696 | ||
| 698 | /*! | 697 | /*! |
| @@ -704,9 +703,9 @@ namespace addon | |||
| 704 | * @return The type of the specified feature, or JOYSTICK_FEATURE_TYPE_UNKNOWN | 703 | * @return The type of the specified feature, or JOYSTICK_FEATURE_TYPE_UNKNOWN |
| 705 | * if unknown | 704 | * if unknown |
| 706 | */ | 705 | */ |
| 707 | JOYSTICK_FEATURE_TYPE FeatureType(const std::string& strControllerId, const std::string &featureName) | 706 | JOYSTICK_FEATURE_TYPE FeatureType(const std::string& controllerId, const std::string &featureName) |
| 708 | { | 707 | { |
| 709 | return m_instanceData->toKodi.feature_type(m_instanceData->toKodi.kodiInstance, strControllerId.c_str(), featureName.c_str()); | 708 | return m_instanceData->toKodi.feature_type(m_instanceData->toKodi.kodiInstance, controllerId.c_str(), featureName.c_str()); |
| 710 | } | 709 | } |
| 711 | 710 | ||
| 712 | private: | 711 | private: |
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_dll.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_dll.h index 40979e5..478f81b 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_dll.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_dll.h | |||
| @@ -59,7 +59,7 @@ GAME_ERROR UnloadGame(void); | |||
| 59 | /*! | 59 | /*! |
| 60 | * \brief Get timing information about the loaded game | 60 | * \brief Get timing information about the loaded game |
| 61 | * | 61 | * |
| 62 | * \param info The info structure to fill | 62 | * \param[out] timing_info The info structure to fill |
| 63 | * | 63 | * |
| 64 | * \return the error, or GAME_ERROR_NO_ERROR if info was filled | 64 | * \return the error, or GAME_ERROR_NO_ERROR if info was filled |
| 65 | */ | 65 | */ |
| @@ -176,8 +176,9 @@ bool EnableMouse(bool enable, const game_controller* controller); | |||
| 176 | * \brief Connect/disconnect a controller to a port on the virtual game console | 176 | * \brief Connect/disconnect a controller to a port on the virtual game console |
| 177 | * | 177 | * |
| 178 | * \param connect True to connect a controller, false to disconnect | 178 | * \param connect True to connect a controller, false to disconnect |
| 179 | * \param address The address of the port | 179 | * \param port_address The address of the port |
| 180 | * \param controller The controller info if connecting, or unused if disconnecting | 180 | * \param controller The controller info if connecting, or unused if disconnecting |
| 181 | * \return True if the \p controller was (dis-)connected to the port, false otherwise | ||
| 181 | * | 182 | * |
| 182 | * The address is a string that allows traversal of the controller topology. | 183 | * The address is a string that allows traversal of the controller topology. |
| 183 | * It is formed by alternating port IDs and controller IDs separated by "/". | 184 | * It is formed by alternating port IDs and controller IDs separated by "/". |
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_game.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_game.h index ca8cba9..b518c28 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_game.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libKODI_game.h | |||
| @@ -123,7 +123,7 @@ public: | |||
| 123 | /*! | 123 | /*! |
| 124 | * \brief Get a symbol from the hardware context | 124 | * \brief Get a symbol from the hardware context |
| 125 | * | 125 | * |
| 126 | * \param symbol The symbol's name | 126 | * \param sym The symbol's name |
| 127 | * | 127 | * |
| 128 | * \return A function pointer for the specified symbol | 128 | * \return A function pointer for the specified symbol |
| 129 | */ | 129 | */ |
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h index 227717c..5127f7e 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h | |||
| @@ -87,7 +87,7 @@ | |||
| 87 | #define ADDON_INSTANCE_VERSION_IMAGEDECODER_XML_ID "kodi.binary.instance.imagedecoder" | 87 | #define ADDON_INSTANCE_VERSION_IMAGEDECODER_XML_ID "kodi.binary.instance.imagedecoder" |
| 88 | #define ADDON_INSTANCE_VERSION_IMAGEDECODER_DEPENDS "addon-instance/ImageDecoder.h" | 88 | #define ADDON_INSTANCE_VERSION_IMAGEDECODER_DEPENDS "addon-instance/ImageDecoder.h" |
| 89 | 89 | ||
| 90 | #define ADDON_INSTANCE_VERSION_INPUTSTREAM "2.0.7" | 90 | #define ADDON_INSTANCE_VERSION_INPUTSTREAM "2.0.8" |
| 91 | #define ADDON_INSTANCE_VERSION_INPUTSTREAM_MIN "2.0.7" | 91 | #define ADDON_INSTANCE_VERSION_INPUTSTREAM_MIN "2.0.7" |
| 92 | #define ADDON_INSTANCE_VERSION_INPUTSTREAM_XML_ID "kodi.binary.instance.inputstream" | 92 | #define ADDON_INSTANCE_VERSION_INPUTSTREAM_XML_ID "kodi.binary.instance.inputstream" |
| 93 | #define ADDON_INSTANCE_VERSION_INPUTSTREAM_DEPENDS "addon-instance/Inputstream.h" | 93 | #define ADDON_INSTANCE_VERSION_INPUTSTREAM_DEPENDS "addon-instance/Inputstream.h" |
| @@ -98,7 +98,7 @@ | |||
| 98 | #define ADDON_INSTANCE_VERSION_PERIPHERAL_DEPENDS "addon-instance/Peripheral.h" \ | 98 | #define ADDON_INSTANCE_VERSION_PERIPHERAL_DEPENDS "addon-instance/Peripheral.h" \ |
| 99 | "addon-instance/PeripheralUtils.h" | 99 | "addon-instance/PeripheralUtils.h" |
| 100 | 100 | ||
| 101 | #define ADDON_INSTANCE_VERSION_PVR "5.10.1" | 101 | #define ADDON_INSTANCE_VERSION_PVR "5.10.3" |
| 102 | #define ADDON_INSTANCE_VERSION_PVR_MIN "5.10.0" | 102 | #define ADDON_INSTANCE_VERSION_PVR_MIN "5.10.0" |
| 103 | #define ADDON_INSTANCE_VERSION_PVR_XML_ID "kodi.binary.instance.pvr" | 103 | #define ADDON_INSTANCE_VERSION_PVR_XML_ID "kodi.binary.instance.pvr" |
| 104 | #define ADDON_INSTANCE_VERSION_PVR_DEPENDS "xbmc_pvr_dll.h" \ | 104 | #define ADDON_INSTANCE_VERSION_PVR_DEPENDS "xbmc_pvr_dll.h" \ |
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_dll.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_dll.h index 8c509ac..27fa800 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_dll.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_dll.h | |||
| @@ -316,7 +316,7 @@ extern "C" | |||
| 316 | /*! | 316 | /*! |
| 317 | * Set the last watched position of a recording on the backend. | 317 | * Set the last watched position of a recording on the backend. |
| 318 | * @param recording The recording. | 318 | * @param recording The recording. |
| 319 | * @param position The last watched position in seconds | 319 | * @param lastplayedposition The last watched position in seconds |
| 320 | * @return PVR_ERROR_NO_ERROR if the position has been stored successfully. | 320 | * @return PVR_ERROR_NO_ERROR if the position has been stored successfully. |
| 321 | * @remarks Required if bSupportsLastPlayedPosition is set to true. | 321 | * @remarks Required if bSupportsLastPlayedPosition is set to true. |
| 322 | * Return PVR_ERROR_NOT_IMPLEMENTED if this add-on won't provide this function. | 322 | * Return PVR_ERROR_NOT_IMPLEMENTED if this add-on won't provide this function. |
| @@ -483,7 +483,7 @@ extern "C" | |||
| 483 | 483 | ||
| 484 | /*! | 484 | /*! |
| 485 | * Get the stream properties for a recording from the backend. | 485 | * Get the stream properties for a recording from the backend. |
| 486 | * @param[in] channel The recording to get the stream properties for. | 486 | * @param[in] recording The recording to get the stream properties for. |
| 487 | * @param[inout] properties in: an array for the properties to return, out: the properties required to play the stream. | 487 | * @param[inout] properties in: an array for the properties to return, out: the properties required to play the stream. |
| 488 | * @param[inout] iPropertiesCount in: the size of the properties array, out: the number of properties returned. | 488 | * @param[inout] iPropertiesCount in: the size of the properties array, out: the number of properties returned. |
| 489 | * @return PVR_ERROR_NO_ERROR if the stream is available. | 489 | * @return PVR_ERROR_NO_ERROR if the stream is available. |
| @@ -676,7 +676,9 @@ extern "C" | |||
| 676 | void OnPowerSavingDeactivated(); | 676 | void OnPowerSavingDeactivated(); |
| 677 | 677 | ||
| 678 | /*! | 678 | /*! |
| 679 | * Get stream times. Intermediate, will be moved to inputstream | 679 | * Get stream times. |
| 680 | * @param times A pointer to the data to be filled by the implementation. | ||
| 681 | * @return PVR_ERROR_NO_ERROR on success. | ||
| 680 | */ | 682 | */ |
| 681 | PVR_ERROR GetStreamTimes(PVR_STREAM_TIMES *times); | 683 | PVR_ERROR GetStreamTimes(PVR_STREAM_TIMES *times); |
| 682 | 684 | ||
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_types.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_types.h index 2a89fef..f1562b6 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_types.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_pvr_types.h | |||
| @@ -153,6 +153,7 @@ extern "C" { | |||
| 153 | const unsigned int PVR_TIMER_TYPE_REQUIRES_EPG_SERIES_ON_CREATE = 0x00800000; /*!< @brief this type should not appear on any create menus unless associated with an EPG tag with 'series' attributes (EPG_TAG.iFlags & EPG_TAG_FLAG_IS_SERIES || EPG_TAG.iSeriesNumber > 0 || EPG_TAG.iEpisodeNumber > 0 || EPG_TAG.iEpisodePartNumber > 0). Implies PVR_TIMER_TYPE_REQUIRES_EPG_TAG_ON_CREATE */ | 153 | const unsigned int PVR_TIMER_TYPE_REQUIRES_EPG_SERIES_ON_CREATE = 0x00800000; /*!< @brief this type should not appear on any create menus unless associated with an EPG tag with 'series' attributes (EPG_TAG.iFlags & EPG_TAG_FLAG_IS_SERIES || EPG_TAG.iSeriesNumber > 0 || EPG_TAG.iEpisodeNumber > 0 || EPG_TAG.iEpisodePartNumber > 0). Implies PVR_TIMER_TYPE_REQUIRES_EPG_TAG_ON_CREATE */ |
| 154 | const unsigned int PVR_TIMER_TYPE_SUPPORTS_ANY_CHANNEL = 0x01000000; /*!< @brief this type supports 'any channel', for example when defining a timer rule that should match any channel instaed of a particular channel */ | 154 | const unsigned int PVR_TIMER_TYPE_SUPPORTS_ANY_CHANNEL = 0x01000000; /*!< @brief this type supports 'any channel', for example when defining a timer rule that should match any channel instaed of a particular channel */ |
| 155 | const unsigned int PVR_TIMER_TYPE_REQUIRES_EPG_SERIESLINK_ON_CREATE = 0x02000000; /*!< @brief this type should not appear on any create menus which don't provide an associated EPG tag with a series link */ | 155 | const unsigned int PVR_TIMER_TYPE_REQUIRES_EPG_SERIESLINK_ON_CREATE = 0x02000000; /*!< @brief this type should not appear on any create menus which don't provide an associated EPG tag with a series link */ |
| 156 | const unsigned int PVR_TIMER_TYPE_SUPPORTS_READONLY_DELETE = 0x04000000; /*!< @brief this type allows deletion of an otherwise read-only timer */ | ||
| 156 | 157 | ||
| 157 | /*! | 158 | /*! |
| 158 | * @brief PVR timer weekdays (PVR_TIMER.iWeekdays values) | 159 | * @brief PVR timer weekdays (PVR_TIMER.iWeekdays values) |
| @@ -312,6 +313,9 @@ extern "C" { | |||
| 312 | 313 | ||
| 313 | unsigned int iRecordingsLifetimesSize; /*!< @brief (required) Count of possible values for PVR_RECORDING.iLifetime. 0 means lifetime is not supported for recordings or no own value definition wanted, but to use Kodi defaults of 1..365. */ | 314 | unsigned int iRecordingsLifetimesSize; /*!< @brief (required) Count of possible values for PVR_RECORDING.iLifetime. 0 means lifetime is not supported for recordings or no own value definition wanted, but to use Kodi defaults of 1..365. */ |
| 314 | PVR_ATTRIBUTE_INT_VALUE recordingsLifetimeValues[PVR_ADDON_ATTRIBUTE_VALUES_ARRAY_SIZE]; /*!< @brief (optional) Array containing the possible values for PVR_RECORDING.iLifetime. Must be filled if iLifetimesSize > 0 */ | 315 | PVR_ATTRIBUTE_INT_VALUE recordingsLifetimeValues[PVR_ADDON_ATTRIBUTE_VALUES_ARRAY_SIZE]; /*!< @brief (optional) Array containing the possible values for PVR_RECORDING.iLifetime. Must be filled if iLifetimesSize > 0 */ |
| 316 | |||
| 317 | // TODO: cleanup: move this member up after the other bools with the next incompatible pvr addon api change. | ||
| 318 | bool bSupportsAsyncEPGTransfer; /*!< @brief true if this addon-on supports asynchronous transfer of epg events to Kodi using the callback function EpgEventStateChange. */ | ||
| 315 | } ATTRIBUTE_PACKED PVR_ADDON_CAPABILITIES; | 319 | } ATTRIBUTE_PACKED PVR_ADDON_CAPABILITIES; |
| 316 | 320 | ||
| 317 | /*! | 321 | /*! |
| @@ -501,7 +505,7 @@ extern "C" { | |||
| 501 | int iMaxRecordings; /*!< @brief (optional) maximum number of recordings this timer shall create. > 0 number of recordings, < 0 addon defined integer list reference, == 0 disabled */ | 505 | int iMaxRecordings; /*!< @brief (optional) maximum number of recordings this timer shall create. > 0 number of recordings, < 0 addon defined integer list reference, == 0 disabled */ |
| 502 | unsigned int iRecordingGroup; /*!< @brief (optional) integer ref to addon/backend defined list of recording groups*/ | 506 | unsigned int iRecordingGroup; /*!< @brief (optional) integer ref to addon/backend defined list of recording groups*/ |
| 503 | time_t firstDay; /*!< @brief (optional) the first day this timer is active, for repeating timers */ | 507 | time_t firstDay; /*!< @brief (optional) the first day this timer is active, for repeating timers */ |
| 504 | unsigned int iWeekdays; /*!< @brief (optional) week days, for repeating timers */ | 508 | unsigned int iWeekdays; /*!< @brief (optional) week days, for repeating timers (see PVR_WEEKDAY_* constant values) */ |
| 505 | unsigned int iPreventDuplicateEpisodes; /*!< @brief (optional) 1 if backend should only record new episodes in case of a repeating epg-based timer, 0 if all episodes shall be recorded (no duplicate detection). Actual algorithm for | 509 | unsigned int iPreventDuplicateEpisodes; /*!< @brief (optional) 1 if backend should only record new episodes in case of a repeating epg-based timer, 0 if all episodes shall be recorded (no duplicate detection). Actual algorithm for |
| 506 | duplicate detection is defined by the backend. Addons may define own values for different duplicate detection algorithms, thus this is not just a bool.*/ | 510 | duplicate detection is defined by the backend. Addons may define own values for different duplicate detection algorithms, thus this is not just a bool.*/ |
| 507 | unsigned int iEpgUid; /*!< @brief (optional) EPG event id associated with this timer. Event ids must be unique for a channel. Valid ids must be greater than EPG_TAG_INVALID_UID. */ | 511 | unsigned int iEpgUid; /*!< @brief (optional) EPG event id associated with this timer. Event ids must be unique for a channel. Valid ids must be greater than EPG_TAG_INVALID_UID. */ |
| @@ -528,7 +532,7 @@ extern "C" { | |||
| 528 | char strPlot[PVR_ADDON_DESC_STRING_LENGTH]; /*!< @brief (optional) plot */ | 532 | char strPlot[PVR_ADDON_DESC_STRING_LENGTH]; /*!< @brief (optional) plot */ |
| 529 | char strGenreDescription[PVR_ADDON_DESC_STRING_LENGTH]; /*!< @brief (optional) genre. Will be used only when iGenreType = EPG_GENRE_USE_STRING */ | 533 | char strGenreDescription[PVR_ADDON_DESC_STRING_LENGTH]; /*!< @brief (optional) genre. Will be used only when iGenreType = EPG_GENRE_USE_STRING */ |
| 530 | char strChannelName[PVR_ADDON_NAME_STRING_LENGTH]; /*!< @brief (optional) channel name */ | 534 | char strChannelName[PVR_ADDON_NAME_STRING_LENGTH]; /*!< @brief (optional) channel name */ |
| 531 | char strIconPath[PVR_ADDON_URL_STRING_LENGTH]; /*!< @brief (optional) icon path */ | 535 | char strIconPath[PVR_ADDON_URL_STRING_LENGTH]; /*!< @brief (optional) channel logo (icon) path */ |
| 532 | char strThumbnailPath[PVR_ADDON_URL_STRING_LENGTH]; /*!< @brief (optional) thumbnail path */ | 536 | char strThumbnailPath[PVR_ADDON_URL_STRING_LENGTH]; /*!< @brief (optional) thumbnail path */ |
| 533 | char strFanartPath[PVR_ADDON_URL_STRING_LENGTH]; /*!< @brief (optional) fanart path */ | 537 | char strFanartPath[PVR_ADDON_URL_STRING_LENGTH]; /*!< @brief (optional) fanart path */ |
| 534 | time_t recordingTime; /*!< @brief (optional) start time of the recording */ | 538 | time_t recordingTime; /*!< @brief (optional) start time of the recording */ |
| @@ -584,8 +588,8 @@ extern "C" { | |||
| 584 | { | 588 | { |
| 585 | time_t startTime; /*!< @brief For recordings, this must be zero. For Live TV, this is a reference time in units of time_t (UTC) from which time elapsed starts. Ideally start of tv show, but can be any other value. */ | 589 | time_t startTime; /*!< @brief For recordings, this must be zero. For Live TV, this is a reference time in units of time_t (UTC) from which time elapsed starts. Ideally start of tv show, but can be any other value. */ |
| 586 | int64_t ptsStart; /*!< @brief the pts of startTime */ | 590 | int64_t ptsStart; /*!< @brief the pts of startTime */ |
| 587 | int64_t ptsBegin; /*!< @brief earliest pts player can seek back. Value is seconds, relative to ptsStart. For recordings, this must be zero. For Live TV, this must be zero if not timeshifting and must point to begin of the timeshift buffer, otherwise. */ | 591 | int64_t ptsBegin; /*!< @brief earliest pts player can seek back. Value is in micro seconds, relative to ptsStart. For recordings, this must be zero. For Live TV, this must be zero if not timeshifting and must point to begin of the timeshift buffer, otherwise. */ |
| 588 | int64_t ptsEnd; /*!< @brief latest pts player can seek forward. Value is seconds, relative to ptsStart. For recordings, this must be the total length in seconds. For Live TV, this must be zero if not timeshifting and must point to end of the timeshift buffer, otherwise. */ | 592 | int64_t ptsEnd; /*!< @brief latest pts player can seek forward. Value is in micro seconds, relative to ptsStart. For recordings, this must be the total length. For Live TV, this must be zero if not timeshifting and must point to end of the timeshift buffer, otherwise. */ |
| 589 | } ATTRIBUTE_PACKED PVR_STREAM_TIMES; | 593 | } ATTRIBUTE_PACKED PVR_STREAM_TIMES; |
| 590 | 594 | ||
| 591 | typedef struct AddonToKodiFuncTable_PVR | 595 | typedef struct AddonToKodiFuncTable_PVR |
diff --git a/xbmc/interfaces/json-rpc/schema/version.txt b/xbmc/interfaces/json-rpc/schema/version.txt index 94db005..e32fb7a 100644 --- a/xbmc/interfaces/json-rpc/schema/version.txt +++ b/xbmc/interfaces/json-rpc/schema/version.txt | |||
| @@ -1 +1 @@ | |||
| JSONRPC_VERSION 9.6.0 | JSONRPC_VERSION 9.6.1 | ||
