mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Start SmartPointers (#1679)
* Refactor to fix #1671 * Add GUI/NonGUI mode to info page * Do not show lock config, if in non-UI mode * Updae Changelog * Correct includes * Ensure key member initialization - RGB Channels * Ensure key member initialization - WebServer * Update RGBChannels * Fix initialization order * Fix key when inserting new logger in LoggerMap, Prepare logBuffer-JSON snapshot view in LoggerManager, Increase buffered loglines to 500 * Fix Memory leak in GrabberWrapper * Fix Memory leak in BlackBorderProcessor * Fix Memory leak in BlackBorderProcessor * use ninja generator under macos * Fix BGEffectHandler destruction * Fix Mdns code * Clear list after applying qDeleteAll * Fix deletion of CecHandler * Fix memory leak caused by wrong buffer allocation * Remove extra pixel consistently * Change mDNS to Qt SmartPointers * Correct removal * Fix usage of _width/_height (they are the output resolution, not the screen resolution) That avoids unnecessary resizing of the output image with every transferFrame call * Move main non Thread Objects to Smart Pointers * Refactor Hyperion Daemon unsing smartpointers * Correction * Correct typos/ align text * Fix startGrabberDispmanx * Fix startGrabberDispmanx * Address CodeQL finding * Create Screen grabbers via Template * Fix typo * Change way of logging * Revert change * Address deprecation warning * Correct auto screen grabber evaluation --------- Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
This commit is contained in:
@@ -53,7 +53,7 @@ Logger* Logger::getInstance(const QString & name, const QString & subName, Logge
|
||||
{
|
||||
log = new Logger(name, subName, minLevel);
|
||||
LoggerMap.insert(name + subName, log);
|
||||
connect(log, &Logger::newLogMessage, LoggerManager::getInstance(), &LoggerManager::handleNewLogMessage);
|
||||
connect(log, &Logger::newLogMessage, LoggerManager::getInstance().data(), &LoggerManager::handleNewLogMessage);
|
||||
}
|
||||
|
||||
return log;
|
||||
@@ -151,9 +151,8 @@ void Logger::write(const Logger::T_LOG_MESSAGE & message)
|
||||
name.resize(MAX_IDENTIFICATION_LENGTH, ' ');
|
||||
|
||||
const QDateTime timestamp = QDateTime::fromMSecsSinceEpoch(message.utime);
|
||||
|
||||
std::cout << QString("%1 %2 : <%3> %4%5")
|
||||
.arg(timestamp.toString("yyyy-MM-ddThh:mm:ss.zzz"))
|
||||
.arg(timestamp.toString(Qt::ISODateWithMs))
|
||||
.arg(name)
|
||||
.arg(LogLevelStrings[message.level])
|
||||
.arg(location)
|
||||
@@ -169,8 +168,10 @@ void Logger::Message(LogLevel level, const char* sourceFile, const char* func, u
|
||||
Logger::LogLevel globalLevel = static_cast<Logger::LogLevel>(int(GLOBAL_MIN_LOG_LEVEL));
|
||||
|
||||
if ( (globalLevel == Logger::UNSET && level < _minLevel) // no global level, use level from logger
|
||||
|| (globalLevel > Logger::UNSET && level < globalLevel) ) // global level set, use global level
|
||||
|| (globalLevel > Logger::UNSET && level < globalLevel) ) // global level set, use global level
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
const size_t max_msg_length = 1024;
|
||||
char msg[max_msg_length];
|
||||
@@ -188,7 +189,9 @@ void Logger::Message(LogLevel level, const char* sourceFile, const char* func, u
|
||||
write(repMsg);
|
||||
#ifndef _WIN32
|
||||
if ( _syslogEnabled && repMsg.level >= Logger::WARNING )
|
||||
{
|
||||
syslog (LogLevelSysLog[repMsg.level], "Previous line repeats %d times", RepeatCount.localData());
|
||||
}
|
||||
#endif
|
||||
|
||||
RepeatCount.setLocalData(0);
|
||||
@@ -201,14 +204,20 @@ void Logger::Message(LogLevel level, const char* sourceFile, const char* func, u
|
||||
RepeatMessage.localData().line == line)
|
||||
{
|
||||
if (RepeatCount.localData() >= MaxRepeatCountSize)
|
||||
{
|
||||
repeatedSummary();
|
||||
}
|
||||
else
|
||||
{
|
||||
RepeatCount.setLocalData(RepeatCount.localData() + 1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (RepeatCount.localData())
|
||||
{
|
||||
repeatedSummary();
|
||||
}
|
||||
|
||||
Logger::T_LOG_MESSAGE logMsg;
|
||||
|
||||
@@ -225,12 +234,16 @@ void Logger::Message(LogLevel level, const char* sourceFile, const char* func, u
|
||||
write(logMsg);
|
||||
#ifndef _WIN32
|
||||
if ( _syslogEnabled && level >= Logger::WARNING )
|
||||
{
|
||||
syslog (LogLevelSysLog[level], "%s", msg);
|
||||
}
|
||||
#endif
|
||||
RepeatMessage.setLocalData(logMsg);
|
||||
}
|
||||
}
|
||||
|
||||
QScopedPointer<LoggerManager> LoggerManager::instance;
|
||||
|
||||
LoggerManager::LoggerManager()
|
||||
: QObject()
|
||||
, _loggerMaxMsgBufferSize(MAX_LOG_MSG_BUFFERED)
|
||||
@@ -238,6 +251,14 @@ LoggerManager::LoggerManager()
|
||||
_logMessageBuffer.reserve(_loggerMaxMsgBufferSize);
|
||||
}
|
||||
|
||||
LoggerManager::~LoggerManager()
|
||||
{
|
||||
// delete components
|
||||
Logger::deleteInstance();
|
||||
|
||||
_logMessageBuffer.clear();
|
||||
}
|
||||
|
||||
QJsonArray LoggerManager::getLogMessageBuffer(Logger::LogLevel filter) const
|
||||
{
|
||||
QJsonArray messageArray;
|
||||
@@ -274,8 +295,12 @@ void LoggerManager::handleNewLogMessage(const Logger::T_LOG_MESSAGE & msg)
|
||||
emit newLogMessage(msg);
|
||||
}
|
||||
|
||||
LoggerManager* LoggerManager::getInstance()
|
||||
QScopedPointer<LoggerManager>& LoggerManager::getInstance()
|
||||
{
|
||||
static LoggerManager instance;
|
||||
return &instance;
|
||||
if (!instance)
|
||||
{
|
||||
instance.reset(new LoggerManager());
|
||||
}
|
||||
|
||||
return instance;
|
||||
}
|
||||
|
Reference in New Issue
Block a user