1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
9 MainWindow::MainWindow(QWidget *parent) :
11 ui(new Ui::MainWindow)
15 connect(ui->pushButtonRefresh, SIGNAL(clicked()), this, SLOT(RefreshInfo()));
16 //do something somehow
17 //connect(ui->comboBoxCPU, SIGNAL(currentIndexChanged(int)), SLOT(on_comboBoxCPU_Select()));
19 ui->labelTimeInStates->hide();
23 MainWindow::~MainWindow()
28 void MainWindow::RefreshInfo()
30 ui->labelTemperature->setText(QString(tr("Temperature: ")) + QString::number(omap_get_real_temperature()) + QChar(0x2103) + QString(tr(" real / "))+ QString::number(omap_get_raw_temperature()) + QString(tr(" raw")));
33 void MainWindow::InitCPU()
35 unsigned int cpu, nr_cpus;
36 unsigned long min, max;
37 unsigned int min_pctg = 0;
38 unsigned int max_pctg = 0;
39 struct cpufreq_policy *policy;
40 struct cpufreq_available_frequencies *freqs;
41 struct cpufreq_available_governors *governors;
45 ui->comboBoxCPU->clear();
46 nr_cpus = count_cpus();
49 ui->comboBoxCPU->addItem(QString::number(0),0);
50 ui->comboBoxCPU->hide();
53 for (cpu=0; cpu < nr_cpus; cpu++) {
54 ui->comboBoxCPU->addItem(QString::number(cpu),cpu);
57 //ui->label_3->setText(QString::number(nr_cpus));
61 policy = cpufreq_get_policy(ui->comboBoxCPU->currentText().toInt());
64 if (cpufreq_get_hardware_limits(ui->comboBoxCPU->currentText().toInt(), &min, &max)) {
67 min_pctg = (policy->min * 100) / max;
68 max_pctg = (policy->max * 100) / max;
72 // do not forget cpufreq_put_policy
75 ui->comboBoxCPUGovernor->clear();
76 governors = cpufreq_get_available_governors(ui->comboBoxCPU->currentText().toInt());
79 while (governors->next) {
80 ui->comboBoxCPUGovernor->addItem(governors->governor,i);
81 governors = governors->next;
84 ui->comboBoxCPUGovernor->addItem(governors->governor,i);
85 cpufreq_put_available_governors(governors);
87 ui->comboBoxCPUGovernor->setCurrentIndex(ui->comboBoxCPUGovernor->findText(QString(policy->governor)));
91 ui->comboBoxCPUFreq->clear();
92 freqs = cpufreq_get_available_frequencies(ui->comboBoxCPU->currentText().toInt());
95 ui->comboBoxCPUFreq->addItem(QString::number(freqs->frequency),int(freqs->frequency));
98 ui->comboBoxCPUFreq->addItem(QString::number(freqs->frequency),int(freqs->frequency));
99 //unsigned long hwfreq = cpufreq_get_freq_hardware(ui->comboBoxCPU->currentText().toInt());
100 //ui->comboBoxCPUFreq->setCurrentIndex();
101 cpufreq_put_available_frequencies(freqs);
103 ui->comboBoxCPUFreq->setCurrentIndex(ui->comboBoxCPUFreq->findText(QString::number(policy->max)));
104 cpufreq_put_policy(policy);
105 // CPU Frequencies END
108 ui->lineEditUpThreshold->clear();
109 ui->lineEditUpThreshold->setText(QString::number(cpufreq_get_up_threshold(ui->comboBoxCPU->currentText().toInt())));
113 ui->lineEditSamplingRate->clear();
114 ui->lineEditSamplingRate->setText(QString::number(cpufreq_get_sampling_rate(ui->comboBoxCPU->currentText().toInt())));
118 i = cpufreq_get_ignore_nice_load(ui->comboBoxCPU->currentText().toInt());
120 ui->checkBoxIgnoreNiceLoad->hide();
122 ui->checkBoxIgnoreNiceLoad->show();
124 ui->checkBoxIgnoreNiceLoad->setChecked(true);
126 ui->checkBoxIgnoreNiceLoad->setChecked(false);
128 // ignore_nice_load END
131 i = cpufreq_get_SmartReflex();
133 ui->checkBoxSmartReflex->hide();
135 ui->checkBoxSmartReflex->show();
137 ui->checkBoxSmartReflex->setChecked(true);
139 ui->checkBoxSmartReflex->setChecked(false);
144 void MainWindow::changeEvent(QEvent *e)
146 QMainWindow::changeEvent(e);
148 case QEvent::LanguageChange:
149 ui->retranslateUi(this);
156 void MainWindow::on_pushButtonClear_clicked()
158 ui->comboBoxCPU->clear();
159 ui->comboBoxCPUFreq->clear();
160 ui->comboBoxCPUGovernor->clear();
161 ui->lineEditUpThreshold->clear();
165 void MainWindow::on_pushButtonApply_clicked()
167 struct cpufreq_policy *cur_pol = cpufreq_get_policy(ui->comboBoxCPU->currentText().toInt());
168 struct cpufreq_policy *new_pol = new cpufreq_policy();
171 new_pol->governor = NULL;
172 new_pol->max = ui->comboBoxCPUFreq->currentText().toInt();
173 new_pol->governor = ui->comboBoxCPUGovernor->currentText().toAscii().data();
179 new_pol->min = cur_pol->min;
182 new_pol->max = cur_pol->max;
184 if (!new_pol->governor)
185 new_pol->governor = cur_pol->governor;
187 //TODO add error check
188 cpufreq_set_policy(ui->comboBoxCPU->currentText().toInt(), new_pol);
190 if(strcmp(new_pol->governor,"userspace")==0)
192 cpufreq_set_frequency(ui->comboBoxCPU->currentText().toInt(), new_pol->max);
193 //ui->label_3->setText("Ok");
195 //ui->label_3->setText("No");
198 //TODO add error check
199 if(strcmp(new_pol->governor,"ondemand")==0)
201 cpufreq_set_up_threshold(ui->comboBoxCPU->currentText().toInt(),ui->lineEditUpThreshold->text().toULong());
202 cpufreq_set_sampling_rate(ui->comboBoxCPU->currentText().toInt(),ui->lineEditSamplingRate->text().toULong());
203 if(ui->checkBoxIgnoreNiceLoad->isVisible())
204 cpufreq_set_ignore_nice_load(ui->comboBoxCPU->currentText().toInt(), (int) ui->checkBoxIgnoreNiceLoad->isChecked());
206 if(ui->checkBoxSmartReflex->isVisible()) {
207 if(ui->checkBoxSmartReflex->isChecked()) {
208 cpufreq_set_SmartReflex(3);
210 cpufreq_set_SmartReflex(0);
214 cpufreq_put_policy(cur_pol);
217 //QMessageBox::about(this,"About","hello");
218 //QMessageBox::about(0, "Trolltech", "<a href='http://www.trolltech.com'>Trolltech</a>");
221 void MainWindow::on_pushButtonAbout_clicked()
223 QMessageBox::about(this,tr("About"),tr("cpufreqUI version ") + QString(CPUFREQUI_VERSION) + tr("<br>Copyright (C) 2010 Alexander R. a.k.a. SR"));