Skip to content

Commit

Permalink
filesystem: add CXbtManager, CXbtDirectory and CXBtFile to implement …
Browse files Browse the repository at this point in the history
…xbt://
  • Loading branch information
Montellese committed Aug 11, 2015
1 parent c5e98c2 commit bcc3da8
Show file tree
Hide file tree
Showing 18 changed files with 940 additions and 25 deletions.
38 changes: 35 additions & 3 deletions Kodi.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -826,6 +826,15 @@
DF14CF7E1A77782E00396CC9 /* InputManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF14CF7C1A77782E00396CC9 /* InputManager.cpp */; };
DF14CF7F1A77782E00396CC9 /* InputManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF14CF7C1A77782E00396CC9 /* InputManager.cpp */; };
DF14CF801A77782E00396CC9 /* InputManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF14CF7C1A77782E00396CC9 /* InputManager.cpp */; };
DF1D2DED1B6E85EE002BB9DB /* XbtDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF1D2DE71B6E85EE002BB9DB /* XbtDirectory.cpp */; };
DF1D2DEE1B6E85EE002BB9DB /* XbtDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF1D2DE71B6E85EE002BB9DB /* XbtDirectory.cpp */; };
DF1D2DEF1B6E85EE002BB9DB /* XbtDirectory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF1D2DE71B6E85EE002BB9DB /* XbtDirectory.cpp */; };
DF1D2DF01B6E85EE002BB9DB /* XbtFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF1D2DE91B6E85EE002BB9DB /* XbtFile.cpp */; };
DF1D2DF11B6E85EE002BB9DB /* XbtFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF1D2DE91B6E85EE002BB9DB /* XbtFile.cpp */; };
DF1D2DF21B6E85EE002BB9DB /* XbtFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF1D2DE91B6E85EE002BB9DB /* XbtFile.cpp */; };
DF1D2DF31B6E85EE002BB9DB /* XbtManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF1D2DEB1B6E85EE002BB9DB /* XbtManager.cpp */; };
DF1D2DF41B6E85EE002BB9DB /* XbtManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF1D2DEB1B6E85EE002BB9DB /* XbtManager.cpp */; };
DF1D2DF51B6E85EE002BB9DB /* XbtManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF1D2DEB1B6E85EE002BB9DB /* XbtManager.cpp */; };
DF2345E115FA639500A934F6 /* UPnP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2345D915FA639500A934F6 /* UPnP.cpp */; settings = {COMPILER_FLAGS = "-I$SRCROOT/lib/libUPnP -I$SRCROOT/lib/libUPnP/Neptune/Source/Core -I$SRCROOT/lib/libUPnP/Platinum/Source/Core -I$SRCROOT/lib/libUPnP/Platinum/Source/Platinum -I$SRCROOT/lib/libUPnP/Platinum/Source/Extras -I$SRCROOT/lib/libUPnP/Platinum/Source/Devices/MediaServer -I$SRCROOT/lib/libUPnP/Platinum/Source/Devices/MediaConnect -I$SRCROOT/lib/libUPnP/Platinum/Source/Devices/MediaRenderer"; }; };
DF2345E215FA639500A934F6 /* UPnPInternal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2345DB15FA639500A934F6 /* UPnPInternal.cpp */; settings = {COMPILER_FLAGS = "-I$SRCROOT/lib/libUPnP -I$SRCROOT/lib/libUPnP/Neptune/Source/Core -I$SRCROOT/lib/libUPnP/Platinum/Source/Core -I$SRCROOT/lib/libUPnP/Platinum/Source/Platinum -I$SRCROOT/lib/libUPnP/Platinum/Source/Extras -I$SRCROOT/lib/libUPnP/Platinum/Source/Devices/MediaServer -I$SRCROOT/lib/libUPnP/Platinum/Source/Devices/MediaConnect -I$SRCROOT/lib/libUPnP/Platinum/Source/Devices/MediaRenderer"; }; };
DF2345E315FA639500A934F6 /* UPnPRenderer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DF2345DD15FA639500A934F6 /* UPnPRenderer.cpp */; settings = {COMPILER_FLAGS = "-I$SRCROOT/lib/libUPnP -I$SRCROOT/lib/libUPnP/Neptune/Source/Core -I$SRCROOT/lib/libUPnP/Platinum/Source/Core -I$SRCROOT/lib/libUPnP/Platinum/Source/Platinum -I$SRCROOT/lib/libUPnP/Platinum/Source/Extras -I$SRCROOT/lib/libUPnP/Platinum/Source/Devices/MediaServer -I$SRCROOT/lib/libUPnP/Platinum/Source/Devices/MediaConnect -I$SRCROOT/lib/libUPnP/Platinum/Source/Devices/MediaRenderer"; }; };
Expand Down Expand Up @@ -4472,6 +4481,13 @@
DF1AD1EB15FCE77900E10810 /* WindowInterceptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WindowInterceptor.h; sourceTree = "<group>"; };
DF1AD1EC15FCE77900E10810 /* WindowXML.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WindowXML.cpp; sourceTree = "<group>"; };
DF1AD1ED15FCE77900E10810 /* WindowXML.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WindowXML.h; sourceTree = "<group>"; };
DF1D2DE61B6E85EE002BB9DB /* Directorization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Directorization.h; sourceTree = "<group>"; };
DF1D2DE71B6E85EE002BB9DB /* XbtDirectory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XbtDirectory.cpp; sourceTree = "<group>"; };
DF1D2DE81B6E85EE002BB9DB /* XbtDirectory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XbtDirectory.h; sourceTree = "<group>"; };
DF1D2DE91B6E85EE002BB9DB /* XbtFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XbtFile.cpp; sourceTree = "<group>"; };
DF1D2DEA1B6E85EE002BB9DB /* XbtFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XbtFile.h; sourceTree = "<group>"; };
DF1D2DEB1B6E85EE002BB9DB /* XbtManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XbtManager.cpp; sourceTree = "<group>"; };
DF1D2DEC1B6E85EE002BB9DB /* XbtManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XbtManager.h; sourceTree = "<group>"; };
DF2345D915FA639500A934F6 /* UPnP.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UPnP.cpp; sourceTree = "<group>"; };
DF2345DA15FA639500A934F6 /* UPnP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UPnP.h; sourceTree = "<group>"; };
DF2345DB15FA639500A934F6 /* UPnPInternal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UPnPInternal.cpp; sourceTree = "<group>"; };
Expand Down Expand Up @@ -8835,6 +8851,9 @@
E38E16940D25F9FA00618676 /* filesystem */ = {
isa = PBXGroup;
children = (
E38E170A0D25F9FA00618676 /* MusicDatabaseDirectory */,
7CAA468D19427AED00008885 /* posix */,
E38E175F0D25F9FA00618676 /* VideoDatabaseDirectory */,
F5A7B42B113CBB950059D6AA /* AddonsDirectory.cpp */,
F5A7B42A113CBB950059D6AA /* AddonsDirectory.h */,
F5ED8D6A1551F91400842059 /* BlurayDirectory.cpp */,
Expand All @@ -8857,6 +8876,7 @@
7C45DBE810F325C400D4BBF3 /* DAVDirectory.h */,
DFD5812316C828500008EEA0 /* DAVFile.cpp */,
DFD5812416C828500008EEA0 /* DAVFile.h */,
DF1D2DE61B6E85EE002BB9DB /* Directorization.h */,
E38E16AC0D25F9FA00618676 /* Directory.cpp */,
E38E16AD0D25F9FA00618676 /* Directory.h */,
DF93D6651444A8B0007C6459 /* DirectoryCache.cpp */,
Expand Down Expand Up @@ -8910,7 +8930,6 @@
E38E17090D25F9FA00618676 /* MultiPathDirectory.h */,
F50629780E57B9680066625A /* MultiPathFile.cpp */,
F50629790E57B9680066625A /* MultiPathFile.h */,
E38E170A0D25F9FA00618676 /* MusicDatabaseDirectory */,
E38E17370D25F9FA00618676 /* MusicDatabaseDirectory.cpp */,
E38E17380D25F9FA00618676 /* MusicDatabaseDirectory.h */,
DF93D67B1444A8B0007C6459 /* MusicDatabaseFile.cpp */,
Expand Down Expand Up @@ -8938,7 +8957,6 @@
E38E17430D25F9FA00618676 /* PlaylistFileDirectory.h */,
E38E17440D25F9FA00618676 /* PluginDirectory.cpp */,
E38E17450D25F9FA00618676 /* PluginDirectory.h */,
7CAA468D19427AED00008885 /* posix */,
C8482905156CFF24005A996F /* PVRDirectory.cpp */,
C8482906156CFF24005A996F /* PVRDirectory.h */,
C8482907156CFF24005A996F /* PVRFile.cpp */,
Expand Down Expand Up @@ -8991,11 +9009,16 @@
E38E175C0D25F9FA00618676 /* UPnPDirectory.h */,
DF93D6951444A8B0007C6459 /* UPnPFile.cpp */,
DF93D6961444A8B0007C6459 /* UPnPFile.h */,
E38E175F0D25F9FA00618676 /* VideoDatabaseDirectory */,
E38E178A0D25F9FA00618676 /* VideoDatabaseDirectory.cpp */,
E38E178B0D25F9FA00618676 /* VideoDatabaseDirectory.h */,
E38E178C0D25F9FA00618676 /* VirtualDirectory.cpp */,
E38E178D0D25F9FA00618676 /* VirtualDirectory.h */,
DF1D2DE71B6E85EE002BB9DB /* XbtDirectory.cpp */,
DF1D2DE81B6E85EE002BB9DB /* XbtDirectory.h */,
DF1D2DE91B6E85EE002BB9DB /* XbtFile.cpp */,
DF1D2DEA1B6E85EE002BB9DB /* XbtFile.h */,
DF1D2DEB1B6E85EE002BB9DB /* XbtManager.cpp */,
DF1D2DEC1B6E85EE002BB9DB /* XbtManager.h */,
E49ACD8B100745C400A86ECD /* ZeroconfDirectory.cpp */,
E49ACD8A100745C400A86ECD /* ZeroconfDirectory.h */,
E38E17930D25F9FA00618676 /* ZipDirectory.cpp */,
Expand Down Expand Up @@ -10791,6 +10814,7 @@
18B7C7D21294222E009E7A26 /* GUIMultiSelectText.cpp in Sources */,
18B7C7D31294222E009E7A26 /* GUIPanelContainer.cpp in Sources */,
18B7C7D41294222E009E7A26 /* GUIProgressControl.cpp in Sources */,
DF1D2DF01B6E85EE002BB9DB /* XbtFile.cpp in Sources */,
18B7C7D51294222E009E7A26 /* GUIRadioButtonControl.cpp in Sources */,
18B7C7D61294222E009E7A26 /* GUIRenderingControl.cpp in Sources */,
18B7C7D71294222E009E7A26 /* GUIResizeControl.cpp in Sources */,
Expand Down Expand Up @@ -11065,6 +11089,7 @@
DFD928F316384B6800709DAE /* Timer.cpp in Sources */,
DF9A71EE1639C8F6005ECB2E /* HTTPFile.cpp in Sources */,
DFB25D2F163D4743006C4A48 /* Addon.cpp in Sources */,
DF1D2DF31B6E85EE002BB9DB /* XbtManager.cpp in Sources */,
DFB25D30163D4743006C4A48 /* AddonCallback.cpp in Sources */,
DFB25D31163D4743006C4A48 /* AddonClass.cpp in Sources */,
DFB25D32163D4743006C4A48 /* AddonUtils.cpp in Sources */,
Expand Down Expand Up @@ -11279,6 +11304,7 @@
7CCDA7BB192756250074CF51 /* NptDynamicLibraries.cpp in Sources */,
7CCDA7BE192756250074CF51 /* NptFile.cpp in Sources */,
7CCDA7C7192756250074CF51 /* NptHash.cpp in Sources */,
DF1D2DED1B6E85EE002BB9DB /* XbtDirectory.cpp in Sources */,
7CCDA7D0192756250074CF51 /* NptHttp.cpp in Sources */,
7CCDA7D9192756250074CF51 /* NptJson.cpp in Sources */,
7CCDA7DC192756250074CF51 /* NptList.cpp in Sources */,
Expand Down Expand Up @@ -11555,6 +11581,7 @@
DFF0F1D917528350002DA3A4 /* GUIDialogOK.cpp in Sources */,
DFF0F1DA17528350002DA3A4 /* GUIDialogPlayEject.cpp in Sources */,
DFF0F1DB17528350002DA3A4 /* GUIDialogPlayerControls.cpp in Sources */,
DF1D2DF51B6E85EE002BB9DB /* XbtManager.cpp in Sources */,
DFF0F1DC17528350002DA3A4 /* GUIDialogProgress.cpp in Sources */,
DFF0F1DD17528350002DA3A4 /* GUIDialogSeekBar.cpp in Sources */,
DFF0F1DE17528350002DA3A4 /* GUIDialogSelect.cpp in Sources */,
Expand All @@ -11563,6 +11590,7 @@
DFF0F1E117528350002DA3A4 /* GUIDialogSmartPlaylistRule.cpp in Sources */,
DFF0F1E217528350002DA3A4 /* GUIDialogSubMenu.cpp in Sources */,
DFF0F1E317528350002DA3A4 /* GUIDialogTextViewer.cpp in Sources */,
DF1D2DEF1B6E85EE002BB9DB /* XbtDirectory.cpp in Sources */,
DFF0F1E417528350002DA3A4 /* GUIDialogVolumeBar.cpp in Sources */,
DFF0F1E517528350002DA3A4 /* GUIDialogYesNo.cpp in Sources */,
DFF0F1E617528350002DA3A4 /* AddonsDirectory.cpp in Sources */,
Expand Down Expand Up @@ -12094,6 +12122,7 @@
DFF0F40017528350002DA3A4 /* GUIDialogFileStacking.cpp in Sources */,
DFF0F40117528350002DA3A4 /* GUIDialogFullScreenInfo.cpp in Sources */,
DFF0F40217528350002DA3A4 /* GUIDialogTeletext.cpp in Sources */,
DF1D2DF21B6E85EE002BB9DB /* XbtFile.cpp in Sources */,
DFF0F40317528350002DA3A4 /* GUIDialogVideoBookmarks.cpp in Sources */,
DFF0F40417528350002DA3A4 /* GUIDialogVideoInfo.cpp in Sources */,
DFF0F40517528350002DA3A4 /* GUIDialogVideoOSD.cpp in Sources */,
Expand Down Expand Up @@ -12402,6 +12431,7 @@
E49910DC174E4A6400741B6D /* IOSEAGLView.mm in Sources */,
E49910DD174E4A6400741B6D /* IOSExternalTouchController.mm in Sources */,
E49910DE174E4A6400741B6D /* IOSScreenManager.mm in Sources */,
DF1D2DF41B6E85EE002BB9DB /* XbtManager.cpp in Sources */,
E499114F174E5CC300741B6D /* archive.cpp in Sources */,
E4991150174E5CC300741B6D /* arcread.cpp in Sources */,
E4991151174E5CC300741B6D /* cmddata.cpp in Sources */,
Expand Down Expand Up @@ -12729,6 +12759,7 @@
E49912BF174E5D9900741B6D /* UPnPDirectory.cpp in Sources */,
E49912C0174E5D9900741B6D /* UPnPFile.cpp in Sources */,
E49912C1174E5DA000741B6D /* DirectoryNode.cpp in Sources */,
DF1D2DF11B6E85EE002BB9DB /* XbtFile.cpp in Sources */,
E49912C2174E5DA000741B6D /* DirectoryNodeEpisodes.cpp in Sources */,
E49912C3174E5DA000741B6D /* DirectoryNodeGrouped.cpp in Sources */,
E49912C4174E5DA000741B6D /* DirectoryNodeMoviesOverview.cpp in Sources */,
Expand All @@ -12741,6 +12772,7 @@
E49912C9174E5DA000741B6D /* DirectoryNodeRecentlyAddedMusicVideos.cpp in Sources */,
E49912CA174E5DA000741B6D /* DirectoryNodeRoot.cpp in Sources */,
E49912CB174E5DA000741B6D /* DirectoryNodeSeasons.cpp in Sources */,
DF1D2DEE1B6E85EE002BB9DB /* XbtDirectory.cpp in Sources */,
E49912CC174E5DA000741B6D /* DirectoryNodeTitleMovies.cpp in Sources */,
E49912CD174E5DA000741B6D /* DirectoryNodeTitleMusicVideos.cpp in Sources */,
DFDE5D521AE5658200EE53AD /* PictureScalingAlgorithm.cpp in Sources */,
Expand Down
6 changes: 6 additions & 0 deletions project/VS2010Express/XBMC.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -424,6 +424,9 @@
<ClCompile Include="..\..\xbmc\filesystem\win32\Win32File.cpp" />
<ClCompile Include="..\..\xbmc\filesystem\win32\Win32SMBFile.cpp" />
<ClCompile Include="..\..\xbmc\filesystem\VirtualDirectory.cpp" />
<ClCompile Include="..\..\xbmc\filesystem\XbtDirectory.cpp" />
<ClCompile Include="..\..\xbmc\filesystem\XbtFile.cpp" />
<ClCompile Include="..\..\xbmc\filesystem\XbtManager.cpp" />
<ClCompile Include="..\..\xbmc\filesystem\ZeroconfDirectory.cpp" />
<ClCompile Include="..\..\xbmc\filesystem\ZipDirectory.cpp" />
<ClCompile Include="..\..\xbmc\filesystem\ZipFile.cpp" />
Expand Down Expand Up @@ -956,6 +959,9 @@
<ClInclude Include="..\..\xbmc\filesystem\win32\Win32SMBDirectory.h" />
<ClInclude Include="..\..\xbmc\filesystem\win32\Win32File.h" />
<ClInclude Include="..\..\xbmc\filesystem\win32\Win32SMBFile.h" />
<ClInclude Include="..\..\xbmc\filesystem\XbtDirectory.h" />
<ClInclude Include="..\..\xbmc\filesystem\XbtFile.h" />
<ClInclude Include="..\..\xbmc\filesystem\XbtManager.h" />
<ClInclude Include="..\..\xbmc\guiinfo\GUIInfoLabels.h" />
<ClInclude Include="..\..\xbmc\guilib\cximage.h" />
<ClInclude Include="..\..\xbmc\guilib\GUIKeyboard.h" />
Expand Down
18 changes: 18 additions & 0 deletions project/VS2010Express/XBMC.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -3189,6 +3189,15 @@
<ClCompile Include="..\..\xbmc\events\MediaLibraryEvent.cpp">
<Filter>events</Filter>
</ClCompile>
<ClCompile Include="..\..\xbmc\filesystem\XbtDirectory.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="..\..\xbmc\filesystem\XbtFile.cpp">
<Filter>filesystem</Filter>
</ClCompile>
<ClCompile Include="..\..\xbmc\filesystem\XbtManager.cpp">
<Filter>filesystem</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\xbmc\win32\pch.h">
Expand Down Expand Up @@ -6175,6 +6184,15 @@
<ClInclude Include="..\..\xbmc\filesystem\Directorization.h">
<Filter>filesystem</Filter>
</ClInclude>
<ClInclude Include="..\..\xbmc\filesystem\XbtDirectory.h">
<Filter>filesystem</Filter>
</ClInclude>
<ClInclude Include="..\..\xbmc\filesystem\XbtFile.h">
<Filter>filesystem</Filter>
</ClInclude>
<ClInclude Include="..\..\xbmc\filesystem\XbtManager.h">
<Filter>filesystem</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\xbmc\win32\XBMC_PC.rc">
Expand Down
2 changes: 1 addition & 1 deletion xbmc/FileItem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -844,7 +844,7 @@ bool CFileItem::IsFileFolder(EFileFolderType types) const
|| IsZIP()
|| IsRAR()
|| IsRSS()
|| IsType(".ogg|.oga|.nsf|.sid|.sap|.xsp")
|| IsType(".ogg|.oga|.nsf|.sid|.sap|.xbt|.xsp")
#if defined(TARGET_ANDROID)
|| IsType(".apk")
#endif
Expand Down
2 changes: 2 additions & 0 deletions xbmc/URL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ void CURL::Parse(const std::string& strURL1)
if(IsProtocol("rss") ||
IsProtocol("rar") ||
IsProtocol("apk") ||
IsProtocol("xbt") ||
IsProtocol("zip") ||
IsProtocol("addons") ||
IsProtocol("image") ||
Expand Down Expand Up @@ -483,6 +484,7 @@ const std::string CURL::GetFileNameWithoutPath() const
// *.zip and *.rar store the actual zip/rar path in the hostname of the url
if ((IsProtocol("rar") ||
IsProtocol("zip") ||
IsProtocol("xbt") ||
IsProtocol("apk")) &&
m_strFileName.empty())
return URIUtils::GetFileName(m_strHostName);
Expand Down
2 changes: 2 additions & 0 deletions xbmc/filesystem/DirectoryFactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@
#if defined(TARGET_ANDROID)
#include "APKDirectory.h"
#endif
#include "XbtDirectory.h"
#include "ZipDirectory.h"
#ifdef HAS_FILESYSTEM_RAR
#include "RarDirectory.h"
Expand Down Expand Up @@ -149,6 +150,7 @@ IDirectory* CDirectoryFactory::Create(const CURL& url)
CLog::Log(LOGWARNING, "%s - Compiled without non-free, rar support is disabled", __FUNCTION__);
#endif
}
if (url.IsProtocol("xbt")) return new CXbtDirectory();
if (url.IsProtocol("multipath")) return new CMultiPathDirectory();
if (url.IsProtocol("stack")) return new CStackDirectory();
if (url.IsProtocol("playlistmusic")) return new CPlaylistDirectory();
Expand Down
8 changes: 8 additions & 0 deletions xbmc/filesystem/FileDirectoryFactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#if defined(TARGET_ANDROID)
#include "APKDirectory.h"
#endif
#include "XbtDirectory.h"
#include "ZipDirectory.h"
#include "SmartPlaylistDirectory.h"
#include "playlists/SmartPlayList.h"
Expand Down Expand Up @@ -185,6 +186,13 @@ IFileDirectory* CFileDirectoryFactory::Create(const CURL& url, CFileItem* pItem,
}
return NULL;
}
if (url.IsFileType("xbt"))
{
CURL xbtUrl = URIUtils::CreateArchivePath("xbt", url);
pItem->SetURL(xbtUrl);

return new CXbtDirectory();
}
if (url.IsFileType("xsp"))
{ // XBMC Smart playlist - just XML renamed to XSP
// read the name of the playlist in
Expand Down
2 changes: 2 additions & 0 deletions xbmc/filesystem/FileFactory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
#if defined(TARGET_ANDROID)
#include "APKFile.h"
#endif
#include "XbtFile.h"
#include "ZipFile.h"
#ifdef HAS_FILESYSTEM_RAR
#include "RarFile.h"
Expand Down Expand Up @@ -120,6 +121,7 @@ IFile* CFileFactory::CreateLoader(const CURL& url)
CLog::Log(LOGWARNING, "%s - Compiled without non-free, rar support is disabled", __FUNCTION__);
#endif
}
else if (url.IsProtocol("xbt")) return new CXbtFile();
else if (url.IsProtocol("musicdb")) return new CMusicDatabaseFile();
else if (url.IsProtocol("videodb")) return NULL;
else if (url.IsProtocol("special")) return new CSpecialProtocolFile();
Expand Down
3 changes: 3 additions & 0 deletions xbmc/filesystem/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ SRCS += UDFDirectory.cpp
SRCS += UDFFile.cpp
SRCS += VideoDatabaseDirectory.cpp
SRCS += VirtualDirectory.cpp
SRCS += XbtDirectory.cpp
SRCS += XbtFile.cpp
SRCS += XbtManager.cpp
SRCS += ZeroconfDirectory.cpp
SRCS += ZipDirectory.cpp
SRCS += ZipFile.cpp
Expand Down
Loading

0 comments on commit bcc3da8

Please sign in to comment.