summaryrefslogtreecommitdiffstats
path: root/src/x.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/x.cpp')
-rw-r--r--src/x.cpp42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/x.cpp b/src/x.cpp
index 6c9e0e2..82c07fc 100644
--- a/src/x.cpp
+++ b/src/x.cpp
@@ -16,8 +16,15 @@ namespace X
_screenResources = XRRGetScreenResourcesCurrent(_display, DefaultRootWindow(_display));
/* Get informations about Xserver */
+ updateScreenResources();
+ }
+
+ //___________________________________________________________________________
+ void Screen::updateScreenResources()
+ {
// Create the modemap
+ _modeMap.clear();
for (int i = 0; i < _screenResources->nmode; ++i)
{
_modeMap.insert(
@@ -27,6 +34,7 @@ namespace X
}
// Create crtcMap
+ _crtcMap.clear();
for (int i = 0; i < _screenResources->ncrtc; ++i)
{
_crtcMap.insert(
@@ -36,6 +44,7 @@ namespace X
}
// Create outputMap
+ _outputMap.clear();
for (int i = 0; i < _screenResources->noutput; ++i)
{
_outputMap.insert(
@@ -45,11 +54,42 @@ namespace X
}
// Create connectedOutputMap
+ _connectedOutputList.clear();
for (OutputMap::iterator it = _outputMap.begin();
it != _outputMap.end(); ++it)
if ( (*it)->isConnected() )
_connectedOutputList.push_back((*it)->_id);
+ }
+ //___________________________________________________________________________
+ void Screen::createMode(
+ unsigned int resX,
+ unsigned int resY,
+ unsigned long dotClock,
+ unsigned int hSyncStart,
+ unsigned int hSyncEnd,
+ unsigned int hTotal,
+ unsigned int vSyncStart,
+ unsigned int vSyncEnd,
+ unsigned int vTotal,
+ QString name)
+ {
+ XRRModeInfo m;
+ m.width = resX;
+ m.height = resY;
+ m.dotClock = dotClock;
+ m.hSyncStart= hSyncStart;
+ m.hSyncEnd = hSyncEnd;
+ m.hTotal = hTotal;
+ m.hSkew = 0;
+ m.vSyncStart= vSyncStart;
+ m.vSyncEnd = vSyncEnd;
+ m.vTotal = vTotal;
+ QByteArray ba = name.toLocal8Bit();
+ m.name = ba.data();
+
+ XRRCreateMode(const_cast<Display*>(X::Screen::inst()->display()), DefaultRootWindow(X::Screen::inst()->display()), &m);
+ //XRRAddOutputMode();
}
//___________________________________________________________________________
@@ -299,7 +339,7 @@ namespace X
qDebug() << "Output: " << _id << _name << _crtc
- << _metricDimension << _clones << _modes;
+ << _metricDimension << _clones << _modes;
}
// //_________________________________________________________________________