? docs/libUPnP ? docs/libUPnP.rar ? xbmc/FileSystem/UPnPDirectory.cpp ? xbmc/FileSystem/UPnPDirectory.h ? xbmc/lib/libUPnP ? xbmc/xbox/XBMC Index: xbmc.vcproj =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc.vcproj,v retrieving revision 1.335 diff -u -r1.335 xbmc.vcproj --- xbmc.vcproj 28 Jun 2006 05:31:30 -0000 1.335 +++ xbmc.vcproj 29 Jun 2006 08:36:49 -0000 @@ -2016,6 +2016,27 @@ RelativePath=".\xbmc\FileSystem\StackDirectory.h"> + + + + + + + + + + + + + smb:// + UPnP + upnp://192.168.1.30:1901/ + + iTunes Network Share (DAAP) daap://192.168.1.100 Index: xbmc/Application.cpp =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/Application.cpp,v retrieving revision 1.745 diff -u -r1.745 Application.cpp --- xbmc/Application.cpp 29 Jun 2006 06:47:19 -0000 1.745 +++ xbmc/Application.cpp 29 Jun 2006 09:02:12 -0000 @@ -128,6 +128,7 @@ #pragma comment (lib,"xbmc/lib/libsidplay/libsidutilsd.lib") // SECTIONNAME=SID_RW,SID_RX #pragma comment (lib,"xbmc/lib/libsidplay/resid_builderd.lib") // SECTIONNAME=SID_RW,SID_RX*/ #pragma comment (lib,"xbmc/lib/libxdaap/libxdaapd.lib") // SECTIONNAME=LIBXDAAP + #pragma comment (lib,"xbmc/lib/libUPnP/libPlatinumd.lib") #pragma comment (lib,"xbmc/lib/libiconv/libiconvd.lib") #pragma comment (lib,"xbmc/lib/libfribidi/libfribidid.lib") #pragma comment (lib,"xbmc/lib/unrarXlib/unrarxlibd.lib") @@ -145,6 +146,7 @@ #pragma comment (lib,"xbmc/lib/libsidplay/libsidutils.lib") // SECTIONNAME=SID_RW,SID_RX #pragma comment (lib,"xbmc/lib/libsidplay/resid_builder.lib") // SECTIONNAME=SID_RW,SID_RX*/ #pragma comment (lib,"xbmc/lib/libxdaap/libxdaap.lib") // SECTIONNAME=LIBXDAAP + #pragma comment (lib,"xbmc/lib/libUPnP/libPlatinum.lib") #pragma comment (lib,"xbmc/lib/libiconv/libiconv.lib") #pragma comment (lib,"xbmc/lib/libfribidi/libfribidi.lib") #pragma comment (lib,"xbmc/lib/unrarXlib/unrarxlib.lib") Index: xbmc/GUIMediaWindow.cpp =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/GUIMediaWindow.cpp,v retrieving revision 1.45 diff -u -r1.45 GUIMediaWindow.cpp --- xbmc/GUIMediaWindow.cpp 26 Jun 2006 19:21:11 -0000 1.45 +++ xbmc/GUIMediaWindow.cpp 29 Jun 2006 04:28:03 -0000 @@ -426,7 +426,6 @@ } CStdString strOldDirectory = m_vecItems.m_strPath; - m_history.SetSelectedItem(strSelectedItem, strOldDirectory); ClearFileItems(); @@ -438,10 +437,17 @@ // false. Else, we assume we can get the previous directory if (strDirectory.Equals(strOldDirectory)) return false; - return !Update(strOldDirectory); // We assume, we can get the parent - } // directory again, but we have to - // return false to be able to eg. show - // an error message. + + // We assume, we can get the parent + // directory again, but we have to + // return false to be able to eg. show + // an error message. + CStdString strParentPath = m_history.GetParentPath(); + m_history.RemoveParentPath(); + Update(strParentPath); + return false; + } + // if we're getting the root bookmark listing // make sure the path history is clean Index: xbmc/FileSystem/FactoryDirectory.cpp =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/FileSystem/FactoryDirectory.cpp,v retrieving revision 1.27 diff -u -r1.27 FactoryDirectory.cpp --- xbmc/FileSystem/FactoryDirectory.cpp 26 Jun 2006 12:35:47 -0000 1.27 +++ xbmc/FileSystem/FactoryDirectory.cpp 29 Jun 2006 04:29:22 -0000 @@ -19,6 +19,7 @@ #include "MusicDatabaseDirectory.h" #include "StackDirectory.h" #include "PlaylistDirectory.h" +#include "UPnPDirectory.h" /*! \brief Create a IDirectory object of the share type specified in \e strPath . @@ -44,6 +45,7 @@ if (strProtocol == "rtv") return new CRTVDirectory(); if (strProtocol == "soundtrack") return new CSndtrkDirectory(); if (strProtocol == "daap") return new CDAAPDirectory(); + if (strProtocol == "upnp") return new CUPnPDirectory(); if (strProtocol == "shout") return new CShoutcastDirectory(); if (strProtocol == "lastfm") return new CLastFMDirectory(); if (strProtocol == "zip") return new CZipDirectory(); Index: xbmc/FileSystem/FileCurl.cpp =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/FileSystem/FileCurl.cpp,v retrieving revision 1.20 diff -u -r1.20 FileCurl.cpp --- xbmc/FileSystem/FileCurl.cpp 11 Jun 2006 19:33:38 -0000 1.20 +++ xbmc/FileSystem/FileCurl.cpp 21 Jun 2006 22:55:07 -0000 @@ -295,7 +295,7 @@ bool isstream = false; if( url2.GetProtocol().Equals("ftpx") ) url2.SetProtocol("ftp"); - else if( url2.GetProtocol().Equals("shout") || url2.GetProtocol().Equals("daap") ) + else if( url2.GetProtocol().Equals("shout") || url2.GetProtocol().Equals("daap") || url2.GetProtocol().Equals("upnp") ) url2.SetProtocol("http"); if( url2.GetProtocol().Equals("ftp") ) @@ -482,7 +482,7 @@ CURL url2(url); if( url2.GetProtocol().Equals("ftpx") ) url2.SetProtocol("ftp"); - else if( url2.GetProtocol().Equals("shout") || url2.GetProtocol().Equals("daap") ) + else if( url2.GetProtocol().Equals("shout") || url2.GetProtocol().Equals("daap") || url2.GetProtocol().Equals("upnp") ) url2.SetProtocol("http"); /* ditch options as it's not supported on ftp */ Index: xbmc/FileSystem/FileFactory.cpp =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/FileSystem/FileFactory.cpp,v retrieving revision 1.25 diff -u -r1.25 FileFactory.cpp --- xbmc/FileSystem/FileFactory.cpp 8 Jun 2006 01:46:23 -0000 1.25 +++ xbmc/FileSystem/FileFactory.cpp 21 Jun 2006 22:55:07 -0000 @@ -39,6 +39,7 @@ if (strProtocol.Equals("http") || strProtocol.Equals("https")) return new CFileCurl(); else if (strProtocol.Equals("ftp") || strProtocol.Equals("ftpx")) return new CFileCurl(); + else if (strProtocol.Equals("upnp")) return new CFileCurl(); else if (strProtocol == "iso9660") return new CFileISO(); else if (strProtocol == "smb") return new CFileSMB(); else if (strProtocol == "xbms") return new CFileXBMSP(); Index: xbmc/FileSystem/VirtualDirectory.cpp =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/FileSystem/VirtualDirectory.cpp,v retrieving revision 1.60 diff -u -r1.60 VirtualDirectory.cpp --- xbmc/FileSystem/VirtualDirectory.cpp 26 Jun 2006 19:21:12 -0000 1.60 +++ xbmc/FileSystem/VirtualDirectory.cpp 29 Jun 2006 04:28:06 -0000 @@ -123,7 +123,8 @@ || strPath.Left(8).Equals("shout://") || strPath.Left(8).Equals("https://") || strPath.Left(7).Equals("http://") - || strPath.Left(7).Equals("daap://") ) + || strPath.Left(7).Equals("daap://") + || strPath.Left(7).Equals("upnp://") ) { // Only cache directory we are getting now if (!strPath.Left(7).Equals("lastfm:") && !strPath.Left(8).Equals("shout://")) Index: xbmc/cores/PlayerCoreFactory.cpp =================================================================== RCS file: /cvsroot/xbmc/XBMC/xbmc/cores/PlayerCoreFactory.cpp,v retrieving revision 1.40 diff -u -r1.40 PlayerCoreFactory.cpp --- xbmc/cores/PlayerCoreFactory.cpp 1 Jun 2006 02:17:50 -0000 1.40 +++ xbmc/cores/PlayerCoreFactory.cpp 21 Jun 2006 22:52:54 -0000 @@ -95,7 +95,7 @@ vecCores.push_back(EPC_PAPLAYER); } - if (url.GetProtocol().Equals("daap")) // mplayer is better for daap + if (url.GetProtocol().Equals("daap") || url.GetProtocol().Equals("upnp")) // mplayer is better for daap { // due to us not using curl for all url handling, extension checking doesn't work // when there is an option at the end of the url. should eventually be moved over