/* * Copyright (C) 2015 Malte Veerman * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * */ #include "hwmon.h" #include "sensors.h" #include "loader.h" #include #include #include #include Hwmon::Hwmon(const QString &path, Loader *parent) : QObject(parent), m_parent(parent), m_path(path) { m_index = path.split('/').last().remove("hwmon").toInt(); QFile nameFile(path + "/name"); if (nameFile.open(QFile::ReadOnly)) m_name = QTextStream(&nameFile).readLine(); else m_name = path.split('/').last(); QDir dir(m_path); QStringList entrys = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); foreach (QString entry, entrys) { QString str = entry; int index = str.remove(QRegExp("\\D+")).toInt(); if (entry.contains("fan") && entry.contains("input")) { if (QFile::exists(m_path + "/pwm" + QString::number(index))) { PwmFan *newPwmFan = new PwmFan(this, index); connect(this, SIGNAL(sensorsUpdateNeeded()), newPwmFan, SLOT(update())); m_pwmFans << newPwmFan; emit pwmFansChanged(); m_fans << qobject_cast(newPwmFan); emit fansChanged(); } else { Fan *newFan = new Fan(this, index); connect(this, SIGNAL(sensorsUpdateNeeded()), newFan, SLOT(update())); m_fans << newFan; emit fansChanged(); } } if (entry.contains("temp") && entry.contains("input")) { Temp *newTemp = new Temp(this, index); connect(this, SIGNAL(sensorsUpdateNeeded()), newTemp, SLOT(update())); m_temps << newTemp; emit tempsChanged(); } } // qDebug() << "New Hwmon" << m_temps.size() << m_pwmFans.size(); } QList Hwmon::fans() const { QList list; foreach (Fan *fan, m_fans) { list << qobject_cast(fan); } return list; } QList Hwmon::pwmFans() const { QList list; foreach (PwmFan *pwmFan, m_pwmFans) { list << qobject_cast(pwmFan); } return list; } QList Hwmon::temps() const { QList list; foreach (Temp *temp, m_temps) { list << qobject_cast(temp); } return list; } void Hwmon::testFans() { for (int i=0; itest(); } }