myRec = rec;
create(video->getScreenWidth(), video->getScreenHeight());
- Colour transparent(0, 0, 0, 0);
+ transparent.set(0, 0, 0, 0);
setBackgroundColour(transparent);
+
+ barRegion.x = 0;
+ barRegion.y = video->getScreenHeight() - 66; // FIXME, need to be - 1? and below?
+ barRegion.w = video->getScreenWidth();
+ barRegion.h = 66;
+
+ barBlue.set(0, 0, 150, 150);
}
VVideoRec::~VVideoRec()
delete player;
Log::getInstance()->log("VVideoRec", Log::DEBUG, "Post delete player");
Video::getInstance()->setDefaultAspect();
+
+ Timers::getInstance()->cancelTimer(this, 1);
}
void VVideoRec::draw()
ULLONG recLength = vdr->streamRecording(myRec);
if (recLength)
{
+ doBar(0);
player->setLength(recLength);
player->setPosition(startPosition);
player->play();
case Remote::PAUSE:
{
player->togglePause();
+ doBar(0);
return 2;
}
case Remote::SKIPFORWARD:
{
+ doBar(3);
player->skipForward(60);
return 2;
}
case Remote::SKIPBACK:
{
+ doBar(4);
player->skipBackward(60);
return 2;
}
}
case Remote::YELLOW:
{
+ doBar(2);
player->skipBackward(10);
return 2;
}
case Remote::BLUE:
{
+ doBar(1);
player->skipForward(10);
return 2;
}
return 2;
}
+ case Remote::OK:
+ {
+ doBar(0);
+ return 2;
+ }
+
+
// case Remote::REVERSE:
// {
// player->toggleFastBackward();
// return 2;
// }
+ case Remote::ZERO: player->jumpToPercent(0); return 2;
+ case Remote::ONE: player->jumpToPercent(10); return 2;
+ case Remote::TWO: player->jumpToPercent(20); return 2;
+ case Remote::THREE: player->jumpToPercent(30); return 2;
+ case Remote::FOUR: player->jumpToPercent(40); return 2;
+ case Remote::FIVE: player->jumpToPercent(50); return 2;
+ case Remote::SIX: player->jumpToPercent(60); return 2;
+ case Remote::SEVEN: player->jumpToPercent(70); return 2;
+ case Remote::EIGHT: player->jumpToPercent(80); return 2;
+ case Remote::NINE: player->jumpToPercent(90); return 2;
+
#ifdef DEV
case Remote::RED:
{
}
#endif
- case Remote::ZERO: player->jumpToPercent(0); return 2;
- case Remote::ONE: player->jumpToPercent(10); return 2;
- case Remote::TWO: player->jumpToPercent(20); return 2;
- case Remote::THREE: player->jumpToPercent(30); return 2;
- case Remote::FOUR: player->jumpToPercent(40); return 2;
- case Remote::FIVE: player->jumpToPercent(50); return 2;
- case Remote::SIX: player->jumpToPercent(60); return 2;
- case Remote::SEVEN: player->jumpToPercent(70); return 2;
- case Remote::EIGHT: player->jumpToPercent(80); return 2;
- case Remote::NINE: player->jumpToPercent(90); return 2;
-
}
return 1;
video->setMode(Video::NORMAL);
}
}
+
+void VVideoRec::doBar(int action)
+{
+ rectangle(barRegion, barBlue);
+
+ /* Work out what to display - choices:
+
+ Playing >
+ Paused ||
+ FFwd >>
+ FBwd <<
+
+ Specials, informed by parameter
+
+ Skip forward 10s >|
+ Skip backward 10s |<
+ Skip forward 1m >>|
+ Skip backward 1m |<<
+
+ */
+
+ WSymbol w;
+ w.setSurface(surface);
+ w.nextSymbol = 0;
+ w.setSurfaceOffset(76, barRegion.y + 16);
+
+ if (action)
+ {
+ if (action == 1) w.nextSymbol = WSymbol::SKIPFORWARD;
+ else if (action == 2) w.nextSymbol = WSymbol::SKIPBACK;
+ else if (action == 3) w.nextSymbol = WSymbol::SKIPFORWARD2;
+ else if (action == 4) w.nextSymbol = WSymbol::SKIPBACK2;
+ }
+ else
+ {
+ if (player->isPaused()) w.nextSymbol = WSymbol::PAUSE;
+ else if (player->isFfwd()) ;
+ else if (player->isFbwd()) ;
+ else w.nextSymbol = WSymbol::PLAY;
+ }
+
+ w.draw();
+
+ ViewMan::getInstance()->updateView(this, &barRegion);
+ Timers::getInstance()->setTimer(this, 1, (struct timespec){4, 0});
+}
+
+void VVideoRec::timercall(int clientReference)
+{
+ switch(clientReference)
+ {
+ case 1:
+ {
+ // Remove bar
+ rectangle(barRegion, transparent);
+ ViewMan::getInstance()->updateView(this, &barRegion);
+ break;
+ }
+ }
+}
#include "wsymbol.h"
-UCHAR WSymbol::widths[] = { 2, 2, 4, 4, 1, 1, 3, 3, 3, 3, 3, 4, 4, 2, 2};
-UCHAR WSymbol::heights[] = { 8, 8, 12, 12, 24, 4, 18, 18, 18, 18, 18, 30, 30, 16, 16};
+UCHAR WSymbol::widths[] = { 2, 2, 4, 4, 1, 1, 3, 3, 3, 3, 3, 4, 4, 2, 2, 3, 5, 5};
+UCHAR WSymbol::heights[] = { 8, 8, 12, 12, 24, 4, 18, 18, 18, 18, 18, 30, 30, 16, 16, 18, 18, 18};
UCHAR WSymbol::symbols[] = {
0xFF, 0x00,
0xFC, 0x00,
0xF0, 0x00,
-0xC0, 0x00
+0xC0, 0x00,
+
+/*
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+11111100 00001111 11000000
+*/
+
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+0xFC, 0x0F, 0xC0,
+
+/*
+11000000 00000000 00110000 00000000 00001100
+11000000 00000000 11110000 00000000 00111100
+11000000 00000011 11110000 00000000 11111100
+11000000 00001111 11110000 00000011 11111100
+11000000 00111111 11110000 00001111 11111100
+11000000 11111111 11110000 00111111 11111100
+11000011 11111111 11110000 11111111 11111100
+11001111 11111111 11110011 11111111 11111100
+11111111 11111111 11111111 11111111 11111100
+
+11111111 11111111 11111111 11111111 11111100
+11001111 11111111 11110011 11111111 11111100
+11000011 11111111 11110000 11111111 11111100
+11000000 11111111 11110000 00111111 11111100
+11000000 00111111 11110000 00001111 11111100
+11000000 00001111 11110000 00000011 11111100
+11000000 00000011 11110000 00000000 11111100
+11000000 00000000 11110000 00000000 00111100
+11000000 00000000 00110000 00000000 00001100
+*/
+
+0xC0, 0x00, 0x30, 0x00, 0x0C,
+0xC0, 0x00, 0xF0, 0x00, 0x3C,
+0xC0, 0x03, 0xF0, 0x00, 0xFC,
+0xC0, 0x0F, 0xF0, 0x03, 0xFC,
+0xC0, 0x3F, 0xF0, 0x0F, 0xFC,
+0xC0, 0xFF, 0xF0, 0x3F, 0xFC,
+0xC3, 0xFF, 0xF0, 0xFF, 0xFC,
+0xCF, 0xFF, 0xF3, 0xFF, 0xFC,
+0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
+
+0xFF, 0xFF, 0xFF, 0xFF, 0xFC,
+0xCF, 0xFF, 0xF3, 0xFF, 0xFC,
+0xC3, 0xFF, 0xF0, 0xFF, 0xFC,
+0xC0, 0xFF, 0xF0, 0x3F, 0xFC,
+0xC0, 0x3F, 0xF0, 0x0F, 0xFC,
+0xC0, 0x0F, 0xF0, 0x03, 0xFC,
+0xC0, 0x03, 0xF0, 0x00, 0xFC,
+0xC0, 0x00, 0xF0, 0x00, 0x3C,
+0xC0, 0x00, 0x30, 0x00, 0x0C,
+
+/*
+00110000 00000000 00001100 00000000 00000011
+00111100 00000000 00001111 00000000 00000011
+00111111 00000000 00001111 11000000 00000011
+00111111 11000000 00001111 11110000 00000011
+00111111 11110000 00001111 11111100 00000011
+00111111 11111100 00001111 11111111 00000011
+00111111 11111111 00001111 11111111 11000011
+00111111 11111111 11001111 11111111 11110011
+00111111 11111111 11111111 11111111 11111111
+
+00111111 11111111 11111111 11111111 11111111
+00111111 11111111 11001111 11111111 11110011
+00111111 11111111 00001111 11111111 11000011
+00111111 11111100 00001111 11111111 00000011
+00111111 11110000 00001111 11111100 00000011
+00111111 11000000 00001111 11110000 00000011
+00111111 00000000 00001111 11000000 00000011
+00111100 00000000 00001111 00000000 00000011
+00110000 00000000 00001100 00000000 00000011
+*/
+0x30, 0x00, 0x0C, 0x00, 0x03,
+0x3C, 0x00, 0x0F, 0x00, 0x03,
+0x3F, 0x00, 0x0F, 0xC0, 0x03,
+0x3F, 0xC0, 0x0F, 0xF0, 0x03,
+0x3F, 0xF0, 0x0F, 0xFC, 0x03,
+0x3F, 0xFC, 0x0F, 0xFF, 0x03,
+0x3F, 0xFF, 0x0F, 0xFF, 0xC3,
+0x3F, 0xFF, 0xCF, 0xFF, 0xF3,
+0x3F, 0xFF, 0xFF, 0xFF, 0xFF,
+
+0x3F, 0xFF, 0xFF, 0xFF, 0xFF,
+0x3F, 0xFF, 0xCF, 0xFF, 0xF3,
+0x3F, 0xFF, 0x0F, 0xFF, 0xC3,
+0x3F, 0xFC, 0x0F, 0xFF, 0x03,
+0x3F, 0xF0, 0x0F, 0xFC, 0x03,
+0x3F, 0xC0, 0x0F, 0xF0, 0x03,
+0x3F, 0x00, 0x0F, 0xC0, 0x03,
+0x3C, 0x00, 0x0F, 0x00, 0x03,
+0x30, 0x00, 0x0C, 0x00, 0x03,
};