]> git.vomp.tv Git - vompclient.git/blob - vvideorec.cc
Initial import
[vompclient.git] / vvideorec.cc
1 /*
2     Copyright 2004-2005 Chris Tallon
3
4     This file is part of VOMP.
5
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.
10
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.
15
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
19 */
20
21 #include "vvideorec.h"
22
23 VVideoRec::VVideoRec(Recording* rec)
24 {
25   player = new Player(Command::getInstance());
26   player->init();
27   vdr = VDR::getInstance();
28
29   myRec = rec;
30
31   setDimensions(SCREENHEIGHT, SCREENWIDTH);
32   setBackgroundColour(0, 0, 0, 0);
33 }
34
35 VVideoRec::~VVideoRec()
36 {
37   delete player;
38 }
39
40 void VVideoRec::draw()
41 {
42   View::draw();
43 }
44
45 void VVideoRec::go(ULLONG startPosition)
46 {
47   ULLONG recLength = vdr->streamRecording(myRec);
48
49   player->setLength(recLength);
50   player->setPosition(startPosition);
51   player->play();
52 }
53
54 int VVideoRec::handleCommand(int command)
55 {
56   switch(command)
57   {
58     case Remote::PLAY:
59     {
60       player->play(); // do resync
61       return 2;
62     }
63
64     case Remote::STOP:
65     case Remote::BACK:
66     case Remote::MENU:
67     {
68       player->stop();
69       vdr->stopStreaming();
70       return 4;
71     }
72     case Remote::PAUSE:
73     {
74       player->togglePause();
75       return 2;
76     }
77     case Remote::SKIPFORWARD:
78     {
79       player->skipForward(60);
80       return 2;
81     }
82     case Remote::SKIPBACK:
83     {
84       player->skipBackward(60);
85       return 2;
86     }
87     case Remote::FORWARD:
88     {
89       player->toggleFastForward();
90       return 2;
91     }
92     case Remote::YELLOW:
93     {
94       player->skipBackward(10);
95       return 2;
96     }
97     case Remote::BLUE:
98     {
99       player->skipForward(10);
100       return 2;
101     }
102 //    case Remote::REVERSE:
103 //    {
104 //      player->toggleFastBackward();
105 //      return 2;
106 //    }
107
108     case Remote::ZERO: player->jumpToPercent(0); return 2;
109     case Remote::ONE: player->jumpToPercent(10); return 2;
110     case Remote::TWO: player->jumpToPercent(20); return 2;
111     case Remote::THREE: player->jumpToPercent(30); return 2;
112     case Remote::FOUR: player->jumpToPercent(40); return 2;
113     case Remote::FIVE: player->jumpToPercent(50); return 2;
114     case Remote::SIX: player->jumpToPercent(60); return 2;
115     case Remote::SEVEN: player->jumpToPercent(70); return 2;
116     case Remote::EIGHT: player->jumpToPercent(80); return 2;
117     case Remote::NINE: player->jumpToPercent(90); return 2;
118
119   }
120
121   return 1;
122 }