Fix keymap.
[vuplus_xbmc] / xbmc / addons / AddonCallbacks.h
1 #pragma once
2 /*
3  *      Copyright (C) 2012-2013 Team XBMC
4  *      http://xbmc.org
5  *
6  *  This Program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation; either version 2, or (at your option)
9  *  any later version.
10  *
11  *  This Program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with XBMC; see the file COPYING.  If not, see
18  *  <http://www.gnu.org/licenses/>.
19  *
20  */
21
22 #include "cores/dvdplayer/DVDDemuxers/DVDDemuxUtils.h"
23 #include "addons/include/xbmc_pvr_types.h"
24 #include "addons/include/xbmc_codec_types.h"
25 #include "../../addons/library.xbmc.addon/libXBMC_addon.h"
26 #include "../../addons/library.xbmc.gui/libXBMC_gui.h"
27
28 typedef void (*AddOnLogCallback)(void *addonData, const ADDON::addon_log_t loglevel, const char *msg);
29 typedef void (*AddOnQueueNotification)(void *addonData, const ADDON::queue_msg_t type, const char *msg);
30 typedef bool (*AddOnWakeOnLan)(const char* mac);
31 typedef bool (*AddOnGetSetting)(void *addonData, const char *settingName, void *settingValue);
32 typedef char* (*AddOnUnknownToUTF8)(const char *sourceDest);
33 typedef char* (*AddOnGetLocalizedString)(const void* addonData, long dwCode);
34 typedef char* (*AddOnGetDVDMenuLanguage)(const void* addonData);
35 typedef void (*AddOnFreeString)(const void* addonData, char* str);
36
37 typedef void* (*AddOnOpenFile)(const void* addonData, const char* strFileName, unsigned int flags);
38 typedef void* (*AddOnOpenFileForWrite)(const void* addonData, const char* strFileName, bool bOverWrite);
39 typedef unsigned int (*AddOnReadFile)(const void* addonData, void* file, void* lpBuf, int64_t uiBufSize);
40 typedef bool (*AddOnReadFileString)(const void* addonData, void* file, char *szLine, int iLineLength);
41 typedef int (*AddOnWriteFile)(const void* addonData, void* file, const void* lpBuf, int64_t uiBufSize);
42 typedef void (*AddOnFlushFile)(const void* addonData, void* file);
43 typedef int64_t (*AddOnSeekFile)(const void* addonData, void* file, int64_t iFilePosition, int iWhence);
44 typedef int (*AddOnTruncateFile)(const void* addonData, void* file, int64_t iSize);
45 typedef int64_t (*AddOnGetFilePosition)(const void* addonData, void* file);
46 typedef int64_t (*AddOnGetFileLength)(const void* addonData, void* file);
47 typedef void (*AddOnCloseFile)(const void* addonData, void* file);
48 typedef int (*AddOnGetFileChunkSize)(const void* addonData, void* file);
49 typedef bool (*AddOnFileExists)(const void* addonData, const char *strFileName, bool bUseCache);
50 typedef int (*AddOnStatFile)(const void* addonData, const char *strFileName, struct __stat64* buffer);
51 typedef bool (*AddOnDeleteFile)(const void* addonData, const char *strFileName);
52 typedef bool (*AddOnCanOpenDirectory)(const void* addonData, const char* strURL);
53 typedef bool (*AddOnCreateDirectory)(const void* addonData, const char *strPath);
54 typedef bool (*AddOnDirectoryExists)(const void* addonData, const char *strPath);
55 typedef bool (*AddOnRemoveDirectory)(const void* addonData, const char *strPath);
56
57 typedef struct CB_AddOn
58 {
59   AddOnLogCallback        Log;
60   AddOnQueueNotification  QueueNotification;
61   AddOnWakeOnLan          WakeOnLan;
62   AddOnGetSetting         GetSetting;
63   AddOnUnknownToUTF8      UnknownToUTF8;
64   AddOnGetLocalizedString GetLocalizedString;
65   AddOnGetDVDMenuLanguage GetDVDMenuLanguage;
66   AddOnFreeString         FreeString;
67
68   AddOnOpenFile           OpenFile;
69   AddOnOpenFileForWrite   OpenFileForWrite;
70   AddOnReadFile           ReadFile;
71   AddOnReadFileString     ReadFileString;
72   AddOnWriteFile          WriteFile;
73   AddOnFlushFile          FlushFile;
74   AddOnSeekFile           SeekFile;
75   AddOnTruncateFile       TruncateFile;
76   AddOnGetFilePosition    GetFilePosition;
77   AddOnGetFileLength      GetFileLength;
78   AddOnCloseFile          CloseFile;
79   AddOnGetFileChunkSize   GetFileChunkSize;
80   AddOnFileExists         FileExists;
81   AddOnStatFile           StatFile;
82   AddOnDeleteFile         DeleteFile;
83   AddOnCanOpenDirectory   CanOpenDirectory;
84   AddOnCreateDirectory    CreateDirectory;
85   AddOnDirectoryExists    DirectoryExists;
86   AddOnRemoveDirectory    RemoveDirectory;
87 } CB_AddOnLib;
88
89 typedef xbmc_codec_t (*CODECGetCodecByName)(const void* addonData, const char* strCodecName);
90
91 typedef struct CB_CODEC
92 {
93   CODECGetCodecByName   GetCodecByName;
94 } CB_CODECLib;
95
96 typedef void (*GUILock)();
97 typedef void (*GUIUnlock)();
98 typedef int (*GUIGetScreenHeight)();
99 typedef int (*GUIGetScreenWidth)();
100 typedef int (*GUIGetVideoResolution)();
101 typedef GUIHANDLE   (*GUIWindow_New)(void *addonData, const char *xmlFilename, const char *defaultSkin, bool forceFallback, bool asDialog);
102 typedef void        (*GUIWindow_Delete)(void *addonData, GUIHANDLE handle);
103 typedef void        (*GUIWindow_SetCallbacks)(void *addonData, GUIHANDLE handle, GUIHANDLE clienthandle, bool (*)(GUIHANDLE handle), bool (*)(GUIHANDLE handle, int), bool (*)(GUIHANDLE handle, int), bool (*)(GUIHANDLE handle, int));
104 typedef bool        (*GUIWindow_Show)(void *addonData, GUIHANDLE handle);
105 typedef bool        (*GUIWindow_Close)(void *addonData, GUIHANDLE handle);
106 typedef bool        (*GUIWindow_DoModal)(void *addonData, GUIHANDLE handle);
107 typedef bool        (*GUIWindow_SetFocusId)(void *addonData, GUIHANDLE handle, int iControlId);
108 typedef int         (*GUIWindow_GetFocusId)(void *addonData, GUIHANDLE handle);
109 typedef bool        (*GUIWindow_SetCoordinateResolution)(void *addonData, GUIHANDLE handle, int res);
110 typedef void        (*GUIWindow_SetProperty)(void *addonData, GUIHANDLE handle, const char *key, const char *value);
111 typedef void        (*GUIWindow_SetPropertyInt)(void *addonData, GUIHANDLE handle, const char *key, int value);
112 typedef void        (*GUIWindow_SetPropertyBool)(void *addonData, GUIHANDLE handle, const char *key, bool value);
113 typedef void        (*GUIWindow_SetPropertyDouble)(void *addonData, GUIHANDLE handle, const char *key, double value);
114 typedef const char* (*GUIWindow_GetProperty)(void *addonData, GUIHANDLE handle, const char *key);
115 typedef int         (*GUIWindow_GetPropertyInt)(void *addonData, GUIHANDLE handle, const char *key);
116 typedef bool        (*GUIWindow_GetPropertyBool)(void *addonData, GUIHANDLE handle, const char *key);
117 typedef double      (*GUIWindow_GetPropertyDouble)(void *addonData, GUIHANDLE handle, const char *key);
118 typedef void        (*GUIWindow_ClearProperties)(void *addonData, GUIHANDLE handle);
119 typedef int         (*GUIWindow_GetListSize)(void *addonData, GUIHANDLE handle);
120 typedef void        (*GUIWindow_ClearList)(void *addonData, GUIHANDLE handle);
121 typedef GUIHANDLE   (*GUIWindow_AddItem)(void *addonData, GUIHANDLE handle, GUIHANDLE item, int itemPosition);
122 typedef GUIHANDLE   (*GUIWindow_AddStringItem)(void *addonData, GUIHANDLE handle, const char *itemName, int itemPosition);
123 typedef void        (*GUIWindow_RemoveItem)(void *addonData, GUIHANDLE handle, int itemPosition);
124 typedef GUIHANDLE   (*GUIWindow_GetListItem)(void *addonData, GUIHANDLE handle, int listPos);
125 typedef void        (*GUIWindow_SetCurrentListPosition)(void *addonData, GUIHANDLE handle, int listPos);
126 typedef int         (*GUIWindow_GetCurrentListPosition)(void *addonData, GUIHANDLE handle);
127 typedef GUIHANDLE   (*GUIWindow_GetControl_Spin)(void *addonData, GUIHANDLE handle, int controlId);
128 typedef GUIHANDLE   (*GUIWindow_GetControl_Button)(void *addonData, GUIHANDLE handle, int controlId);
129 typedef GUIHANDLE   (*GUIWindow_GetControl_RadioButton)(void *addonData, GUIHANDLE handle, int controlId);
130 typedef GUIHANDLE   (*GUIWindow_GetControl_Edit)(void *addonData, GUIHANDLE handle, int controlId);
131 typedef GUIHANDLE   (*GUIWindow_GetControl_Progress)(void *addonData, GUIHANDLE handle, int controlId);
132 typedef GUIHANDLE   (*GUIWindow_GetControl_RenderAddon)(void *addonData, GUIHANDLE handle, int controlId);
133 typedef void        (*GUIWindow_SetControlLabel)(void *addonData, GUIHANDLE handle, int controlId, const char *label);
134 typedef void        (*GUIWindow_MarkDirtyRegion)(void *addonData, GUIHANDLE handle);
135 typedef void        (*GUIControl_Spin_SetVisible)(void *addonData, GUIHANDLE spinhandle, bool yesNo);
136 typedef void        (*GUIControl_Spin_SetText)(void *addonData, GUIHANDLE spinhandle, const char *label);
137 typedef void        (*GUIControl_Spin_Clear)(void *addonData, GUIHANDLE spinhandle);
138 typedef void        (*GUIControl_Spin_AddLabel)(void *addonData, GUIHANDLE spinhandle, const char *label, int iValue);
139 typedef int         (*GUIControl_Spin_GetValue)(void *addonData, GUIHANDLE spinhandle);
140 typedef void        (*GUIControl_Spin_SetValue)(void *addonData, GUIHANDLE spinhandle, int iValue);
141 typedef void        (*GUIControl_RadioButton_SetVisible)(void *addonData, GUIHANDLE handle, bool yesNo);
142 typedef void        (*GUIControl_RadioButton_SetText)(void *addonData, GUIHANDLE handle, const char *label);
143 typedef void        (*GUIControl_RadioButton_SetSelected)(void *addonData, GUIHANDLE handle, bool yesNo);
144 typedef bool        (*GUIControl_RadioButton_IsSelected)(void *addonData, GUIHANDLE handle);
145 typedef void        (*GUIControl_Progress_SetPercentage)(void *addonData, GUIHANDLE handle, float fPercent);
146 typedef float       (*GUIControl_Progress_GetPercentage)(void *addonData, GUIHANDLE handle);
147 typedef void        (*GUIControl_Progress_SetInfo)(void *addonData, GUIHANDLE handle, int iInfo);
148 typedef int         (*GUIControl_Progress_GetInfo)(void *addonData, GUIHANDLE handle);
149 typedef const char* (*GUIControl_Progress_GetDescription)(void *addonData, GUIHANDLE handle);
150 typedef GUIHANDLE   (*GUIListItem_Create)(void *addonData, const char *label, const char *label2, const char *iconImage, const char *thumbnailImage, const char *path);
151 typedef const char* (*GUIListItem_GetLabel)(void *addonData, GUIHANDLE handle);
152 typedef void        (*GUIListItem_SetLabel)(void *addonData, GUIHANDLE handle, const char *label);
153 typedef const char* (*GUIListItem_GetLabel2)(void *addonData, GUIHANDLE handle);
154 typedef void        (*GUIListItem_SetLabel2)(void *addonData, GUIHANDLE handle, const char *label);
155 typedef void        (*GUIListItem_SetIconImage)(void *addonData, GUIHANDLE handle, const char *image);
156 typedef void        (*GUIListItem_SetThumbnailImage)(void *addonData, GUIHANDLE handle, const char *image);
157 typedef void        (*GUIListItem_SetInfo)(void *addonData, GUIHANDLE handle, const char *info);
158 typedef void        (*GUIListItem_SetProperty)(void *addonData, GUIHANDLE handle, const char *key, const char *value);
159 typedef const char* (*GUIListItem_GetProperty)(void *addonData, GUIHANDLE handle, const char *key);
160 typedef void        (*GUIListItem_SetPath)(void *addonData, GUIHANDLE handle, const char *path);
161 typedef void        (*GUIRenderAddon_SetCallbacks)(void *addonData, GUIHANDLE handle, GUIHANDLE clienthandle, bool (*createCB)(GUIHANDLE,int,int,int,int,void*), void (*renderCB)(GUIHANDLE), void (*stopCB)(GUIHANDLE), bool (*dirtyCB)(GUIHANDLE));
162 typedef void        (*GUIRenderAddon_Delete)(void *addonData, GUIHANDLE handle);
163 typedef void        (*GUIRenderAddon_MarkDirty)(void *addonData, GUIHANDLE handle);
164
165 typedef struct CB_GUILib
166 {
167   GUILock                             Lock;
168   GUIUnlock                           Unlock;
169   GUIGetScreenHeight                  GetScreenHeight;
170   GUIGetScreenWidth                   GetScreenWidth;
171   GUIGetVideoResolution               GetVideoResolution;
172   GUIWindow_New                       Window_New;
173   GUIWindow_Delete                    Window_Delete;
174   GUIWindow_SetCallbacks              Window_SetCallbacks;
175   GUIWindow_Show                      Window_Show;
176   GUIWindow_Close                     Window_Close;
177   GUIWindow_DoModal                   Window_DoModal;
178   GUIWindow_SetFocusId                Window_SetFocusId;
179   GUIWindow_GetFocusId                Window_GetFocusId;
180   GUIWindow_SetCoordinateResolution   Window_SetCoordinateResolution;
181   GUIWindow_SetProperty               Window_SetProperty;
182   GUIWindow_SetPropertyInt            Window_SetPropertyInt;
183   GUIWindow_SetPropertyBool           Window_SetPropertyBool;
184   GUIWindow_SetPropertyDouble         Window_SetPropertyDouble;
185   GUIWindow_GetProperty               Window_GetProperty;
186   GUIWindow_GetPropertyInt            Window_GetPropertyInt;
187   GUIWindow_GetPropertyBool           Window_GetPropertyBool;
188   GUIWindow_GetPropertyDouble         Window_GetPropertyDouble;
189   GUIWindow_ClearProperties           Window_ClearProperties;
190   GUIWindow_GetListSize               Window_GetListSize;
191   GUIWindow_ClearList                 Window_ClearList;
192   GUIWindow_AddItem                   Window_AddItem;
193   GUIWindow_AddStringItem             Window_AddStringItem;
194   GUIWindow_RemoveItem                Window_RemoveItem;
195   GUIWindow_GetListItem               Window_GetListItem;
196   GUIWindow_SetCurrentListPosition    Window_SetCurrentListPosition;
197   GUIWindow_GetCurrentListPosition    Window_GetCurrentListPosition;
198   GUIWindow_GetControl_Spin           Window_GetControl_Spin;
199   GUIWindow_GetControl_Button         Window_GetControl_Button;
200   GUIWindow_GetControl_RadioButton    Window_GetControl_RadioButton;
201   GUIWindow_GetControl_Edit           Window_GetControl_Edit;
202   GUIWindow_GetControl_Progress       Window_GetControl_Progress;
203   GUIWindow_GetControl_RenderAddon    Window_GetControl_RenderAddon;
204   GUIWindow_SetControlLabel           Window_SetControlLabel;
205   GUIWindow_MarkDirtyRegion           Window_MarkDirtyRegion;
206   GUIControl_Spin_SetVisible          Control_Spin_SetVisible;
207   GUIControl_Spin_SetText             Control_Spin_SetText;
208   GUIControl_Spin_Clear               Control_Spin_Clear;
209   GUIControl_Spin_AddLabel            Control_Spin_AddLabel;
210   GUIControl_Spin_GetValue            Control_Spin_GetValue;
211   GUIControl_Spin_SetValue            Control_Spin_SetValue;
212   GUIControl_RadioButton_SetVisible   Control_RadioButton_SetVisible;
213   GUIControl_RadioButton_SetText      Control_RadioButton_SetText;
214   GUIControl_RadioButton_SetSelected  Control_RadioButton_SetSelected;
215   GUIControl_RadioButton_IsSelected   Control_RadioButton_IsSelected;
216   GUIControl_Progress_SetPercentage   Control_Progress_SetPercentage;
217   GUIControl_Progress_GetPercentage   Control_Progress_GetPercentage;
218   GUIControl_Progress_SetInfo         Control_Progress_SetInfo;
219   GUIControl_Progress_GetInfo         Control_Progress_GetInfo;
220   GUIControl_Progress_GetDescription  Control_Progress_GetDescription;
221   GUIListItem_Create                  ListItem_Create;
222   GUIListItem_GetLabel                ListItem_GetLabel;
223   GUIListItem_SetLabel                ListItem_SetLabel;
224   GUIListItem_GetLabel2               ListItem_GetLabel2;
225   GUIListItem_SetLabel2               ListItem_SetLabel2;
226   GUIListItem_SetIconImage            ListItem_SetIconImage;
227   GUIListItem_SetThumbnailImage       ListItem_SetThumbnailImage;
228   GUIListItem_SetInfo                 ListItem_SetInfo;
229   GUIListItem_SetProperty             ListItem_SetProperty;
230   GUIListItem_GetProperty             ListItem_GetProperty;
231   GUIListItem_SetPath                 ListItem_SetPath;
232   GUIRenderAddon_SetCallbacks         RenderAddon_SetCallbacks;
233   GUIRenderAddon_Delete               RenderAddon_Delete;
234
235 } CB_GUILib;
236
237 typedef void (*PVRTransferEpgEntry)(void *userData, const ADDON_HANDLE handle, const EPG_TAG *epgentry);
238 typedef void (*PVRTransferChannelEntry)(void *userData, const ADDON_HANDLE handle, const PVR_CHANNEL *chan);
239 typedef void (*PVRTransferTimerEntry)(void *userData, const ADDON_HANDLE handle, const PVR_TIMER *timer);
240 typedef void (*PVRTransferRecordingEntry)(void *userData, const ADDON_HANDLE handle, const PVR_RECORDING *recording);
241 typedef void (*PVRAddMenuHook)(void *addonData, PVR_MENUHOOK *hook);
242 typedef void (*PVRRecording)(void *addonData, const char *Name, const char *FileName, bool On);
243 typedef void (*PVRTriggerChannelUpdate)(void *addonData);
244 typedef void (*PVRTriggerTimerUpdate)(void *addonData);
245 typedef void (*PVRTriggerRecordingUpdate)(void *addonData);
246 typedef void (*PVRTriggerChannelGroupsUpdate)(void *addonData);
247 typedef void (*PVRTriggerEpgUpdate)(void *addonData, unsigned int iChannelUid);
248
249 typedef void (*PVRTransferChannelGroup)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP *group);
250 typedef void (*PVRTransferChannelGroupMember)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER *member);
251
252 typedef void (*PVRFreeDemuxPacket)(void *addonData, DemuxPacket* pPacket);
253 typedef DemuxPacket* (*PVRAllocateDemuxPacket)(void *addonData, int iDataSize);
254
255 typedef struct CB_PVRLib
256 {
257   PVRTransferEpgEntry           TransferEpgEntry;
258   PVRTransferChannelEntry       TransferChannelEntry;
259   PVRTransferTimerEntry         TransferTimerEntry;
260   PVRTransferRecordingEntry     TransferRecordingEntry;
261   PVRAddMenuHook                AddMenuHook;
262   PVRRecording                  Recording;
263   PVRTriggerChannelUpdate       TriggerChannelUpdate;
264   PVRTriggerTimerUpdate         TriggerTimerUpdate;
265   PVRTriggerRecordingUpdate     TriggerRecordingUpdate;
266   PVRTriggerChannelGroupsUpdate TriggerChannelGroupsUpdate;
267   PVRTriggerEpgUpdate           TriggerEpgUpdate;
268   PVRFreeDemuxPacket            FreeDemuxPacket;
269   PVRAllocateDemuxPacket        AllocateDemuxPacket;
270   PVRTransferChannelGroup       TransferChannelGroup;
271   PVRTransferChannelGroupMember TransferChannelGroupMember;
272
273 } CB_PVRLib;
274
275
276 typedef CB_AddOnLib* (*XBMCAddOnLib_RegisterMe)(void *addonData);
277 typedef void (*XBMCAddOnLib_UnRegisterMe)(void *addonData, CB_AddOnLib *cbTable);
278 typedef CB_CODECLib* (*XBMCCODECLib_RegisterMe)(void *addonData);
279 typedef void (*XBMCCODECLib_UnRegisterMe)(void *addonData, CB_CODECLib *cbTable);
280 typedef CB_GUILib* (*XBMCGUILib_RegisterMe)(void *addonData);
281 typedef void (*XBMCGUILib_UnRegisterMe)(void *addonData, CB_GUILib *cbTable);
282 typedef CB_PVRLib* (*XBMCPVRLib_RegisterMe)(void *addonData);
283 typedef void (*XBMCPVRLib_UnRegisterMe)(void *addonData, CB_PVRLib *cbTable);
284
285 typedef struct AddonCB
286 {
287   const char                *libBasePath;                  ///> Never, never change this!!!
288   void                      *addonData;
289   XBMCAddOnLib_RegisterMe    AddOnLib_RegisterMe;
290   XBMCAddOnLib_UnRegisterMe  AddOnLib_UnRegisterMe;
291   XBMCCODECLib_RegisterMe    CODECLib_RegisterMe;
292   XBMCCODECLib_UnRegisterMe  CODECLib_UnRegisterMe;
293   XBMCGUILib_RegisterMe      GUILib_RegisterMe;
294   XBMCGUILib_UnRegisterMe    GUILib_UnRegisterMe;
295   XBMCPVRLib_RegisterMe      PVRLib_RegisterMe;
296   XBMCPVRLib_UnRegisterMe    PVRLib_UnRegisterMe;
297 } AddonCB;
298
299
300 namespace ADDON
301 {
302
303 class CAddon;
304 class CAddonCallbacksAddon;
305 class CAddonCallbacksCodec;
306 class CAddonCallbacksGUI;
307 class CAddonCallbacksPVR;
308
309 class CAddonCallbacks
310 {
311 public:
312   CAddonCallbacks(CAddon* addon);
313   ~CAddonCallbacks();
314   AddonCB *GetCallbacks() { return m_callbacks; }
315
316   static CB_AddOnLib* AddOnLib_RegisterMe(void *addonData);
317   static void AddOnLib_UnRegisterMe(void *addonData, CB_AddOnLib *cbTable);
318   static CB_CODECLib* CODECLib_RegisterMe(void *addonData);
319   static void CODECLib_UnRegisterMe(void *addonData, CB_CODECLib *cbTable);
320   static CB_GUILib* GUILib_RegisterMe(void *addonData);
321   static void GUILib_UnRegisterMe(void *addonData, CB_GUILib *cbTable);
322   static CB_PVRLib* PVRLib_RegisterMe(void *addonData);
323   static void PVRLib_UnRegisterMe(void *addonData, CB_PVRLib *cbTable);
324
325   CAddonCallbacksAddon *GetHelperAddon() { return m_helperAddon; }
326   CAddonCallbacksCodec *GetHelperCodec() { return m_helperCODEC; }
327   CAddonCallbacksGUI *GetHelperGUI() { return m_helperGUI; }
328   CAddonCallbacksPVR *GetHelperPVR() { return m_helperPVR; }
329
330 private:
331   AddonCB             *m_callbacks;
332   CAddon              *m_addon;
333   CAddonCallbacksAddon *m_helperAddon;
334   CAddonCallbacksCodec *m_helperCODEC;
335   CAddonCallbacksGUI   *m_helperGUI;
336   CAddonCallbacksPVR   *m_helperPVR;
337 };
338
339 }; /* namespace ADDON */