blob: 41707d1faa4f7602b317c5008d386692b220f7a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
/*
* mediaManager.h
*
* Created on: 31.08.2012
* Author: savop
*/
#ifndef MEDIAMANAGER_H_
#define MEDIAMANAGER_H_
#include <vdr/thread.h>
#include <list>
#include <string>
#include <stdint.h>
#include <tntdb/connection.h>
#include <tntdb/connect.h>
#include "../../include/tools.h"
namespace upnp {
class cMediaManager : public cThread {
private:
struct MediaRequest {
std::string objectID;
std::string filter;
uint32_t startIndex;
uint32_t requestCount;
std::string sortCriteria;
std::string result;
uint32_t numberReturned;
uint32_t totalMatches;
uint32_t updateID;
};
public:
enum BrowseFlag {
CD_BROWSE_METADATA,
CD_BROWSE_DIRECT_CHILDREN,
NumBrowseFlags
};
struct BrowseRequest : public MediaRequest {
BrowseFlag browseMetadata;
};
struct SearchRequest : public MediaRequest {
std::string searchCriteria;
};
cMediaManager();
virtual ~cMediaManager();
void SetDatabaseFile(string file);
bool Initialise();
uint32_t GetSystemUpdateID() const;
IdList GetContainerUpdateIDs(bool unevented = false);
StringList GetSearchCapabilities() const;
StringList GetSortCapabilities() const;
StringList GetSupportedProtocolInfos() const;
int Browse(BrowseRequest& request);
int Search(SearchRequest& request);
static BrowseFlag ToBrowseFlag(std::string browseFlag);
private:
void Action();
bool CheckIntegrity();
int CreateResponse(MediaRequest&, const string&, const string&);
void OnContainerUpdate(string uri, long updateID);
uint32_t mSystemUpdateID;
IdList mEventedContainerUpdateIDs;
StringList mScanDirectories;
string mDatabaseFile;
tntdb::Connection mConnection;
};
} // namespace upnp
#endif /* MEDIAMANAGER_H_ */
|