From 4830f27a40323fe859dc166337a2b861877b7121 Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 1 Jan 2018 13:40:09 +0100 Subject: sync with upstream --- .../kodi-addon-dev-kit/include/kodi/AddonBase.h | 1 + .../kodi-addon-dev-kit/include/kodi/CMakeLists.txt | 24 ++++++ .../kodi-addon-dev-kit/include/kodi/Filesystem.h | 90 +++++++++++++++++---- .../kodi-addon-dev-kit/include/kodi/General.h | 44 +++++++++- .../include/kodi/addon-instance/CMakeLists.txt | 15 ++++ .../include/kodi/addon-instance/Inputstream.h | 50 +++++++++--- .../include/kodi/addon-instance/Peripheral.h | 10 +++ .../include/kodi/addon-instance/PeripheralUtils.h | 3 + .../include/kodi/addon-instance/VideoCodec.h | 4 +- .../include/kodi/gui/CMakeLists.txt | 8 ++ .../include/kodi/gui/controls/CMakeLists.txt | 16 ++++ .../include/kodi/gui/dialogs/CMakeLists.txt | 14 ++++ .../include/kodi/kodi_game_types.h | 7 ++ .../include/kodi/libXBMC_addon.h | 35 ++++++-- .../include/kodi/tools/CMakeLists.txt | 5 ++ .../kodi-addon-dev-kit/include/kodi/versions.h | 24 +++--- .../include/kodi/xbmc_epg_types.h | 11 ++- .../kodi-addon-dev-kit/include/kodi/xbmc_pvr_dll.h | 48 +---------- .../include/kodi/xbmc_pvr_types.h | 21 +++-- xbmc/filesystem/.IFileTypes.h.swp | Bin 12288 -> 0 bytes xbmc/filesystem/IFileTypes.h | 23 +++++- xbmc/input/ActionIDs.h | 13 ++- 22 files changed, 352 insertions(+), 114 deletions(-) create mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/CMakeLists.txt create mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/CMakeLists.txt create mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/CMakeLists.txt create mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/controls/CMakeLists.txt create mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/CMakeLists.txt create mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/CMakeLists.txt delete mode 100644 xbmc/filesystem/.IFileTypes.h.swp (limited to 'xbmc') diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/AddonBase.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/AddonBase.h index 0c5e617..432a1c3 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/AddonBase.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/AddonBase.h @@ -160,6 +160,7 @@ typedef struct AddonToKodiFuncTable_Addon // Function addresses used for callbacks from addon to Kodi void (*free_string)(void* kodiBase, char* str); + void (*free_string_array)(void* kodiBase, char** arr, int numElements); char* (*get_addon_path)(void* kodiBase); char* (*get_base_user_path)(void* kodiBase); void (*addon_log_msg)(void* kodiBase, const int loglevel, const char *msg); diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/CMakeLists.txt b/xbmc/addons/kodi-addon-dev-kit/include/kodi/CMakeLists.txt new file mode 100644 index 0000000..80e9275 --- /dev/null +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/CMakeLists.txt @@ -0,0 +1,24 @@ +set(HEADERS AddonBase.h + AudioEngine.h + Filesystem.h + General.h + Network.h + StreamCodec.h + StreamCrypto.h + kodi_game_dll.h + kodi_game_types.h + kodi_vfs_types.h + libKODI_game.h + libKODI_guilib.h + libXBMC_addon.h + libXBMC_pvr.h + versions.h + xbmc_addon_dll.h + xbmc_addon_types.h + xbmc_epg_types.h + xbmc_pvr_dll.h + xbmc_pvr_types.h) + +if(NOT ENABLE_STATIC_LIBS) + core_add_library(addons_kodi-addon-dev-kit_include_kodi) +endif() diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/Filesystem.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/Filesystem.h index b06770c..b089da3 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/Filesystem.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/Filesystem.h @@ -22,11 +22,16 @@ #include "AddonBase.h" #include +#include #if !defined(_WIN32) #include #if !defined(__stat64) - #define __stat64 stat64 + #if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) + #define __stat64 stat + #else + #define __stat64 stat64 + #endif #endif #endif #ifdef _WIN32 // windows @@ -110,7 +115,7 @@ extern "C" double (*get_file_download_speed)(void* kodiBase, void* file); void (*close_file)(void* kodiBase, void* file); int (*get_file_chunk_size)(void* kodiBase, void* file); - char* (*get_property)(void* kodiBase, void* file, int type, const char *name); + char** (*get_property_values)(void* kodiBase, void* file, int type, const char *name, int *numValues); void* (*curl_create)(void* kodiBase, const char* url); bool (*curl_add_option)(void* kodiBase, void* file, int type, const char* name, const char* value); @@ -180,16 +185,40 @@ typedef enum OpenFileFlags //============================================================================== /// \ingroup cpp_kodi_vfs_Defs -/// @brief Used CURL message types +/// @brief CURL message types +/// +/// Used on kodi::vfs::CFile::CURLAddOption() /// typedef enum CURLOptiontype { /// Set a general option ADDON_CURL_OPTION_OPTION, + /// Set a protocol option + /// + /// The following names for *ADDON_CURL_OPTION_PROTOCOL* are possible: + /// + /// | Option name | Description + /// |---------------------------:|:---------------------------------------------------------- + /// | accept-charset | Set the "accept-charset" header + /// | acceptencoding or encoding | Set the "accept-encoding" header + /// | active-remote | Set the "active-remote" header + /// | auth | Set the authentication method. Possible values: any, anysafe, digest, ntlm + /// | connection-timeout | Set the connection timeout in seconds + /// | cookie | Set the "cookie" header + /// | customrequest | Set a custom HTTP request like DELETE + /// | noshout | Set to true if kodi detects a stream as shoutcast by mistake. + /// | postdata | Set the post body (value needs to be base64 encoded). (Implicitly sets the request to POST) + /// | referer | Set the "referer" header + /// | user-agent | Set the "user-agent" header + /// | seekable | Set the stream seekable. 1: enable, 0: disable + /// | sslcipherlist | Set list of accepted SSL ciphers. + /// ADDON_CURL_OPTION_PROTOCOL, + /// Set User and password ADDON_CURL_OPTION_CREDENTIALS, + /// Add a Header ADDON_CURL_OPTION_HEADER } CURLOptiontype; @@ -197,7 +226,9 @@ typedef enum CURLOptiontype //============================================================================== /// \ingroup cpp_kodi_vfs_Defs -/// @brief Used CURL message types +/// @brief CURL message types +/// +/// Used on kodi::vfs::CFile::GetPropertyValue() and kodi::vfs::CFile::GetPropertyValues() /// typedef enum FilePropertyTypes { @@ -210,7 +241,9 @@ typedef enum FilePropertyTypes /// Get file content charset ADDON_FILE_PROPERTY_CONTENT_CHARSET, /// Get file mime type - ADDON_FILE_PROPERTY_MIME_TYPE + ADDON_FILE_PROPERTY_MIME_TYPE, + /// Get file effective URL (last one if redirected) + ADDON_FILE_PROPERTY_EFFECTIVE_URL } FilePropertyTypes; //------------------------------------------------------------------------------ @@ -1027,7 +1060,7 @@ namespace vfs /// #include /// ... /// STAT_STRUCTURE statFile; - /// int ret = kodi::vfs::StatFile("special://temp/kodi.log", &statFile); + /// int ret = kodi::vfs::StatFile("special://temp/kodi.log", statFile); /// fprintf(stderr, "deviceId (ID of device containing file) = %u\n" /// "size (total size, in bytes) = %lu\n" /// "accessTime (time of last access) = %lu\n" @@ -1540,22 +1573,51 @@ namespace vfs /// @param[in] name The name of a named property value (e.g. Header) /// @return value of requested property, empty on failure / non-existance /// - const std::string GetProperty(FilePropertyTypes type, const std::string &name) const + const std::string GetPropertyValue(FilePropertyTypes type, const std::string &name) const { if (!m_file) { - kodi::Log(ADDON_LOG_ERROR, "kodi::vfs::CURLCreate(...) needed to call before GetProperty!"); + kodi::Log(ADDON_LOG_ERROR, "kodi::vfs::CURLCreate(...) needed to call before GetPropertyValue!"); + return ""; + } + std::vector values = GetPropertyValues(type, name); + if (values.empty()) { return ""; } - char *res(::kodi::addon::CAddonBase::m_interface->toKodi->kodi_filesystem->get_property( - ::kodi::addon::CAddonBase::m_interface->toKodi->kodiBase, m_file, type, name.c_str())); + return values[0]; + } + //-------------------------------------------------------------------------- + + //========================================================================== + /// + /// @ingroup cpp_kodi_vfs_CFile + /// @brief retrieve file property values + /// + /// @param[in] type The type of the file property values to retrieve the value for + /// @param[in] name The name of the named property (e.g. Header) + /// @return values of requested property, empty vector on failure / non-existance + /// + const std::vector GetPropertyValues(FilePropertyTypes type, const std::string &name) const + { + if (!m_file) + { + kodi::Log(ADDON_LOG_ERROR, "kodi::vfs::CURLCreate(...) needed to call before GetPropertyValues!"); + return std::vector(); + } + int numValues; + char **res(::kodi::addon::CAddonBase::m_interface->toKodi->kodi_filesystem->get_property_values( + ::kodi::addon::CAddonBase::m_interface->toKodi->kodiBase, m_file, type, name.c_str(), &numValues)); if (res) { - std::string strReturn(res); - ::kodi::addon::CAddonBase::m_interface->toKodi->free_string(::kodi::addon::CAddonBase::m_interface->toKodi->kodiBase, res); - return strReturn; + std::vector vecReturn; + for (int i = 0; i < numValues; ++i) + { + vecReturn.emplace_back(res[i]); + } + ::kodi::addon::CAddonBase::m_interface->toKodi->free_string_array(::kodi::addon::CAddonBase::m_interface->toKodi->kodiBase, res, numValues); + return vecReturn; } - return ""; + return std::vector(); } //-------------------------------------------------------------------------- diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/General.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/General.h index f4295ea..22d31f1 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/General.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/General.h @@ -37,7 +37,7 @@ typedef struct AddonToKodiFuncTable_kodi char* (*get_addon_info)(void* kodiBase, const char* id); bool (*open_settings_dialog)(void* kodiBase); char* (*unknown_to_utf8)(void* kodiBase, const char* source, bool* ret, bool failOnBadChar); - char* (*get_localized_string)(void* kodiBase, long dwCode); + char* (*get_localized_string)(void* kodiBase, long label_id); char* (*get_language)(void* kodiBase, int format, bool region); bool (*queue_notification)(void* kodiBase, int type, const char* header, const char* message, const char* imageFile, unsigned int displayTime, bool withSound, unsigned int messageTime); void (*get_md5)(void* kodiBase, const char* text, char* md5); @@ -46,6 +46,7 @@ typedef struct AddonToKodiFuncTable_kodi void (*get_free_mem)(void* kodiBase, long* free, long* total, bool as_bytes); int (*get_global_idle_time)(void* kodiBase); void (*kodi_version)(void* kodiBase, char** compile_name, int* major, int* minor, char** revision, char** tag, char** tagversion); + char* (*get_current_skin_id)(void* kodiBase); } AddonToKodiFuncTable_kodi; //============================================================================== @@ -619,6 +620,47 @@ inline int GetGlobalIdleTime() } /* namespace kodi */ //------------------------------------------------------------------------------ +//============================================================================== +namespace kodi { +/// +/// \ingroup cpp_kodi +/// @brief Get the currently used skin identification name from Kodi +///----------------------------------------------------------------------- +/// +/// @return The active skin id name as a string +/// +/// +/// @note This is not the full path like 'special://home/addons/MediaCenter', +/// but only 'MediaCenter'. +/// +/// +/// ------------------------------------------------------------------------ +/// +/// **Example:** +/// ~~~~~~~~~~~~~{.cpp} +/// #include +/// .. +/// std::string skinid = kodi::GetCurrentSkinId(); +/// .. +/// ~~~~~~~~~~~~~ +/// +inline std::string GetCurrentSkinId() +{ + AddonToKodiFuncTable_Addon* toKodi = ::kodi::addon::CAddonBase::m_interface->toKodi; + + std::string strReturn; + char* strMsg = toKodi->kodi->get_current_skin_id(toKodi->kodiBase); + if (strMsg != nullptr) + { + if (std::strlen(strMsg)) + strReturn = strMsg; + toKodi->free_string(toKodi->kodiBase, strMsg); + } + return strReturn; +} +} /* namespace kodi */ +//------------------------------------------------------------------------------ + //============================================================================== namespace kodi { /// diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/CMakeLists.txt b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/CMakeLists.txt new file mode 100644 index 0000000..ba4f889 --- /dev/null +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/CMakeLists.txt @@ -0,0 +1,15 @@ +set(HEADERS AudioDSP.h + AudioDecoder.h + AudioEncoder.h + ImageDecoder.h + Inputstream.h + Peripheral.h + PeripheralUtils.h + Screensaver.h + VFS.h + VideoCodec.h + Visualization.h) + +if(NOT ENABLE_STATIC_LIBS) + core_add_library(addons_kodi-addon-dev-kit_include_kodi_addon-instance) +endif() 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 8db17c0..08d01ad 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 @@ -29,9 +29,9 @@ #include "../StreamCodec.h" #ifdef BUILD_KODI_ADDON -#include "../DVDDemuxPacket.h" +#include "../DemuxPacket.h" #else -#include "cores/VideoPlayer/DVDDemuxers/DVDDemuxPacket.h" +#include "cores/VideoPlayer/Interface/Addon/DemuxPacket.h" #endif namespace kodi { namespace addon { class CInstanceInputStream; }} @@ -41,7 +41,7 @@ extern "C" { /*! * @brief InputStream add-on capabilities. All capabilities are set to "false" as default. */ - typedef struct INPUTSTREAM_CAPABILITIES + struct INPUTSTREAM_CAPABILITIES { enum MASKTYPE: uint32_t { @@ -58,17 +58,20 @@ extern "C" { SUPPORTS_SEEK = (1 << 3), /// supports pause - SUPPORTS_PAUSE = (1 << 4) + SUPPORTS_PAUSE = (1 << 4), + + /// supports interface ITime + SUPPORTS_ITIME = (1 << 5) }; /// set of supported capabilities uint32_t m_mask; - } INPUTSTREAM_CAPABILITIES; + }; /*! * @brief structure of key/value pairs passed to addon on Open() */ - typedef struct INPUTSTREAM + struct INPUTSTREAM { static const unsigned int MAX_INFO_COUNT = 8; @@ -83,22 +86,22 @@ extern "C" { const char *m_libFolder; const char *m_profileFolder; - } INPUTSTREAM; + }; /*! * @brief Array of stream IDs */ - typedef struct INPUTSTREAM_IDS + struct INPUTSTREAM_IDS { static const unsigned int MAX_STREAM_COUNT = 32; unsigned int m_streamCount; unsigned int m_streamIds[MAX_STREAM_COUNT]; - } INPUTSTREAM_IDS; + }; /*! * @brief stream properties */ - typedef struct INPUTSTREAM_INFO + struct INPUTSTREAM_INFO { enum STREAM_TYPE { @@ -130,6 +133,7 @@ extern "C" { }; uint32_t m_flags; + char m_name[256]; /*!< @brief (optinal) name of the stream, \0 for default handling */ char m_codecName[32]; /*!< @brief (required) name of codec according to ffmpeg */ char m_codecInternalName[32]; /*!< @brief (optional) internal name of codec (selectionstream info) */ STREAMCODEC_PROFILE m_codecProfile; /*!< @brief (optional) the profile of the codec */ @@ -153,7 +157,15 @@ extern "C" { unsigned int m_BlockAlign; CRYPTO_INFO m_cryptoInfo; - } INPUTSTREAM_INFO; + }; + + struct INPUTSTREAM_TIMES + { + time_t startTime; + double ptsStart; + double ptsBegin; + double ptsEnd; + }; /*! * @brief Structure to transfer the methods from xbmc_inputstream_dll.h to XBMC @@ -201,6 +213,9 @@ extern "C" { int (__cdecl* get_total_time)(const AddonInstance_InputStream* instance); int (__cdecl* get_time)(const AddonInstance_InputStream* instance); + // ITime + bool(__cdecl* get_times)(const AddonInstance_InputStream* instance, INPUTSTREAM_TIMES *times); + // IPosTime bool (__cdecl* pos_time)(const AddonInstance_InputStream* instance, int ms); @@ -363,6 +378,12 @@ namespace addon */ virtual int GetTime() { return -1; } + /*! + * Get current timing values in PTS scale + * @remarks + */ + virtual bool GetTimes(INPUTSTREAM_TIMES ×) { return false; } + /*! * Positions inputstream to playing time given in ms * @remarks @@ -483,6 +504,8 @@ namespace addon m_instanceData->toAddon.get_total_time = ADDON_GetTotalTime; m_instanceData->toAddon.get_time = ADDON_GetTime; + m_instanceData->toAddon.get_times = ADDON_GetTimes; + m_instanceData->toAddon.pos_time = ADDON_PosTime; m_instanceData->toAddon.can_pause_stream = ADDON_CanPauseStream; @@ -580,6 +603,11 @@ namespace addon return instance->toAddon.addonInstance->GetTime(); } + // ITime + inline static bool ADDON_GetTimes(const AddonInstance_InputStream* instance, INPUTSTREAM_TIMES *times) + { + return instance->toAddon.addonInstance->GetTimes(*times); + } // IPosTime inline static bool ADDON_PosTime(const AddonInstance_InputStream* instance, int ms) 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 c1a18e0..0dae06c 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 @@ -212,6 +212,8 @@ extern "C" JOYSTICK_FEATURE_TYPE_MOTOR, JOYSTICK_FEATURE_TYPE_RELPOINTER, JOYSTICK_FEATURE_TYPE_ABSPOINTER, + JOYSTICK_FEATURE_TYPE_WHEEL, + JOYSTICK_FEATURE_TYPE_THROTTLE, } JOYSTICK_FEATURE_TYPE; typedef enum JOYSTICK_FEATURE_PRIMITIVE @@ -233,6 +235,14 @@ extern "C" // Motor JOYSTICK_MOTOR_PRIMITIVE = 0, + // Wheel + JOYSTICK_WHEEL_LEFT = 0, + JOYSTICK_WHEEL_RIGHT = 1, + + // Throttle + JOYSTICK_THROTTLE_UP = 0, + JOYSTICK_THROTTLE_DOWN = 1, + // Maximum number of primitives JOYSTICK_PRIMITIVE_MAX = 4, } JOYSTICK_FEATURE_PRIMITIVE; diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/PeripheralUtils.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/PeripheralUtils.h index ea70b30..3c4cab3 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/PeripheralUtils.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/PeripheralUtils.h @@ -581,6 +581,9 @@ namespace addon * 3) accelerometer * 4) motor * 5) relative pointer[2] + * 6) absolute pointer + * 7) wheel + * 8) throttle * * [1] All three driver primitives (buttons, hats and axes) have a state that * can be represented using a single scalar value. For this reason, diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/VideoCodec.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/VideoCodec.h index 02d39c6..eb4351e 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/VideoCodec.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/addon-instance/VideoCodec.h @@ -25,9 +25,9 @@ #include "../StreamCodec.h" #ifdef BUILD_KODI_ADDON -#include "../DVDDemuxPacket.h" +#include "../DemuxPacket.h" #else -#include "cores/VideoPlayer/DVDDemuxers/DVDDemuxPacket.h" +#include "cores/VideoPlayer/Interface/Addon/DemuxPacket.h" #endif namespace kodi { namespace addon { class CInstanceVideoCodec; } } diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/CMakeLists.txt b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/CMakeLists.txt new file mode 100644 index 0000000..91cef7f --- /dev/null +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/CMakeLists.txt @@ -0,0 +1,8 @@ +set(HEADERS General.h + ListItem.h + Window.h + definitions.h) + +if(NOT ENABLE_STATIC_LIBS) + core_add_library(addons_kodi-addon-dev-kit_include_kodi_gui) +endif() diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/controls/CMakeLists.txt b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/controls/CMakeLists.txt new file mode 100644 index 0000000..c7cc1dd --- /dev/null +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/controls/CMakeLists.txt @@ -0,0 +1,16 @@ +set(HEADERS Button.h + Edit.h + FadeLabel.h + Image.h + Label.h + Progress.h + RadioButton.h + Rendering.h + SettingsSlider.h + Slider.h + Spin.h + TextBox.h) + +if(NOT ENABLE_STATIC_LIBS) + core_add_library(addons_kodi-addon-dev-kit_include_kodi_gui_controls) +endif() diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/CMakeLists.txt b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/CMakeLists.txt new file mode 100644 index 0000000..7227343 --- /dev/null +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/gui/dialogs/CMakeLists.txt @@ -0,0 +1,14 @@ +set(HEADERS ContextMenu.h + ExtendedProgress.h + FileBrowser.h + Keyboard.h + Numeric.h + OK.h + Progress.h + Select.h + TextViewer.h + YesNo.h) + +if(NOT ENABLE_STATIC_LIBS) + core_add_library(addons_kodi-addon-dev-kit_include_kodi_gui_dialogs) +endif() diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_types.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_types.h index da02f6f..d4568e7 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_types.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_game_types.h @@ -170,6 +170,7 @@ typedef enum GAME_INPUT_EVENT_SOURCE { GAME_INPUT_EVENT_DIGITAL_BUTTON, GAME_INPUT_EVENT_ANALOG_BUTTON, + GAME_INPUT_EVENT_AXIS, GAME_INPUT_EVENT_ANALOG_STICK, GAME_INPUT_EVENT_ACCELEROMETER, GAME_INPUT_EVENT_KEY, @@ -299,6 +300,11 @@ typedef struct game_analog_button_event float magnitude; } ATTRIBUTE_PACKED game_analog_button_event; +typedef struct game_axis_event +{ + float position; +} ATTRIBUTE_PACKED game_axis_event; + typedef struct game_analog_stick_event { float x; @@ -347,6 +353,7 @@ typedef struct game_input_event { struct game_digital_button_event digital_button; struct game_analog_button_event analog_button; + struct game_axis_event axis; struct game_analog_stick_event analog_stick; struct game_accelerometer_event accelerometer; struct game_key_event key; diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h index c264578..5ef6bdc 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_addon.h @@ -139,6 +139,7 @@ typedef struct CB_AddOn char* (*GetLocalizedString)(const void* addonData, long dwCode); char* (*GetDVDMenuLanguage)(const void* addonData); void (*FreeString)(const void* addonData, char* str); + void (*FreeStringArray)(const void* addonData, char** arr, int numElements); void* (*OpenFile)(const void* addonData, const char* strFileName, unsigned int flags); void* (*OpenFileForWrite)(const void* addonData, const char* strFileName, bool bOverWrite); @@ -155,7 +156,8 @@ typedef struct CB_AddOn int (*GetFileChunkSize)(const void* addonData, void* file); bool (*FileExists)(const void* addonData, const char *strFileName, bool bUseCache); int (*StatFile)(const void* addonData, const char *strFileName, struct __stat64* buffer); - char *(*GetFileProperty)(const void* addonData, void* file, XFILE::FileProperty type, const char *name); + char *(*GetFilePropertyValue)(const void* addonData, void* file, XFILE::FileProperty type, const char *name); + char **(*GetFilePropertyValues)(const void* addonData, void* file, XFILE::FileProperty type, const char *name, int *numPorperties); bool (*DeleteFile)(const void* addonData, const char *strFileName); bool (*CanOpenDirectory)(const void* addonData, const char* strURL); bool (*CreateDirectory)(const void* addonData, const char *strPath); @@ -299,6 +301,16 @@ namespace ADDON { m_Callbacks->FreeString(m_Handle->addonData, str); } + + /*! + * @brief Free the memory used by arr including its elements + * @param arr The string array to free + * @param numElements The length of the array + */ + void FreeStringArray(char** arr, int numElements) + { + m_Callbacks->FreeStringArray(m_Handle->addonData, arr, numElements); + } /*! * @brief Open the file with filename via XBMC's CFile. Needs to be closed by calling CloseFile() when done. @@ -468,13 +480,26 @@ namespace ADDON /*! * @brief Get a property from an open file. * @param file The file to get an property for - * @param type type of the requested property. - * @param name of the requested property / can be null. + * @param type Type of the requested property. + * @param name Name of the requested property / can be null. * @return The value of the requested property, must be FreeString'ed. */ - char *GetFileProperty(void* file, XFILE::FileProperty type, const char *name) + char *GetFilePropertyValue(void* file, XFILE::FileProperty type, const char *name) + { + return m_Callbacks->GetFilePropertyValue(m_Handle->addonData, file, type, name); + } + + /*! + * @brief Get multiple property values from an open file. + * @param file The file to get the property values for + * @param type Type of the requested property. + * @param name Name of the requested property / can be null. + * @param numValues Number of property values returned. + * @return List of values of the requested property, must be FreeStringArray'ed. + */ + char **GetFilePropertyValues(void* file, XFILE::FileProperty type, const char *name, int *numValues) { - return m_Callbacks->GetFileProperty(m_Handle->addonData, file, type, name); + return m_Callbacks->GetFilePropertyValues(m_Handle->addonData, file, type, name, numValues); } /*! diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/CMakeLists.txt b/xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/CMakeLists.txt new file mode 100644 index 0000000..939585c --- /dev/null +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/tools/CMakeLists.txt @@ -0,0 +1,5 @@ +set(HEADERS DllHelper.h ) + +if(NOT ENABLE_STATIC_LIBS) + core_add_library(addons_kodi-addon-dev-kit_include_kodi_tools) +endif() 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 32e6b1a..db8508e 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/versions.h @@ -41,8 +41,8 @@ * overview. */ -#define ADDON_GLOBAL_VERSION_MAIN "1.0.11" -#define ADDON_GLOBAL_VERSION_MAIN_MIN "1.0.11" +#define ADDON_GLOBAL_VERSION_MAIN "1.0.12" +#define ADDON_GLOBAL_VERSION_MAIN_MIN "1.0.12" #define ADDON_GLOBAL_VERSION_MAIN_XML_ID "kodi.binary.global.main" #define ADDON_GLOBAL_VERSION_MAIN_DEPENDS "AddonBase.h" \ "xbmc_addon_dll.h" \ @@ -50,7 +50,7 @@ "libXBMC_addon.h" \ "addon-instance/" -#define ADDON_GLOBAL_VERSION_GENERAL "1.0.2" +#define ADDON_GLOBAL_VERSION_GENERAL "1.0.3" #define ADDON_GLOBAL_VERSION_GENERAL_MIN "1.0.2" #define ADDON_GLOBAL_VERSION_GENERAL_XML_ID "kodi.binary.global.general" #define ADDON_GLOBAL_VERSION_GENERAL_DEPENDS "General.h" @@ -66,8 +66,8 @@ #define ADDON_GLOBAL_VERSION_AUDIOENGINE_XML_ID "kodi.binary.global.audioengine" #define ADDON_GLOBAL_VERSION_AUDIOENGINE_DEPENDS "AudioEngine.h" -#define ADDON_GLOBAL_VERSION_FILESYSTEM "1.0.1" -#define ADDON_GLOBAL_VERSION_FILESYSTEM_MIN "1.0.1" +#define ADDON_GLOBAL_VERSION_FILESYSTEM "1.0.2" +#define ADDON_GLOBAL_VERSION_FILESYSTEM_MIN "1.0.2" #define ADDON_GLOBAL_VERSION_FILESYSTEM_XML_ID "kodi.binary.global.filesystem" #define ADDON_GLOBAL_VERSION_FILESYSTEM_DEPENDS "Filesystem.h" @@ -91,8 +91,8 @@ #define ADDON_INSTANCE_VERSION_AUDIOENCODER_XML_ID "kodi.binary.instance.audioencoder" #define ADDON_INSTANCE_VERSION_AUDIOENCODER_DEPENDS "addon-instance/AudioEncoder.h" -#define ADDON_INSTANCE_VERSION_GAME "1.0.32" -#define ADDON_INSTANCE_VERSION_GAME_MIN "1.0.32" +#define ADDON_INSTANCE_VERSION_GAME "1.0.33" +#define ADDON_INSTANCE_VERSION_GAME_MIN "1.0.33" #define ADDON_INSTANCE_VERSION_GAME_XML_ID "kodi.binary.instance.game" #define ADDON_INSTANCE_VERSION_GAME_DEPENDS "kodi_game_dll.h" \ "kodi_game_types.h" \ @@ -103,19 +103,19 @@ #define ADDON_INSTANCE_VERSION_IMAGEDECODER_XML_ID "kodi.binary.instance.imagedecoder" #define ADDON_INSTANCE_VERSION_IMAGEDECODER_DEPENDS "addon-instance/ImageDecoder.h" -#define ADDON_INSTANCE_VERSION_INPUTSTREAM "2.0.4" -#define ADDON_INSTANCE_VERSION_INPUTSTREAM_MIN "2.0.4" +#define ADDON_INSTANCE_VERSION_INPUTSTREAM "2.0.6" +#define ADDON_INSTANCE_VERSION_INPUTSTREAM_MIN "2.0.6" #define ADDON_INSTANCE_VERSION_INPUTSTREAM_XML_ID "kodi.binary.instance.inputstream" #define ADDON_INSTANCE_VERSION_INPUTSTREAM_DEPENDS "addon-instance/Inputstream.h" -#define ADDON_INSTANCE_VERSION_PERIPHERAL "1.3.4" +#define ADDON_INSTANCE_VERSION_PERIPHERAL "1.3.5" #define ADDON_INSTANCE_VERSION_PERIPHERAL_MIN "1.3.4" #define ADDON_INSTANCE_VERSION_PERIPHERAL_XML_ID "kodi.binary.instance.peripheral" #define ADDON_INSTANCE_VERSION_PERIPHERAL_DEPENDS "addon-instance/Peripheral.h" \ "addon-instance/PeripheralUtils.h" -#define ADDON_INSTANCE_VERSION_PVR "5.7.0" -#define ADDON_INSTANCE_VERSION_PVR_MIN "5.7.0" +#define ADDON_INSTANCE_VERSION_PVR "5.8.0" +#define ADDON_INSTANCE_VERSION_PVR_MIN "5.8.0" #define ADDON_INSTANCE_VERSION_PVR_XML_ID "kodi.binary.instance.pvr" #define ADDON_INSTANCE_VERSION_PVR_DEPENDS "xbmc_pvr_dll.h" \ "xbmc_pvr_types.h" \ diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_epg_types.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_epg_types.h index 7561ff6..1ba12bd 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_epg_types.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/xbmc_epg_types.h @@ -61,6 +61,9 @@ /* Set EPGTAG.iGenreType to EPG_GENRE_USE_STRING to transfer genre strings to XBMC */ #define EPG_GENRE_USE_STRING 0x100 +/* Separator to use in strings containing different tokens, for example writers, directors, actors of an event. */ +#define EPG_STRING_TOKEN_SEPARATOR "," + #ifdef __cplusplus extern "C" { #endif @@ -98,15 +101,15 @@ extern "C" { const char * strPlotOutline; /*!< @brief (optional) plot outline */ const char * strPlot; /*!< @brief (optional) plot */ const char * strOriginalTitle; /*!< @brief (optional) originaltitle */ - const char * strCast; /*!< @brief (optional) cast */ - const char * strDirector; /*!< @brief (optional) director */ - const char * strWriter; /*!< @brief (optional) writer */ + const char * strCast; /*!< @brief (optional) cast. Use EPG_STRING_TOKEN_SEPARATOR to separate different persons. */ + const char * strDirector; /*!< @brief (optional) director(s). Use EPG_STRING_TOKEN_SEPARATOR to separate different persons. */ + const char * strWriter; /*!< @brief (optional) writer(s). Use EPG_STRING_TOKEN_SEPARATOR to separate different persons. */ int iYear; /*!< @brief (optional) year */ const char * strIMDBNumber; /*!< @brief (optional) IMDBNumber */ const char * strIconPath; /*!< @brief (optional) icon path */ int iGenreType; /*!< @brief (optional) genre type */ int iGenreSubType; /*!< @brief (optional) genre sub type */ - const char * strGenreDescription; /*!< @brief (optional) genre. Will be used only when iGenreType = EPG_GENRE_USE_STRING */ + const char * strGenreDescription; /*!< @brief (optional) genre. Will be used only when iGenreType == EPG_GENRE_USE_STRING. Use EPG_STRING_TOKEN_SEPARATOR to separate different genres. */ time_t firstAired; /*!< @brief (optional) first aired in UTC */ int iParentalRating; /*!< @brief (optional) parental rating */ int iStarRating; /*!< @brief (optional) star rating */ 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 019644b..25cacb4 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 @@ -210,14 +210,6 @@ extern "C" */ PVR_ERROR RenameChannel(const PVR_CHANNEL& channel); - /*! - * Move a channel to another channel number on the backend. - * @param channel The channel to move, containing the new channel number. - * @return PVR_ERROR_NO_ERROR if the channel has been moved successfully. - * @remarks Optional, and only used if bSupportsChannelSettings is set to true. Return PVR_ERROR_NOT_IMPLEMENTED if this add-on won't provide this function. - */ - PVR_ERROR MoveChannel(const PVR_CHANNEL& channel); - /*! * Show the channel settings dialog, if supported by the backend. * @param channel The channel to show the dialog for. @@ -246,7 +238,7 @@ extern "C" /*! * @return The total amount of recordings on the backend or -1 on error. * @param deleted if set return deleted recording (called if bSupportsRecordingsUndelete set to true) - * @remarks Required if bSupportsRecordings is set to true. Return PVR_ERROR_NOT_IMPLEMENTED if this add-on won't provide this function. + * @remarks Required if bSupportsRecordings is set to true. Return -1 if this add-on won't provide this function. */ int GetRecordingsAmount(bool deleted); @@ -426,12 +418,6 @@ extern "C" */ long long SeekLiveStream(long long iPosition, int iWhence = SEEK_SET); - /*! - * @return The position in the stream that's currently being read. - * @remarks Optional, and only used if bHandlesInputStream is set to true. Return -1 if this add-on won't provide this function. - */ - long long PositionLiveStream(void); - /*! * @return The total length of the stream that's currently being read. * @remarks Optional, and only used if bHandlesInputStream is set to true. Return -1 if this add-on won't provide this function. @@ -519,12 +505,6 @@ extern "C" */ long long SeekRecordedStream(long long iPosition, int iWhence = SEEK_SET); - /*! - * @return The position in the stream that's currently being read. - * @remarks Optional, and only used if bSupportsRecordings is set to true. Return -1 if this add-on won't provide this function. - */ - long long PositionRecordedStream(void); - /*! * @return The total length of the stream that's currently being read. * @remarks Optional, and only used if bSupportsRecordings is set to true. Return -1 if this add-on won't provide this function. @@ -605,25 +585,6 @@ extern "C" */ void SetSpeed(int speed); - /*! - * Get actual playing time from addon. With timeshift enabled this is - * different to live. - * @return time as UTC - */ - time_t GetPlayingTime(); - - /*! - * Get time of oldest packet in timeshift buffer - * @return time as UTC - */ - time_t GetBufferTimeStart(); - - /*! - * Get time of latest packet in timeshift buffer - * @return time as UTC - */ - time_t GetBufferTimeEnd(); - /*! * Get the hostname of the pvr backend server * @return hostname as ip address or alias. If backend does not @@ -699,7 +660,6 @@ extern "C" pClient->toAddon.GetChannels = GetChannels; pClient->toAddon.DeleteChannel = DeleteChannel; pClient->toAddon.RenameChannel = RenameChannel; - pClient->toAddon.MoveChannel = MoveChannel; pClient->toAddon.OpenDialogChannelSettings = OpenDialogChannelSettings; pClient->toAddon.OpenDialogChannelAdd = OpenDialogChannelAdd; @@ -726,7 +686,6 @@ extern "C" pClient->toAddon.CloseLiveStream = CloseLiveStream; pClient->toAddon.ReadLiveStream = ReadLiveStream; pClient->toAddon.SeekLiveStream = SeekLiveStream; - pClient->toAddon.PositionLiveStream = PositionLiveStream; pClient->toAddon.LengthLiveStream = LengthLiveStream; pClient->toAddon.SignalStatus = SignalStatus; pClient->toAddon.GetDescrambleInfo = GetDescrambleInfo; @@ -742,7 +701,6 @@ extern "C" pClient->toAddon.CloseRecordedStream = CloseRecordedStream; pClient->toAddon.ReadRecordedStream = ReadRecordedStream; pClient->toAddon.SeekRecordedStream = SeekRecordedStream; - pClient->toAddon.PositionRecordedStream = PositionRecordedStream; pClient->toAddon.LengthRecordedStream = LengthRecordedStream; pClient->toAddon.DemuxReset = DemuxReset; @@ -750,10 +708,6 @@ extern "C" pClient->toAddon.DemuxFlush = DemuxFlush; pClient->toAddon.DemuxRead = DemuxRead; - pClient->toAddon.GetPlayingTime = GetPlayingTime; - pClient->toAddon.GetBufferTimeStart = GetBufferTimeStart; - pClient->toAddon.GetBufferTimeEnd = GetBufferTimeEnd; - pClient->toAddon.GetBackendHostname = GetBackendHostname; pClient->toAddon.IsTimeshifting = IsTimeshifting; 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 a7d21ed..623cb03 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 @@ -40,7 +40,7 @@ * and the add-on should set bHandlesDemuxing to true. */ #ifdef USE_DEMUX -#include "DVDDemuxPacket.h" +#include "DemuxPacket.h" #else struct DemuxPacket; #endif @@ -81,6 +81,7 @@ struct DemuxPacket; #define PVR_STREAM_MAX_PROPERTIES 20 #define PVR_STREAM_PROPERTY_STREAMURL "streamurl" /*!< @brief the URL of the stream that should be played. */ #define PVR_STREAM_PROPERTY_INPUTSTREAMADDON "inputstreamaddon" /*!< @brief the name of the inputstream add-on that should be used by Kodi to play the stream denoted by PVR_STREAM_PROPERTY_STREAMURL. Leave blank to use Kodi's built-in playing capabilities. */ +#define PVR_STREAM_PROPERTY_MIMETYPE "mimetype" /*!< @brief the Mime-Type of the stream that should be played. */ /* using the default avformat's MAX_STREAMS value to be safe */ #define PVR_STREAM_MAX_STREAMS 20 @@ -311,7 +312,7 @@ extern "C" { bool bSupportsTimers; /*!< @brief true if this add-on supports the creation and editing of timers */ bool bSupportsChannelGroups; /*!< @brief true if this add-on supports channel groups */ bool bSupportsChannelScan; /*!< @brief true if this add-on support scanning for new channels on the backend */ - bool bSupportsChannelSettings; /*!< @brief true if this add-on supports the following functions: DeleteChannel, RenameChannel, MoveChannel, DialogChannelSettings and DialogAddChannel */ + bool bSupportsChannelSettings; /*!< @brief true if this add-on supports the following functions: DeleteChannel, RenameChannel, DialogChannelSettings and DialogAddChannel */ bool bHandlesInputStream; /*!< @brief true if this add-on provides an input stream. false if XBMC handles the stream. */ bool bHandlesDemuxing; /*!< @brief true if this add-on demultiplexes packets. */ bool bSupportsRecordingPlayCount; /*!< @brief true if the backend supports play count for recordings. */ @@ -423,6 +424,7 @@ extern "C" { char strGroupName[PVR_ADDON_NAME_STRING_LENGTH]; /*!< @brief (required) name of the channel group to add the channel to */ unsigned int iChannelUniqueId; /*!< @brief (required) unique id of the member */ unsigned int iChannelNumber; /*!< @brief (optional) channel number within the group */ + unsigned int iSubChannelNumber; /*!< @brief (optional) sub channel number within the group (ATSC) */ } ATTRIBUTE_PACKED PVR_CHANNEL_GROUP_MEMBER; /*! @@ -588,14 +590,14 @@ extern "C" { } ATTRIBUTE_PACKED PVR_MENUHOOK_DATA; /*! - * @brief times of playing stream + * @brief times of playing stream (Live TV and recordings) */ typedef struct PVR_STREAM_TIMES { - time_t startTime; /*!< @brief time (UTC) time elapsed refers to. Ideally start of tv show */ - int64_t ptsStart; /*!< @brief pts of startTime */ - int64_t ptsBegin; /*!< @brief erliest pts player can seek back */ - int64_t ptsEnd; /*!< @brief latest pts player can seek forward */ + 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. */ + int64_t ptsStart; /*!< @brief the pts of startTime */ + 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. */ + 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. */ } ATTRIBUTE_PACKED PVR_STREAM_TIMES; typedef struct AddonToKodiFuncTable_PVR @@ -676,7 +678,6 @@ extern "C" { void (__cdecl* CloseLiveStream)(void); int (__cdecl* ReadLiveStream)(unsigned char*, unsigned int); long long (__cdecl* SeekLiveStream)(long long, int); - long long (__cdecl* PositionLiveStream)(void); long long (__cdecl* LengthLiveStream)(void); PVR_ERROR (__cdecl* SignalStatus)(PVR_SIGNAL_STATUS&); PVR_ERROR (__cdecl* GetDescrambleInfo)(PVR_DESCRAMBLE_INFO*); @@ -686,7 +687,6 @@ extern "C" { void (__cdecl* CloseRecordedStream)(void); int (__cdecl* ReadRecordedStream)(unsigned char*, unsigned int); long long (__cdecl* SeekRecordedStream)(long long, int); - long long (__cdecl* PositionRecordedStream)(void); long long (__cdecl* LengthRecordedStream)(void); void (__cdecl* DemuxReset)(void); void (__cdecl* DemuxAbort)(void); @@ -697,9 +697,6 @@ extern "C" { bool (__cdecl* CanSeekStream)(void); bool (__cdecl* SeekTime)(double, bool, double*); void (__cdecl* SetSpeed)(int); - time_t (__cdecl* GetPlayingTime)(void); - time_t (__cdecl* GetBufferTimeStart)(void); - time_t (__cdecl* GetBufferTimeEnd)(void); const char* (__cdecl* GetBackendHostname)(void); bool (__cdecl* IsTimeshifting)(void); bool (__cdecl* IsRealTimeStream)(void); diff --git a/xbmc/filesystem/.IFileTypes.h.swp b/xbmc/filesystem/.IFileTypes.h.swp deleted file mode 100644 index 1880359..0000000 Binary files a/xbmc/filesystem/.IFileTypes.h.swp and /dev/null differ diff --git a/xbmc/filesystem/IFileTypes.h b/xbmc/filesystem/IFileTypes.h index d5dd218..a65a178 100644 --- a/xbmc/filesystem/IFileTypes.h +++ b/xbmc/filesystem/IFileTypes.h @@ -78,18 +78,37 @@ typedef enum { enum CURLOPTIONTYPE { CURL_OPTION_OPTION, /**< Set a general option */ - CURL_OPTION_PROTOCOL, /**< Set a protocol option */ + CURL_OPTION_PROTOCOL, /**< Set a protocol option (see below) */ CURL_OPTION_CREDENTIALS,/**< Set User and password */ CURL_OPTION_HEADER /**< Add a Header */ }; +/** + * The following names for CURL_OPTION_PROTOCOL are possible: + * + * accept-charset: Set the "accept-charset" header + * acceptencoding or encoding: Set the "accept-encoding" header + * active-remote: Set the "active-remote" header + * auth: Set the authentication method. Possible values: any, anysafe, digest, ntlm + * connection-timeout: Set the connection timeout in seconds + * cookie: Set the "cookie" header + * customrequest: Set a custom HTTP request like DELETE + * noshout: Set to true if kodi detects a stream as shoutcast by mistake. + * postdata: Set the post body (value needs to be base64 encoded). (Implicitly sets the request to POST) + * referer: Set the "referer" header + * user-agent: Set the "user-agent" header + * seekable: Set the stream seekable. 1: enable, 0: disable + * sslcipherlist: Set list of accepted SSL ciphers. + */ + enum FileProperty { FILE_PROPERTY_RESPONSE_PROTOCOL, /**< Get response protocol line */ FILE_PROPERTY_RESPONSE_HEADER, /**< Get response Header value */ FILE_PROPERTY_CONTENT_TYPE, /**< Get file content-type */ FILE_PROPERTY_CONTENT_CHARSET, /**< Get file content charset */ - FILE_PROPERTY_MIME_TYPE /**< Get file mime type */ + FILE_PROPERTY_MIME_TYPE, /**< Get file mime type */ + FILE_PROPERTY_EFFECTIVE_URL /**< Get effective URL for redirected streams */ }; } diff --git a/xbmc/input/ActionIDs.h b/xbmc/input/ActionIDs.h index b88df78..5db1ffc 100644 --- a/xbmc/input/ActionIDs.h +++ b/xbmc/input/ActionIDs.h @@ -80,7 +80,7 @@ #define ACTION_CALIBRATE_SWAP_ARROWS 47 //!< select next arrow. Can b used in: settingsScreenCalibration.xml windowid=11 #define ACTION_CALIBRATE_RESET 48 //!< reset calibration to defaults. Can b used in: `settingsScreenCalibration.xml` windowid=11/settingsUICalibration.xml windowid=10 #define ACTION_ANALOG_MOVE 49 //!< analog thumbstick move. Can b used in: `slideshow.xml` windowid=2007/settingsScreenCalibration.xml windowid=11/settingsUICalibration.xml windowid=10 - //!< @note see also ACTION_ANALOG_MOVE_X, ACTION_ANALOG_MOVE_Y + //!< @note see also ACTION_ANALOG_MOVE_X_LEFT, ACTION_ANALOG_MOVE_X_RIGHT, ACTION_ANALOG_MOVE_Y_UP, ACTION_ANALOG_MOVE_Y_DOWN #define ACTION_ROTATE_PICTURE_CW 50 //!< rotate current picture clockwise during slideshow. Can be used in slideshow.xml window id=2007 #define ACTION_ROTATE_PICTURE_CCW 51 //!< rotate current picture counterclockwise during slideshow. Can be used in slideshow.xml window id=2007 @@ -102,8 +102,8 @@ #define REMOTE_8 66 #define REMOTE_9 67 -#define ACTION_PLAY 68 //!< Unused at the moment #define ACTION_PLAYER_PROCESS_INFO 69 //!< show player process info (video decoder, pixel format, pvr signal strength and the like +#define ACTION_PLAYER_PROGRAM_SELECT 70 #define ACTION_SMALL_STEP_BACK 76 //!< jumps a few seconds back during playback of movie. Can b used in videoFullScreen.xml window id=2005 #define ACTION_PLAYER_FORWARD 77 //!< FF in current file played. global action, can be used anywhere @@ -228,6 +228,7 @@ #define ACTION_PVR_PLAY_TV 189 #define ACTION_PVR_PLAY_RADIO 190 #define ACTION_PVR_SHOW_TIMER_RULE 191 +#define ACTION_CHANNEL_NUMBER_SEP 192 #define ACTION_TOGGLE_FULLSCREEN 199 //!< switch 2 desktop resolution #define ACTION_TOGGLE_WATCHED 200 //!< Toggle watched status (videos) @@ -274,6 +275,8 @@ #define ACTION_PLAYER_RESET 248 //!< Send a reset command to the active game +#define ACTION_TOGGLE_FONT 249 //!< Toggle font. Used in TextViewer dialog + // Voice actions #define ACTION_VOICE_RECOGNIZE 300 @@ -302,8 +305,10 @@ #define ACTION_GESTURE_END 599 // other, non-gesture actions -#define ACTION_ANALOG_MOVE_X 601 //!< analog thumbstick move, horizontal axis; see ACTION_ANALOG_MOVE -#define ACTION_ANALOG_MOVE_Y 602 //!< analog thumbstick move, vertical axis; see ACTION_ANALOG_MOVE +#define ACTION_ANALOG_MOVE_X_LEFT 601 //!< analog thumbstick move, horizontal axis, left; see ACTION_ANALOG_MOVE +#define ACTION_ANALOG_MOVE_X_RIGHT 602 //!< analog thumbstick move, horizontal axis, right; see ACTION_ANALOG_MOVE +#define ACTION_ANALOG_MOVE_Y_UP 603 //!< analog thumbstick move, vertical axis, up; see ACTION_ANALOG_MOVE +#define ACTION_ANALOG_MOVE_Y_DOWN 604 //!< analog thumbstick move, vertical axis, down; see ACTION_ANALOG_MOVE //@} // The NOOP action can be specified to disable an input event. This is -- cgit v1.2.3