From f44ecaa4f27e7538ddcad66d40e543bffa2d2d86 Mon Sep 17 00:00:00 2001 From: manuel Date: Sun, 4 Jun 2017 16:57:49 +0200 Subject: sync with upstream --- .../kodi-addon-dev-kit/include/kodi/kodi_vfs_dll.h | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_vfs_dll.h (limited to 'xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_vfs_dll.h') diff --git a/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_vfs_dll.h b/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_vfs_dll.h new file mode 100644 index 0000000..30741a6 --- /dev/null +++ b/xbmc/addons/kodi-addon-dev-kit/include/kodi/kodi_vfs_dll.h @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2013 Arne Morten Kvarving + * + * 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 + * . + * + */ +#pragma once + +#include +#include "xbmc_addon_dll.h" +#include "kodi_vfs_types.h" + +extern "C" +{ + //! \copydoc KodiToAddonFuncTable_VFSEntry::Open + void* Open(VFSURL* url); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::OpenForWrite + void* OpenForWrite(VFSURL* url, bool bOverWrite); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::Read + ssize_t Read(void* context, void* buffer, size_t size); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::Write + ssize_t Write(void* context, const void* buffer, size_t size); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::Seek + int64_t Seek(void* context, int64_t position, int whence); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::Truncate + int Truncate(void* context, int64_t size); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::GetLength + int64_t GetLength(void* context); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::GetPosition + int64_t GetPosition(void* context); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::GetChunkSize + int GetChunkSize(void* context); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::IoControl + int IoControl(void* context, XFILE::EIoControl request, void* param); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::Stat + int Stat(VFSURL* url, struct __stat64* buffer); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::Close + bool Close(void* context); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::Exists + bool Exists(VFSURL* url); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::ContainsFiles + void* ContainsFiles(VFSURL* url, VFSDirEntry** entries, int* num_entries, + char* rootpath); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::ClearOutIdle + void ClearOutIdle(); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::DisconnectAll + void DisconnectAll(); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::DirectoryExists + bool DirectoryExists(VFSURL* url); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::RemoveDirectory + bool RemoveDirectory(VFSURL* url); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::CreateDirectory + bool CreateDirectory(VFSURL* url); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::GetDirectory + void* GetDirectory(VFSURL* url, VFSDirEntry** entries, int* num_entries, + VFSCallbacks* callbacks); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::FreeDirectory + void FreeDirectory(void* ctx); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::Delete + bool Delete(VFSURL* url); + + //! \copydoc KodiToAddonFuncTable_VFSEntry::Rename + bool Rename(VFSURL* url, VFSURL* url2); + + //! \brief Function to export the above structure to Kodi + void __declspec(dllexport) get_addon(void* ptr) + { + AddonInstance_VFSEntry* vfs = static_cast(ptr); + vfs->toAddon.Open = Open; + vfs->toAddon.OpenForWrite = OpenForWrite; + vfs->toAddon.Read = Read; + vfs->toAddon.Write = Write; + vfs->toAddon.Seek = Seek; + vfs->toAddon.GetLength = GetLength; + vfs->toAddon.GetPosition = GetPosition; + vfs->toAddon.IoControl = IoControl; + vfs->toAddon.Stat = Stat; + vfs->toAddon.Close = Close; + vfs->toAddon.Exists = Exists; + vfs->toAddon.ClearOutIdle = ClearOutIdle; + vfs->toAddon.DisconnectAll = DisconnectAll; + vfs->toAddon.DirectoryExists = DirectoryExists; + vfs->toAddon.GetDirectory = GetDirectory; + vfs->toAddon.FreeDirectory = FreeDirectory; + vfs->toAddon.Truncate = Truncate; + vfs->toAddon.Delete = Delete; + vfs->toAddon.Rename = Rename; + vfs->toAddon.RemoveDirectory = RemoveDirectory; + vfs->toAddon.CreateDirectory = CreateDirectory; + vfs->toAddon.ContainsFiles = ContainsFiles; + vfs->toAddon.GetChunkSize = GetChunkSize; + }; +}; -- cgit v1.2.3