first commit

This commit is contained in:
2026-02-21 17:11:31 +09:00
commit 18b4338361
4001 changed files with 365464 additions and 0 deletions

View File

@@ -0,0 +1,349 @@
#include "rm_speed_label.h"
#include "../core/rm_player.h"
#include "../data/rm_video_item_2ch.h"
#include "../data/rm_sensordata.h"
#include "rm_button.h"
#include <QStyle>
#if (MODEL_BBVIEWER)
#include "../core/rm_language.h"
#endif
#include <QDebug>
#if (MODEL_WATEX)
RMSpeedLabel::RMSpeedLabel(QWidget *parent,bool map) : RMWidgetStyleBase(parent,"",false)
{
setFixedSize(map ? 200 : 99,map ? 50 : 56);
layout = new QHBoxLayout(this);
layout->setAlignment(Qt::AlignBottom | Qt::AlignLeft);
ZERO_LAYOUT(layout);
layout->setContentsMargins(0,0,0,4);
QWidget* speedWidget = new QWidget(this);
layout->addWidget(speedWidget);
QVBoxLayout* speedLayout = new QVBoxLayout(speedWidget);
speedLayout->setContentsMargins(0,0,0,2);
speedLayout->setSpacing(0);
speedLayout->setAlignment(Qt::AlignBottom);
speed = new QLabel(speedWidget);
speed->setObjectName("LCD");
speedLayout->addWidget(speed);
speed->setText("000");
speed->setAlignment(Qt::AlignLeft | Qt::AlignBottom);
speed->setFixedWidth(40);
kmh = new QLabel(this);
kmh->setPixmap( QPixmap(":/image/label_kmh.png") );
kmh->setFixedSize(27,34);
layout->addWidget(kmh);
QWidget* kmhWidget = new QWidget(this);
kmhWidget->setFixedWidth(31);
layout->addWidget(kmhWidget);
QVBoxLayout* kmhLayout = new QVBoxLayout(kmhWidget);
kmhLayout->setContentsMargins(0,0,0,15);
kmhLayout->setSpacing(0);
kmhLayout->setAlignment(Qt::AlignBottom);
// 速度表示切替
kmhButton = RMButton::create(this,kmhLayout,"speed_unit",MKU8("\xe9\x80\x9f\xe5\xba\xa6\xe8\xa1\xa8\xe7\xa4\xba\xe5\x88\x87\xe6\x9b\xbf"),QSize(31,19));
//RMLanguage::instance()->appendENGToolTip(kmhButton,"Change speed unit");
connect(kmhButton,SIGNAL(clicked()),SLOT(onSpeednUnit()));
_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*)));
_isMPH = false;
//RMApp::isMPH = false;
_spd = -1;
}
#else // MODEL_WATEX
#if (MODEL_BBVIEWER)
RMSpeedLabel::RMSpeedLabel(QWidget *parent,bool map) : RMWidgetStyleBase(parent,"",false)
#else
RMSpeedLabel::RMSpeedLabel(QWidget *parent) : RMWidgetStyleBase(parent,"",false)
#endif
{
#if (MODEL_BBVIEWER)
setFixedSize(map ? 200 : 141,map ? 50 : 68);
#else
setFixedSize(125,68);
#endif
setObjectName("all_border_dark");
layout = new QHBoxLayout(this);
layout->setAlignment(Qt::AlignVCenter | Qt::AlignRight);
#if (MODEL_BBVIEWER)
layout->setContentsMargins(1,map ? 0 : 5,1,1);
#else
layout->setContentsMargins(1,5,1,1);
#endif
layout->setSpacing(0);
speed = new QLabel(this);
speed->setObjectName("LCD");
layout->addWidget(speed);
speed->setText("");
speed->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
QWidget* kmhWidget = new QWidget(this);
#if (MODEL_BBVIEWER)
kmhWidget->setFixedWidth(56);
#else
kmhWidget->setFixedWidth(36);
#endif
layout->addWidget(kmhWidget);
QVBoxLayout* kmhLayout = new QVBoxLayout(kmhWidget);
kmhLayout->setContentsMargins(0,0,0,5);
kmhLayout->setSpacing(0);
kmhLayout->setAlignment(Qt::AlignBottom);
#if (MODEL_BBVIEWER)
_obdSpeed = new QLabel(this);
_obdSpeed->setObjectName("text_obd");
_obdSpeed->setFixedSize(60,30);
_obdSpeed->setAlignment(Qt::AlignCenter);
// 車速
_obdSpeed->setText(MKU8("\xe8\xbb\x8a\xe9\x80\x9f"));
kmhLayout->addWidget(_obdSpeed);
RMLanguage::instance()->append(RMLanguage::LANGUAGE_JP,RMLanguage::TITLE_TEXT,_obdSpeed,MKU8("\xe8\xbb\x8a\xe9\x80\x9f"));
#if !(LANGUAGE_REMOVE_ENG) // WATEX
RMLanguage::instance()->append(RMLanguage::LANGUAGE_EN,RMLanguage::TITLE_TEXT,_obdSpeed,QString("OBD"));
#endif
// 速度表示切替
QSize buttonSize = QSize(60,30);
kmhButton = RMButton::create(this,kmhLayout,"speed_unit",MKU8("\xe9\x80\x9f\xe5\xba\xa6\xe8\xa1\xa8\xe7\xa4\xba\xe5\x88\x87\xe6\x9b\xbf"),buttonSize);
RMLanguage::instance()->appendENGToolTip(kmhButton,"Change speed unit");
connect(kmhButton,SIGNAL(clicked()),SLOT(onSpeednUnit()));
#else
kmh = new QLabel(this);
kmh->setObjectName("kmh_label");
kmhLayout->addWidget(kmh);
kmh->setText("km/h");
//#if (KMH_MPH_TOGGLE)
// connect(this,SIGNAL(clicked()),SLOT(onSpeednUnit()));
//#endif
#endif
_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*)));
#if (MODEL_BBVIEWER)
isOBDSpeed = true;
#endif
#if (KMH_MPH_TOGGLE)
RMApp::isMPH = false;
#endif
#if (MODEL_STANDARD && KMH_MPH_TOGGLE)
RMApp::isMPH = RMLanguage::isJP() == false;
kmh->setText(RMApp::isMPH ? "mph" : "km/h");
connect(RMLanguage::instance(),SIGNAL(languageChange(RMLanguage::LANGUAGE_TYPE)),SLOT(onLanguageChange(RMLanguage::LANGUAGE_TYPE)));
#endif
_spd = -1;
}
#endif // MODEL_WATEX
#if (MODEL_STANDARD && KMH_MPH_TOGGLE)
void RMSpeedLabel::mouseReleaseEvent ( QMouseEvent * event )
{
Q_UNUSED(event)
setObjectName("all_border_dark");
style()->unpolish(this);
style()->polish(this);
update();
onSpeednUnit();
}
void RMSpeedLabel::mousePressEvent(QMouseEvent * event )
{
Q_UNUSED(event)
setObjectName("all_border_dark_pressed");
style()->unpolish(this);
style()->polish(this);
update();
}
void RMSpeedLabel::onLanguageChange(RMLanguage::LANGUAGE_TYPE language)
{
Q_UNUSED(language)
RMApp::isMPH = RMLanguage::isJP() == false;
kmh->setText(RMApp::isMPH ? "mph" : "km/h");
refreshSpeed();
emit speedUnitChange();
}
#endif
void RMSpeedLabel::onPositionChanged(qint64 position,qint64 duration)
{
//qInfo() << __FUNCTION__ << _sensor;
if(_sensor != NULL)
{
double ratio = ((double)position) / ((double)duration);
_spd = _sensor->getGPSSpeed(ratio);
#if (MODEL_BBVIEWER && !MODEL_WATEX)
float speedOBD = _sensor->getOBDSpeed(ratio);
bool isOBD = (speedOBD > -1.0f);
if(isOBD)
{
_spd = speedOBD;
}
//qInfo() << "isOBD:" << isOBD;
#endif
double rspd = _spd;
#if (KMH_MPH_TOGGLE)
if(RMApp::isMPH)
{
rspd = 0.621371 * _spd;
}
#endif
if(rspd >= 0 && rspd < 500)
{
QString str;
str.sprintf("%d",(int)rspd);
speed->setText(str);
#if (MODEL_BBVIEWER)
//unsigned int index = (int)(((double)_sensor->getSensorCount()) * ratio);
//qInfo() << "SENSOR INDEX:" << index;
//qInfo() << "is OBD:" << isOBD << " ratio:" << ratio << " index:" << index << "/" << _sensor->getSensorCount() << " pos:" << position;
#endif
}
else
{
speed->setText("--");
}
#if (MODEL_BBVIEWER && !MODEL_WATEX)
// 정상 속도가 아니라도 GPS 수신일 경우 GPS 표시
if(isOBD != isOBDSpeed)
{
isOBDSpeed = isOBD;
refreshOBDLabel();
}
#endif
}
}
#if (MODEL_BBVIEWER && !MODEL_WATEX)
void RMSpeedLabel::refreshOBDLabel()
{
QString str = "GPS";
if(isOBDSpeed == true)
{
#if (LANGUAGE_REMOVE_ENG) // WATEX
str = MKU8("\xe8\xbb\x8a\xe9\x80\x9f");
#else
str = RMLanguage::instance()->language() == RMLanguage::LANGUAGE_EN ? "OBD" : MKU8("\xe8\xbb\x8a\xe9\x80\x9f");
#endif
}
_obdSpeed->setText(str);
}
#endif
void RMSpeedLabel::onPlayEvent(PLAY_EVENT event,RMVideoItem* item)
{
// 사용자 STOP 일 경우 PLAY ITEM CLEAR
// if(event == PLAY_DID_CLEARED || event == PLAY_DID_LOADED)
if(event == PLAY_DID_LOADED) {
_spd = -1;
#if (MODEL_BBVIEWER)
if(item->getSensorData() != NULL) // ODB 가 존재하여
#else
if(item->getSensorData() != NULL && item->getSensorData()->getGPSCount() > 0)
#endif
{
_sensor = item->getSensorData();
}
else
{
_sensor = NULL;
speed->setText("--");
#if (MODEL_BBVIEWER && !MODEL_WATEX)
isOBDSpeed = true;
#endif
}
}
else if (event == PLAY_DID_CLEARED)
{
_spd = -1;
_sensor = NULL;
#if (MODEL_BBVIEWER && !MODEL_WATEX)
isOBDSpeed = true;
#endif
}
else if (event == PLAY_DID_USER_STOP)
{
speed->setText("");
}
#if (MODEL_BBVIEWER && !MODEL_WATEX)
refreshOBDLabel();
#endif
}
#if (KMH_MPH_TOGGLE)
void RMSpeedLabel::refreshSpeed()
{
double rspd = _spd;
if(RMApp::isMPH)
{
rspd = 0.621371 * _spd;
}
if(rspd >= 0 && rspd < 500)
{
QString str;
str.sprintf("%d",(int)rspd);
speed->setText(str);
}
else
{
#if (MODEL_WATEX)
speed->setText("000");
#else
speed->setText("--");
#endif
}
}
void RMSpeedLabel::onSpeednUnit()
{
_isMPH = !_isMPH;
RMApp::isMPH = _isMPH;
#if (MODEL_WATEX)
kmh->setPixmap(RMApp::isMPH ? QPixmap(":/image/label_mph.png") : QPixmap(":/image/label_kmh.png") );
#else
kmh->setText(RMApp::isMPH ? "mph" : "km/h");
#endif
qInfo() << "RMApp::isMPH" << RMApp::isMPH << "kmh:" << kmh->pixmap();
#if (MODEL_BBVIEWER)
kmhButton->setStyleStatus("mph",RMApp::isMPH);
//kmhButton->setStyleStatus("mph",isMPH);
refreshSpeed();
#endif
emit speedUnitChange();
}
#endif