From ffca21f2743a7b367fa212799c6e2fea6190dd5d Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 3 Mar 2015 16:53:59 +0100 Subject: initial commit for kodi master --- xbmc/addons/DllAddon.h | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 xbmc/addons/DllAddon.h (limited to 'xbmc/addons/DllAddon.h') diff --git a/xbmc/addons/DllAddon.h b/xbmc/addons/DllAddon.h new file mode 100644 index 0000000..3ea4e8d --- /dev/null +++ b/xbmc/addons/DllAddon.h @@ -0,0 +1,70 @@ +#pragma once +/* +* Copyright (C) 2005-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 "DynamicDll.h" +#include "addons/include/xbmc_addon_cpp_dll.h" + +template +class DllAddonInterface +{ +public: + virtual ~DllAddonInterface() {} + virtual void GetAddon(TheStruct* pAddon) =0; + virtual ADDON_STATUS Create(void *cb, Props *info) =0; + virtual void Stop() =0; + virtual void Destroy() =0; + virtual ADDON_STATUS GetStatus() =0; + virtual bool HasSettings() =0; + virtual unsigned int GetSettings(ADDON_StructSetting*** sSet)=0; + virtual void FreeSettings()=0; + virtual ADDON_STATUS SetSetting(const char *settingName, const void *settingValue) =0; + virtual void Announce(const char *flag, const char *sender, const char *message, const void *data) =0; +}; + +template +class DllAddon : public DllDynamic, public DllAddonInterface +{ +public: + DECLARE_DLL_WRAPPER_TEMPLATE(DllAddon) + DEFINE_METHOD2(ADDON_STATUS, Create, (void* p1, Props* p2)) + DEFINE_METHOD0(void, Stop) + DEFINE_METHOD0(void, Destroy) + DEFINE_METHOD0(ADDON_STATUS, GetStatus) + DEFINE_METHOD0(bool, HasSettings) + DEFINE_METHOD1(unsigned int, GetSettings, (ADDON_StructSetting ***p1)) + DEFINE_METHOD0(void, FreeSettings) + DEFINE_METHOD2(ADDON_STATUS, SetSetting, (const char *p1, const void *p2)) + DEFINE_METHOD1(void, GetAddon, (TheStruct* p1)) + DEFINE_METHOD4(void, Announce, (const char *p1, const char *p2, const char *p3, const void *p4)) + BEGIN_METHOD_RESOLVE() + RESOLVE_METHOD_RENAME(get_addon,GetAddon) + RESOLVE_METHOD_RENAME(ADDON_Create, Create) + RESOLVE_METHOD_RENAME(ADDON_Stop, Stop) + RESOLVE_METHOD_RENAME(ADDON_Destroy, Destroy) + RESOLVE_METHOD_RENAME(ADDON_GetStatus, GetStatus) + RESOLVE_METHOD_RENAME(ADDON_HasSettings, HasSettings) + RESOLVE_METHOD_RENAME(ADDON_SetSetting, SetSetting) + RESOLVE_METHOD_RENAME(ADDON_GetSettings, GetSettings) + RESOLVE_METHOD_RENAME(ADDON_FreeSettings, FreeSettings) + RESOLVE_METHOD_RENAME(ADDON_Announce, Announce) + END_METHOD_RESOLVE() +}; + -- cgit v1.2.3