summaryrefslogtreecommitdiffstats
path: root/xbmc/cores/DllLoader/LibraryLoader.cpp
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
commitc04dcc2e7d834218ef2d4194331e383402495ae1 (patch)
tree7333e38d10d75386e60f336b80c2443c1166031d /xbmc/cores/DllLoader/LibraryLoader.cpp
parentInitial commit. (diff)
downloadkodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz
kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'xbmc/cores/DllLoader/LibraryLoader.cpp')
-rw-r--r--xbmc/cores/DllLoader/LibraryLoader.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/xbmc/cores/DllLoader/LibraryLoader.cpp b/xbmc/cores/DllLoader/LibraryLoader.cpp
new file mode 100644
index 0000000..5689900
--- /dev/null
+++ b/xbmc/cores/DllLoader/LibraryLoader.cpp
@@ -0,0 +1,62 @@
+/*
+ * 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.
+ */
+
+#include "LibraryLoader.h"
+
+#include "utils/log.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+LibraryLoader::LibraryLoader(const std::string& libraryFile):
+ m_fileName(libraryFile)
+{
+ size_t pos = m_fileName.find_last_of("\\/");
+ if (pos != std::string::npos)
+ m_path = m_fileName.substr(0, pos);
+
+ m_iRefCount = 1;
+}
+
+LibraryLoader::~LibraryLoader() = default;
+
+const char *LibraryLoader::GetName() const
+{
+ size_t pos = m_fileName.find_last_of('/');
+ if (pos != std::string::npos)
+ return &m_fileName.at(pos + 1); // don't include /
+ return m_fileName.c_str();
+}
+
+const char *LibraryLoader::GetFileName() const
+{
+ return m_fileName.c_str();
+}
+
+const char *LibraryLoader::GetPath() const
+{
+ return m_path.c_str();
+}
+
+int LibraryLoader::IncrRef()
+{
+ m_iRefCount++;
+ return m_iRefCount;
+}
+
+int LibraryLoader::DecrRef()
+{
+ m_iRefCount--;
+ return m_iRefCount;
+}
+
+int LibraryLoader::ResolveOrdinal(unsigned long ordinal, void** ptr)
+{
+ CLog::Log(LOGWARNING, "{} - Unable to resolve {} in dll {}", __FUNCTION__, ordinal, GetName());
+ return 0;
+}