Files
tuxclocker/amdpstateeditor.cpp

119 lines
4.5 KiB
C++
Raw Normal View History

2019-02-15 16:10:31 +02:00
#include "amdpstateeditor.h"
#include "ui_amdpstateeditor.h"
amdPstateEditor::amdPstateEditor(QWidget *parent) :
QDialog(parent),
ui(new Ui::amdPstateEditor)
{
ui->setupUi(this);
}
amdPstateEditor::~amdPstateEditor()
{
delete ui;
}
void amdPstateEditor::generateUI(gputypes *types)
2019-02-15 16:10:31 +02:00
{
2019-02-16 17:52:58 +02:00
QWidget *lower = new QWidget;
QWidget *upper = new QWidget;
QHBoxLayout *ulo = new QHBoxLayout;
QHBoxLayout *llo = new QHBoxLayout;
2019-02-19 01:57:42 +02:00
for (int i=0; i<types->GPUList[0].coreclocks.size(); i++) {
pstate pstate;
2019-02-16 17:52:58 +02:00
QGridLayout *glo = new QGridLayout;
2019-02-19 01:57:42 +02:00
QLabel *voltlabel = new QLabel;
QLabel *freqlabel = new QLabel;
QLabel *pstatelabel = new QLabel;
voltlabel->setText("mV");
freqlabel->setText("MHz");
pstatelabel->setText("Core pstate "+QString::number(i));
QSlider *freqslider = new QSlider;
QSlider *voltslider = new QSlider;
QSpinBox *freqspinbox = new QSpinBox;
QSpinBox *voltspinbox = new QSpinBox;
connect(freqslider, SIGNAL(valueChanged(int value)), SLOT(detectIndex()));
freqslider->setRange(types->GPUList[0].coreclocks[0], types->GPUList[0].coreclocks[types->GPUList[0].coreclocks.size()-1]);
freqspinbox->setRange(types->GPUList[0].coreclocks[0], types->GPUList[0].coreclocks[types->GPUList[0].coreclocks.size()-1]);
voltslider->setRange(types->GPUList[0].corevolts[0], types->GPUList[0].corevolts[types->GPUList[0].corevolts.size()-1]);
voltspinbox->setRange(types->GPUList[0].corevolts[0], types->GPUList[0].corevolts[types->GPUList[0].corevolts.size()-1]);
voltspinbox->setValue(types->GPUList[0].corevolts[i]);
freqspinbox->setValue(types->GPUList[0].coreclocks[i]);
glo->addWidget(pstatelabel);
glo->addWidget(freqlabel, 1, 0);
glo->addWidget(voltlabel, 1, 1);
glo->addWidget(freqslider, 2, 0);
glo->addWidget(voltslider, 2, 1);
glo->addWidget(freqspinbox, 3, 0);
glo->addWidget(voltspinbox, 3, 1);
QWidget *freqsliderowdg = new QWidget;
freqsliderowdg->setLayout(glo);
llo->addWidget(freqsliderowdg);
pstate.voltslider = voltslider;
pstate.freqslider = freqslider;
pstate.voltspinbox = voltspinbox;
pstate.freqspinbox = freqspinbox;
pstates.append(pstate);
2019-02-15 16:10:31 +02:00
}
2019-02-16 17:52:58 +02:00
for (int i=0; i<types->GPUList[0].memclocks.size(); i++) {
2019-02-19 01:57:42 +02:00
pstate pstate;
2019-02-16 17:52:58 +02:00
QGridLayout *glo = new QGridLayout;
2019-02-19 01:57:42 +02:00
QLabel *voltlabel = new QLabel;
QLabel *freqlabel = new QLabel;
QLabel *pstatelabel = new QLabel;
voltlabel->setText("mV");
freqlabel->setText("MHz");
pstatelabel->setText("Memory pstate "+QString::number(i));
QSlider *freqslider = new QSlider;
QSlider *voltslider = new QSlider;
QSpinBox *freqspinbox = new QSpinBox;
QSpinBox *voltspinbox = new QSpinBox;
freqslider->setRange(types->GPUList[0].memclocks[0], types->GPUList[0].memclocks[types->GPUList[0].memclocks.size()-1]);
freqspinbox->setRange(types->GPUList[0].coreclocks[0], types->GPUList[0].coreclocks[types->GPUList[0].memclocks.size()-1]);
voltslider->setRange(types->GPUList[0].memvolts[0], types->GPUList[0].memvolts[types->GPUList[0].memvolts.size()-1]);
voltspinbox->setRange(types->GPUList[0].memvolts[0], types->GPUList[0].memvolts[types->GPUList[0].memvolts.size()-1]);
voltspinbox->setValue(types->GPUList[0].memvolts[i]);
freqspinbox->setValue(types->GPUList[0].memclocks[i]);
glo->addWidget(pstatelabel);
glo->addWidget(freqlabel, 1, 0);
glo->addWidget(voltlabel, 1, 1);
glo->addWidget(freqslider, 2, 0);
glo->addWidget(voltslider, 2, 1);
glo->addWidget(freqspinbox, 3, 0);
glo->addWidget(voltspinbox, 3, 1);
QWidget *freqsliderowdg = new QWidget;
freqsliderowdg->setLayout(glo);
ulo->addWidget(freqsliderowdg);
pstate.voltslider = voltslider;
pstate.freqslider = freqslider;
pstate.voltspinbox = voltspinbox;
pstate.freqspinbox = freqspinbox;
pstates.append(pstate);
2019-02-16 17:52:58 +02:00
}
lower->setLayout(ulo);
upper->setLayout(llo);
2019-02-16 18:52:01 +02:00
QVBoxLayout *mainlo = new QVBoxLayout(this);
2019-02-16 17:52:58 +02:00
mainlo->addWidget(upper);
mainlo->addWidget(lower);
ui->centralWidget->setLayout(mainlo);
2019-02-15 16:10:31 +02:00
}
2019-02-19 01:57:42 +02:00
void amdPstateEditor::detectIndex()
{
for (int i=0; i<pstates.size(); i++) {
if (pstates[i].freqslider->isSliderDown()) {
qDebug() << "slider" << i << "is active";
}
}
}