From 9a9ffe7eebf14ea1828480c2e175e4fc39e26dac Mon Sep 17 00:00:00 2001 From: Manuel Schneider Date: Fri, 18 Oct 2013 11:25:12 +0200 Subject: [Incomplete] Commit for EDID testsystem --- src/displaymanager.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/displaymanager.cpp (limited to 'src/displaymanager.cpp') diff --git a/src/displaymanager.cpp b/src/displaymanager.cpp new file mode 100644 index 0000000..61f35ea --- /dev/null +++ b/src/displaymanager.cpp @@ -0,0 +1,36 @@ +#include "displaymanager.h" + + +DisplayManager * DisplayManager::Instance = NULL; + +DisplayManager::DisplayManager() +{ + dpy = NULL; + resources = NULL; + + + // Get initial data (to be freed) + dpy = XOpenDisplay(NULL); + resources = XRRGetScreenResourcesCurrent(dpy, DefaultRootWindow(dpy)); + + // Get outputs + for (int i = 0; i < resources->noutput; ++i) { + XRROutputInfo *info = XRRGetOutputInfo (dpy, resources, resources->outputs[i]); + if (info->connection == RR_Connected) + Outputs.push_back(Output(dpy, resources, resources->outputs[i])); + XRRFreeOutputInfo(info); + } +} + +DisplayManager::~DisplayManager() +{ + XCloseDisplay(dpy); + XRRFreeScreenResources(resources); +} + +DisplayManager *DisplayManager::Inst() +{ + if (Instance == 0) + Instance = new DisplayManager(); + return Instance; +} -- cgit v1.2.3-55-g7522