first commit
This commit is contained in:
109
project/fm_viewer/ui/fm_frame_speed.cpp
Normal file
109
project/fm_viewer/ui/fm_frame_speed.cpp
Normal file
@@ -0,0 +1,109 @@
|
||||
#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 <QStyle>
|
||||
|
||||
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("");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user