diff options
Diffstat (limited to 'xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h')
| -rw-r--r-- | xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h | 211 |
1 files changed, 64 insertions, 147 deletions
diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h index a769328..3ae30a7 100644 --- a/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/libXBMC_pvr.h | |||
| @@ -27,29 +27,60 @@ | |||
| 27 | #include "xbmc_pvr_types.h" | 27 | #include "xbmc_pvr_types.h" |
| 28 | #include "libXBMC_addon.h" | 28 | #include "libXBMC_addon.h" |
| 29 | 29 | ||
| 30 | #define PVR_HELPER_DLL_NAME XBMC_DLL_NAME("pvr") | ||
| 31 | #define PVR_HELPER_DLL XBMC_DLL("pvr") | ||
| 32 | |||
| 33 | #define DVD_TIME_BASE 1000000 | 30 | #define DVD_TIME_BASE 1000000 |
| 34 | 31 | ||
| 35 | //! @todo original definition is in DVDClock.h | 32 | //! @todo original definition is in DVDClock.h |
| 36 | #define DVD_NOPTS_VALUE 0xFFF0000000000000 | 33 | #define DVD_NOPTS_VALUE 0xFFF0000000000000 |
| 37 | 34 | ||
| 35 | namespace KodiAPI | ||
| 36 | { | ||
| 37 | namespace V1 | ||
| 38 | { | ||
| 39 | namespace PVR | ||
| 40 | { | ||
| 41 | |||
| 42 | typedef struct CB_PVRLib | ||
| 43 | { | ||
| 44 | void (*TransferEpgEntry)(void *userData, const ADDON_HANDLE handle, const EPG_TAG *epgentry); | ||
| 45 | void (*TransferChannelEntry)(void *userData, const ADDON_HANDLE handle, const PVR_CHANNEL *chan); | ||
| 46 | void (*TransferTimerEntry)(void *userData, const ADDON_HANDLE handle, const PVR_TIMER *timer); | ||
| 47 | void (*TransferRecordingEntry)(void *userData, const ADDON_HANDLE handle, const PVR_RECORDING *recording); | ||
| 48 | void (*AddMenuHook)(void *addonData, PVR_MENUHOOK *hook); | ||
| 49 | void (*Recording)(void *addonData, const char *Name, const char *FileName, bool On); | ||
| 50 | void (*TriggerChannelUpdate)(void *addonData); | ||
| 51 | void (*TriggerTimerUpdate)(void *addonData); | ||
| 52 | void (*TriggerRecordingUpdate)(void *addonData); | ||
| 53 | void (*TriggerChannelGroupsUpdate)(void *addonData); | ||
| 54 | void (*TriggerEpgUpdate)(void *addonData, unsigned int iChannelUid); | ||
| 55 | |||
| 56 | void (*TransferChannelGroup)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP *group); | ||
| 57 | void (*TransferChannelGroupMember)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER *member); | ||
| 58 | |||
| 59 | void (*FreeDemuxPacket)(void *addonData, DemuxPacket* pPacket); | ||
| 60 | DemuxPacket* (*AllocateDemuxPacket)(void *addonData, int iDataSize); | ||
| 61 | |||
| 62 | void (*ConnectionStateChange)(void* addonData, const char* strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage); | ||
| 63 | void (*EpgEventStateChange)(void* addonData, EPG_TAG* tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState); | ||
| 64 | } CB_PVRLib; | ||
| 65 | |||
| 66 | } /* namespace PVR */ | ||
| 67 | } /* namespace V1 */ | ||
| 68 | } /* namespace KodiAPI */ | ||
| 69 | |||
| 38 | class CHelper_libXBMC_pvr | 70 | class CHelper_libXBMC_pvr |
| 39 | { | 71 | { |
| 40 | public: | 72 | public: |
| 41 | CHelper_libXBMC_pvr(void) | 73 | CHelper_libXBMC_pvr(void) |
| 42 | { | 74 | { |
| 43 | m_libXBMC_pvr = NULL; | 75 | m_Handle = nullptr; |
| 44 | m_Handle = NULL; | 76 | m_Callbacks = nullptr; |
| 45 | } | 77 | } |
| 46 | 78 | ||
| 47 | ~CHelper_libXBMC_pvr(void) | 79 | ~CHelper_libXBMC_pvr(void) |
| 48 | { | 80 | { |
| 49 | if (m_libXBMC_pvr) | 81 | if (m_Handle && m_Callbacks) |
| 50 | { | 82 | { |
| 51 | PVR_unregister_me(m_Handle, m_Callbacks); | 83 | m_Handle->PVRLib_UnRegisterMe(m_Handle->addonData, m_Callbacks); |
| 52 | dlclose(m_libXBMC_pvr); | ||
| 53 | } | 84 | } |
| 54 | } | 85 | } |
| 55 | 86 | ||
| @@ -60,98 +91,12 @@ public: | |||
| 60 | */ | 91 | */ |
| 61 | bool RegisterMe(void* handle) | 92 | bool RegisterMe(void* handle) |
| 62 | { | 93 | { |
| 63 | m_Handle = handle; | 94 | m_Handle = static_cast<AddonCB*>(handle); |
| 64 | 95 | if (m_Handle) | |
| 65 | std::string libBasePath; | 96 | m_Callbacks = (KodiAPI::V1::PVR::CB_PVRLib*)m_Handle->PVRLib_RegisterMe(m_Handle->addonData); |
| 66 | libBasePath = ((cb_array*)m_Handle)->libPath; | 97 | if (!m_Callbacks) |
| 67 | libBasePath += PVR_HELPER_DLL; | 98 | fprintf(stderr, "libXBMC_pvr-ERROR: PVRLib_register_me can't get callback table from Kodi !!!\n"); |
| 68 | 99 | ||
| 69 | m_libXBMC_pvr = dlopen(libBasePath.c_str(), RTLD_LAZY); | ||
| 70 | if (m_libXBMC_pvr == NULL) | ||
| 71 | { | ||
| 72 | fprintf(stderr, "Unable to load %s\n", dlerror()); | ||
| 73 | return false; | ||
| 74 | } | ||
| 75 | |||
| 76 | PVR_register_me = (void* (*)(void *HANDLE)) | ||
| 77 | dlsym(m_libXBMC_pvr, "PVR_register_me"); | ||
| 78 | if (PVR_register_me == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 79 | |||
| 80 | PVR_unregister_me = (void (*)(void* HANDLE, void* CB)) | ||
| 81 | dlsym(m_libXBMC_pvr, "PVR_unregister_me"); | ||
| 82 | if (PVR_unregister_me == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 83 | |||
| 84 | PVR_transfer_epg_entry = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const EPG_TAG *epgentry)) | ||
| 85 | dlsym(m_libXBMC_pvr, "PVR_transfer_epg_entry"); | ||
| 86 | if (PVR_transfer_epg_entry == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 87 | |||
| 88 | PVR_transfer_channel_entry = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_CHANNEL *chan)) | ||
| 89 | dlsym(m_libXBMC_pvr, "PVR_transfer_channel_entry"); | ||
| 90 | if (PVR_transfer_channel_entry == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 91 | |||
| 92 | PVR_transfer_timer_entry = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_TIMER *timer)) | ||
| 93 | dlsym(m_libXBMC_pvr, "PVR_transfer_timer_entry"); | ||
| 94 | if (PVR_transfer_timer_entry == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 95 | |||
| 96 | PVR_transfer_recording_entry = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_RECORDING *recording)) | ||
| 97 | dlsym(m_libXBMC_pvr, "PVR_transfer_recording_entry"); | ||
| 98 | if (PVR_transfer_recording_entry == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 99 | |||
| 100 | PVR_add_menu_hook = (void (*)(void* HANDLE, void* CB, PVR_MENUHOOK *hook)) | ||
| 101 | dlsym(m_libXBMC_pvr, "PVR_add_menu_hook"); | ||
| 102 | if (PVR_add_menu_hook == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 103 | |||
| 104 | PVR_recording = (void (*)(void* HANDLE, void* CB, const char *Name, const char *FileName, bool On)) | ||
| 105 | dlsym(m_libXBMC_pvr, "PVR_recording"); | ||
| 106 | if (PVR_recording == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 107 | |||
| 108 | PVR_trigger_timer_update = (void (*)(void* HANDLE, void* CB)) | ||
| 109 | dlsym(m_libXBMC_pvr, "PVR_trigger_timer_update"); | ||
| 110 | if (PVR_trigger_timer_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 111 | |||
| 112 | PVR_trigger_recording_update = (void (*)(void* HANDLE, void* CB)) | ||
| 113 | dlsym(m_libXBMC_pvr, "PVR_trigger_recording_update"); | ||
| 114 | if (PVR_trigger_recording_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 115 | |||
| 116 | PVR_trigger_channel_update = (void (*)(void* HANDLE, void* CB)) | ||
| 117 | dlsym(m_libXBMC_pvr, "PVR_trigger_channel_update"); | ||
| 118 | if (PVR_trigger_channel_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 119 | |||
| 120 | PVR_trigger_channel_groups_update = (void (*)(void* HANDLE, void* CB)) | ||
| 121 | dlsym(m_libXBMC_pvr, "PVR_trigger_channel_groups_update"); | ||
| 122 | if (PVR_trigger_channel_groups_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 123 | |||
| 124 | PVR_trigger_epg_update = (void (*)(void* HANDLE, void* CB, unsigned int iChannelUid)) | ||
| 125 | dlsym(m_libXBMC_pvr, "PVR_trigger_epg_update"); | ||
| 126 | if (PVR_trigger_epg_update == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 127 | |||
| 128 | PVR_transfer_channel_group = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP *group)) | ||
| 129 | dlsym(m_libXBMC_pvr, "PVR_transfer_channel_group"); | ||
| 130 | if (PVR_transfer_channel_group == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 131 | |||
| 132 | PVR_transfer_channel_group_member = (void (*)(void* HANDLE, void* CB, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER *member)) | ||
| 133 | dlsym(m_libXBMC_pvr, "PVR_transfer_channel_group_member"); | ||
| 134 | if (PVR_transfer_channel_group_member == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 135 | |||
| 136 | #ifdef USE_DEMUX | ||
| 137 | PVR_free_demux_packet = (void (*)(void* HANDLE, void* CB, DemuxPacket* pPacket)) | ||
| 138 | dlsym(m_libXBMC_pvr, "PVR_free_demux_packet"); | ||
| 139 | if (PVR_free_demux_packet == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 140 | |||
| 141 | PVR_allocate_demux_packet = (DemuxPacket* (*)(void* HANDLE, void* CB, int iDataSize)) | ||
| 142 | dlsym(m_libXBMC_pvr, "PVR_allocate_demux_packet"); | ||
| 143 | if (PVR_allocate_demux_packet == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 144 | #endif | ||
| 145 | |||
| 146 | PVR_connection_state_change = (void (*)(void* HANDLE, void* CB, const char *strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage)) | ||
| 147 | dlsym(m_libXBMC_pvr, "PVR_connection_state_change"); | ||
| 148 | if (PVR_connection_state_change == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 149 | |||
| 150 | PVR_epg_event_state_change = (void (*)(void* HANDLE, void* CB, EPG_TAG* tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState)) | ||
| 151 | dlsym(m_libXBMC_pvr, "PVR_epg_event_state_change"); | ||
| 152 | if (PVR_epg_event_state_change == NULL) { fprintf(stderr, "Unable to assign function %s\n", dlerror()); return false; } | ||
| 153 | |||
| 154 | m_Callbacks = PVR_register_me(m_Handle); | ||
| 155 | return m_Callbacks != NULL; | 100 | return m_Callbacks != NULL; |
| 156 | } | 101 | } |
| 157 | 102 | ||
| @@ -162,7 +107,7 @@ public: | |||
| 162 | */ | 107 | */ |
| 163 | void TransferEpgEntry(const ADDON_HANDLE handle, const EPG_TAG* entry) | 108 | void TransferEpgEntry(const ADDON_HANDLE handle, const EPG_TAG* entry) |
| 164 | { | 109 | { |
| 165 | return PVR_transfer_epg_entry(m_Handle, m_Callbacks, handle, entry); | 110 | return m_Callbacks->TransferEpgEntry(m_Handle->addonData, handle, entry); |
| 166 | } | 111 | } |
| 167 | 112 | ||
| 168 | /*! | 113 | /*! |
| @@ -172,7 +117,7 @@ public: | |||
| 172 | */ | 117 | */ |
| 173 | void TransferChannelEntry(const ADDON_HANDLE handle, const PVR_CHANNEL* entry) | 118 | void TransferChannelEntry(const ADDON_HANDLE handle, const PVR_CHANNEL* entry) |
| 174 | { | 119 | { |
| 175 | return PVR_transfer_channel_entry(m_Handle, m_Callbacks, handle, entry); | 120 | return m_Callbacks->TransferChannelEntry(m_Handle->addonData, handle, entry); |
| 176 | } | 121 | } |
| 177 | 122 | ||
| 178 | /*! | 123 | /*! |
| @@ -182,7 +127,7 @@ public: | |||
| 182 | */ | 127 | */ |
| 183 | void TransferTimerEntry(const ADDON_HANDLE handle, const PVR_TIMER* entry) | 128 | void TransferTimerEntry(const ADDON_HANDLE handle, const PVR_TIMER* entry) |
| 184 | { | 129 | { |
| 185 | return PVR_transfer_timer_entry(m_Handle, m_Callbacks, handle, entry); | 130 | return m_Callbacks->TransferTimerEntry(m_Handle->addonData, handle, entry); |
| 186 | } | 131 | } |
| 187 | 132 | ||
| 188 | /*! | 133 | /*! |
| @@ -192,7 +137,7 @@ public: | |||
| 192 | */ | 137 | */ |
| 193 | void TransferRecordingEntry(const ADDON_HANDLE handle, const PVR_RECORDING* entry) | 138 | void TransferRecordingEntry(const ADDON_HANDLE handle, const PVR_RECORDING* entry) |
| 194 | { | 139 | { |
| 195 | return PVR_transfer_recording_entry(m_Handle, m_Callbacks, handle, entry); | 140 | return m_Callbacks->TransferRecordingEntry(m_Handle->addonData, handle, entry); |
| 196 | } | 141 | } |
| 197 | 142 | ||
| 198 | /*! | 143 | /*! |
| @@ -202,7 +147,7 @@ public: | |||
| 202 | */ | 147 | */ |
| 203 | void TransferChannelGroup(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP* entry) | 148 | void TransferChannelGroup(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP* entry) |
| 204 | { | 149 | { |
| 205 | return PVR_transfer_channel_group(m_Handle, m_Callbacks, handle, entry); | 150 | return m_Callbacks->TransferChannelGroup(m_Handle->addonData, handle, entry); |
| 206 | } | 151 | } |
| 207 | 152 | ||
| 208 | /*! | 153 | /*! |
| @@ -212,7 +157,7 @@ public: | |||
| 212 | */ | 157 | */ |
| 213 | void TransferChannelGroupMember(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER* entry) | 158 | void TransferChannelGroupMember(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER* entry) |
| 214 | { | 159 | { |
| 215 | return PVR_transfer_channel_group_member(m_Handle, m_Callbacks, handle, entry); | 160 | return m_Callbacks->TransferChannelGroupMember(m_Handle->addonData, handle, entry); |
| 216 | } | 161 | } |
| 217 | 162 | ||
| 218 | /*! | 163 | /*! |
| @@ -221,7 +166,7 @@ public: | |||
| 221 | */ | 166 | */ |
| 222 | void AddMenuHook(PVR_MENUHOOK* hook) | 167 | void AddMenuHook(PVR_MENUHOOK* hook) |
| 223 | { | 168 | { |
| 224 | return PVR_add_menu_hook(m_Handle, m_Callbacks, hook); | 169 | return m_Callbacks->AddMenuHook(m_Handle->addonData, hook); |
| 225 | } | 170 | } |
| 226 | 171 | ||
| 227 | /*! | 172 | /*! |
| @@ -232,7 +177,7 @@ public: | |||
| 232 | */ | 177 | */ |
| 233 | void Recording(const char* strRecordingName, const char* strFileName, bool bOn) | 178 | void Recording(const char* strRecordingName, const char* strFileName, bool bOn) |
| 234 | { | 179 | { |
| 235 | return PVR_recording(m_Handle, m_Callbacks, strRecordingName, strFileName, bOn); | 180 | return m_Callbacks->Recording(m_Handle->addonData, strRecordingName, strFileName, bOn); |
| 236 | } | 181 | } |
| 237 | 182 | ||
| 238 | /*! | 183 | /*! |
| @@ -240,7 +185,7 @@ public: | |||
| 240 | */ | 185 | */ |
| 241 | void TriggerTimerUpdate(void) | 186 | void TriggerTimerUpdate(void) |
| 242 | { | 187 | { |
| 243 | return PVR_trigger_timer_update(m_Handle, m_Callbacks); | 188 | return m_Callbacks->TriggerTimerUpdate(m_Handle->addonData); |
| 244 | } | 189 | } |
| 245 | 190 | ||
| 246 | /*! | 191 | /*! |
| @@ -248,7 +193,7 @@ public: | |||
| 248 | */ | 193 | */ |
| 249 | void TriggerRecordingUpdate(void) | 194 | void TriggerRecordingUpdate(void) |
| 250 | { | 195 | { |
| 251 | return PVR_trigger_recording_update(m_Handle, m_Callbacks); | 196 | return m_Callbacks->TriggerRecordingUpdate(m_Handle->addonData); |
| 252 | } | 197 | } |
| 253 | 198 | ||
| 254 | /*! | 199 | /*! |
| @@ -256,7 +201,7 @@ public: | |||
| 256 | */ | 201 | */ |
| 257 | void TriggerChannelUpdate(void) | 202 | void TriggerChannelUpdate(void) |
| 258 | { | 203 | { |
| 259 | return PVR_trigger_channel_update(m_Handle, m_Callbacks); | 204 | return m_Callbacks->TriggerChannelUpdate(m_Handle->addonData); |
| 260 | } | 205 | } |
| 261 | 206 | ||
| 262 | /*! | 207 | /*! |
| @@ -265,7 +210,7 @@ public: | |||
| 265 | */ | 210 | */ |
| 266 | void TriggerEpgUpdate(unsigned int iChannelUid) | 211 | void TriggerEpgUpdate(unsigned int iChannelUid) |
| 267 | { | 212 | { |
| 268 | return PVR_trigger_epg_update(m_Handle, m_Callbacks, iChannelUid); | 213 | return m_Callbacks->TriggerEpgUpdate(m_Handle->addonData, iChannelUid); |
| 269 | } | 214 | } |
| 270 | 215 | ||
| 271 | /*! | 216 | /*! |
| @@ -273,7 +218,7 @@ public: | |||
| 273 | */ | 218 | */ |
| 274 | void TriggerChannelGroupsUpdate(void) | 219 | void TriggerChannelGroupsUpdate(void) |
| 275 | { | 220 | { |
| 276 | return PVR_trigger_channel_groups_update(m_Handle, m_Callbacks); | 221 | return m_Callbacks->TriggerChannelGroupsUpdate(m_Handle->addonData); |
| 277 | } | 222 | } |
| 278 | 223 | ||
| 279 | #ifdef USE_DEMUX | 224 | #ifdef USE_DEMUX |
| @@ -283,7 +228,7 @@ public: | |||
| 283 | */ | 228 | */ |
| 284 | void FreeDemuxPacket(DemuxPacket* pPacket) | 229 | void FreeDemuxPacket(DemuxPacket* pPacket) |
| 285 | { | 230 | { |
| 286 | return PVR_free_demux_packet(m_Handle, m_Callbacks, pPacket); | 231 | return m_Callbacks->FreeDemuxPacket(m_Handle->addonData, pPacket); |
| 287 | } | 232 | } |
| 288 | 233 | ||
| 289 | /*! | 234 | /*! |
| @@ -293,7 +238,7 @@ public: | |||
| 293 | */ | 238 | */ |
| 294 | DemuxPacket* AllocateDemuxPacket(int iDataSize) | 239 | DemuxPacket* AllocateDemuxPacket(int iDataSize) |
| 295 | { | 240 | { |
| 296 | return PVR_allocate_demux_packet(m_Handle, m_Callbacks, iDataSize); | 241 | return m_Callbacks->AllocateDemuxPacket(m_Handle->addonData, iDataSize); |
| 297 | } | 242 | } |
| 298 | #endif | 243 | #endif |
| 299 | 244 | ||
| @@ -306,7 +251,7 @@ public: | |||
| 306 | */ | 251 | */ |
| 307 | void ConnectionStateChange(const char *strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage) | 252 | void ConnectionStateChange(const char *strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage) |
| 308 | { | 253 | { |
| 309 | return PVR_connection_state_change(m_Handle, m_Callbacks, strConnectionString, newState, strMessage); | 254 | return m_Callbacks->ConnectionStateChange(m_Handle->addonData, strConnectionString, newState, strMessage); |
| 310 | } | 255 | } |
| 311 | 256 | ||
| 312 | /*! | 257 | /*! |
| @@ -318,38 +263,10 @@ public: | |||
| 318 | */ | 263 | */ |
| 319 | void EpgEventStateChange(EPG_TAG *tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState) | 264 | void EpgEventStateChange(EPG_TAG *tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState) |
| 320 | { | 265 | { |
| 321 | return PVR_epg_event_state_change(m_Handle, m_Callbacks, tag, iUniqueChannelId, newState); | 266 | return m_Callbacks->EpgEventStateChange(m_Handle->addonData, tag, iUniqueChannelId, newState); |
| 322 | } | 267 | } |
| 323 | 268 | ||
| 324 | protected: | ||
| 325 | void* (*PVR_register_me)(void*); | ||
| 326 | void (*PVR_unregister_me)(void*, void*); | ||
| 327 | void (*PVR_transfer_epg_entry)(void*, void*, const ADDON_HANDLE, const EPG_TAG*); | ||
| 328 | void (*PVR_transfer_channel_entry)(void*, void*, const ADDON_HANDLE, const PVR_CHANNEL*); | ||
| 329 | void (*PVR_transfer_timer_entry)(void*, void*, const ADDON_HANDLE, const PVR_TIMER*); | ||
| 330 | void (*PVR_transfer_recording_entry)(void*, void*, const ADDON_HANDLE, const PVR_RECORDING*); | ||
| 331 | void (*PVR_add_menu_hook)(void*, void*, PVR_MENUHOOK*); | ||
| 332 | void (*PVR_recording)(void*, void*, const char*, const char*, bool); | ||
| 333 | void (*PVR_trigger_channel_update)(void*, void*); | ||
| 334 | void (*PVR_trigger_channel_groups_update)(void*, void*); | ||
| 335 | void (*PVR_trigger_timer_update)(void*, void*); | ||
| 336 | void (*PVR_trigger_recording_update)(void* , void*); | ||
| 337 | void (*PVR_trigger_epg_update)(void*, void*, unsigned int); | ||
| 338 | void (*PVR_transfer_channel_group)(void*, void*, const ADDON_HANDLE, const PVR_CHANNEL_GROUP*); | ||
| 339 | void (*PVR_transfer_channel_group_member)(void*, void*, const ADDON_HANDLE, const PVR_CHANNEL_GROUP_MEMBER*); | ||
| 340 | #ifdef USE_DEMUX | ||
| 341 | void (*PVR_free_demux_packet)(void*, void*, DemuxPacket*); | ||
| 342 | DemuxPacket* (*PVR_allocate_demux_packet)(void*, void*, int); | ||
| 343 | #endif | ||
| 344 | void (*PVR_connection_state_change)(void*, void*, const char*, PVR_CONNECTION_STATE, const char*); | ||
| 345 | void (*PVR_epg_event_state_change)(void*, void*, EPG_TAG*, unsigned int, EPG_EVENT_STATE); | ||
| 346 | |||
| 347 | private: | 269 | private: |
| 348 | void* m_libXBMC_pvr; | 270 | AddonCB* m_Handle; |
| 349 | void* m_Handle; | 271 | KodiAPI::V1::PVR::CB_PVRLib *m_Callbacks; |
| 350 | void* m_Callbacks; | ||
| 351 | struct cb_array | ||
| 352 | { | ||
| 353 | const char* libPath; | ||
| 354 | }; | ||
| 355 | }; | 272 | }; |
