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:
LordGrey
2024-02-25 17:35:39 +01:00
committed by GitHub
parent bb40778a3d
commit 31df065c0f
65 changed files with 818 additions and 927 deletions

View File

@@ -30,11 +30,11 @@ const char DISCOVERY_FILEPATTERN[] = "fb?";
// Local includes
#include <grabber/framebuffer/FramebufferFrameGrabber.h>
FramebufferFrameGrabber::FramebufferFrameGrabber(const QString & device)
: Grabber("FRAMEBUFFERGRABBER")
, _fbDevice(device)
, _fbfd (-1)
FramebufferFrameGrabber::FramebufferFrameGrabber(int deviceIdx)
: Grabber("GRABBER-FB")
, _fbfd (-1)
{
_input = deviceIdx;
_useImageResampler = true;
}
@@ -105,6 +105,7 @@ bool FramebufferFrameGrabber::openDevice()
{
bool rc = true;
_fbDevice = getPath();
/* Open the framebuffer device */
_fbfd = ::open(QSTRING_CSTR(_fbDevice), O_RDONLY);
if (_fbfd < 0)
@@ -136,8 +137,7 @@ QSize FramebufferFrameGrabber::getScreenSize() const
QSize FramebufferFrameGrabber::getScreenSize(const QString& device) const
{
int width (0);
int height(0);
QSize size;
int fbfd = ::open(QSTRING_CSTR(device), O_RDONLY);
if (fbfd != -1)
@@ -146,13 +146,13 @@ QSize FramebufferFrameGrabber::getScreenSize(const QString& device) const
int result = ioctl (fbfd, FBIOGET_VSCREENINFO, &vinfo);
if (result == 0)
{
width = static_cast<int>(vinfo.xres);
height = static_cast<int>(vinfo.yres);
DebugIf(verbose, _log, "FB device [%s] found with resolution: %dx%d", QSTRING_CSTR(device), width, height);
size.setWidth(static_cast<int>(vinfo.xres));
size.setHeight(static_cast<int>(vinfo.yres));
DebugIf(verbose, _log, "FB device [%s] found with resolution: %dx%d", QSTRING_CSTR(device), size.width(), size.height());
}
::close(fbfd);
}
return QSize(width, height);
return size;
}
bool FramebufferFrameGrabber::getScreenInfo()

View File

@@ -1,14 +1,20 @@
#include <grabber/framebuffer/FramebufferWrapper.h>
FramebufferWrapper::FramebufferWrapper( int updateRate_Hz,
const QString & device,
int deviceIdx,
int pixelDecimation)
: GrabberWrapper("FrameBuffer", &_grabber, updateRate_Hz)
, _grabber(device)
: GrabberWrapper(GRABBERTYPE, &_grabber, updateRate_Hz)
, _grabber(deviceIdx)
{
_grabber.setPixelDecimation(pixelDecimation);
}
FramebufferWrapper::FramebufferWrapper(const QJsonDocument& grabberConfig)
: GrabberWrapper(GRABBERTYPE, &_grabber)
{
this->handleSettingsUpdate(settings::SYSTEMCAPTURE, grabberConfig);
}
void FramebufferWrapper::action()
{
transferFrame(_grabber);