1.5.1
This commit is contained in:
@@ -1,93 +0,0 @@
|
||||
/*
|
||||
sys-clk manager, a sys-clk frontend homebrew
|
||||
Copyright (C) 2019 natinusala
|
||||
Copyright (C) 2019 p-sam
|
||||
Copyright (C) 2019 m4xw
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "refresh_task.h"
|
||||
|
||||
#include "utils.h"
|
||||
|
||||
#define REFRESH_INTERVAL 400
|
||||
|
||||
RefreshTask::RefreshTask() : RepeatingTask(REFRESH_INTERVAL)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void RefreshTask::onStart()
|
||||
{
|
||||
Result rc = sysclkIpcGetCurrentContext(&this->oldContext);
|
||||
if (R_FAILED(rc))
|
||||
{
|
||||
brls::Logger::error("Unable to get context");
|
||||
errorResult("sysclkIpcGetCurrentContext", rc);
|
||||
}
|
||||
}
|
||||
|
||||
void RefreshTask::run(retro_time_t currentTime)
|
||||
{
|
||||
RepeatingTask::run(currentTime);
|
||||
|
||||
// Get new context
|
||||
SysClkContext context;
|
||||
if (R_SUCCEEDED(sysclkIpcGetCurrentContext(&context)))
|
||||
{
|
||||
// CPU Freq
|
||||
if (context.freqs[SysClkModule_CPU] != this->oldContext.freqs[SysClkModule_CPU])
|
||||
this->freqUpdateEvent.fire(SysClkModule_CPU, context.freqs[SysClkModule_CPU]);
|
||||
|
||||
// GPU Freq
|
||||
if (context.freqs[SysClkModule_GPU] != this->oldContext.freqs[SysClkModule_GPU])
|
||||
this->freqUpdateEvent.fire(SysClkModule_GPU, context.freqs[SysClkModule_GPU]);
|
||||
|
||||
// MEM Freq
|
||||
if (context.freqs[SysClkModule_MEM] != this->oldContext.freqs[SysClkModule_MEM])
|
||||
this->freqUpdateEvent.fire(SysClkModule_MEM, context.freqs[SysClkModule_MEM]);
|
||||
|
||||
// Application ID
|
||||
if (context.applicationId != this->oldContext.applicationId)
|
||||
this->appIdUpdateEvent.fire(context.applicationId);
|
||||
|
||||
// Profile
|
||||
if (context.profile != this->oldContext.profile)
|
||||
this->profileUpdateEvent.fire(context.profile);
|
||||
|
||||
// Only notify temp changes every other tick
|
||||
if (this->shouldNotifyTempChange)
|
||||
{
|
||||
// PCB Temp
|
||||
if (context.temps[SysClkThermalSensor_PCB] != this->oldContext.temps[SysClkThermalSensor_PCB])
|
||||
this->tempUpdateEvent.fire(SysClkThermalSensor_PCB, context.temps[SysClkThermalSensor_PCB]);
|
||||
|
||||
//SoC Temp
|
||||
if (context.temps[SysClkThermalSensor_SOC] != this->oldContext.temps[SysClkThermalSensor_SOC])
|
||||
this->tempUpdateEvent.fire(SysClkThermalSensor_SOC, context.temps[SysClkThermalSensor_SOC]);
|
||||
|
||||
//Skin Temp
|
||||
if (context.temps[SysClkThermalSensor_Skin] != this->oldContext.temps[SysClkThermalSensor_Skin])
|
||||
this->tempUpdateEvent.fire(SysClkThermalSensor_Skin, context.temps[SysClkThermalSensor_Skin]);
|
||||
}
|
||||
|
||||
this->shouldNotifyTempChange = !this->shouldNotifyTempChange;
|
||||
this->oldContext = context;
|
||||
}
|
||||
else
|
||||
{
|
||||
brls::Logger::error("Unable to refresh context");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user