2 Copyright 2004-2005 Chris Tallon
4 This file is part of VOMP.
6 VOMP is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 VOMP is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with VOMP; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #include "vvideorec.h"
23 VVideoRec::VVideoRec(Recording* rec)
25 player = new PlayerVideo(Command::getInstance(), 1, 0); // say 0 for radio because buffering will work anyway
27 vdr = VDR::getInstance();
28 video = Video::getInstance();
30 videoMode = video->getMode();
33 create(video->getScreenWidth(), video->getScreenHeight());
34 Colour transparent(0, 0, 0, 0);
35 setBackgroundColour(transparent);
38 VVideoRec::~VVideoRec()
40 Log::getInstance()->log("VVideoRec", Log::DEBUG, "Pre delete player");
42 Log::getInstance()->log("VVideoRec", Log::DEBUG, "Post delete player");
43 Video::getInstance()->setDefaultAspect();
46 void VVideoRec::draw()
51 void VVideoRec::go(ULLONG startPosition)
53 ULLONG recLength = vdr->streamRecording(myRec);
55 player->setLength(recLength);
56 player->setPosition(startPosition);
60 int VVideoRec::handleCommand(int command)
66 player->play(); // do resync
74 Log::getInstance()->log("VVideoRec", Log::DEBUG, "Pre player stop");
77 Log::getInstance()->log("VVideoRec", Log::DEBUG, "Post player stop");
82 player->togglePause();
85 case Remote::SKIPFORWARD:
87 player->skipForward(60);
90 case Remote::SKIPBACK:
92 player->skipBackward(60);
97 player->toggleFastForward();
102 player->skipBackward(10);
107 player->skipForward(10);
117 // case Remote::REVERSE:
119 // player->toggleFastBackward();
129 // for testing EPG in NTSC with a NTSC test video
130 Video::getInstance()->setMode(Video::QUARTER);
131 Video::getInstance()->setPosition(170, 5);
132 VEpg* vepg = new VEpg(NULL, 0);
134 ViewMan::getInstance()->add(vepg);
135 ViewMan::getInstance()->updateView(vepg);
147 case Remote::ZERO: player->jumpToPercent(0); return 2;
148 case Remote::ONE: player->jumpToPercent(10); return 2;
149 case Remote::TWO: player->jumpToPercent(20); return 2;
150 case Remote::THREE: player->jumpToPercent(30); return 2;
151 case Remote::FOUR: player->jumpToPercent(40); return 2;
152 case Remote::FIVE: player->jumpToPercent(50); return 2;
153 case Remote::SIX: player->jumpToPercent(60); return 2;
154 case Remote::SEVEN: player->jumpToPercent(70); return 2;
155 case Remote::EIGHT: player->jumpToPercent(80); return 2;
156 case Remote::NINE: player->jumpToPercent(90); return 2;
163 void VVideoRec::toggleChopSides()
165 if (video->getTVsize() == Video::ASPECT16X9) return; // Means nothing for 16:9 TVs
167 if (videoMode == Video::NORMAL)
169 videoMode = Video::LETTERBOX;
170 video->setMode(Video::LETTERBOX);
174 videoMode = Video::NORMAL;
175 video->setMode(Video::NORMAL);