summaryrefslogtreecommitdiffstats
path: root/oldsrc/displaymanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'oldsrc/displaymanager.cpp')
-rw-r--r--oldsrc/displaymanager.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/oldsrc/displaymanager.cpp b/oldsrc/displaymanager.cpp
new file mode 100644
index 0000000..61f35ea
--- /dev/null
+++ b/oldsrc/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;
+}