File indexing completed on 2024-03-24 05:33:48

0001 /*
0002     SPDX-FileCopyrightText: 2018 Michail Vourlakos <mvourlakos@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #include "backgroundtracker.h"
0007 
0008 // local
0009 #include "plasma/extended/backgroundcache.h"
0010 
0011 namespace Latte {
0012 
0013 BackgroundTracker::BackgroundTracker(QObject *parent)
0014     : QObject(parent)
0015 {
0016     connect(this, &BackgroundTracker::activityChanged, this, &BackgroundTracker::update);
0017     connect(this, &BackgroundTracker::locationChanged, this, &BackgroundTracker::update);
0018     connect(this, &BackgroundTracker::screenNameChanged, this, &BackgroundTracker::update);
0019 
0020     connect(PlasmaExtended::BackgroundCache::self(), &PlasmaExtended::BackgroundCache::backgroundChanged, this, &BackgroundTracker::backgroundChanged);
0021 }
0022 
0023 BackgroundTracker::~BackgroundTracker()
0024 {
0025 }
0026 
0027 bool BackgroundTracker::isBusy() const
0028 {
0029     return m_busy;
0030 }
0031 
0032 int BackgroundTracker::location() const
0033 {
0034     return m_location;
0035 }
0036 
0037 void BackgroundTracker::setLocation(int location)
0038 {
0039     Plasma::Types::Location pLocation = static_cast<Plasma::Types::Location>(location);
0040 
0041     if (m_location == pLocation) {
0042         return;
0043     }
0044 
0045     m_location = pLocation;
0046 
0047     emit locationChanged();
0048 }
0049 
0050 float BackgroundTracker::currentBrightness() const
0051 {
0052     return m_brightness;
0053 }
0054 
0055 QString BackgroundTracker::activity() const
0056 {
0057     return m_activity;
0058 }
0059 
0060 void BackgroundTracker::setActivity(QString id)
0061 {
0062     if (m_activity == id) {
0063         return;
0064     }
0065 
0066     m_activity = id;
0067 
0068     emit activityChanged();
0069 }
0070 
0071 QString BackgroundTracker::screenName() const
0072 {
0073     return m_screenName;
0074 }
0075 
0076 void BackgroundTracker::setScreenName(QString name)
0077 {
0078     if (m_screenName == name) {
0079         return;
0080     }
0081 
0082     m_screenName = name;
0083 
0084     emit screenNameChanged();
0085 }
0086 
0087 void BackgroundTracker::backgroundChanged(const QString &activity, const QString &screenName)
0088 {
0089     if (m_activity==activity && m_screenName==screenName) {
0090         update();
0091     }
0092 }
0093 
0094 void BackgroundTracker::update()
0095 {
0096     if (m_activity.isEmpty() || m_screenName.isEmpty()) {
0097         return;
0098     }
0099 
0100     m_brightness = PlasmaExtended::BackgroundCache::self()->brightnessFor(m_activity, m_screenName, m_location);
0101     m_busy = PlasmaExtended::BackgroundCache::self()->busyFor(m_activity, m_screenName, m_location);
0102 
0103     emit currentBrightnessChanged();
0104     emit isBusyChanged();
0105 }
0106 
0107 }