Files
fmviewer3/project/fm_viewer/ui/rm_eq_widget.cpp
2026-02-21 17:11:31 +09:00

138 lines
4.2 KiB
C++

#include "rm_eq_widget.h"
#include <QStyleOption>
#include <QPainter>
#include "rm_button.h"
#include "../rm_include.h"
#include "rm_slider.h"
#include "../core/rm_player.h"
#include "../core/rm_language.h"
#if (MODEL_BBVIEWER)
RMEQWidget::RMEQWidget(QWidget *parent) : QWidget(parent)
{
#if (MODEL_WATEX)
setFixedSize(202,167);
setObjectName("eq_widget");
#else
setFixedWidth(104);
#endif
layout = new QVBoxLayout(this);
layout->setMargin(0);
layout->setSpacing(0);
layout->setAlignment(Qt::AlignCenter);
// LINE
// 再生速度
RMButton* speedButton = NULL;
_addLine(MKU8("\xe5\x86\x8d\xe7\x94\x9f\xe9\x80\x9f\xe5\xba\xa6"),":/image/icon_pbspeed.png",&speedButton,0);
RMLanguage::instance()->appendENGToolTip(speedButton,"Playback speed");
connect(speedButton,SIGNAL(clicked()),SLOT(onDefaultSpeed()));
layout->addSpacerItem(new QSpacerItem(0,5));
RMButton* brightnessButton = NULL;
_addLine(MKU8("\xe6\x98\x8e\xe3\x82\x8b\xe3\x81\x95"),":/image/icon_brightness.png",&brightnessButton,1);
RMLanguage::instance()->appendENGToolTip(brightnessButton,"Brightness");
connect(brightnessButton,SIGNAL(clicked()),SLOT(onDefaultBrightness()));
layout->addSpacerItem(new QSpacerItem(0,5));
RMButton* contrastButton = NULL;
_addLine(MKU8("\xe3\x82\xb3\xe3\x83\xb3\xe3\x83\x88\xe3\x83\xa9\xe3\x82\xb9\xe3\x83\x88"),":/image/icon_contrast.png",&contrastButton,2);
RMLanguage::instance()->appendENGToolTip(contrastButton,"Contrast");
connect(contrastButton,SIGNAL(clicked()),SLOT(onDefaultContrast()));
RMPlayer* player = RMPlayer::instance();
player->setEQFrame(this);
connect(brightnessSlider, SIGNAL(sliderPressed()),player, SLOT(onSetBrightness()));
connect(brightnessSlider, SIGNAL(valueChanged(int)),player, SLOT(onSetBrightness()));
connect(contrastSlider, SIGNAL(sliderPressed()),player, SLOT(onSetContrast()));
connect(contrastSlider, SIGNAL(valueChanged(int)),player, SLOT(onSetContrast()));
}
void RMEQWidget::_addLine(QString toolTip,QString icon,RMButton** btn, int type)
{
#if (MODEL_WATEX)
QSize buttonSize = QSize(32,32);
int spacing = 10;
int margin = 8;
#else
QSize buttonSize = QSize(25,25);
int spacing = 0;
int margin = 0;
#endif
QWidget* lineWidget = new QWidget(this);
layout->addWidget(lineWidget);
QHBoxLayout* lineLayout = new QHBoxLayout(lineWidget);
lineLayout->setMargin(margin);
lineLayout->setSpacing(spacing);
RMButton* bn = RMButton::create(lineWidget,lineLayout,"",toolTip,buttonSize);
bn->setIcon(QPixmap(icon));
bn->setIconSize(buttonSize);
if(type == 0)
{
speedSlider = new RMReleasedSlider(lineWidget);
speedSlider->setObjectName("normal");
speedSlider->setTickInterval(1);
speedSlider->setValue(2); // 1.0 = 2
speedSlider->setRange(0,4);
lineLayout->addWidget(speedSlider);
//speedSlider->setTickPosition(QSlider::TicksBothSides);
}
else if (type == 1)
{
brightnessSlider = new RMSlider(lineWidget);
brightnessSlider->setObjectName("normal");
brightnessSlider->setRange(0,100);
brightnessSlider->setValue(50);
lineLayout->addWidget(brightnessSlider);
}
else if (type == 2)
{
contrastSlider = new RMSlider(lineWidget);
contrastSlider->setObjectName("normal");
contrastSlider->setRange(0,100);
contrastSlider->setValue(50);
lineLayout->addWidget(contrastSlider);
}
lineLayout->addSpacerItem(new QSpacerItem(10,0));
*btn = bn;
}
void RMEQWidget::paintEvent(QPaintEvent *pe)
{
Q_UNUSED(pe);
QStyleOption o;
o.initFrom(this);
QPainter painter(this);
style()->drawPrimitive(QStyle::PE_Widget, &o, &painter, this);
}
void RMEQWidget::onDefaultSpeed()
{
speedSlider->setValue(2);
RMPlayer::instance()->updateSpeedForce(1.0);
// emit speedSlider->sliderMoved(2);
// emit speedSlider->sliderReleased();
//RMPlayer::instance()->updateSpeed(1.0);
}
void RMEQWidget::onDefaultBrightness()
{
brightnessSlider->setValue(50);
}
void RMEQWidget::onDefaultContrast()
{
contrastSlider->setValue(50);
}
#endif // #if (MODEL_BBVIEWER)