diff options
Diffstat (limited to 'media')
-rw-r--r-- | media/mediaManager.cpp | 51 | ||||
-rw-r--r-- | media/pluginManager.cpp | 15 |
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)); } |