aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlasdair Campbell <alcoheca@gmail.com>2013-04-02 11:32:03 -0700
committerAlasdair Campbell <alcoheca@gmail.com>2013-04-02 11:32:03 -0700
commit5476b0911b6f4a21c0fcb0a69a88c73e8c26dc7f (patch)
tree653bb428c496696aa0a4ef838f2bfbb94c53c5fe
parent4ee5de266e393f1cfddc0f6ce6f705b0d2d10943 (diff)
parentec9129fe58614016d98af521471ff097171ae444 (diff)
Merge pull request #2527 from alcoheca/upnp-fixes
Upnp fixes
-rw-r--r--xbmc/filesystem/UPnPDirectory.cpp7
-rw-r--r--xbmc/network/upnp/UPnPServer.cpp10
2 files changed, 15 insertions, 2 deletions
diff --git a/xbmc/filesystem/UPnPDirectory.cpp b/xbmc/filesystem/UPnPDirectory.cpp
index 2a3c893825..49c844925d 100644
--- a/xbmc/filesystem/UPnPDirectory.cpp
+++ b/xbmc/filesystem/UPnPDirectory.cpp
@@ -349,7 +349,12 @@ CUPnPDirectory::GetDirectory(const CStdString& strPath, CFileItemList &items)
std::string content = GetContentMapping(max_string);
items.SetContent(content);
if (content == "unknown")
- items.AddSortMethod(SORT_METHOD_NONE, 551, LABEL_MASKS("%L", "%I", "%L", ""));
+ {
+ items.AddSortMethod(SORT_METHOD_UNSORTED, 571, LABEL_MASKS("%L", "%I", "%L", ""));
+ items.AddSortMethod(SORT_METHOD_LABEL_IGNORE_FOLDERS, 551, LABEL_MASKS("%L", "%I", "%L", ""));
+ items.AddSortMethod(SORT_METHOD_SIZE, 553, LABEL_MASKS("%L", "%I", "%L", "%I"));
+ items.AddSortMethod(SORT_METHOD_DATE, 552, LABEL_MASKS("%L", "%J", "%L", "%J"));
+ }
}
cleanup:
diff --git a/xbmc/network/upnp/UPnPServer.cpp b/xbmc/network/upnp/UPnPServer.cpp
index 86f13eb560..0518d14e35 100644
--- a/xbmc/network/upnp/UPnPServer.cpp
+++ b/xbmc/network/upnp/UPnPServer.cpp
@@ -13,6 +13,7 @@
#include "filesystem/VideoDatabaseDirectory.h"
#include "guilib/WindowIDs.h"
#include "music/tags/MusicInfoTag.h"
+#include "settings/Settings.h"
#include "settings/GUISettings.h"
#include "utils/log.h"
#include "utils/md5.h"
@@ -600,7 +601,14 @@ CUPnPServer::OnBrowseDirectChildren(PLT_ActionReference& action,
items.Sort(SORT_METHOD_LABEL, SortOrderAscending);
} else {
- CDirectory::GetDirectory((const char*)parent_id, items);
+ // this is the only way to hide unplayable items in the 'files'
+ // view as we cannot tell what context (eg music vs video) the
+ // request came from
+ string supported = g_settings.m_pictureExtensions + "|"
+ + g_settings.m_videoExtensions + "|"
+ + g_settings.m_musicExtensions + "|"
+ + g_settings.m_discStubExtensions;
+ CDirectory::GetDirectory((const char*)parent_id, items, supported);
DefaultSortItems(items);
}