#include "fm_frame_speed.h" #include "../core/rm_player.h" #include "../data/rm_video_item_2ch.h" #include "../data/rm_sensordata.h" #include "fm_speed_widget.h" #include "fm_button.h" #include FMSpeedFrame::FMSpeedFrame(QWidget *parent) : RMWidgetBase(parent,false) { //LAYOUT_DEBUG(this); layout = new QVBoxLayout(this); layout->setAlignment(Qt::AlignTop); ZERO_LAYOUT(layout); layout->setContentsMargins(1,0,0,0); speed = new FMSpeedWidget(this); speed->setFixedSize(87,52); //LAYOUT_DEBUG(speed) layout->addWidget(speed); #if (LIVE_LANGUAGE2) kmhButton = FMButton::btnStatic2(this,layout,"speed_kmh",NULL,QSize(87,23)); #else // LIVE_LANGUAGE2 kmhButton = FMButton::btnStatic(this,layout,"speed_kmh",MKU8(""),QSize(87,23)); #endif // LIVE_LANGUAGE2 layout->addWidget(kmhButton); _sensor = NULL; connect(RMPlayer::instance(),SIGNAL(positionChanged(qint64,qint64)),SLOT(onPositionChanged(qint64,qint64))); connect(RMPlayer::instance(),SIGNAL(playEvent(PLAY_EVENT,RMVideoItem*)),SLOT(onPlayEvent(PLAY_EVENT,RMVideoItem*))); RMApp::isMPH = false; #if (REMOVE_OLD_C) RMApp::isMPH = (RMLanguage::instance()->language() == RMLanguage::LANGUAGE_EN); #else RMApp::isMPH = RMLanguage::isJP() == false; #endif //kmh->setText(RMApp::isMPH ? "mph" : "km/h"); //connect(RMLanguage::instance(),SIGNAL(languageChange(RMLanguage::LANGUAGE_TYPE)),SLOT(onLanguageChange(RMLanguage::LANGUAGE_TYPE))); _spd = -1; } void FMSpeedFrame::onPositionChanged(qint64 position,qint64 duration) { if(_sensor != NULL) { double ratio = ((double)position) / ((double)duration); _spd = _sensor->getGPSSpeed(ratio); //qInfo() << _spd << ratio << __FUNCTION__; double rspd = _spd; if(RMApp::isMPH) { rspd = 0.621371 * _spd; } if(rspd >= 0 && rspd < 500) { speed->updateSpeed(rspd); // QString str; // str.sprintf("%d",(int)rspd); //speed->setText(str); } else { speed->updateSpeed(-1); //speed->setText("--"); } } } void FMSpeedFrame::onSpeednUnit() { _isMPH = !_isMPH; RMApp::isMPH = _isMPH; //kmh->setText(RMApp::isMPH ? "mph" : "km/h"); //qInfo() << "RMApp::isMPH" << RMApp::isMPH << "kmh:" << kmh->pixmap(); emit speedUnitChange(); } void FMSpeedFrame::onPlayEvent(PLAY_EVENT event,RMVideoItem* item) { //qInfo() << __FUNCTION__ << event; // 사용자 STOP 일 경우 PLAY ITEM CLEAR // if(event == PLAY_DID_CLEARED || event == PLAY_DID_LOADED) if(event == PLAY_DID_LOADED) { _spd = -1; if(item->getSensorData() != NULL && item->getSensorData()->getGPSCount() > 0) { _sensor = item->getSensorData(); } else { _sensor = NULL; speed->updateSpeed(-1); //speed->setText("--"); } } else if (event == PLAY_DID_CLEARED) { _spd = -1; _sensor = NULL; speed->updateSpeed(-1); } else if (event == PLAY_DID_USER_STOP) { //speed->setText(""); } }