1
0
mirror of https://github.com/DigitalDevices/pvr.octonet.git synced 2023-10-10 13:36:57 +02:00

API related update

This commit is contained in:
Alwin Esch 2021-12-28 13:27:10 +01:00
parent fb17e25ef6
commit 567232b5fb
4 changed files with 23 additions and 33 deletions

View File

@ -23,9 +23,8 @@
#endif #endif
OctonetData::OctonetData(const std::string& octonetAddress, OctonetData::OctonetData(const std::string& octonetAddress,
KODI_HANDLE instance, const kodi::addon::IInstanceInfo& instance)
const std::string& kodiVersion) : kodi::addon::CInstancePVRClient(instance)
: kodi::addon::CInstancePVRClient(instance, kodiVersion)
{ {
m_serverAddress = octonetAddress; m_serverAddress = octonetAddress;
m_channels.clear(); m_channels.clear();
@ -33,7 +32,7 @@ OctonetData::OctonetData(const std::string& octonetAddress,
m_lastEpgLoad = 0; m_lastEpgLoad = 0;
if (!LoadChannelList()) if (!LoadChannelList())
kodi::QueueFormattedNotification(QUEUE_ERROR, kodi::GetLocalizedString(30001).c_str(), kodi::QueueFormattedNotification(QUEUE_ERROR, kodi::addon::GetLocalizedString(30001).c_str(),
m_channels.size()); m_channels.size());
/* /*

View File

@ -43,12 +43,11 @@ struct OctonetGroup
std::vector<int> members; std::vector<int> members;
}; };
class ATTRIBUTE_HIDDEN OctonetData : public kodi::addon::CInstancePVRClient class ATTR_DLL_LOCAL OctonetData : public kodi::addon::CInstancePVRClient
{ {
public: public:
OctonetData(const std::string& octonetAddress, OctonetData(const std::string& octonetAddress,
KODI_HANDLE instance, const kodi::addon::IInstanceInfo& instance);
const std::string& kodiVersion);
~OctonetData() override; ~OctonetData() override;
PVR_ERROR GetCapabilities(kodi::addon::PVRCapabilities& capabilities) override; PVR_ERROR GetCapabilities(kodi::addon::PVRCapabilities& capabilities) override;

View File

@ -13,45 +13,41 @@
#include "OctonetData.h" #include "OctonetData.h"
ADDON_STATUS COctonetAddon::SetSetting(const std::string& settingName, ADDON_STATUS COctonetAddon::SetSetting(const std::string& settingName,
const kodi::CSettingValue& settingValue) const kodi::addon::CSettingValue& settingValue)
{ {
/* For simplicity do a full addon restart whenever settings are /* For simplicity do a full addon restart whenever settings are
* changed */ * changed */
return ADDON_STATUS_NEED_RESTART; return ADDON_STATUS_NEED_RESTART;
} }
ADDON_STATUS COctonetAddon::CreateInstance(int instanceType, ADDON_STATUS COctonetAddon::CreateInstance(const kodi::addon::IInstanceInfo& instance,
const std::string& instanceID, KODI_ADDON_INSTANCE_HDL& hdl)
KODI_HANDLE instance,
const std::string& version,
KODI_HANDLE& addonInstance)
{ {
if (instanceType == ADDON_INSTANCE_PVR) if (instance.IsType(ADDON_INSTANCE_PVR))
{ {
kodi::Log(ADDON_LOG_DEBUG, "%s: Creating octonet pvr instance", __func__); kodi::Log(ADDON_LOG_DEBUG, "%s: Creating octonet pvr instance", __func__);
/* IP or hostname of the octonet to be connected to */ /* IP or hostname of the octonet to be connected to */
std::string octonetAddress = kodi::GetSettingString("octonetAddress"); std::string octonetAddress = kodi::addon::GetSettingString("octonetAddress");
OctonetData* usedInstance = new OctonetData(octonetAddress, instance, version); OctonetData* usedInstance = new OctonetData(octonetAddress, instance);
addonInstance = usedInstance; hdl = usedInstance;
m_usedInstances.emplace(instanceID, usedInstance); m_usedInstances.emplace(instance.GetID(), usedInstance);
return ADDON_STATUS_OK; return ADDON_STATUS_OK;
} }
return ADDON_STATUS_UNKNOWN; return ADDON_STATUS_UNKNOWN;
} }
void COctonetAddon::DestroyInstance(int instanceType, void COctonetAddon::DestroyInstance(const kodi::addon::IInstanceInfo& instance,
const std::string& instanceID, const KODI_ADDON_INSTANCE_HDL hdl)
KODI_HANDLE addonInstance)
{ {
if (instanceType == ADDON_INSTANCE_PVR) if (instance.IsType(ADDON_INSTANCE_PVR))
{ {
kodi::Log(ADDON_LOG_DEBUG, "%s: Destoying octonet pvr instance", __func__); kodi::Log(ADDON_LOG_DEBUG, "%s: Destoying octonet pvr instance", __func__);
const auto& it = m_usedInstances.find(instanceID); const auto& it = m_usedInstances.find(instance.GetID());
if (it != m_usedInstances.end()) if (it != m_usedInstances.end())
{ {
m_usedInstances.erase(it); m_usedInstances.erase(it);

View File

@ -15,21 +15,17 @@
class OctonetData; class OctonetData;
class ATTRIBUTE_HIDDEN COctonetAddon : public kodi::addon::CAddonBase class ATTR_DLL_LOCAL COctonetAddon : public kodi::addon::CAddonBase
{ {
public: public:
COctonetAddon() = default; COctonetAddon() = default;
ADDON_STATUS SetSetting(const std::string& settingName, ADDON_STATUS SetSetting(const std::string& settingName,
const kodi::CSettingValue& settingValue) override; const kodi::addon::CSettingValue& settingValue) override;
ADDON_STATUS CreateInstance(int instanceType, ADDON_STATUS CreateInstance(const kodi::addon::IInstanceInfo& instance,
const std::string& instanceID, KODI_ADDON_INSTANCE_HDL& hdl) override;
KODI_HANDLE instance, void DestroyInstance(const kodi::addon::IInstanceInfo& instance,
const std::string& version, const KODI_ADDON_INSTANCE_HDL hdl) override;
KODI_HANDLE& addonInstance) override;
void DestroyInstance(int instanceType,
const std::string& instanceID,
KODI_HANDLE addonInstance) override;
private: private:
std::unordered_map<std::string, OctonetData*> m_usedInstances; std::unordered_map<std::string, OctonetData*> m_usedInstances;