2 * Copyright (C) 2012-2013 Team XBMC
5 * This Program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
10 * This Program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with XBMC; see the file COPYING. If not, write to
17 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18 * http://www.gnu.org/copyleft/gpl.html
26 #include "../../../addons/library.xbmc.addon/libXBMC_addon.h"
27 #include "../../../xbmc/addons/AddonCallbacks.h"
31 #define DLLEXPORT __declspec(dllexport)
38 using namespace ADDON;
43 DLLEXPORT void* XBMC_register_me(void *hdl)
45 CB_AddOnLib *cb = NULL;
47 fprintf(stderr, "libXBMC_addon-ERROR: XBMC_register_me is called with NULL handle !!!\n");
50 cb = ((AddonCB*)hdl)->AddOnLib_RegisterMe(((AddonCB*)hdl)->addonData);
52 fprintf(stderr, "libXBMC_addon-ERROR: XBMC_register_me can't get callback table from XBMC !!!\n");
57 DLLEXPORT void XBMC_unregister_me(void *hdl, void* cb)
60 ((AddonCB*)hdl)->AddOnLib_UnRegisterMe(((AddonCB*)hdl)->addonData, ((CB_AddOnLib*)cb));
63 DLLEXPORT void XBMC_log(void *hdl, void* cb, const addon_log_t loglevel, const char *msg)
68 ((CB_AddOnLib*)cb)->Log(((AddonCB*)hdl)->addonData, loglevel, msg);
71 DLLEXPORT bool XBMC_get_setting(void *hdl, void* cb, const char* settingName, void *settingValue)
76 return ((CB_AddOnLib*)cb)->GetSetting(((AddonCB*)hdl)->addonData, settingName, settingValue);
79 DLLEXPORT void XBMC_queue_notification(void *hdl, void* cb, const queue_msg_t type, const char *msg)
84 ((CB_AddOnLib*)cb)->QueueNotification(((AddonCB*)hdl)->addonData, type, msg);
87 DLLEXPORT bool XBMC_wake_on_lan(void* hdl, void* cb, char* mac)
92 return ((CB_AddOnLib*)cb)->WakeOnLan(mac);
95 DLLEXPORT char* XBMC_unknown_to_utf8(void *hdl, void* cb, const char* str)
100 return ((CB_AddOnLib*)cb)->UnknownToUTF8(str);
103 DLLEXPORT char* XBMC_get_localized_string(void *hdl, void* cb, int dwCode)
108 return ((CB_AddOnLib*)cb)->GetLocalizedString(((AddonCB*)hdl)->addonData, dwCode);
111 DLLEXPORT char* XBMC_get_dvd_menu_language(void *hdl, void* cb)
116 return ((CB_AddOnLib*)cb)->GetDVDMenuLanguage(((AddonCB*)hdl)->addonData);
119 DLLEXPORT void XBMC_free_string(void* hdl, void* cb, char* str)
124 ((CB_AddOnLib*)cb)->FreeString(((AddonCB*)hdl)->addonData, str);
127 DLLEXPORT void* XBMC_open_file(void *hdl, void* cb, const char* strFileName, unsigned int flags)
132 return ((CB_AddOnLib*)cb)->OpenFile(((AddonCB*)hdl)->addonData, strFileName, flags);
135 DLLEXPORT void* XBMC_open_file_for_write(void *hdl, void* cb, const char* strFileName, bool bOverWrite)
140 return ((CB_AddOnLib*)cb)->OpenFileForWrite(((AddonCB*)hdl)->addonData, strFileName, bOverWrite);
143 DLLEXPORT unsigned int XBMC_read_file(void *hdl, void* cb, void* file, void* lpBuf, int64_t uiBufSize)
148 return ((CB_AddOnLib*)cb)->ReadFile(((AddonCB*)hdl)->addonData, file, lpBuf, uiBufSize);
151 DLLEXPORT bool XBMC_read_file_string(void *hdl, void* cb, void* file, char *szLine, int iLineLength)
156 return ((CB_AddOnLib*)cb)->ReadFileString(((AddonCB*)hdl)->addonData, file, szLine, iLineLength);
159 DLLEXPORT int XBMC_write_file(void *hdl, void* cb, void* file, const void* lpBuf, int64_t uiBufSize)
164 return ((CB_AddOnLib*)cb)->WriteFile(((AddonCB*)hdl)->addonData, file, lpBuf, uiBufSize);
167 DLLEXPORT void XBMC_flush_file(void *hdl, void* cb, void* file)
172 ((CB_AddOnLib*)cb)->FlushFile(((AddonCB*)hdl)->addonData, file);
175 DLLEXPORT int64_t XBMC_seek_file(void *hdl, void* cb, void* file, int64_t iFilePosition, int iWhence)
180 return ((CB_AddOnLib*)cb)->SeekFile(((AddonCB*)hdl)->addonData, file, iFilePosition, iWhence);
183 DLLEXPORT int XBMC_truncate_file(void *hdl, void* cb, void* file, int64_t iSize)
188 return ((CB_AddOnLib*)cb)->TruncateFile(((AddonCB*)hdl)->addonData, file, iSize);
191 DLLEXPORT int64_t XBMC_get_file_position(void *hdl, void* cb, void* file)
196 return ((CB_AddOnLib*)cb)->GetFilePosition(((AddonCB*)hdl)->addonData, file);
199 DLLEXPORT int64_t XBMC_get_file_length(void *hdl, void* cb, void* file)
204 return ((CB_AddOnLib*)cb)->GetFileLength(((AddonCB*)hdl)->addonData, file);
207 DLLEXPORT void XBMC_close_file(void *hdl, void* cb, void* file)
212 ((CB_AddOnLib*)cb)->CloseFile(((AddonCB*)hdl)->addonData, file);
215 DLLEXPORT int XBMC_get_file_chunk_size(void *hdl, void* cb, void* file)
220 return ((CB_AddOnLib*)cb)->GetFileChunkSize(((AddonCB*)hdl)->addonData, file);
223 DLLEXPORT bool XBMC_file_exists(void *hdl, void* cb, const char *strFileName, bool bUseCache)
228 return ((CB_AddOnLib*)cb)->FileExists(((AddonCB*)hdl)->addonData, strFileName, bUseCache);
231 DLLEXPORT int XBMC_stat_file(void *hdl, void* cb, const char *strFileName, struct ::__stat64* buffer)
236 return ((CB_AddOnLib*)cb)->StatFile(((AddonCB*)hdl)->addonData, strFileName, buffer);
239 DLLEXPORT bool XBMC_delete_file(void *hdl, void* cb, const char *strFileName)
244 return ((CB_AddOnLib*)cb)->DeleteFile(((AddonCB*)hdl)->addonData, strFileName);
247 DLLEXPORT bool XBMC_can_open_directory(void *hdl, void* cb, const char* strURL)
252 return ((CB_AddOnLib*)cb)->CanOpenDirectory(((AddonCB*)hdl)->addonData, strURL);
255 DLLEXPORT bool XBMC_create_directory(void *hdl, void* cb, const char *strPath)
260 return ((CB_AddOnLib*)cb)->CreateDirectory(((AddonCB*)hdl)->addonData, strPath);
263 DLLEXPORT bool XBMC_directory_exists(void *hdl, void* cb, const char *strPath)
268 return ((CB_AddOnLib*)cb)->DirectoryExists(((AddonCB*)hdl)->addonData, strPath);
271 DLLEXPORT bool XBMC_remove_directory(void *hdl, void* cb, const char *strPath)
276 return ((CB_AddOnLib*)cb)->RemoveDirectory(((AddonCB*)hdl)->addonData, strPath);