#pragma once
/*
* Copyright (C) 2012-2013 Team XBMC
* http://xbmc.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This Program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XBMC; see the file COPYING. If not, see
* .
*
*/
#include
#include "cores/dvdplayer/DVDDemuxers/DVDDemuxUtils.h"
#include "addons/include/xbmc_pvr_types.h"
#include "addons/include/xbmc_codec_types.h"
#include "../../addons/library.xbmc.gui/libXBMC_gui.h"
#ifdef TARGET_WINDOWS
#ifndef _SSIZE_T_DEFINED
typedef intptr_t ssize_t;
#define _SSIZE_T_DEFINED
#endif // !_SSIZE_T_DEFINED
#endif // TARGET_WINDOWS
typedef void (*AddOnLogCallback)(void *addonData, const ADDON::addon_log_t loglevel, const char *msg);
typedef void (*AddOnQueueNotification)(void *addonData, const ADDON::queue_msg_t type, const char *msg);
typedef bool (*AddOnWakeOnLan)(const char* mac);
typedef bool (*AddOnGetSetting)(void *addonData, const char *settingName, void *settingValue);
typedef char* (*AddOnUnknownToUTF8)(const char *sourceDest);
typedef char* (*AddOnGetLocalizedString)(const void* addonData, long dwCode);
typedef char* (*AddOnGetDVDMenuLanguage)(const void* addonData);
typedef void (*AddOnFreeString)(const void* addonData, char* str);
typedef void* (*AddOnOpenFile)(const void* addonData, const char* strFileName, unsigned int flags);
typedef void* (*AddOnOpenFileForWrite)(const void* addonData, const char* strFileName, bool bOverWrite);
typedef ssize_t (*AddOnReadFile)(const void* addonData, void* file, void* lpBuf, size_t uiBufSize);
typedef bool (*AddOnReadFileString)(const void* addonData, void* file, char *szLine, int iLineLength);
typedef ssize_t (*AddOnWriteFile)(const void* addonData, void* file, const void* lpBuf, size_t uiBufSize);
typedef void (*AddOnFlushFile)(const void* addonData, void* file);
typedef int64_t (*AddOnSeekFile)(const void* addonData, void* file, int64_t iFilePosition, int iWhence);
typedef int (*AddOnTruncateFile)(const void* addonData, void* file, int64_t iSize);
typedef int64_t (*AddOnGetFilePosition)(const void* addonData, void* file);
typedef int64_t (*AddOnGetFileLength)(const void* addonData, void* file);
typedef void (*AddOnCloseFile)(const void* addonData, void* file);
typedef int (*AddOnGetFileChunkSize)(const void* addonData, void* file);
typedef bool (*AddOnFileExists)(const void* addonData, const char *strFileName, bool bUseCache);
typedef int (*AddOnStatFile)(const void* addonData, const char *strFileName, struct __stat64* buffer);
typedef bool (*AddOnDeleteFile)(const void* addonData, const char *strFileName);
typedef bool (*AddOnCanOpenDirectory)(const void* addonData, const char* strURL);
typedef bool (*AddOnCreateDirectory)(const void* addonData, const char *strPath);
typedef bool (*AddOnDirectoryExists)(const void* addonData, const char *strPath);
typedef bool (*AddOnRemoveDirectory)(const void* addonData, const char *strPath);
typedef struct CB_AddOn
{
AddOnLogCallback Log;
AddOnQueueNotification QueueNotification;
AddOnWakeOnLan WakeOnLan;
AddOnGetSetting GetSetting;
AddOnUnknownToUTF8 UnknownToUTF8;
AddOnGetLocalizedString GetLocalizedString;
AddOnGetDVDMenuLanguage GetDVDMenuLanguage;
AddOnFreeString FreeString;
AddOnOpenFile OpenFile;
AddOnOpenFileForWrite OpenFileForWrite;
AddOnReadFile ReadFile;
AddOnReadFileString ReadFileString;
AddOnWriteFile WriteFile;
AddOnFlushFile FlushFile;
AddOnSeekFile SeekFile;
AddOnTruncateFile TruncateFile;
AddOnGetFilePosition GetFilePosition;
AddOnGetFileLength GetFileLength;
AddOnCloseFile CloseFile;
AddOnGetFileChunkSize GetFileChunkSize;
AddOnFileExists FileExists;
AddOnStatFile StatFile;
AddOnDeleteFile DeleteFile;
AddOnCanOpenDirectory CanOpenDirectory;
AddOnCreateDirectory CreateDirectory;
AddOnDirectoryExists DirectoryExists;
AddOnRemoveDirectory RemoveDirectory;
} CB_AddOnLib;
typedef xbmc_codec_t (*CODECGetCodecByName)(const void* addonData, const char* strCodecName);
typedef struct CB_CODEC
{
CODECGetCodecByName GetCodecByName;
} CB_CODECLib;
typedef void (*GUILock)();
typedef void (*GUIUnlock)();
typedef int (*GUIGetScreenHeight)();
typedef int (*GUIGetScreenWidth)();
typedef int (*GUIGetVideoResolution)();
typedef GUIHANDLE (*GUIWindow_New)(void *addonData, const char *xmlFilename, const char *defaultSkin, bool forceFallback, bool asDialog);
typedef void (*GUIWindow_Delete)(void *addonData, GUIHANDLE handle);
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));
typedef bool (*GUIWindow_Show)(void *addonData, GUIHANDLE handle);
typedef bool (*GUIWindow_Close)(void *addonData, GUIHANDLE handle);
typedef bool (*GUIWindow_DoModal)(void *addonData, GUIHANDLE handle);
typedef bool (*GUIWindow_SetFocusId)(void *addonData, GUIHANDLE handle, int iControlId);
typedef int (*GUIWindow_GetFocusId)(void *addonData, GUIHANDLE handle);
typedef bool (*GUIWindow_SetCoordinateResolution)(void *addonData, GUIHANDLE handle, int res);
typedef void (*GUIWindow_SetProperty)(void *addonData, GUIHANDLE handle, const char *key, const char *value);
typedef void (*GUIWindow_SetPropertyInt)(void *addonData, GUIHANDLE handle, const char *key, int value);
typedef void (*GUIWindow_SetPropertyBool)(void *addonData, GUIHANDLE handle, const char *key, bool value);
typedef void (*GUIWindow_SetPropertyDouble)(void *addonData, GUIHANDLE handle, const char *key, double value);
typedef const char* (*GUIWindow_GetProperty)(void *addonData, GUIHANDLE handle, const char *key);
typedef int (*GUIWindow_GetPropertyInt)(void *addonData, GUIHANDLE handle, const char *key);
typedef bool (*GUIWindow_GetPropertyBool)(void *addonData, GUIHANDLE handle, const char *key);
typedef double (*GUIWindow_GetPropertyDouble)(void *addonData, GUIHANDLE handle, const char *key);
typedef void (*GUIWindow_ClearProperties)(void *addonData, GUIHANDLE handle);
typedef int (*GUIWindow_GetListSize)(void *addonData, GUIHANDLE handle);
typedef void (*GUIWindow_ClearList)(void *addonData, GUIHANDLE handle);
typedef GUIHANDLE (*GUIWindow_AddItem)(void *addonData, GUIHANDLE handle, GUIHANDLE item, int itemPosition);
typedef GUIHANDLE (*GUIWindow_AddStringItem)(void *addonData, GUIHANDLE handle, const char *itemName, int itemPosition);
typedef void (*GUIWindow_RemoveItem)(void *addonData, GUIHANDLE handle, int itemPosition);
typedef GUIHANDLE (*GUIWindow_GetListItem)(void *addonData, GUIHANDLE handle, int listPos);
typedef void (*GUIWindow_SetCurrentListPosition)(void *addonData, GUIHANDLE handle, int listPos);
typedef int (*GUIWindow_GetCurrentListPosition)(void *addonData, GUIHANDLE handle);
typedef GUIHANDLE (*GUIWindow_GetControl_Spin)(void *addonData, GUIHANDLE handle, int controlId);
typedef GUIHANDLE (*GUIWindow_GetControl_Button)(void *addonData, GUIHANDLE handle, int controlId);
typedef GUIHANDLE (*GUIWindow_GetControl_RadioButton)(void *addonData, GUIHANDLE handle, int controlId);
typedef GUIHANDLE (*GUIWindow_GetControl_Edit)(void *addonData, GUIHANDLE handle, int controlId);
typedef GUIHANDLE (*GUIWindow_GetControl_Progress)(void *addonData, GUIHANDLE handle, int controlId);
typedef GUIHANDLE (*GUIWindow_GetControl_RenderAddon)(void *addonData, GUIHANDLE handle, int controlId);
typedef void (*GUIWindow_SetControlLabel)(void *addonData, GUIHANDLE handle, int controlId, const char *label);
typedef void (*GUIWindow_MarkDirtyRegion)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_Spin_SetVisible)(void *addonData, GUIHANDLE spinhandle, bool yesNo);
typedef void (*GUIControl_Spin_SetText)(void *addonData, GUIHANDLE spinhandle, const char *label);
typedef void (*GUIControl_Spin_Clear)(void *addonData, GUIHANDLE spinhandle);
typedef void (*GUIControl_Spin_AddLabel)(void *addonData, GUIHANDLE spinhandle, const char *label, int iValue);
typedef int (*GUIControl_Spin_GetValue)(void *addonData, GUIHANDLE spinhandle);
typedef void (*GUIControl_Spin_SetValue)(void *addonData, GUIHANDLE spinhandle, int iValue);
typedef void (*GUIControl_RadioButton_SetVisible)(void *addonData, GUIHANDLE handle, bool yesNo);
typedef void (*GUIControl_RadioButton_SetText)(void *addonData, GUIHANDLE handle, const char *label);
typedef void (*GUIControl_RadioButton_SetSelected)(void *addonData, GUIHANDLE handle, bool yesNo);
typedef bool (*GUIControl_RadioButton_IsSelected)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_Progress_SetPercentage)(void *addonData, GUIHANDLE handle, float fPercent);
typedef float (*GUIControl_Progress_GetPercentage)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_Progress_SetInfo)(void *addonData, GUIHANDLE handle, int iInfo);
typedef int (*GUIControl_Progress_GetInfo)(void *addonData, GUIHANDLE handle);
typedef const char* (*GUIControl_Progress_GetDescription)(void *addonData, GUIHANDLE handle);
typedef GUIHANDLE (*GUIWindow_GetControl_Slider)(void *addonData, GUIHANDLE handle, int controlId);
typedef void (*GUIControl_Slider_SetVisible)(void *addonData, GUIHANDLE handle, bool yesNo);
typedef const char *(*GUIControl_Slider_GetDescription)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_Slider_SetIntRange)(void *addonData, GUIHANDLE handle, int iStart, int iEnd);
typedef void (*GUIControl_Slider_SetIntValue)(void *addonData, GUIHANDLE handle, int iValue);
typedef int (*GUIControl_Slider_GetIntValue)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_Slider_SetIntInterval)(void *addonData, GUIHANDLE handle, int iInterval);
typedef void (*GUIControl_Slider_SetPercentage)(void *addonData, GUIHANDLE handle, float fPercent);
typedef float (*GUIControl_Slider_GetPercentage)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_Slider_SetFloatRange)(void *addonData, GUIHANDLE handle, float fStart, float fEnd);
typedef void (*GUIControl_Slider_SetFloatValue)(void *addonData, GUIHANDLE handle, float fValue);
typedef float (*GUIControl_Slider_GetFloatValue)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_Slider_SetFloatInterval)(void *addonData, GUIHANDLE handle, float fInterval);
typedef GUIHANDLE (*GUIWindow_GetControl_SettingsSlider)(void *addonData, GUIHANDLE handle, int controlId);
typedef void (*GUIControl_SettingsSlider_SetVisible)(void *addonData, GUIHANDLE handle, bool yesNo);
typedef void (*GUIControl_SettingsSlider_SetText)(void *addonData, GUIHANDLE handle, const char *label);
typedef const char *(*GUIControl_SettingsSlider_GetDescription)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_SettingsSlider_SetIntRange)(void *addonData, GUIHANDLE handle, int iStart, int iEnd);
typedef void (*GUIControl_SettingsSlider_SetIntValue)(void *addonData, GUIHANDLE handle, int iValue);
typedef int (*GUIControl_SettingsSlider_GetIntValue)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_SettingsSlider_SetIntInterval)(void *addonData, GUIHANDLE handle, int iInterval);
typedef void (*GUIControl_SettingsSlider_SetPercentage)(void *addonData, GUIHANDLE handle, float fPercent);
typedef float (*GUIControl_SettingsSlider_GetPercentage)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_SettingsSlider_SetFloatRange)(void *addonData, GUIHANDLE handle, float fStart, float fEnd);
typedef void (*GUIControl_SettingsSlider_SetFloatValue)(void *addonData, GUIHANDLE handle, float fValue);
typedef float (*GUIControl_SettingsSlider_GetFloatValue)(void *addonData, GUIHANDLE handle);
typedef void (*GUIControl_SettingsSlider_SetFloatInterval)(void *addonData, GUIHANDLE handle, float fInterval);
typedef GUIHANDLE (*GUIListItem_Create)(void *addonData, const char *label, const char *label2, const char *iconImage, const char *thumbnailImage, const char *path);
typedef const char* (*GUIListItem_GetLabel)(void *addonData, GUIHANDLE handle);
typedef void (*GUIListItem_SetLabel)(void *addonData, GUIHANDLE handle, const char *label);
typedef const char* (*GUIListItem_GetLabel2)(void *addonData, GUIHANDLE handle);
typedef void (*GUIListItem_SetLabel2)(void *addonData, GUIHANDLE handle, const char *label);
typedef void (*GUIListItem_SetIconImage)(void *addonData, GUIHANDLE handle, const char *image);
typedef void (*GUIListItem_SetThumbnailImage)(void *addonData, GUIHANDLE handle, const char *image);
typedef void (*GUIListItem_SetInfo)(void *addonData, GUIHANDLE handle, const char *info);
typedef void (*GUIListItem_SetProperty)(void *addonData, GUIHANDLE handle, const char *key, const char *value);
typedef const char* (*GUIListItem_GetProperty)(void *addonData, GUIHANDLE handle, const char *key);
typedef void (*GUIListItem_SetPath)(void *addonData, GUIHANDLE handle, const char *path);
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));
typedef void (*GUIRenderAddon_Delete)(void *addonData, GUIHANDLE handle);
typedef void (*GUIRenderAddon_MarkDirty)(void *addonData, GUIHANDLE handle);
typedef bool (*GUIDialog_Keyboard_ShowAndGetInputWithHead)(char &strTextString, unsigned int iMaxStringSize, const char *heading, bool allowEmptyResult, bool hiddenInput, unsigned int autoCloseMs);
typedef bool (*GUIDialog_Keyboard_ShowAndGetInput)(char &strTextString, unsigned int iMaxStringSize, bool allowEmptyResult, unsigned int autoCloseMs);
typedef bool (*GUIDialog_Keyboard_ShowAndGetNewPasswordWithHead)(char &newPassword, unsigned int iMaxStringSize, const char *strHeading, bool allowEmptyResult, unsigned int autoCloseMs);
typedef bool (*GUIDialog_Keyboard_ShowAndGetNewPassword)(char &strNewPassword, unsigned int iMaxStringSize, unsigned int autoCloseMs);
typedef bool (*GUIDialog_Keyboard_ShowAndVerifyNewPasswordWithHead)(char &strNewPassword, unsigned int iMaxStringSize, const char *strHeading, bool allowEmpty, unsigned int autoCloseMs);
typedef bool (*GUIDialog_Keyboard_ShowAndVerifyNewPassword)(char &strNewPassword, unsigned int iMaxStringSize, unsigned int autoCloseMs);
typedef int (*GUIDialog_Keyboard_ShowAndVerifyPassword)(char &strPassword, unsigned int iMaxStringSize, const char *strHeading, int iRetries, unsigned int autoCloseMs);
typedef bool (*GUIDialog_Keyboard_ShowAndGetFilter)(char &aTextString, unsigned int iMaxStringSize, bool searching, unsigned int autoCloseMs);
typedef bool (*GUIDialog_Keyboard_SendTextToActiveKeyboard)(const char *aTextString, bool closeKeyboard);
typedef bool (*GUIDialog_Keyboard_isKeyboardActivated)();
typedef bool (*GUIDialog_Numeric_ShowAndVerifyNewPassword)(char &strNewPassword, unsigned int iMaxStringSize);
typedef int (*GUIDialog_Numeric_ShowAndVerifyPassword)(char &strPassword, unsigned int iMaxStringSize, const char *strHeading, int iRetries);
typedef bool (*GUIDialog_Numeric_ShowAndVerifyInput)(char &strPassword, unsigned int iMaxStringSize, const char *strHeading, bool bGetUserInput);
typedef bool (*GUIDialog_Numeric_ShowAndGetTime)(tm &time, const char *strHeading);
typedef bool (*GUIDialog_Numeric_ShowAndGetDate)(tm &date, const char *strHeading);
typedef bool (*GUIDialog_Numeric_ShowAndGetIPAddress)(char &strIPAddress, unsigned int iMaxStringSize, const char *strHeading);
typedef bool (*GUIDialog_Numeric_ShowAndGetNumber)(char &strInput, unsigned int iMaxStringSize, const char *strHeading, unsigned int iAutoCloseTimeoutMs);
typedef bool (*GUIDialog_Numeric_ShowAndGetSeconds)(char &timeString, unsigned int iMaxStringSize, const char *strHeading);
typedef bool (*GUIDialog_FileBrowser_ShowAndGetFile)(const char *directory, const char *mask, const char *heading, char &path, unsigned int iMaxStringSize, bool useThumbs, bool useFileDirectories, bool singleList);
typedef void (*GUIDialog_OK_ShowAndGetInputSingleText)(const char *heading, const char *text);
typedef void (*GUIDialog_OK_ShowAndGetInputLineText)(const char *heading, const char *line0, const char *line1, const char *line2);
typedef bool (*GUIDialog_YesNo_ShowAndGetInputSingleText)(const char *heading, const char *text, bool& bCanceled, const char *noLabel, const char *yesLabel);
typedef bool (*GUIDialog_YesNo_ShowAndGetInputLineText)(const char *heading, const char *line0, const char *line1, const char *line2, const char *noLabel, const char *yesLabel);
typedef bool (*GUIDialog_YesNo_ShowAndGetInputLineButtonText)(const char *heading, const char *line0, const char *line1, const char *line2, bool &bCanceled, const char *noLabel, const char *yesLabel);
typedef void (*GUIDialog_TextViewer)(const char *heading, const char *text);
typedef int (*GUIDialog_Select)(const char *heading, const char *entries[], unsigned int size, int selected);
typedef struct CB_GUILib
{
GUILock Lock;
GUIUnlock Unlock;
GUIGetScreenHeight GetScreenHeight;
GUIGetScreenWidth GetScreenWidth;
GUIGetVideoResolution GetVideoResolution;
GUIWindow_New Window_New;
GUIWindow_Delete Window_Delete;
GUIWindow_SetCallbacks Window_SetCallbacks;
GUIWindow_Show Window_Show;
GUIWindow_Close Window_Close;
GUIWindow_DoModal Window_DoModal;
GUIWindow_SetFocusId Window_SetFocusId;
GUIWindow_GetFocusId Window_GetFocusId;
GUIWindow_SetCoordinateResolution Window_SetCoordinateResolution;
GUIWindow_SetProperty Window_SetProperty;
GUIWindow_SetPropertyInt Window_SetPropertyInt;
GUIWindow_SetPropertyBool Window_SetPropertyBool;
GUIWindow_SetPropertyDouble Window_SetPropertyDouble;
GUIWindow_GetProperty Window_GetProperty;
GUIWindow_GetPropertyInt Window_GetPropertyInt;
GUIWindow_GetPropertyBool Window_GetPropertyBool;
GUIWindow_GetPropertyDouble Window_GetPropertyDouble;
GUIWindow_ClearProperties Window_ClearProperties;
GUIWindow_GetListSize Window_GetListSize;
GUIWindow_ClearList Window_ClearList;
GUIWindow_AddItem Window_AddItem;
GUIWindow_AddStringItem Window_AddStringItem;
GUIWindow_RemoveItem Window_RemoveItem;
GUIWindow_GetListItem Window_GetListItem;
GUIWindow_SetCurrentListPosition Window_SetCurrentListPosition;
GUIWindow_GetCurrentListPosition Window_GetCurrentListPosition;
GUIWindow_GetControl_Spin Window_GetControl_Spin;
GUIWindow_GetControl_Button Window_GetControl_Button;
GUIWindow_GetControl_RadioButton Window_GetControl_RadioButton;
GUIWindow_GetControl_Edit Window_GetControl_Edit;
GUIWindow_GetControl_Progress Window_GetControl_Progress;
GUIWindow_GetControl_RenderAddon Window_GetControl_RenderAddon;
GUIWindow_SetControlLabel Window_SetControlLabel;
GUIWindow_MarkDirtyRegion Window_MarkDirtyRegion;
GUIControl_Spin_SetVisible Control_Spin_SetVisible;
GUIControl_Spin_SetText Control_Spin_SetText;
GUIControl_Spin_Clear Control_Spin_Clear;
GUIControl_Spin_AddLabel Control_Spin_AddLabel;
GUIControl_Spin_GetValue Control_Spin_GetValue;
GUIControl_Spin_SetValue Control_Spin_SetValue;
GUIControl_RadioButton_SetVisible Control_RadioButton_SetVisible;
GUIControl_RadioButton_SetText Control_RadioButton_SetText;
GUIControl_RadioButton_SetSelected Control_RadioButton_SetSelected;
GUIControl_RadioButton_IsSelected Control_RadioButton_IsSelected;
GUIControl_Progress_SetPercentage Control_Progress_SetPercentage;
GUIControl_Progress_GetPercentage Control_Progress_GetPercentage;
GUIControl_Progress_SetInfo Control_Progress_SetInfo;
GUIControl_Progress_GetInfo Control_Progress_GetInfo;
GUIControl_Progress_GetDescription Control_Progress_GetDescription;
GUIListItem_Create ListItem_Create;
GUIListItem_GetLabel ListItem_GetLabel;
GUIListItem_SetLabel ListItem_SetLabel;
GUIListItem_GetLabel2 ListItem_GetLabel2;
GUIListItem_SetLabel2 ListItem_SetLabel2;
GUIListItem_SetIconImage ListItem_SetIconImage;
GUIListItem_SetThumbnailImage ListItem_SetThumbnailImage;
GUIListItem_SetInfo ListItem_SetInfo;
GUIListItem_SetProperty ListItem_SetProperty;
GUIListItem_GetProperty ListItem_GetProperty;
GUIListItem_SetPath ListItem_SetPath;
GUIRenderAddon_SetCallbacks RenderAddon_SetCallbacks;
GUIRenderAddon_Delete RenderAddon_Delete;
GUIWindow_GetControl_Slider Window_GetControl_Slider;
GUIControl_Slider_SetVisible Control_Slider_SetVisible;
GUIControl_Slider_GetDescription Control_Slider_GetDescription;
GUIControl_Slider_SetIntRange Control_Slider_SetIntRange;
GUIControl_Slider_SetIntValue Control_Slider_SetIntValue;
GUIControl_Slider_GetIntValue Control_Slider_GetIntValue;
GUIControl_Slider_SetIntInterval Control_Slider_SetIntInterval;
GUIControl_Slider_SetPercentage Control_Slider_SetPercentage;
GUIControl_Slider_GetPercentage Control_Slider_GetPercentage;
GUIControl_Slider_SetFloatRange Control_Slider_SetFloatRange;
GUIControl_Slider_SetFloatValue Control_Slider_SetFloatValue;
GUIControl_Slider_GetFloatValue Control_Slider_GetFloatValue;
GUIControl_Slider_SetFloatInterval Control_Slider_SetFloatInterval;
GUIWindow_GetControl_SettingsSlider Window_GetControl_SettingsSlider;
GUIControl_SettingsSlider_SetVisible Control_SettingsSlider_SetVisible;
GUIControl_SettingsSlider_SetText Control_SettingsSlider_SetText;
GUIControl_SettingsSlider_GetDescription Control_SettingsSlider_GetDescription;
GUIControl_SettingsSlider_SetIntRange Control_SettingsSlider_SetIntRange;
GUIControl_SettingsSlider_SetIntValue Control_SettingsSlider_SetIntValue;
GUIControl_SettingsSlider_GetIntValue Control_SettingsSlider_GetIntValue;
GUIControl_SettingsSlider_SetIntInterval Control_SettingsSlider_SetIntInterval;
GUIControl_SettingsSlider_SetPercentage Control_SettingsSlider_SetPercentage;
GUIControl_SettingsSlider_GetPercentage Control_SettingsSlider_GetPercentage;
GUIControl_SettingsSlider_SetFloatRange Control_SettingsSlider_SetFloatRange;
GUIControl_SettingsSlider_SetFloatValue Control_SettingsSlider_SetFloatValue;
GUIControl_SettingsSlider_GetFloatValue Control_SettingsSlider_GetFloatValue;
GUIControl_SettingsSlider_SetFloatInterval Control_SettingsSlider_SetFloatInterval;
GUIDialog_Keyboard_ShowAndGetInputWithHead Dialog_Keyboard_ShowAndGetInputWithHead;
GUIDialog_Keyboard_ShowAndGetInput Dialog_Keyboard_ShowAndGetInput;
GUIDialog_Keyboard_ShowAndGetNewPasswordWithHead Dialog_Keyboard_ShowAndGetNewPasswordWithHead;
GUIDialog_Keyboard_ShowAndGetNewPassword Dialog_Keyboard_ShowAndGetNewPassword;
GUIDialog_Keyboard_ShowAndVerifyNewPasswordWithHead Dialog_Keyboard_ShowAndVerifyNewPasswordWithHead;
GUIDialog_Keyboard_ShowAndVerifyNewPassword Dialog_Keyboard_ShowAndVerifyNewPassword;
GUIDialog_Keyboard_ShowAndVerifyPassword Dialog_Keyboard_ShowAndVerifyPassword;
GUIDialog_Keyboard_ShowAndGetFilter Dialog_Keyboard_ShowAndGetFilter;
GUIDialog_Keyboard_SendTextToActiveKeyboard Dialog_Keyboard_SendTextToActiveKeyboard;
GUIDialog_Keyboard_isKeyboardActivated Dialog_Keyboard_isKeyboardActivated;
GUIDialog_Numeric_ShowAndVerifyNewPassword Dialog_Numeric_ShowAndVerifyNewPassword;
GUIDialog_Numeric_ShowAndVerifyPassword Dialog_Numeric_ShowAndVerifyPassword;
GUIDialog_Numeric_ShowAndVerifyInput Dialog_Numeric_ShowAndVerifyInput;
GUIDialog_Numeric_ShowAndGetTime Dialog_Numeric_ShowAndGetTime;
GUIDialog_Numeric_ShowAndGetDate Dialog_Numeric_ShowAndGetDate;
GUIDialog_Numeric_ShowAndGetIPAddress Dialog_Numeric_ShowAndGetIPAddress;
GUIDialog_Numeric_ShowAndGetNumber Dialog_Numeric_ShowAndGetNumber;
GUIDialog_Numeric_ShowAndGetSeconds Dialog_Numeric_ShowAndGetSeconds;
GUIDialog_FileBrowser_ShowAndGetFile Dialog_FileBrowser_ShowAndGetFile;
GUIDialog_OK_ShowAndGetInputSingleText Dialog_OK_ShowAndGetInputSingleText;
GUIDialog_OK_ShowAndGetInputLineText Dialog_OK_ShowAndGetInputLineText;
GUIDialog_YesNo_ShowAndGetInputSingleText Dialog_YesNo_ShowAndGetInputSingleText;
GUIDialog_YesNo_ShowAndGetInputLineText Dialog_YesNo_ShowAndGetInputLineText;
GUIDialog_YesNo_ShowAndGetInputLineButtonText Dialog_YesNo_ShowAndGetInputLineButtonText;
GUIDialog_TextViewer Dialog_TextViewer;
GUIDialog_Select Dialog_Select;
} CB_GUILib;
typedef void (*PVRTransferEpgEntry)(void *userData, const ADDON_HANDLE handle, const EPG_TAG *epgentry);
typedef void (*PVRTransferChannelEntry)(void *userData, const ADDON_HANDLE handle, const PVR_CHANNEL *chan);
typedef void (*PVRTransferTimerEntry)(void *userData, const ADDON_HANDLE handle, const PVR_TIMER *timer);
typedef void (*PVRTransferRecordingEntry)(void *userData, const ADDON_HANDLE handle, const PVR_RECORDING *recording);
typedef void (*PVRAddMenuHook)(void *addonData, PVR_MENUHOOK *hook);
typedef void (*PVRRecording)(void *addonData, const char *Name, const char *FileName, bool On);
typedef void (*PVRTriggerChannelUpdate)(void *addonData);
typedef void (*PVRTriggerTimerUpdate)(void *addonData);
typedef void (*PVRTriggerRecordingUpdate)(void *addonData);
typedef void (*PVRTriggerChannelGroupsUpdate)(void *addonData);
typedef void (*PVRTriggerEpgUpdate)(void *addonData, unsigned int iChannelUid);
typedef void (*PVRTransferChannelGroup)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP *group);
typedef void (*PVRTransferChannelGroupMember)(void *addonData, const ADDON_HANDLE handle, const PVR_CHANNEL_GROUP_MEMBER *member);
typedef void (*PVRFreeDemuxPacket)(void *addonData, DemuxPacket* pPacket);
typedef DemuxPacket* (*PVRAllocateDemuxPacket)(void *addonData, int iDataSize);
typedef struct CB_PVRLib
{
PVRTransferEpgEntry TransferEpgEntry;
PVRTransferChannelEntry TransferChannelEntry;
PVRTransferTimerEntry TransferTimerEntry;
PVRTransferRecordingEntry TransferRecordingEntry;
PVRAddMenuHook AddMenuHook;
PVRRecording Recording;
PVRTriggerChannelUpdate TriggerChannelUpdate;
PVRTriggerTimerUpdate TriggerTimerUpdate;
PVRTriggerRecordingUpdate TriggerRecordingUpdate;
PVRTriggerChannelGroupsUpdate TriggerChannelGroupsUpdate;
PVRTriggerEpgUpdate TriggerEpgUpdate;
PVRFreeDemuxPacket FreeDemuxPacket;
PVRAllocateDemuxPacket AllocateDemuxPacket;
PVRTransferChannelGroup TransferChannelGroup;
PVRTransferChannelGroupMember TransferChannelGroupMember;
} CB_PVRLib;
typedef CB_AddOnLib* (*XBMCAddOnLib_RegisterMe)(void *addonData);
typedef void (*XBMCAddOnLib_UnRegisterMe)(void *addonData, CB_AddOnLib *cbTable);
typedef CB_CODECLib* (*XBMCCODECLib_RegisterMe)(void *addonData);
typedef void (*XBMCCODECLib_UnRegisterMe)(void *addonData, CB_CODECLib *cbTable);
typedef CB_GUILib* (*XBMCGUILib_RegisterMe)(void *addonData);
typedef void (*XBMCGUILib_UnRegisterMe)(void *addonData, CB_GUILib *cbTable);
typedef CB_PVRLib* (*XBMCPVRLib_RegisterMe)(void *addonData);
typedef void (*XBMCPVRLib_UnRegisterMe)(void *addonData, CB_PVRLib *cbTable);
typedef struct AddonCB
{
const char *libBasePath; ///> Never, never change this!!!
void *addonData;
XBMCAddOnLib_RegisterMe AddOnLib_RegisterMe;
XBMCAddOnLib_UnRegisterMe AddOnLib_UnRegisterMe;
XBMCCODECLib_RegisterMe CODECLib_RegisterMe;
XBMCCODECLib_UnRegisterMe CODECLib_UnRegisterMe;
XBMCGUILib_RegisterMe GUILib_RegisterMe;
XBMCGUILib_UnRegisterMe GUILib_UnRegisterMe;
XBMCPVRLib_RegisterMe PVRLib_RegisterMe;
XBMCPVRLib_UnRegisterMe PVRLib_UnRegisterMe;
} AddonCB;
namespace ADDON
{
class CAddon;
class CAddonCallbacksAddon;
class CAddonCallbacksCodec;
class CAddonCallbacksGUI;
class CAddonCallbacksPVR;
class CAddonCallbacks
{
public:
CAddonCallbacks(CAddon* addon);
~CAddonCallbacks();
AddonCB *GetCallbacks() { return m_callbacks; }
static CB_AddOnLib* AddOnLib_RegisterMe(void *addonData);
static void AddOnLib_UnRegisterMe(void *addonData, CB_AddOnLib *cbTable);
static CB_CODECLib* CODECLib_RegisterMe(void *addonData);
static void CODECLib_UnRegisterMe(void *addonData, CB_CODECLib *cbTable);
static CB_GUILib* GUILib_RegisterMe(void *addonData);
static void GUILib_UnRegisterMe(void *addonData, CB_GUILib *cbTable);
static CB_PVRLib* PVRLib_RegisterMe(void *addonData);
static void PVRLib_UnRegisterMe(void *addonData, CB_PVRLib *cbTable);
CAddonCallbacksAddon *GetHelperAddon() { return m_helperAddon; }
CAddonCallbacksCodec *GetHelperCodec() { return m_helperCODEC; }
CAddonCallbacksGUI *GetHelperGUI() { return m_helperGUI; }
CAddonCallbacksPVR *GetHelperPVR() { return m_helperPVR; }
private:
AddonCB *m_callbacks;
CAddon *m_addon;
CAddonCallbacksAddon *m_helperAddon;
CAddonCallbacksCodec *m_helperCODEC;
CAddonCallbacksGUI *m_helperGUI;
CAddonCallbacksPVR *m_helperPVR;
};
}; /* namespace ADDON */