Add LogManager and add log messages for the detection process

Commit amended for code style and to remove unrelated changes by Adam Honse <calcprogrammer1@gmail.com>
This commit is contained in:
k1-801 2020-12-08 14:37:05 +04:00 committed by Adam Honse
parent 78ea2ee8f0
commit ca11939277
4 changed files with 328 additions and 1 deletions

View file

@ -11,6 +11,7 @@
#include "ResourceManager.h"
#include "ProfileManager.h"
#include "LogManager.h"
#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING
#include <experimental/filesystem>
@ -59,6 +60,11 @@ ResourceManager::ResourceManager()
\*-------------------------------------------------------------------------*/
settings_manager = new SettingsManager();
settings_manager->LoadSettings(GetConfigurationDirectory() + "OpenRGB.json");
/*-------------------------------------------------------------------------*\
| Configure the log manager |
\*-------------------------------------------------------------------------*/
LogManager::get()->configure(settings_manager->GetSettings("Client"), GetConfigurationDirectory());
}
ResourceManager::~ResourceManager()
@ -78,6 +84,7 @@ std::vector<i2c_smbus_interface*> & ResourceManager::GetI2CBusses()
void ResourceManager::RegisterRGBController(RGBController *rgb_controller)
{
LogAppend(LogSection("Detection", LL_DEBUG), LL_DEBUG, "Registering RGB controller: %s", rgb_controller->name.c_str());
rgb_controllers_hw.push_back(rgb_controller);
DeviceListChanged();
@ -424,6 +431,14 @@ void ResourceManager::DetectDevicesThreadFunction()
unsigned int prev_count = 0;
bool save_settings = false;
std::vector<bool> size_used;
int detection_section;
/*-------------------------------------------------*\
| Create a log debug section named Detection |
\*-------------------------------------------------*/
detection_section = LogSection("Detection", LL_DEBUG);
LogAppend(detection_section, LL_NOTICE, "Detection started" );
size_used.resize(rgb_controllers_sizes.size());
@ -478,6 +493,8 @@ void ResourceManager::DetectDevicesThreadFunction()
/*-------------------------------------------------*\
| Detect i2c busses |
\*-------------------------------------------------*/
LogAppend(detection_section, LL_DEBUG, "Detecting I2C/SMBus busses");
for(unsigned int i2c_bus_detector_idx = 0; i2c_bus_detector_idx < i2c_bus_detectors.size() && detection_is_required.load(); i2c_bus_detector_idx++)
{
i2c_bus_detectors[i2c_bus_detector_idx](busses);
@ -487,6 +504,8 @@ void ResourceManager::DetectDevicesThreadFunction()
/*-------------------------------------------------*\
| Detect i2c devices |
\*-------------------------------------------------*/
LogAppend(detection_section, LL_DEBUG, "Detecting I2C/SMBus devices");
for(unsigned int i2c_detector_idx = 0; i2c_detector_idx < i2c_device_detectors.size() && detection_is_required.load(); i2c_detector_idx++)
{
detection_string = i2c_device_detector_strings[i2c_detector_idx].c_str();
@ -563,6 +582,8 @@ void ResourceManager::DetectDevicesThreadFunction()
if(hid_safe_mode)
{
LogAppend(detection_section, LL_NOTICE, "Detecting HID devices in safe mode");
/*-----------------------------------------------------------------------------*\
| Loop through all available detectors. If all required information matches, |
| run the detector |
@ -571,6 +592,8 @@ void ResourceManager::DetectDevicesThreadFunction()
{
hid_devices = hid_enumerate(hid_device_detectors[hid_detector_idx].address >> 16, hid_device_detectors[hid_detector_idx].address & 0x0000FFFF);
LogAppend(detection_section, LL_NOTICE, "Trying to run detector for [%s] (for 0x%08hx)", hid_device_detectors[hid_detector_idx].name.c_str(), hid_device_detectors[hid_detector_idx].address);
current_hid_device = hid_devices;
while(current_hid_device)
@ -639,6 +662,8 @@ void ResourceManager::DetectDevicesThreadFunction()
}
else
{
LogAppend(detection_section, LL_NOTICE, "Detecting HID devices");
/*-------------------------------------------------*\
| Iterate through all devices in list and run |
| detectors |
@ -719,6 +744,8 @@ void ResourceManager::DetectDevicesThreadFunction()
/*-------------------------------------------------*\
| Detect other devices |
\*-------------------------------------------------*/
LogAppend(detection_section, LL_NOTICE, "Detecting other devices");
for(unsigned int detector_idx = 0; detector_idx < device_detectors.size() && detection_is_required.load(); detector_idx++)
{
detection_string = device_detector_strings[detector_idx].c_str();
@ -775,7 +802,6 @@ void ResourceManager::DetectDevicesThreadFunction()
| Make sure that when the detection is done, |
| progress bar is set to 100% |
\*-------------------------------------------------*/
detection_is_required = false;
detection_percent = 100;
detection_string = "";
@ -786,10 +812,14 @@ void ResourceManager::DetectDevicesThreadFunction()
if(save_settings)
{
LogAppend(detection_section, LL_NOTICE, "Saving detector settings");
settings_manager->SetSettings("Detectors", detector_settings);
settings_manager->SaveSettings();
}
LogAppend(detection_section, LL_NOTICE, "Detection completed");
}
void ResourceManager::StopDeviceDetection()