summaryrefslogtreecommitdiff
path: root/zaphistory.c
blob: 4b28399d4dfe703fd7081d6810676274e067695d (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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
 * zaphistory.c: A plugin for the Video Disk Recorder
 *
 * See the README file for copyright information and how to reach the author.
 *
 * $Id$
 */

#include "zaphistory.h"
#include "setup-zaphistory.h"
#include "zaphistoryosd.h"
#include "epg_item.h"

static const char *VERSION = "0.9.6";
static const char *MAINMENUENTRY = "Zapping history";
static const char *DESCRIPTION = "History of the last zapped channels";

const char *cPluginZaphistory::Version(void) {
    return VERSION;
}

const char *cPluginZaphistory::Description(void) {
    return tr(DESCRIPTION);
}

cPluginZaphistory::cPluginZaphistory(void)
{
    // Initialize any member variables here.
    // DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
    // VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
    monitor = NULL;
}

cPluginZaphistory::~cPluginZaphistory()
{
    // Clean up after yourself!
}

const char *cPluginZaphistory::CommandLineHelp(void)
{
    // Return a string that describes all known command line options.
    return NULL;
}

bool cPluginZaphistory::ProcessArgs(int argc, char *argv[])
{
    // Implement command line argument processing here if applicable.
    return true;
}

bool cPluginZaphistory::Initialize(void)
{
    // Initialize any background activities the plugin shall perform.
    return true;
}

const char *cPluginZaphistory::MainMenuEntry(void) {
    if ( ZapHistorySetup.HideMainMenu == 1 )
	    return NULL;

    return tr( tr(MAINMENUENTRY) );
}

bool cPluginZaphistory::Start(void)
{
    Icons::InitCharSet();
    // Load stored history
    ZapHistory.Load( AddDirectory( ConfigDirectory(), "zaphistory.conf" ));

    monitor = new cZapHistoryMonitor();

    return true;
}

void cPluginZaphistory::Stop(void)
{
    // Save history
    ZapHistory.UpdateWatchTime();
    ZapHistory.Save();
    // Stop any background activities the plugin shall perform.
    delete monitor;
}

void cPluginZaphistory::Housekeeping(void)
{
    // Perform any cleanup or other regular tasks.
}

cOsdObject *cPluginZaphistory::MainMenuAction(void)
{
    // Perform the action when selected from the main VDR menu.
    return new cMenuZappedChannels();
}

cMenuSetupPage *cPluginZaphistory::SetupMenu(void)
{
    // Return a setup menu in case the plugin supports one.
    return new cMenuSetupZapHistory();
}

bool cPluginZaphistory::SetupParse(const char *Name, const char *Value)
{
    // Parse your own setup parameters and store their values.
    return ZapHistorySetup.SetupParse(Name, Value);
}

VDRPLUGINCREATOR(cPluginZaphistory); // Don't touch this!