From be933ef2241d79558f91796cc5b3a161f72ebf9c Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 19 Oct 2020 00:52:24 +0200 Subject: sync with upstream --- .../include/kodi/addon-instance/pvr/General.h | 511 +++++++++++++++++++++ 1 file changed, 511 insertions(+) create mode 100644 xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/pvr/General.h (limited to 'xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/pvr/General.h') diff --git a/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/pvr/General.h b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/pvr/General.h new file mode 100644 index 0000000..c7977c2 --- /dev/null +++ b/xbmc/addons/kodi-dev-kit/include/kodi/addon-instance/pvr/General.h @@ -0,0 +1,511 @@ +/* + * Copyright (C) 2005-2018 Team Kodi + * This file is part of Kodi - https://kodi.tv + * + * SPDX-License-Identifier: GPL-2.0-or-later + * See LICENSES/README.md for more information. + */ + +#pragma once + +#include "../../AddonBase.h" +#include "../../c-api/addon-instance/pvr/pvr_general.h" + +//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ +// "C++" Definitions group 1 - General PVR +#ifdef __cplusplus + +namespace kodi +{ +namespace addon +{ + +//============================================================================== +/// @defgroup cpp_kodi_addon_pvr_Defs_PVRTypeIntValue class PVRTypeIntValue +/// @ingroup cpp_kodi_addon_pvr_Defs_General +/// @brief **PVR add-on type value**\n +/// Representation of a `` event related value. +/// +/// ---------------------------------------------------------------------------- +/// +/// @copydetails cpp_kodi_addon_pvr_Defs_PVRTypeIntValue_Help +/// +///@{ +class PVRTypeIntValue : public CStructHdl +{ + friend class CInstancePVRClient; + +public: + /*! \cond PRIVATE */ + PVRTypeIntValue(const PVRTypeIntValue& data) : CStructHdl(data) {} + /*! \endcond */ + + /// @defgroup cpp_kodi_addon_pvr_Defs_PVRTypeIntValue_Help Value Help + /// @ingroup cpp_kodi_addon_pvr_Defs_PVRTypeIntValue + /// + /// The following table contains values that can be set with @ref cpp_kodi_addon_pvr_Defs_PVRTypeIntValue : + /// | Name | Type | Set call | Get call + /// |------|------|----------|---------- + /// | **Value** | `int` | @ref PVRTypeIntValue::SetValue "SetValue" | @ref PVRTypeIntValue::GetValue "GetValue" + /// | **Description** | `std::string` | @ref PVRTypeIntValue::SetDescription "SetDescription" | @ref PVRTypeIntValue::GetDescription "GetDescription" + /// + /// @remark Further can there be used his class constructor to set values. + + /// @addtogroup cpp_kodi_addon_pvr_Defs_PVRTypeIntValue + ///@{ + + /// @brief Default class constructor. + /// + /// @note Values must be set afterwards. + PVRTypeIntValue() = default; + + /// @brief Class constructor with integrated value set. + /// + /// @param[in] value Type identification value + /// @param[in] description Type description text + PVRTypeIntValue(int value, const std::string& description) + { + SetValue(value); + SetDescription(description); + } + + /// @brief To set with the identification value. + void SetValue(int value) { m_cStructure->iValue = value; } + + /// @brief To get with the identification value. + int GetValue() const { return m_cStructure->iValue; } + + /// @brief To set with the description text of the value. + void SetDescription(const std::string& description) + { + strncpy(m_cStructure->strDescription, description.c_str(), + sizeof(m_cStructure->strDescription) - 1); + } + + /// @brief To get with the description text of the value. + std::string GetDescription() const { return m_cStructure->strDescription; } + ///@} + +private: + PVRTypeIntValue(const PVR_ATTRIBUTE_INT_VALUE* data) : CStructHdl(data) {} + PVRTypeIntValue(PVR_ATTRIBUTE_INT_VALUE* data) : CStructHdl(data) {} +}; +///@} +//------------------------------------------------------------------------------ + +//============================================================================== +/// @defgroup cpp_kodi_addon_pvr_Defs_PVRCapabilities class PVRCapabilities +/// @ingroup cpp_kodi_addon_pvr_Defs_General +/// @brief **PVR add-on capabilities**\n +/// This class is needed to tell Kodi which options are supported on the addon. +/// +/// If a capability is set to **true**, then the corresponding methods from +/// @ref cpp_kodi_addon_pvr "kodi::addon::CInstancePVRClient" need to be +/// implemented. +/// +/// As default them all set to **false**. +/// +/// Used on @ref kodi::addon::CInstancePVRClient::GetCapabilities(). +/// +/// ---------------------------------------------------------------------------- +/// +/// @copydetails cpp_kodi_addon_pvr_Defs_PVRCapabilities_Help +/// +///@{ +class PVRCapabilities +{ + friend class CInstancePVRClient; + +public: + /*! \cond PRIVATE */ + explicit PVRCapabilities() = delete; + /*! \endcond */ + + /// @defgroup cpp_kodi_addon_pvr_Defs_PVRCapabilities_Help Value Help + /// @ingroup cpp_kodi_addon_pvr_Defs_PVRCapabilities + /// ---------------------------------------------------------------------------- + /// + /// The following table contains values that can be set with @ref cpp_kodi_addon_pvr_Defs_PVRCapabilities : + /// | Name | Type | Set call | Get call + /// |------|------|----------|---------- + /// | **Supports EPG** | `boolean` | @ref PVRCapabilities::SetSupportsEPG "SetSupportsEPG" | @ref PVRCapabilities::GetSupportsEPG "GetSupportsEPG" + /// | **Supports EPG EDL** | `boolean` | @ref PVRCapabilities::SetSupportsEPGEdl "SetSupportsEPGEdl" | @ref PVRCapabilities::GetSupportsEPGEdl "GetSupportsEPGEdl" + /// | **Supports TV** | `boolean` | @ref PVRCapabilities::SetSupportsTV "SetSupportsTV" | @ref PVRCapabilities::GetSupportsTV "GetSupportsTV" + /// | **Supports radio** | `boolean` | @ref PVRCapabilities::SetSupportsRadio "SetSupportsRadio" | @ref PVRCapabilities::GetSupportsRadio "GetSupportsRadio" + /// | **Supports recordings** | `boolean` | @ref PVRCapabilities::SetSupportsRecordings "SetSupportsRecordings" | @ref PVRCapabilities::GetSupportsRecordings "GetSupportsRecordings" + /// | **Supports recordings undelete** | `boolean` | @ref PVRCapabilities::SetSupportsRecordingsUndelete "SetSupportsRecordingsUndelete" | @ref PVRCapabilities::GetSupportsRecordingsUndelete "SetSupportsRecordingsUndelete" + /// | **Supports timers** | `boolean` | @ref PVRCapabilities::SetSupportsTimers "SetSupportsTimers" | @ref PVRCapabilities::GetSupportsTimers "GetSupportsTimers" + /// | **Supports channel groups** | `boolean` | @ref PVRCapabilities::SetSupportsChannelGroups "SetSupportsChannelGroups" | @ref PVRCapabilities::GetSupportsChannelGroups "GetSupportsChannelGroups" + /// | **Supports channel scan** | `boolean` | @ref PVRCapabilities::SetSupportsChannelScan "SetSupportsChannelScan" | @ref PVRCapabilities::GetSupportsChannelScan "GetSupportsChannelScan" + /// | **Supports channel settings** | `boolean` | @ref PVRCapabilities::SetSupportsChannelSettings "SetSupportsChannelSettings" | @ref PVRCapabilities::GetSupportsChannelSettings "GetSupportsChannelSettings" + /// | **Handles input stream** | `boolean` | @ref PVRCapabilities::SetHandlesInputStream "SetHandlesInputStream" | @ref PVRCapabilities::GetHandlesInputStream "GetHandlesInputStream" + /// | **Handles demuxing** | `boolean` | @ref PVRCapabilities::SetHandlesDemuxing "SetHandlesDemuxing" | @ref PVRCapabilities::GetHandlesDemuxing "GetHandlesDemuxing" + /// | **Supports recording play count** | `boolean` | @ref PVRCapabilities::SetSupportsRecordingPlayCount "SetSupportsRecordingPlayCount" | @ref PVRCapabilities::GetSupportsRecordingPlayCount "GetSupportsRecordingPlayCount" + /// | **Supports last played position** | `boolean` | @ref PVRCapabilities::SetSupportsLastPlayedPosition "SetSupportsLastPlayedPosition" | @ref PVRCapabilities::GetSupportsLastPlayedPosition "GetSupportsLastPlayedPosition" + /// | **Supports recording EDL** | `boolean` | @ref PVRCapabilities::SetSupportsRecordingEdl "SetSupportsRecordingEdl" | @ref PVRCapabilities::GetSupportsRecordingEdl "GetSupportsRecordingEdl" + /// | **Supports recordings rename** | `boolean` | @ref PVRCapabilities::SetSupportsRecordingsRename "SetSupportsRecordingsRename" | @ref PVRCapabilities::GetSupportsRecordingsRename "GetSupportsRecordingsRename" + /// | **Supports recordings lifetime change** | `boolean` | @ref PVRCapabilities::SetSupportsRecordingsLifetimeChange "SetSupportsRecordingsLifetimeChange" | @ref PVRCapabilities::GetSupportsRecordingsLifetimeChange "GetSupportsRecordingsLifetimeChange" + /// | **Supports descramble info** | `boolean` | @ref PVRCapabilities::SetSupportsDescrambleInfo "SetSupportsDescrambleInfo" | @ref PVRCapabilities::GetSupportsDescrambleInfo "GetSupportsDescrambleInfo" + /// | **Supports async EPG transfer** | `boolean` | @ref PVRCapabilities::SetSupportsAsyncEPGTransfer "SetSupportsAsyncEPGTransfer" | @ref PVRCapabilities::GetSupportsAsyncEPGTransfer "GetSupportsAsyncEPGTransfer" + /// | **Supports recording size** | `boolean` | @ref PVRCapabilities::SetSupportsRecordingSize "SetSupportsRecordingSize" | @ref PVRCapabilities::GetSupportsRecordingSize "GetSupportsRecordingSize" + /// | **Recordings lifetime values** | @ref cpp_kodi_addon_pvr_Defs_PVRTypeIntValue "PVRTypeIntValue" | @ref PVRCapabilities::SetRecordingsLifetimeValues "SetRecordingsLifetimeValues" | @ref PVRCapabilities::GetRecordingsLifetimeValues "GetRecordingsLifetimeValues" + /// + /// @warning This class can not be used outside of @ref kodi::addon::CInstancePVRClient::GetCapabilities() + /// + + /// @addtogroup cpp_kodi_addon_pvr_Defs_PVRCapabilities + ///@{ + + /// @brief Set **true** if the add-on provides EPG information. + void SetSupportsEPG(bool supportsEPG) { m_capabilities->bSupportsEPG = supportsEPG; } + + /// @brief To get with @ref SetSupportsEPG changed values. + bool GetSupportsEPG() const { return m_capabilities->bSupportsEPG; } + + /// @brief Set **true** if the backend supports retrieving an edit decision + /// list for an EPG tag. + void SetSupportsEPGEdl(bool supportsEPGEdl) { m_capabilities->bSupportsEPGEdl = supportsEPGEdl; } + + /// @brief To get with @ref SetSupportsEPGEdl changed values. + bool GetSupportsEPGEdl() const { return m_capabilities->bSupportsEPGEdl; } + + /// @brief Set **true** if this add-on provides TV channels. + void SetSupportsTV(bool supportsTV) { m_capabilities->bSupportsTV = supportsTV; } + + /// @brief To get with @ref SetSupportsTV changed values. + bool GetSupportsTV() const { return m_capabilities->bSupportsTV; } + + /// @brief Set **true** if this add-on provides TV channels. + void SetSupportsRadio(bool supportsRadio) { m_capabilities->bSupportsRadio = supportsRadio; } + + /// @brief To get with @ref SetSupportsRadio changed values. + bool GetSupportsRadio() const { return m_capabilities->bSupportsRadio; } + + /// @brief **true** if this add-on supports playback of recordings stored on + /// the backend. + void SetSupportsRecordings(bool supportsRecordings) + { + m_capabilities->bSupportsRecordings = supportsRecordings; + } + + /// @brief To get with @ref SetSupportsRecordings changed values. + bool GetSupportsRecordings() const { return m_capabilities->bSupportsRecordings; } + + /// @brief Set **true** if this add-on supports undelete of recordings stored + /// on the backend. + void SetSupportsRecordingsUndelete(bool supportsRecordingsUndelete) + { + m_capabilities->bSupportsRecordingsUndelete = supportsRecordingsUndelete; + } + + /// @brief To get with @ref SetSupportsRecordings changed values. + bool GetSupportsRecordingsUndelete() const { return m_capabilities->bSupportsRecordingsUndelete; } + + /// @brief Set **true** if this add-on supports the creation and editing of + /// timers. + void SetSupportsTimers(bool supportsTimers) { m_capabilities->bSupportsTimers = supportsTimers; } + + /// @brief To get with @ref SetSupportsTimers changed values. + bool GetSupportsTimers() const { return m_capabilities->bSupportsTimers; } + + /// @brief Set **true** if this add-on supports channel groups. + /// + /// It use the following functions: + /// - @ref kodi::addon::CInstancePVRClient::GetChannelGroupsAmount() + /// - @ref kodi::addon::CInstancePVRClient::GetChannelGroups() + /// - @ref kodi::addon::CInstancePVRClient::GetChannelGroupMembers() + void SetSupportsChannelGroups(bool supportsChannelGroups) + { + m_capabilities->bSupportsChannelGroups = supportsChannelGroups; + } + + /// @brief To get with @ref SetSupportsChannelGroups changed values. + bool GetSupportsChannelGroups() const { return m_capabilities->bSupportsChannelGroups; } + + /// @brief Set **true** if this add-on support scanning for new channels on + /// the backend. + /// + /// It use the following function: + /// - @ref kodi::addon::CInstancePVRClient::OpenDialogChannelScan() + void SetSupportsChannelScan(bool supportsChannelScan) + { + m_capabilities->bSupportsChannelScan = supportsChannelScan; + } + + /// @brief To get with @ref SetSupportsChannelScan changed values. + bool GetSupportsChannelScan() const { return m_capabilities->bSupportsChannelScan; } + + /// @brief Set **true** if this add-on supports channel edit. + /// + /// It use the following functions: + /// - @ref kodi::addon::CInstancePVRClient::DeleteChannel() + /// - @ref kodi::addon::CInstancePVRClient::RenameChannel() + /// - @ref kodi::addon::CInstancePVRClient::OpenDialogChannelSettings() + /// - @ref kodi::addon::CInstancePVRClient::OpenDialogChannelAdd() + void SetSupportsChannelSettings(bool supportsChannelSettings) + { + m_capabilities->bSupportsChannelSettings = supportsChannelSettings; + } + + /// @brief To get with @ref SetSupportsChannelSettings changed values. + bool GetSupportsChannelSettings() const { return m_capabilities->bSupportsChannelSettings; } + + /// @brief Set **true** if this add-on provides an input stream. false if Kodi + /// handles the stream. + void SetHandlesInputStream(bool handlesInputStream) + { + m_capabilities->bHandlesInputStream = handlesInputStream; + } + + /// @brief To get with @ref SetHandlesInputStream changed values. + bool GetHandlesInputStream() const { return m_capabilities->bHandlesInputStream; } + + /// @brief Set **true** if this add-on demultiplexes packets. + void SetHandlesDemuxing(bool handlesDemuxing) + { + m_capabilities->bHandlesDemuxing = handlesDemuxing; + } + + /// @brief To get with @ref SetHandlesDemuxing changed values. + bool GetHandlesDemuxing() const { return m_capabilities->bHandlesDemuxing; } + + /// @brief Set **true** if the backend supports play count for recordings. + void SetSupportsRecordingPlayCount(bool supportsRecordingPlayCount) + { + m_capabilities->bSupportsRecordingPlayCount = supportsRecordingPlayCount; + } + + /// @brief To get with @ref SetSupportsRecordingPlayCount changed values. + bool GetSupportsRecordingPlayCount() const { return m_capabilities->bSupportsRecordingPlayCount; } + + /// @brief Set **true** if the backend supports store/retrieve of last played + /// position for recordings. + void SetSupportsLastPlayedPosition(bool supportsLastPlayedPosition) + { + m_capabilities->bSupportsLastPlayedPosition = supportsLastPlayedPosition; + } + + /// @brief To get with @ref SetSupportsLastPlayedPosition changed values. + bool GetSupportsLastPlayedPosition() const { return m_capabilities->bSupportsLastPlayedPosition; } + + /// @brief Set **true** if the backend supports retrieving an edit decision + /// list for recordings. + void SetSupportsRecordingEdl(bool supportsRecordingEdl) + { + m_capabilities->bSupportsRecordingEdl = supportsRecordingEdl; + } + + /// @brief To get with @ref SetSupportsRecordingEdl changed values. + bool GetSupportsRecordingEdl() const { return m_capabilities->bSupportsRecordingEdl; } + + /// @brief Set **true** if the backend supports renaming recordings. + void SetSupportsRecordingsRename(bool supportsRecordingsRename) + { + m_capabilities->bSupportsRecordingsRename = supportsRecordingsRename; + } + + /// @brief To get with @ref SetSupportsRecordingsRename changed values. + bool GetSupportsRecordingsRename() const { return m_capabilities->bSupportsRecordingsRename; } + + /// @brief Set **true** if the backend supports changing lifetime for + /// recordings. + void SetSupportsRecordingsLifetimeChange(bool supportsRecordingsLifetimeChange) + { + m_capabilities->bSupportsRecordingsLifetimeChange = supportsRecordingsLifetimeChange; + } + + /// @brief To get with @ref SetSupportsRecordingsLifetimeChange changed + /// values. + bool GetSupportsRecordingsLifetimeChange() const + { + return m_capabilities->bSupportsRecordingsLifetimeChange; + } + + /// @brief Set **true** if the backend supports descramble information for + /// playing channels. + void SetSupportsDescrambleInfo(bool supportsDescrambleInfo) + { + m_capabilities->bSupportsDescrambleInfo = supportsDescrambleInfo; + } + + /// @brief To get with @ref SetSupportsDescrambleInfo changed values. + bool GetSupportsDescrambleInfo() const { return m_capabilities->bSupportsDescrambleInfo; } + + /// @brief Set **true** if this addon-on supports asynchronous transfer of epg + /// events to Kodi using the callback function + /// @ref kodi::addon::CInstancePVRClient::EpgEventStateChange(). + void SetSupportsAsyncEPGTransfer(bool supportsAsyncEPGTransfer) + { + m_capabilities->bSupportsAsyncEPGTransfer = supportsAsyncEPGTransfer; + } + + /// @brief To get with @ref SetSupportsAsyncEPGTransfer changed values. + bool GetSupportsAsyncEPGTransfer() const { return m_capabilities->bSupportsAsyncEPGTransfer; } + + /// @brief Set **true** if this addon-on supports retrieving size of recordings. + void SetSupportsRecordingSize(bool supportsRecordingSize) + { + m_capabilities->bSupportsRecordingSize = supportsRecordingSize; + } + + /// @brief To get with @ref SetSupportsRecordingSize changed values. + bool GetSupportsRecordingSize() const { return m_capabilities->bSupportsRecordingSize; } + + /// @brief **optional**\n + /// Set array containing the possible values for @ref PVRRecording::SetLifetime(). + /// + /// -------------------------------------------------------------------------- + /// + /// @copydetails cpp_kodi_addon_pvr_Defs_PVRTypeIntValue_Help + void SetRecordingsLifetimeValues( + const std::vector& recordingsLifetimeValues) + { + m_capabilities->iRecordingsLifetimesSize = 0; + for (unsigned int i = 0; i < recordingsLifetimeValues.size() && + i < sizeof(m_capabilities->recordingsLifetimeValues); + ++i) + { + m_capabilities->recordingsLifetimeValues[i].iValue = + recordingsLifetimeValues[i].GetCStructure()->iValue; + strncpy(m_capabilities->recordingsLifetimeValues[i].strDescription, + recordingsLifetimeValues[i].GetCStructure()->strDescription, + sizeof(m_capabilities->recordingsLifetimeValues[i].strDescription) - 1); + ++m_capabilities->iRecordingsLifetimesSize; + } + } + + /// @brief To get with @ref SetRecordingsLifetimeValues changed values. + std::vector GetRecordingsLifetimeValues() const + { + std::vector recordingsLifetimeValues; + for (unsigned int i = 0; i < m_capabilities->iRecordingsLifetimesSize; ++i) + recordingsLifetimeValues.emplace_back( + m_capabilities->recordingsLifetimeValues[i].iValue, + m_capabilities->recordingsLifetimeValues[i].strDescription); + return recordingsLifetimeValues; + } + ///@} + +private: + PVRCapabilities(PVR_ADDON_CAPABILITIES* capabilities) : m_capabilities(capabilities) {} + + PVR_ADDON_CAPABILITIES* m_capabilities; +}; +///@} +//------------------------------------------------------------------------------ + +//============================================================================== +/// @defgroup cpp_kodi_addon_pvr_Defs_General_Inputstream_PVRStreamProperty class PVRStreamProperty +/// @ingroup cpp_kodi_addon_pvr_Defs_General_Inputstream +/// @brief **PVR stream property value handler**\n +/// To set for Kodi wanted stream properties. +/// +/// ---------------------------------------------------------------------------- +/// +/// @copydetails cpp_kodi_addon_pvr_Defs_General_Inputstream_PVRStreamProperty_Help +/// +///--------------------------------------------------------------------------- +/// +/// **Example:** +/// ~~~~~~~~~~~~~{.cpp} +/// ... +/// +/// PVR_ERROR CMyPVRInstance::GetChannelStreamProperties(const kodi::addon::PVRChannel& channel, +/// std::vector& properties) +/// { +/// ... +/// properties.emplace_back(PVR_STREAM_PROPERTY_INPUTSTREAM, "inputstream.adaptive"); +/// return PVR_ERROR_NO_ERROR; +/// } +/// +/// ... +/// ~~~~~~~~~~~~~ +/// +/// +/// **Example 2:** +/// ~~~~~~~~~~~~~{.cpp} +/// ... +/// +/// PVR_ERROR CMyPVRInstance::GetChannelStreamProperties(const kodi::addon::PVRChannel& channel, +/// std::vector& properties) +/// { +/// ... +/// kodi::addon::PVRStreamProperty property; +/// property.SetName(PVR_STREAM_PROPERTY_INPUTSTREAM); +/// property.SetValue("inputstream.adaptive"); +/// properties.emplace_back(property); +/// return PVR_ERROR_NO_ERROR; +/// } +/// +/// ... +/// ~~~~~~~~~~~~~ +/// +///@{ +class PVRStreamProperty : public CStructHdl +{ + friend class CInstancePVRClient; + +public: + /*! \cond PRIVATE */ + PVRStreamProperty(const PVRStreamProperty& data) : CStructHdl(data) {} + /*! \endcond */ + + /// @defgroup cpp_kodi_addon_pvr_Defs_General_Inputstream_PVRStreamProperty_Help Value Help + /// @ingroup cpp_kodi_addon_pvr_Defs_General_Inputstream_PVRStreamProperty + /// + /// The following table contains values that can be set with @ref cpp_kodi_addon_pvr_Defs_General_Inputstream_PVRStreamProperty : + /// | Name | Type | Set call | Get call + /// |------|------|----------|---------- + /// | **Name** | `int` | @ref PVRStreamProperty::SetValue "SetName" | @ref PVRStreamProperty::GetName "GetName" + /// | **Value** | `std::string` | @ref PVRStreamProperty::SetValue "SetValue" | @ref PVRStreamProperty::GetValue "GetValue" + /// + /// @remark Further can there be used his class constructor to set values. + + /// @addtogroup cpp_kodi_addon_pvr_Defs_General_Inputstream_PVRStreamProperty + ///@{ + + /// @brief Default class constructor. + /// + /// @note Values must be set afterwards. + PVRStreamProperty() = default; + + /// @brief Class constructor with integrated value set. + /// + /// @param[in] name Type identification + /// @param[in] value Type used property value + PVRStreamProperty(const std::string& name, const std::string& value) + { + SetName(name); + SetValue(value); + } + + /// @brief To set with the identification name. + void SetName(const std::string& name) + { + strncpy(m_cStructure->strName, name.c_str(), sizeof(m_cStructure->strName) - 1); + } + + /// @brief To get with the identification name. + std::string GetName() const { return m_cStructure->strName; } + + /// @brief To set with the used property value. + void SetValue(const std::string& value) + { + strncpy(m_cStructure->strValue, value.c_str(), sizeof(m_cStructure->strValue) - 1); + } + + /// @brief To get with the used property value. + std::string GetValue() const { return m_cStructure->strValue; } + ///@} + +private: + PVRStreamProperty(const PVR_NAMED_VALUE* data) : CStructHdl(data) {} + PVRStreamProperty(PVR_NAMED_VALUE* data) : CStructHdl(data) {} +}; +///@} +//------------------------------------------------------------------------------ + +} /* namespace addon */ +} /* namespace kodi */ + +#endif /* __cplusplus */ -- cgit v1.2.3