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, 147 insertions, 64 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 3ae30a7..a769328 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,60 +27,29 @@ | |||
| 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 | |||
| 30 | #define DVD_TIME_BASE 1000000 | 33 | #define DVD_TIME_BASE 1000000 |
| 31 | 34 | ||
| 32 | //! @todo original definition is in DVDClock.h | 35 | //! @todo original definition is in DVDClock.h |
| 33 | #define DVD_NOPTS_VALUE 0xFFF0000000000000 | 36 | #define DVD_NOPTS_VALUE 0xFFF0000000000000 |
| 34 | 37 | ||
| 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 | |||
| 70 | class CHelper_libXBMC_pvr | 38 | class CHelper_libXBMC_pvr |
| 71 | { | 39 | { |
| 72 | public: | 40 | public: |
| 73 | CHelper_libXBMC_pvr(void) | 41 | CHelper_libXBMC_pvr(void) |
| 74 | { | 42 | { |
| 75 | m_Handle = nullptr; | 43 | m_libXBMC_pvr = NULL; |
| 76 | m_Callbacks = nullptr; | 44 | m_Handle = NULL; |
| 77 | } | 45 | } |
| 78 | 46 | ||
| 79 | ~CHelper_libXBMC_pvr(void) | 47 | ~CHelper_libXBMC_pvr(void) |
| 80 | { | 48 | { |
| 81 | if (m_Handle && m_Callbacks) | 49 | if (m_libXBMC_pvr) |
| 82 | { | 50 | { |
| 83 | m_Handle->PVRLib_UnRegisterMe(m_Handle->addonData, m_Callbacks); | 51 | PVR_unregister_me(m_Handle, m_Callbacks); |
| 52 | dlclose(m_libXBMC_pvr); | ||
| 84 | } | 53 | } |
| 85 | } | 54 | } |
| 86 | 55 | ||
| @@ -91,12 +60,98 @@ public: | |||
| 91 | */ | 60 | */ |
| 92 | bool RegisterMe(void* handle) | 61 | bool RegisterMe(void* handle) |
| 93 | { | 62 | { |
| 94 | m_Handle = static_cast<AddonCB*>(handle); | 63 | m_Handle = handle; |
| 95 | if (m_Handle) | 64 | |
| 96 | m_Callbacks = (KodiAPI::V1::PVR::CB_PVRLib*)m_Handle->PVRLib_RegisterMe(m_Handle->addonData); | 65 | std::string libBasePath; |
| 97 | if (!m_Callbacks) | 66 | libBasePath = ((cb_array*)m_Handle)->libPath; |
| 98 | fprintf(stderr, "libXBMC_pvr-ERROR: PVRLib_register_me can't get callback table from Kodi !!!\n"); | 67 | libBasePath += PVR_HELPER_DLL; |
| 99 | 68 | ||
| 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); | ||
| 100 | return m_Callbacks != NULL; | 155 | return m_Callbacks != NULL; |
| 101 | } | 156 | } |
| 102 | 157 | ||
| @@ -107,7 +162,7 @@ public: | |||
| 107 | */ | 162 | */ |
| 108 | void TransferEpgEntry(const ADDON_HANDLE handle, const EPG_TAG* entry) | 163 | void TransferEpgEntry(const ADDON_HANDLE handle, const EPG_TAG* entry) |
| 109 | { | 164 | { |
| 110 | return m_Callbacks->TransferEpgEntry(m_Handle->addonData, handle, entry); | 165 | return PVR_transfer_epg_entry(m_Handle, m_Callbacks, handle, entry); |
| 111 | } | 166 | } |
| 112 | 167 | ||
| 113 | /*! | 168 | /*! |
| @@ -117,7 +172,7 @@ public: | |||
| 117 | */ | 172 | */ |
| 118 | void TransferChannelEntry(const ADDON_HANDLE handle, const PVR_CHANNEL* entry) | 173 | void TransferChannelEntry(const ADDON_HANDLE handle, const PVR_CHANNEL* entry) |
| 119 | { | 174 | { |
| 120 | return m_Callbacks->TransferChannelEntry(m_Handle->addonData, handle, entry); | 175 | return PVR_transfer_channel_entry(m_Handle, m_Callbacks, handle, entry); |
| 121 | } | 176 | } |
| 122 | 177 | ||
| 123 | /*! | 178 | /*! |
| @@ -127,7 +182,7 @@ public: | |||
| 127 | */ | 182 | */ |
| 128 | void TransferTimerEntry(const ADDON_HANDLE handle, const PVR_TIMER* entry) | 183 | void TransferTimerEntry(const ADDON_HANDLE handle, const PVR_TIMER* entry) |
| 129 | { | 184 | { |
| 130 | return m_Callbacks->TransferTimerEntry(m_Handle->addonData, handle, entry); | 185 | return PVR_transfer_timer_entry(m_Handle, m_Callbacks, handle, entry); |
| 131 | } | 186 | } |
| 132 | 187 | ||
| 133 | /*! | 188 | /*! |
| @@ -137,7 +192,7 @@ public: | |||
| 137 | */ | 192 | */ |
| 138 | void TransferRecordingEntry(const ADDON_HANDLE handle, const PVR_RECORDING* entry) | 193 | void TransferRecordingEntry(const ADDON_HANDLE handle, const PVR_RECORDING* entry) |
| 139 | { | 194 | { |
| 140 | return m_Callbacks->TransferRecordingEntry(m_Handle->addonData, handle, entry); | 195 | return PVR_transfer_recording_entry(m_Handle, m_Callbacks, handle, entry); |
| 141 | } | 196 | } |
| 142 | 197 | ||
| 143 | /*! | 198 | /*! |
| @@ -147,7 +202,7 @@ public: | |||
| 147 | */ | 202 | */ |
| 148 | void TransferChannelGroup(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP* entry) | 203 | void TransferChannelGroup(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP* entry) |
| 149 | { | 204 | { |
| 150 | return m_Callbacks->TransferChannelGroup(m_Handle->addonData, handle, entry); | 205 | return PVR_transfer_channel_group(m_Handle, m_Callbacks, handle, entry); |
| 151 | } | 206 | } |
| 152 | 207 | ||
| 153 | /*! | 208 | /*! |
| @@ -157,7 +212,7 @@ public: | |||
| 157 | */ | 212 | */ |
| 158 | void TransferChannelGroupMember(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER* entry) | 213 | void TransferChannelGroupMember(const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER* entry) |
| 159 | { | 214 | { |
| 160 | return m_Callbacks->TransferChannelGroupMember(m_Handle->addonData, handle, entry); | 215 | return PVR_transfer_channel_group_member(m_Handle, m_Callbacks, handle, entry); |
| 161 | } | 216 | } |
| 162 | 217 | ||
| 163 | /*! | 218 | /*! |
| @@ -166,7 +221,7 @@ public: | |||
| 166 | */ | 221 | */ |
| 167 | void AddMenuHook(PVR_MENUHOOK* hook) | 222 | void AddMenuHook(PVR_MENUHOOK* hook) |
| 168 | { | 223 | { |
| 169 | return m_Callbacks->AddMenuHook(m_Handle->addonData, hook); | 224 | return PVR_add_menu_hook(m_Handle, m_Callbacks, hook); |
| 170 | } | 225 | } |
| 171 | 226 | ||
| 172 | /*! | 227 | /*! |
| @@ -177,7 +232,7 @@ public: | |||
| 177 | */ | 232 | */ |
| 178 | void Recording(const char* strRecordingName, const char* strFileName, bool bOn) | 233 | void Recording(const char* strRecordingName, const char* strFileName, bool bOn) |
| 179 | { | 234 | { |
| 180 | return m_Callbacks->Recording(m_Handle->addonData, strRecordingName, strFileName, bOn); | 235 | return PVR_recording(m_Handle, m_Callbacks, strRecordingName, strFileName, bOn); |
| 181 | } | 236 | } |
| 182 | 237 | ||
| 183 | /*! | 238 | /*! |
| @@ -185,7 +240,7 @@ public: | |||
| 185 | */ | 240 | */ |
| 186 | void TriggerTimerUpdate(void) | 241 | void TriggerTimerUpdate(void) |
| 187 | { | 242 | { |
| 188 | return m_Callbacks->TriggerTimerUpdate(m_Handle->addonData); | 243 | return PVR_trigger_timer_update(m_Handle, m_Callbacks); |
| 189 | } | 244 | } |
| 190 | 245 | ||
| 191 | /*! | 246 | /*! |
| @@ -193,7 +248,7 @@ public: | |||
| 193 | */ | 248 | */ |
| 194 | void TriggerRecordingUpdate(void) | 249 | void TriggerRecordingUpdate(void) |
| 195 | { | 250 | { |
| 196 | return m_Callbacks->TriggerRecordingUpdate(m_Handle->addonData); | 251 | return PVR_trigger_recording_update(m_Handle, m_Callbacks); |
| 197 | } | 252 | } |
| 198 | 253 | ||
| 199 | /*! | 254 | /*! |
| @@ -201,7 +256,7 @@ public: | |||
| 201 | */ | 256 | */ |
| 202 | void TriggerChannelUpdate(void) | 257 | void TriggerChannelUpdate(void) |
| 203 | { | 258 | { |
| 204 | return m_Callbacks->TriggerChannelUpdate(m_Handle->addonData); | 259 | return PVR_trigger_channel_update(m_Handle, m_Callbacks); |
| 205 | } | 260 | } |
| 206 | 261 | ||
| 207 | /*! | 262 | /*! |
| @@ -210,7 +265,7 @@ public: | |||
| 210 | */ | 265 | */ |
| 211 | void TriggerEpgUpdate(unsigned int iChannelUid) | 266 | void TriggerEpgUpdate(unsigned int iChannelUid) |
| 212 | { | 267 | { |
| 213 | return m_Callbacks->TriggerEpgUpdate(m_Handle->addonData, iChannelUid); | 268 | return PVR_trigger_epg_update(m_Handle, m_Callbacks, iChannelUid); |
| 214 | } | 269 | } |
| 215 | 270 | ||
| 216 | /*! | 271 | /*! |
| @@ -218,7 +273,7 @@ public: | |||
| 218 | */ | 273 | */ |
| 219 | void TriggerChannelGroupsUpdate(void) | 274 | void TriggerChannelGroupsUpdate(void) |
| 220 | { | 275 | { |
| 221 | return m_Callbacks->TriggerChannelGroupsUpdate(m_Handle->addonData); | 276 | return PVR_trigger_channel_groups_update(m_Handle, m_Callbacks); |
| 222 | } | 277 | } |
| 223 | 278 | ||
| 224 | #ifdef USE_DEMUX | 279 | #ifdef USE_DEMUX |
| @@ -228,7 +283,7 @@ public: | |||
| 228 | */ | 283 | */ |
| 229 | void FreeDemuxPacket(DemuxPacket* pPacket) | 284 | void FreeDemuxPacket(DemuxPacket* pPacket) |
| 230 | { | 285 | { |
| 231 | return m_Callbacks->FreeDemuxPacket(m_Handle->addonData, pPacket); | 286 | return PVR_free_demux_packet(m_Handle, m_Callbacks, pPacket); |
| 232 | } | 287 | } |
| 233 | 288 | ||
| 234 | /*! | 289 | /*! |
| @@ -238,7 +293,7 @@ public: | |||
| 238 | */ | 293 | */ |
| 239 | DemuxPacket* AllocateDemuxPacket(int iDataSize) | 294 | DemuxPacket* AllocateDemuxPacket(int iDataSize) |
| 240 | { | 295 | { |
| 241 | return m_Callbacks->AllocateDemuxPacket(m_Handle->addonData, iDataSize); | 296 | return PVR_allocate_demux_packet(m_Handle, m_Callbacks, iDataSize); |
| 242 | } | 297 | } |
| 243 | #endif | 298 | #endif |
| 244 | 299 | ||
| @@ -251,7 +306,7 @@ public: | |||
| 251 | */ | 306 | */ |
| 252 | void ConnectionStateChange(const char *strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage) | 307 | void ConnectionStateChange(const char *strConnectionString, PVR_CONNECTION_STATE newState, const char *strMessage) |
| 253 | { | 308 | { |
| 254 | return m_Callbacks->ConnectionStateChange(m_Handle->addonData, strConnectionString, newState, strMessage); | 309 | return PVR_connection_state_change(m_Handle, m_Callbacks, strConnectionString, newState, strMessage); |
| 255 | } | 310 | } |
| 256 | 311 | ||
| 257 | /*! | 312 | /*! |
| @@ -263,10 +318,38 @@ public: | |||
| 263 | */ | 318 | */ |
| 264 | void EpgEventStateChange(EPG_TAG *tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState) | 319 | void EpgEventStateChange(EPG_TAG *tag, unsigned int iUniqueChannelId, EPG_EVENT_STATE newState) |
| 265 | { | 320 | { |
| 266 | return m_Callbacks->EpgEventStateChange(m_Handle->addonData, tag, iUniqueChannelId, newState); | 321 | return PVR_epg_event_state_change(m_Handle, m_Callbacks, tag, iUniqueChannelId, newState); |
| 267 | } | 322 | } |
| 268 | 323 | ||
| 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 | |||
| 269 | private: | 347 | private: |
| 270 | AddonCB* m_Handle; | 348 | void* m_libXBMC_pvr; |
| 271 | KodiAPI::V1::PVR::CB_PVRLib *m_Callbacks; | 349 | void* m_Handle; |
| 350 | void* m_Callbacks; | ||
| 351 | struct cb_array | ||
| 352 | { | ||
| 353 | const char* libPath; | ||
| 354 | }; | ||
| 272 | }; | 355 | }; |
