Implement basic monitor interface

This commit is contained in:
BlackMark 2020-07-05 20:24:34 +02:00
parent e5a5ff1958
commit 980da038b7
4 changed files with 57 additions and 1 deletions

View File

@ -38,7 +38,21 @@ int main(int argc, char* argv[])
}
}
const auto monitors = enumerateMonitors();
auto monitors = enumerateMonitors();
for(auto& monitor: monitors) {
const auto brightness = monitor.getBrightness();
qInfo(ltr("Monitor brightness: %1").arg(brightness));
if(!monitor.setBrightness(brightness)) {
qWarning(ltr("Failed to set brightness"));
}
if(!monitor) {
qWarning(ltr("Monitor invalid"));
}
}
MainWindow mainWindow;
mainWindow.show();

View File

@ -19,6 +19,11 @@ class Monitor {
Monitor() = delete;
~Monitor();
bool setBrightness(float percentage);
float getBrightness();
operator bool() const;
private:
struct PhysicalMonitor {
PhysicalMonitor(HANDLE handle, const WCHAR* name) : handle(handle), name(name) {}
@ -45,6 +50,11 @@ class Monitor {
public:
Monitor();
bool setBrightness(float);
float getBrightness();
operator bool() const;
private:
};

View File

@ -9,4 +9,19 @@ Monitor::Monitor()
assert(!"Not implemented");
}
bool Monitor::setBrightness(float)
{
assert(!"Not implemented");
}
float Monitor::getBrightness()
{
assert(!"Not implemented");
}
Monitor::operator bool() const
{
assert(!"Not implemented");
}
#endif

View File

@ -2,6 +2,8 @@
#ifdef _MSC_VER
#include <cmath>
#include <QtDebug>
#include <QtGlobal>
@ -28,6 +30,21 @@ Monitor::~Monitor()
.arg(reinterpret_cast<qulonglong>(m_physicalMonitor.handle), 0, 16));
}
bool Monitor::setBrightness(float percentage)
{
return false;
}
float Monitor::getBrightness()
{
return NAN;
}
Monitor::operator bool() const
{
return false;
}
bool Monitor::hasBrightnessCapability() const
{
qDebug(ltr("Getting capabilities for monitor '%1' with handle '0x%2' and physical handle '0x%3'")