summaryrefslogtreecommitdiffstats
path: root/xbmc/addons/binary-addons/DllAddon.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/addons/binary-addons/DllAddon.h')
-rw-r--r--xbmc/addons/binary-addons/DllAddon.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/xbmc/addons/binary-addons/DllAddon.h b/xbmc/addons/binary-addons/DllAddon.h
new file mode 100644
index 0000000..c0399f7
--- /dev/null
+++ b/xbmc/addons/binary-addons/DllAddon.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2005-2018 Team Kodi
+ * This file is part of Kodi - https://kodi.tv
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ * See LICENSES/README.md for more information.
+ */
+
+#pragma once
+
+#include "DynamicDll.h"
+
+class DllAddonInterface
+{
+public:
+ virtual ~DllAddonInterface() = default;
+ virtual ADDON_STATUS Create(void* cb) = 0;
+ virtual const char* GetAddonTypeVersion(int type)=0;
+ virtual const char* GetAddonTypeMinVersion(int type) = 0;
+};
+
+class DllAddon : public DllDynamic, public DllAddonInterface
+{
+public:
+ DECLARE_DLL_WRAPPER_TEMPLATE(DllAddon)
+ DEFINE_METHOD1(ADDON_STATUS, Create, (void* p1))
+ DEFINE_METHOD1(const char*, GetAddonTypeVersion, (int p1))
+ DEFINE_METHOD1(const char*, GetAddonTypeMinVersion, (int p1))
+ bool GetAddonTypeMinVersion_available() { return m_GetAddonTypeMinVersion != nullptr; }
+ BEGIN_METHOD_RESOLVE()
+ RESOLVE_METHOD_RENAME(ADDON_Create, Create)
+ RESOLVE_METHOD_RENAME(ADDON_GetTypeVersion, GetAddonTypeVersion)
+ RESOLVE_METHOD_RENAME_OPTIONAL(ADDON_GetTypeMinVersion, GetAddonTypeMinVersion)
+ END_METHOD_RESOLVE()
+};