summaryrefslogtreecommitdiff
path: root/media
diff options
context:
space:
mode:
Diffstat (limited to 'media')
-rw-r--r--media/mediaManager.cpp51
-rw-r--r--media/pluginManager.cpp15
2 files changed, 51 insertions, 15 deletions
diff --git a/media/mediaManager.cpp b/media/mediaManager.cpp
index ed07da7..2b5fd87 100644
--- a/media/mediaManager.cpp
+++ b/media/mediaManager.cpp
@@ -8,6 +8,7 @@
#include "../include/plugin.h"
#include "../include/media/mediaManager.h"
#include "../include/server.h"
+#include "../include/parser.h"
#include <upnp/upnp.h>
#include <sstream>
#include <tntdb/statement.h>
@@ -37,10 +38,15 @@ IdList cMediaManager::GetContainerUpdateIDs(bool unevented){
return list;
}
-void cMediaManager::OnContainerUpdate(string containerID, long updateID){
+void cMediaManager::OnContainerUpdate(string uri, long updateID){
++mSystemUpdateID;
- mEventedContainerUpdateIDs[containerID] = updateID;
+ mEventedContainerUpdateIDs[tools::GenerateUUIDFromURL(uri)] = updateID;
+
+ mScanDirectories.push_back(uri);
+
+ // Start scanning for changed files.
+ Start();
}
StringList cMediaManager::GetSearchCapabilities() const {
@@ -94,6 +100,20 @@ int cMediaManager::Browse(BrowseRequest& request){
request.totalMatches = 0;
request.updateID = 0;
+ switch (request.browseMetadata){
+ case CD_BROWSE_METADATA:
+
+
+
+ case CD_BROWSE_DIRECT_CHILDREN:
+
+
+
+ default:
+ esyslog("UPnP\tInvalid arguments. Browse flag invalid");
+ return UPNP_SOAP_E_INVALID_ARGS;
+ }
+
return UPNP_E_SUCCESS;
}
@@ -130,19 +150,20 @@ bool cMediaManager::Initialise(){
tntdb::Statement objectTable = mConnection.prepare(
"CREATE TABLE metadata"
"("
- " objectID TEXT PRIMARY KEY,"
- " parentID TEXT NOT NULL,"
- " title TEXT NOT NULL,"
- " class TEXT NOT NULL,"
- " restricted INTEGER NOT NULL,"
- " description TEXT,"
- " ldescription TEXT,"
- " date TEXT,"
- " language TEXT,"
- " channelNr INTEGER,"
- " channelName TEXT,"
- " scheduledStart TEXT,"
- " scheduledEnd TEXT"
+ " objectID TEXT PRIMARY KEY,"
+ " parentID TEXT NOT NULL,"
+ " title TEXT NOT NULL,"
+ " class TEXT NOT NULL,"
+ " restricted INTEGER NOT NULL,"
+ " creator TEXT,"
+ " description TEXT,"
+ " longDescription TEXT,"
+ " date TEXT,"
+ " language TEXT,"
+ " channelNr INTEGER,"
+ " channelName TEXT,"
+ " scheduledStart TEXT,"
+ " scheduledEnd TEXT"
")");
objectTable.execute();
diff --git a/media/pluginManager.cpp b/media/pluginManager.cpp
index e677d6a..5d3c9ea 100644
--- a/media/pluginManager.cpp
+++ b/media/pluginManager.cpp
@@ -13,6 +13,21 @@ using namespace std;
namespace upnp {
+const char* cMetadata::KEY_OBJECTID = "object@id";
+const char* cMetadata::KEY_PARENTID = "object@parentID";
+const char* cMetadata::KEY_TITLE = "dc:title";
+const char* cMetadata::KEY_CREATOR = "dc:creator";
+const char* cMetadata::KEY_CLASS = "upnp:class";
+const char* cMetadata::KEY_RESTRICTED = "object@container";
+const char* cMetadata::KEY_DESCRIPTION = "dc:description";
+const char* cMetadata::KEY_LONG_DESCRIPTION = "upnp:longDescription";
+const char* cMetadata::KEY_DATE = "dc:date";
+const char* cMetadata::KEY_LANGUAGE = "dc:language";
+const char* cMetadata::KEY_CHANNEL_NR = "upnp:channelNr";
+const char* cMetadata::KEY_CHANNEL_NAME = "upnp:channelName";
+const char* cMetadata::KEY_SCHEDULED_START = "upnp:scheduledStartTime";
+const char* cMetadata::KEY_SCHEDULED_END = "upnp:scheduledEndTime";
+
bool cMetadata::SetObjectIDByUri(string uri){
return SetObjectID(tools::GenerateUUIDFromURL(uri));
}