void VRadioRec::processMessage(Message* m)
{
- if (m->from != player) return;
- if (m->message != Message::PLAYER_EVENT) return;
-
- Log::getInstance()->log("VRadioRec", Log::DEBUG, "Message received");
-
- switch(m->parameter)
+ if (m->message == Message::MOUSE_LBDOWN)
{
- case Player::CONNECTION_LOST: // connection lost detected
+ int x=(m->parameter>>16)-(int)getScreenX();
+ int y=(m->parameter&0xFFFF)-(int)getScreenY();
+ if (!barShowing)
{
- // I can't handle this, send it to command
- Message* m = new Message();
- m->to = Command::getInstance();
- m->message = Message::CONNECTION_LOST;
- Command::getInstance()->postMessageNoLock(m);
- break;
+ ViewMan::getInstance()->handleCommand(Remote::OK); //simulate rok press
}
- case Player::STOP_PLAYBACK:
+ else if ((int)barRegion.x<=x && (int)barRegion.y<=y && ((int)barRegion.x+(int)barRegion.w)>=x
+ && ((int)barRegion.y+(int)barRegion.h)>=y)
{
- // FIXME Obselete ish - improve this
- Message* m = new Message(); // Must be done after this thread finishes, and must break into master mutex
- m->to = Command::getInstance();
- m->message = Message::STOP_PLAYBACK;
- Command::getInstance()->postMessageNoLock(m);
- break;
+ int progBarXbase = barRegion.x + 300;
+ if (x>=(int)barRegion.x + progBarXbase + 24
+ && x<=(int)barRegion.x + progBarXbase + 4 + 302
+ && y>=(int)barRegion.y + 12 - 2
+ && y<=(int)barRegion.y + 12 - 2+28)
+ {
+ int cx=x-(barRegion.x + progBarXbase + 4);
+ double percent=((double)cx)/302.*100.;
+ player->jumpToPercent(percent);
+ doBar(3);
+ return;
+ // int progressWidth = 302 * currentFrameNum / lengthFrames;
+ // rectangle(barRegion.x + progBarXbase + 4, barRegion.y + 16, progressWidth, 16, Colour::SELECTHIGHLIGHT);
+ }
+ }
+ else
+ {
+ ViewMan::getInstance()->handleCommand(Remote::OK); //simulate rok press
+ }
+ }
+ else if (m->message == Message::PLAYER_EVENT)
+ {
+ if (m->from != player) return;
+
+ Log::getInstance()->log("VRadioRec", Log::DEBUG, "Message received");
+
+ switch(m->parameter)
+ {
+ case Player::CONNECTION_LOST: // connection lost detected
+ {
+ // I can't handle this, send it to command
+ Message* m = new Message();
+ m->to = Command::getInstance();
+ m->message = Message::CONNECTION_LOST;
+ Command::getInstance()->postMessageNoLock(m);
+ break;
+ }
+ case Player::STOP_PLAYBACK:
+ {
+ // FIXME Obselete ish - improve this
+ Message* m = new Message(); // Must be done after this thread finishes, and must break into master mutex
+ m->to = Command::getInstance();
+ m->message = Message::STOP_PLAYBACK;
+ Command::getInstance()->postMessageNoLock(m);
+ break;
+ }
}
}
}