From c04dcc2e7d834218ef2d4194331e383402495ae1 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 20:07:22 +0200 Subject: Adding upstream version 2:20.4+dfsg. Signed-off-by: Daniel Baumann --- xbmc/filesystem/UPnPFile.cpp | 71 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 xbmc/filesystem/UPnPFile.cpp (limited to 'xbmc/filesystem/UPnPFile.cpp') diff --git a/xbmc/filesystem/UPnPFile.cpp b/xbmc/filesystem/UPnPFile.cpp new file mode 100644 index 0000000..5605170 --- /dev/null +++ b/xbmc/filesystem/UPnPFile.cpp @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2011-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 "UPnPFile.h" + +#include "FileFactory.h" +#include "FileItem.h" +#include "UPnPDirectory.h" +#include "URL.h" + +using namespace XFILE; + +CUPnPFile::CUPnPFile() = default; + +CUPnPFile::~CUPnPFile() = default; + +bool CUPnPFile::Open(const CURL& url) +{ + CFileItem item_new; + if (CUPnPDirectory::GetResource(url, item_new)) + { + //CLog::Log(LOGDEBUG,"FileUPnP - file redirect to {}.", item_new.GetPath()); + IFile *pNewImp = CFileFactory::CreateLoader(item_new.GetPath()); + CURL *pNewUrl = new CURL(item_new.GetPath()); + if (pNewImp) + { + throw new CRedirectException(pNewImp, pNewUrl); + } + delete pNewUrl; + } + return false; +} + +int CUPnPFile::Stat(const CURL& url, struct __stat64* buffer) +{ + CFileItem item_new; + if (CUPnPDirectory::GetResource(url, item_new)) + { + //CLog::Log(LOGDEBUG,"FileUPnP - file redirect to {}.", item_new.GetPath()); + IFile *pNewImp = CFileFactory::CreateLoader(item_new.GetPath()); + CURL *pNewUrl = new CURL(item_new.GetPath()); + if (pNewImp) + { + throw new CRedirectException(pNewImp, pNewUrl); + } + delete pNewUrl; + } + return -1; +} + +bool CUPnPFile::Exists(const CURL& url) +{ + CFileItem item_new; + if (CUPnPDirectory::GetResource(url, item_new)) + { + //CLog::Log(LOGDEBUG,"FileUPnP - file redirect to {}.", item_new.GetPath()); + IFile *pNewImp = CFileFactory::CreateLoader(item_new.GetPath()); + CURL *pNewUrl = new CURL(item_new.GetPath()); + if (pNewImp) + { + throw new CRedirectException(pNewImp, pNewUrl); + } + delete pNewUrl; + } + return false; +} -- cgit v1.2.3