[Uludag-commits] r15298 - trunk/staj-projeleri/zorg/zorg
uludag-commits at pardus.org.tr
uludag-commits at pardus.org.tr
5 Eyl 2007 Çar 10:59:41 EEST
Author: fatih
Date: Wed Sep 5 10:59:41 2007
New Revision: 15298
Modified:
trunk/staj-projeleri/zorg/zorg/hwdata.py
trunk/staj-projeleri/zorg/zorg/probe.py
Log:
Log parsing code for RandR 1.2 enabled drivers
Modified: trunk/staj-projeleri/zorg/zorg/hwdata.py
=================================================================
--- trunk/staj-projeleri/zorg/zorg/hwdata.py (original)
+++ trunk/staj-projeleri/zorg/zorg/hwdata.py Wed Sep 5 10:59:41 2007
@@ -77,6 +77,7 @@
self.outputs = {}
self.monitors = []
+ self.tvStandards = []
self.randr12 = False
Modified: trunk/staj-projeleri/zorg/zorg/probe.py
=================================================================
--- trunk/staj-projeleri/zorg/zorg/probe.py (original)
+++ trunk/staj-projeleri/zorg/zorg/probe.py Wed Sep 5 10:59:41 2007
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
import os
+import re
import struct
from zorg.hwdata import *
@@ -232,7 +233,44 @@
device.monitors = findMonitors(device, 0, 1)
def queryRandrOutputs(device):
- pass
+ lines = xserverProbe(device)
+ if not lines:
+ return
+
+ findOutput = re.compile("^.*: Output (\S+) (.*)$")
+ outStates = ("connected", "disconnected", "enabled by config file")
+
+ parsingModesFor = ""
+
+ for line in lines:
+ if "Output" in line:
+ matched = findOutput.match(line)
+ if matched:
+ name, state = matched.groups()
+ if device.outputs.has_key(name) or not state in outStates:
+ continue
+ else:
+ device.outputs[name] = []
+
+ elif "Printing probed modes for output" in line:
+ name = line.rsplit(None, 1)[-1]
+ if device.outputs.has_key(name) and not device.outputs[name]:
+ parsingModesFor = name
+
+ elif parsingModesFor:
+ fields = line.split()
+ if "Modeline" in fields:
+ modeWithRate = fields[fields.index("Modeline") + 1]
+ mode, rate = modeWithRate.rsplit("x", 1)
+ mode = mode.strip('"')
+
+ if not mode in device.outputs[parsingModesFor]:
+ device.outputs[parsingModesFor].append(mode)
+ else:
+ parsingModesFor = ""
+
+ elif "TV standards supported by chip:" in line:
+ device.tvStandards = line.strip().rsplit(": ", 1)[1].split()
def queryNvidiaOutputs(device):
pass
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi