3 * Copyright (C) 2012-2013 Team XBMC
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)
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.
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/>.
22 #include "AddonCallbacks.h"
27 class CAddonCallbacksAddon
30 CAddonCallbacksAddon(CAddon* addon);
31 ~CAddonCallbacksAddon();
34 * @return The callback table.
36 CB_AddOnLib *GetCallbacks() { return m_callbacks; }
38 static void AddOnLog(void *addonData, const addon_log_t addonLogLevel, const char *strMessage);
39 static bool GetAddonSetting(void *addonData, const char *strSettingName, void *settingValue);
40 static void QueueNotification(void *addonData, const queue_msg_t type, const char *strMessage);
41 static bool WakeOnLan(const char *mac);
42 static char* UnknownToUTF8(const char *strSource);
43 static char* GetLocalizedString(const void* addonData, long dwCode);
44 static char* GetDVDMenuLanguage(const void* addonData);
45 static void FreeString(const void* addonData, char* str);
48 static void* OpenFile(const void* addonData, const char* strFileName, unsigned int flags);
49 static void* OpenFileForWrite(const void* addonData, const char* strFileName, bool bOverwrite);
50 static unsigned int ReadFile(const void* addonData, void* file, void* lpBuf, int64_t uiBufSize);
51 static bool ReadFileString(const void* addonData, void* file, char *szLine, int iLineLength);
52 static int WriteFile(const void* addonData, void* file, const void* lpBuf, int64_t uiBufSize);
53 static void FlushFile(const void* addonData, void* file);
54 static int64_t SeekFile(const void* addonData, void* file, int64_t iFilePosition, int iWhence);
55 static int TruncateFile(const void* addonData, void* file, int64_t iSize);
56 static int64_t GetFilePosition(const void* addonData, void* file);
57 static int64_t GetFileLength(const void* addonData, void* file);
58 static void CloseFile(const void* addonData, void* file);
59 static int GetFileChunkSize(const void* addonData, void* file);
60 static bool FileExists(const void* addonData, const char *strFileName, bool bUseCache);
61 static int StatFile(const void* addonData, const char *strFileName, struct __stat64* buffer);
62 static bool DeleteFile(const void* addonData, const char *strFileName);
63 static bool CanOpenDirectory(const void* addonData, const char* strURL);
64 static bool CreateDirectory(const void* addonData, const char *strPath);
65 static bool DirectoryExists(const void* addonData, const char *strPath);
66 static bool RemoveDirectory(const void* addonData, const char *strPath);
69 CB_AddOnLib *m_callbacks; /*!< callback addresses */
70 CAddon *m_addon; /*!< the add-on */
73 }; /* namespace ADDON */