cvs20080628 - trunk
[gitenigma.git] / src / enigma_vcr.cpp
blobf9fce3e985f2b526e941398127fafc3a6490efdc
1 #include <enigma_vcr.h>
3 #include <enigma_standby.h>
4 #include <lib/gui/actions.h>
5 #include <lib/system/init.h>
6 #include <lib/system/init_num.h>
7 #include <lib/driver/eavswitch.h>
8 #include <lib/driver/streamwd.h>
10 struct enigmaVCRActions
12 eActionMap map;
13 eAction volumeUp, volumeDown;
14 enigmaVCRActions():
15 map("enigmaVCR", "enigma VCR"),
16 volumeUp(map, "volumeUp", "volume up", eAction::prioDialog),
17 volumeDown(map, "volumeDown", "volume down", eAction::prioDialog)
22 eAutoInitP0<enigmaVCRActions> i_enigmaVCRActions(eAutoInitNumbers::actions, "enigma vcr actions");
24 enigmaVCR* enigmaVCR::instance = 0;
26 enigmaVCR::enigmaVCR(eString string, eString caption)
27 :eMessageBox(string,caption)
29 if ( !instance )
30 instance = this;
31 else
32 eFatal("create more than one enigmaVCR instances");
33 addActionMap(&i_enigmaVCRActions->map);
36 void enigmaVCR::switchBack()
38 if ( in_loop )
39 close(0);
42 int enigmaVCR::eventHandler(const eWidgetEvent &event)
44 switch (event.type)
46 case eWidgetEvent::execBegin:
47 eAVSwitch::getInstance()->setInput(1);
48 break;
49 case eWidgetEvent::evtAction:
50 if (event.action == &i_enigmaVCRActions->volumeUp)
51 volumeUp();
52 else if (event.action == &i_enigmaVCRActions->volumeDown)
53 volumeDown();
54 else
55 break;
56 return 1;
57 default:
58 break;
60 return eMessageBox::eventHandler(event);
63 enigmaVCR::~enigmaVCR()
65 if ( eZapStandby::getInstance() )
66 eAVSwitch::getInstance()->setTVPin8(0);
67 else
69 eAVSwitch::getInstance()->setInput(0);
70 eAVSwitch::getInstance()->setTVPin8(-1); // reset prev voltage
71 eStreamWatchdog::getInstance()->reloadSettings();
73 instance=0;
76 void enigmaVCR::volumeUp()
78 eAVSwitch::getInstance()->changeVCRVolume(0, -4);
81 void enigmaVCR::volumeDown()
83 eAVSwitch::getInstance()->changeVCRVolume(0, +4);