aboutsummaryrefslogtreecommitdiff
path: root/qmidiplayer-desktop/qmpefxwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qmidiplayer-desktop/qmpefxwindow.cpp')
-rw-r--r--qmidiplayer-desktop/qmpefxwindow.cpp367
1 files changed, 224 insertions, 143 deletions
diff --git a/qmidiplayer-desktop/qmpefxwindow.cpp b/qmidiplayer-desktop/qmpefxwindow.cpp
index 7691756..ec1cef3 100644
--- a/qmidiplayer-desktop/qmpefxwindow.cpp
+++ b/qmidiplayer-desktop/qmpefxwindow.cpp
@@ -4,215 +4,296 @@
#include "qmpmainwindow.hpp"
qmpEfxWindow::qmpEfxWindow(QWidget *parent) :
- QWidget(parent,Qt::Dialog),
- ui(new Ui::qmpEfxWindow)
-{
- ui->setupUi(this);initialized=false;
- styl=new QDialSkulptureStyle();
- QList<QDial*> dials=findChildren<QDial*>();
- for(int i=0;i<dials.count();++i)
- dials.at(i)->setStyle(styl);
- qmpSettings *settings=qmpMainWindow::getInstance()->getSettings();
- ui->cbEnabledC->setChecked(settings->getOptionRaw("Effects/ChorusEnabled",1).toInt());
- ui->cbEnabledR->setChecked(settings->getOptionRaw("Effects/ReverbEnabled",1).toInt());
- rr=settings->getOptionRaw("Effects/ReverbRoom",0.2).toDouble();
- rd=settings->getOptionRaw("Effects/ReverbDamp",0.0).toDouble();
- rw=settings->getOptionRaw("Effects/ReverbWidth",0.5).toDouble();
- rl=settings->getOptionRaw("Effects/ReverbLevel",0.9).toDouble();
-
- cfb=settings->getOptionRaw("Effects/ChorusFeedbk",3).toInt();
- cl=settings->getOptionRaw("Effects/ChorusLevel",2.0).toDouble();
- cr=settings->getOptionRaw("Effects/ChorusRate",0.3).toDouble();
- cd=settings->getOptionRaw("Effects/ChorusDepth",8.0).toDouble();
- ct=settings->getOptionRaw("Effects/ChorusType",FLUID_CHORUS_MOD_SINE).toInt();
- qmpMainWindow::getInstance()->registerFunctionality(
- efxf=new qmpEfxFunc(this),
- std::string("Effects"),
- tr("Effects").toStdString(),
- getThemedIconc(":/img/effects.svg"),
- 0,
- true
- );
- if(settings->getOptionRaw("DialogStatus/EfxW",QRect(-999,-999,999,999)).toRect()!=QRect(-999,-999,999,999))
- setGeometry(settings->getOptionRaw("DialogStatus/EfxW",QRect(-999,-999,999,999)).toRect());
- if(settings->getOptionRaw("DialogStatus/EfxWShown",0).toInt())
- {show();qmpMainWindow::getInstance()->setFuncState("Effects",true);}
+ QWidget(parent, Qt::Dialog),
+ ui(new Ui::qmpEfxWindow)
+{
+ ui->setupUi(this);
+ initialized = false;
+ styl = new QDialSkulptureStyle();
+ QList<QDial *> dials = findChildren<QDial *>();
+ for (int i = 0; i < dials.count(); ++i)
+ dials.at(i)->setStyle(styl);
+ qmpSettings *settings = qmpMainWindow::getInstance()->getSettings();
+ ui->cbEnabledC->setChecked(settings->getOptionRaw("Effects/ChorusEnabled", 1).toInt());
+ ui->cbEnabledR->setChecked(settings->getOptionRaw("Effects/ReverbEnabled", 1).toInt());
+ rr = settings->getOptionRaw("Effects/ReverbRoom", 0.2).toDouble();
+ rd = settings->getOptionRaw("Effects/ReverbDamp", 0.0).toDouble();
+ rw = settings->getOptionRaw("Effects/ReverbWidth", 0.5).toDouble();
+ rl = settings->getOptionRaw("Effects/ReverbLevel", 0.9).toDouble();
+
+ cfb = settings->getOptionRaw("Effects/ChorusFeedbk", 3).toInt();
+ cl = settings->getOptionRaw("Effects/ChorusLevel", 2.0).toDouble();
+ cr = settings->getOptionRaw("Effects/ChorusRate", 0.3).toDouble();
+ cd = settings->getOptionRaw("Effects/ChorusDepth", 8.0).toDouble();
+ ct = settings->getOptionRaw("Effects/ChorusType", FLUID_CHORUS_MOD_SINE).toInt();
+ qmpMainWindow::getInstance()->registerFunctionality(
+ efxf = new qmpEfxFunc(this),
+ std::string("Effects"),
+ tr("Effects").toStdString(),
+ getThemedIconc(":/img/effects.svg"),
+ 0,
+ true
+ );
+ if (settings->getOptionRaw("DialogStatus/EfxW", QRect(-999, -999, 999, 999)).toRect() != QRect(-999, -999, 999, 999))
+ setGeometry(settings->getOptionRaw("DialogStatus/EfxW", QRect(-999, -999, 999, 999)).toRect());
+ if (settings->getOptionRaw("DialogStatus/EfxWShown", 0).toInt())
+ {
+ show();
+ qmpMainWindow::getInstance()->setFuncState("Effects", true);
+ }
}
qmpEfxWindow::~qmpEfxWindow()
{
- qmpMainWindow::getInstance()->unregisterFunctionality("Effects");
- delete efxf;
- delete styl;
- delete ui;
+ qmpMainWindow::getInstance()->unregisterFunctionality("Effects");
+ delete efxf;
+ delete styl;
+ delete ui;
}
void qmpEfxWindow::closeEvent(QCloseEvent *event)
{
- qmpSettings *settings=qmpMainWindow::getInstance()->getSettings();
- if(settings->getOptionBool("Behavior/DialogStatus"))
- {
- settings->setOptionRaw("DialogStatus/EfxW",geometry());
- }
- setVisible(false);
- if(!qmpMainWindow::getInstance()->isFinalizing()&&settings->getOptionBool("Behavior/DialogStatus"))
- {
- settings->setOptionRaw("DialogStatus/EfxWShown",0);
- }
- qmpMainWindow::getInstance()->setFuncState("Effects",false);
- event->accept();
+ qmpSettings *settings = qmpMainWindow::getInstance()->getSettings();
+ if (settings->getOptionBool("Behavior/DialogStatus"))
+ {
+ settings->setOptionRaw("DialogStatus/EfxW", geometry());
+ }
+ setVisible(false);
+ if (!qmpMainWindow::getInstance()->isFinalizing() && settings->getOptionBool("Behavior/DialogStatus"))
+ {
+ settings->setOptionRaw("DialogStatus/EfxWShown", 0);
+ }
+ qmpMainWindow::getInstance()->setFuncState("Effects", false);
+ event->accept();
}
void qmpEfxWindow::showEvent(QShowEvent *event)
{
- //CMidiPlayer* player=qmpMainWindow::getInstance()->getPlayer();
- //These parameters will never be modified outside this window...
- /*if(initialized)
- {
- player->getReverbPara(&rr,&rd,&rw,&rl);
- player->getChorusPara(&cfb,&cl,&cr,&cd,&ct);
- }*/
- ui->sbRoom->setValue((int)round(rr*100));ui->dRoom->setValue((int)round(rr*100));
- ui->sbDamp->setValue((int)round(rd*100));ui->dDamp->setValue((int)round(rd*100));
- ui->sbWidth->setValue((int)round(rw*100));ui->dWidth->setValue((int)round(rw*100));
- ui->sbLevelR->setValue((int)round(rl*100));ui->dLevelR->setValue((int)round(rl*100));
-
- ui->sbFeedBack->setValue(cfb);ui->dFeedBack->setValue(cfb);
- ui->sbRate->setValue(cr);ui->dRate->setValue((int)round(cr*100));
- ui->sbDepth->setValue(cd);ui->dDepth->setValue((int)round(cd*10));
- ui->sbLevelC->setValue((int)round(cl*100));ui->dLevelC->setValue((int)round(cl*100));
- if(ct==FLUID_CHORUS_MOD_SINE)ui->rbSine->setChecked(true),ui->rbTriangle->setChecked(false);
- if(ct==FLUID_CHORUS_MOD_TRIANGLE)ui->rbSine->setChecked(false),ui->rbTriangle->setChecked(true);
- initialized=true;
- qmpSettings *settings=qmpMainWindow::getInstance()->getSettings();
- if(settings->getOptionRaw("DialogStatus/EfxW",QRect(-999,-999,999,999)).toRect()!=QRect(-999,-999,999,999))
- setGeometry(settings->getOptionRaw("DialogStatus/EfxW",QRect(-999,-999,999,999)).toRect());
- if(settings->getOptionBool("Behavior/DialogStatus"))
- {
- settings->setOptionRaw("DialogStatus/EfxWShown",1);
- }
- event->accept();
+ //These parameters will never be modified outside this window...
+ /*if(initialized)
+ {
+ player->getReverbPara(&rr,&rd,&rw,&rl);
+ player->getChorusPara(&cfb,&cl,&cr,&cd,&ct);
+ }*/
+ ui->sbRoom->setValue((int)round(rr * 100));
+ ui->dRoom->setValue((int)round(rr * 100));
+ ui->sbDamp->setValue((int)round(rd * 100));
+ ui->dDamp->setValue((int)round(rd * 100));
+ ui->sbWidth->setValue((int)round(rw * 100));
+ ui->dWidth->setValue((int)round(rw * 100));
+ ui->sbLevelR->setValue((int)round(rl * 100));
+ ui->dLevelR->setValue((int)round(rl * 100));
+
+ ui->sbFeedBack->setValue(cfb);
+ ui->dFeedBack->setValue(cfb);
+ ui->sbRate->setValue(cr);
+ ui->dRate->setValue((int)round(cr * 100));
+ ui->sbDepth->setValue(cd);
+ ui->dDepth->setValue((int)round(cd * 10));
+ ui->sbLevelC->setValue((int)round(cl * 100));
+ ui->dLevelC->setValue((int)round(cl * 100));
+ if (ct == FLUID_CHORUS_MOD_SINE)
+ {
+ ui->rbSine->setChecked(true);
+ ui->rbTriangle->setChecked(false);
+ }
+ if (ct == FLUID_CHORUS_MOD_TRIANGLE)
+ {
+ ui->rbSine->setChecked(false);
+ ui->rbTriangle->setChecked(true);
+ }
+ initialized = true;
+ qmpSettings *settings = qmpMainWindow::getInstance()->getSettings();
+ if (settings->getOptionRaw("DialogStatus/EfxW", QRect(-999, -999, 999, 999)).toRect() != QRect(-999, -999, 999, 999))
+ setGeometry(settings->getOptionRaw("DialogStatus/EfxW", QRect(-999, -999, 999, 999)).toRect());
+ if (settings->getOptionBool("Behavior/DialogStatus"))
+ {
+ settings->setOptionRaw("DialogStatus/EfxWShown", 1);
+ }
+ event->accept();
}
void qmpEfxWindow::sendEfxChange(void *_fs)
{
- if(!qmpMainWindow::getInstance()||!initialized)return;
- rr=ui->sbRoom->value()/100.;rd=ui->sbDamp->value()/100.;
- rw=ui->sbWidth->value()/100.;rl=ui->sbLevelR->value()/100.;
- ct=ui->rbSine->isChecked()?FLUID_CHORUS_MOD_SINE:FLUID_CHORUS_MOD_TRIANGLE;
- cfb=ui->sbFeedBack->value();cl=ui->sbLevelC->value()/100.;
- cr=ui->sbRate->value();cd=ui->sbDepth->value();
- IFluidSettings* fs=(IFluidSettings*)_fs;
- if(!_fs)fs=qmpMainWindow::getInstance()->getFluid();
- fs->setReverbPara(ui->cbEnabledR->isChecked()?1:0,rr,rd,rw,rl);
- fs->setChorusPara(ui->cbEnabledC->isChecked()?1:0,cfb,cl,cr,cd,ct);
-
- qmpSettings *settings=qmpMainWindow::getInstance()->getSettings();
- settings->setOptionRaw("Effects/ChorusEnabled",ui->cbEnabledC->isChecked()?1:0);
- settings->setOptionRaw("Effects/ReverbEnabled",ui->cbEnabledR->isChecked()?1:0);
- settings->setOptionRaw("Effects/ReverbRoom",rr);
- settings->setOptionRaw("Effects/ReverbDamp",rd);
- settings->setOptionRaw("Effects/ReverbWidth",rw);
- settings->setOptionRaw("Effects/ReverbLevel",rl);
-
- settings->setOptionRaw("Effects/ChorusFeedbk",cfb);
- settings->setOptionRaw("Effects/ChorusLevel",cl);
- settings->setOptionRaw("Effects/ChorusRate",cr);
- settings->setOptionRaw("Effects/ChorusDepth",cd);
- settings->setOptionRaw("Effects/ChorusType",ct);
+ if (!qmpMainWindow::getInstance() || !initialized)
+ return;
+ rr = ui->sbRoom->value() / 100.;
+ rd = ui->sbDamp->value() / 100.;
+ rw = ui->sbWidth->value() / 100.;
+ rl = ui->sbLevelR->value() / 100.;
+ ct = ui->rbSine->isChecked() ? FLUID_CHORUS_MOD_SINE : FLUID_CHORUS_MOD_TRIANGLE;
+ cfb = ui->sbFeedBack->value();
+ cl = ui->sbLevelC->value() / 100.;
+ cr = ui->sbRate->value();
+ cd = ui->sbDepth->value();
+ IFluidSettings *fs = (IFluidSettings *)_fs;
+ if (!_fs)
+ fs = qmpMainWindow::getInstance()->getFluid();
+ fs->setReverbPara(ui->cbEnabledR->isChecked() ? 1 : 0, rr, rd, rw, rl);
+ fs->setChorusPara(ui->cbEnabledC->isChecked() ? 1 : 0, cfb, cl, cr, cd, ct);
+
+ qmpSettings *settings = qmpMainWindow::getInstance()->getSettings();
+ settings->setOptionRaw("Effects/ChorusEnabled", ui->cbEnabledC->isChecked() ? 1 : 0);
+ settings->setOptionRaw("Effects/ReverbEnabled", ui->cbEnabledR->isChecked() ? 1 : 0);
+ settings->setOptionRaw("Effects/ReverbRoom", rr);
+ settings->setOptionRaw("Effects/ReverbDamp", rd);
+ settings->setOptionRaw("Effects/ReverbWidth", rw);
+ settings->setOptionRaw("Effects/ReverbLevel", rl);
+
+ settings->setOptionRaw("Effects/ChorusFeedbk", cfb);
+ settings->setOptionRaw("Effects/ChorusLevel", cl);
+ settings->setOptionRaw("Effects/ChorusRate", cr);
+ settings->setOptionRaw("Effects/ChorusDepth", cd);
+ settings->setOptionRaw("Effects/ChorusType", ct);
}
void qmpEfxWindow::dailValueChange()
{
- if(!initialized)return;
- ui->sbRoom->setValue(ui->dRoom->value());
- ui->sbDamp->setValue(ui->dDamp->value());
- ui->sbWidth->setValue(ui->dWidth->value());
- ui->sbLevelR->setValue(ui->dLevelR->value());
- ui->sbFeedBack->setValue(ui->dFeedBack->value());
- ui->sbRate->setValue(ui->dRate->value()/100.);
- ui->sbDepth->setValue(ui->dDepth->value()/10.);
- ui->sbLevelC->setValue(ui->dLevelC->value());
- sendEfxChange();
+ if (!initialized)
+ return;
+ ui->sbRoom->setValue(ui->dRoom->value());
+ ui->sbDamp->setValue(ui->dDamp->value());
+ ui->sbWidth->setValue(ui->dWidth->value());
+ ui->sbLevelR->setValue(ui->dLevelR->value());
+ ui->sbFeedBack->setValue(ui->dFeedBack->value());
+ ui->sbRate->setValue(ui->dRate->value() / 100.);
+ ui->sbDepth->setValue(ui->dDepth->value() / 10.);
+ ui->sbLevelC->setValue(ui->dLevelC->value());
+ sendEfxChange();
}
void qmpEfxWindow::spinValueChange()
{
- if(!initialized)return;
- ui->dRoom->setValue(ui->sbRoom->value());
- ui->dDamp->setValue(ui->sbDamp->value());
- ui->dWidth->setValue(ui->sbWidth->value());
- ui->dLevelR->setValue(ui->sbLevelR->value());
- ui->dFeedBack->setValue(ui->sbFeedBack->value());
- ui->dRate->setValue((int)(ui->sbRate->value()*100));
- ui->dDepth->setValue((int)(ui->sbDepth->value()*10));
- ui->dLevelC->setValue(ui->sbLevelC->value());
- sendEfxChange();
+ if (!initialized)
+ return;
+ ui->dRoom->setValue(ui->sbRoom->value());
+ ui->dDamp->setValue(ui->sbDamp->value());
+ ui->dWidth->setValue(ui->sbWidth->value());
+ ui->dLevelR->setValue(ui->sbLevelR->value());
+ ui->dFeedBack->setValue(ui->sbFeedBack->value());
+ ui->dRate->setValue((int)(ui->sbRate->value() * 100));
+ ui->dDepth->setValue((int)(ui->sbDepth->value() * 10));
+ ui->dLevelC->setValue(ui->sbLevelC->value());
+ sendEfxChange();
}
void qmpEfxWindow::on_dRoom_valueChanged()
-{dailValueChange();}
+{
+ dailValueChange();
+}
void qmpEfxWindow::on_dDamp_valueChanged()
-{dailValueChange();}
+{
+ dailValueChange();
+}
void qmpEfxWindow::on_dWidth_valueChanged()
-{dailValueChange();}
+{
+ dailValueChange();
+}
void qmpEfxWindow::on_dLevelR_valueChanged()
-{dailValueChange();}
+{
+ dailValueChange();
+}
void qmpEfxWindow::on_dFeedBack_valueChanged()
-{dailValueChange();}
+{
+ dailValueChange();
+}
void qmpEfxWindow::on_dRate_valueChanged()
-{dailValueChange();}
+{
+ dailValueChange();
+}
void qmpEfxWindow::on_dDepth_valueChanged()
-{dailValueChange();}
+{
+ dailValueChange();
+}
void qmpEfxWindow::on_dLevelC_valueChanged()
-{dailValueChange();}
+{
+ dailValueChange();
+}
void qmpEfxWindow::on_sbRoom_valueChanged(QString s)
-{s=QString();spinValueChange();}
+{
+ s = QString();
+ spinValueChange();
+}
void qmpEfxWindow::on_sbDamp_valueChanged(QString s)
-{s=QString();spinValueChange();}
+{
+ s = QString();
+ spinValueChange();
+}
void qmpEfxWindow::on_sbWidth_valueChanged(QString s)
-{s=QString();spinValueChange();}
+{
+ s = QString();
+ spinValueChange();
+}
void qmpEfxWindow::on_sbLevelR_valueChanged(QString s)
-{s=QString();spinValueChange();}
+{
+ s = QString();
+ spinValueChange();
+}
void qmpEfxWindow::on_sbFeedBack_valueChanged(QString s)
-{s=QString();spinValueChange();}
+{
+ s = QString();
+ spinValueChange();
+}
void qmpEfxWindow::on_sbRate_valueChanged(QString s)
-{s=QString();spinValueChange();}
+{
+ s = QString();
+ spinValueChange();
+}
void qmpEfxWindow::on_sbDepth_valueChanged(QString s)
-{s=QString();spinValueChange();}
+{
+ s = QString();
+ spinValueChange();
+}
void qmpEfxWindow::on_sbLevelC_valueChanged(QString s)
-{s=QString();spinValueChange();}
+{
+ s = QString();
+ spinValueChange();
+}
void qmpEfxWindow::on_cbEnabledC_stateChanged()
-{sendEfxChange();}
+{
+ sendEfxChange();
+}
void qmpEfxWindow::on_cbEnabledR_stateChanged()
-{sendEfxChange();}
+{
+ sendEfxChange();
+}
void qmpEfxWindow::on_rbSine_toggled()
-{sendEfxChange();}
+{
+ sendEfxChange();
+}
void qmpEfxWindow::on_rbTriangle_toggled()
-{sendEfxChange();}
+{
+ sendEfxChange();
+}
qmpEfxFunc::qmpEfxFunc(qmpEfxWindow *par)
-{p=par;}
+{
+ p = par;
+}
void qmpEfxFunc::show()
-{p->show();}
+{
+ p->show();
+}
void qmpEfxFunc::close()
-{p->close();}
+{
+ p->close();
+}