File indexing completed on 2024-05-12 05:37:20

0001 /*
0002     SPDX-FileCopyrightText: 2007 Petri Damsten <damu@iki.fi>
0003     SPDX-FileCopyrightText: 2007 Christopher Blauvelt <cblauvelt@gmail.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-only
0006 */
0007 
0008 #pragma once
0009 
0010 #include <QMap>
0011 #include <QObject>
0012 #include <QString>
0013 #include <QStringList>
0014 #include <QTimer>
0015 #include <QVariant>
0016 
0017 class HddTemp : public QObject
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     enum DataType {
0023         Temperature = 0,
0024         Unit,
0025     };
0026 
0027     explicit HddTemp(QObject *parent = nullptr);
0028     ~HddTemp() override;
0029     QStringList sources();
0030     QVariant data(const QString source, const DataType type) const;
0031 
0032 protected:
0033     void timerEvent(QTimerEvent *event) override;
0034 
0035 private:
0036     int m_failCount = 0;
0037     bool m_cacheValid = false;
0038     QMap<QString, QList<QVariant>> m_data;
0039     bool updateData();
0040 };