summaryrefslogtreecommitdiff
path: root/recmanager.h
blob: a144071818fbea0d762960bd852f152e33e4543d (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
#ifndef __TVGUIDE_RECMMANAGER_H
#define __TVGUIDE_RECMMANAGER_H

#include <string>
#include <vector>
#include <vdr/plugin.h>
#include "services/epgsearch.h"
#include "detailview.h"
#include "recmenu.h"
#include "searchtimer.h"
#include "switchtimer.h"
#include "timerconflict.h"

struct TVGuideEPGSearchTemplate {
public:
    std::string name;
    std::string templValue;
};

// --- cRecManager  -------------------------------------------------------------
class cRecManager   {
private:
    cPlugin *epgSearchPlugin;
    bool epgSearchAvailable;
public:
    cRecManager(void);
    void SetEPGSearchPlugin(void);
    bool EpgSearchAvailable(void) {return epgSearchAvailable;};
    bool RefreshRemoteTimers(void);
    bool CheckEventForTimer(const cEvent *event);
    cTimer *GetTimerForEvent(const cEvent *event);
    cTimer *createTimer(const cEvent *event, std::string path = "");
    cTimer *createLocalTimer(const cEvent *event, std::string path);
    cTimer *createRemoteTimer(const cEvent *event, std::string path);
    void SetTimerPath(cTimer *timer, const cEvent *event, std::string path);
    void DeleteTimer(cTimer *timer);
    void DeleteTimer(int timerID);
    void DeleteTimer(const cEvent *event);
    void DeleteLocalTimer(const cEvent *event);
    void DeleteRemoteTimer(const cEvent *event);
    void SaveTimer(cTimer *timer, cTimer newTimerSettings);
    bool IsRecorded(const cEvent *event);
    cTVGuideTimerConflicts *CheckTimerConflict(void);
    void CreateSeriesTimer(cTimer *seriesTimer);
    const cEvent **PerformSearchTimerSearch(std::string epgSearchString, int &numResults);
    const cEvent **PerformSearch(Epgsearch_searchresults_v1_0 data, int &numResults);
    void ReadEPGSearchTemplates(std::vector<TVGuideEPGSearchTemplate> *epgTemplates);
    void GetSearchTimers(std::vector<cTVGuideSearchTimer> *timers);
    int CreateSearchTimer(std::string epgSearchString);
    bool SaveSearchTimer(cTVGuideSearchTimer *searchTimer);
    void DeleteSearchTimer(cTVGuideSearchTimer *searchTimer, bool delTimers);
    void UpdateSearchTimers(void);
    bool CreateSwitchTimer(const cEvent *event, cSwitchTimer switchTimer);
    void DeleteSwitchTimer(const cEvent *event);
    cRecording **SearchForRecordings(std::string searchString, int &numResults);
    const cEvent **LoadReruns(const cEvent *event, int &numResults);
    void GetFavorites(std::vector<cTVGuideSearchTimer> *favorites);
    const cEvent **WhatsOnNow(bool nowOrNext, int &numResults);
    const cEvent **UserDefinedTime(int userTime, int &numResults);
    virtual ~cRecManager  (void);
};

#endif //__TVGUIDE_RECMMANAGER_H