#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; }