Make bit-numbers available to code-generators
authorCarsten Meier <cm@trexity.de>
Wed, 3 Sep 2008 10:55:04 +0000 (12:55 +0200)
committerBart Massey <bart@cs.pdx.edu>
Wed, 3 Sep 2008 18:59:07 +0000 (11:59 -0700)
The Enum-class now exports the bit numbers in the 'bits'-list
if they have been specified in the protocol description.

Signed-off-by: Bart Massey <bart@cs.pdx.edu>
xcbgen/xtypes.py

index 1ba02eb..30617b8 100644 (file)
@@ -114,10 +114,12 @@ class Enum(SimpleType):
 
     Public fields added:
     values contains a list of (name, value) tuples.  value is empty, or a number.
+    bits contains a list of (name, bitnum) tuples.  items only appear if specified as a bit. bitnum is a number.
     '''
     def __init__(self, name, elt):
         SimpleType.__init__(self, name, 4)
         self.values = []
+        self.bits = []
         for item in list(elt):
             # First check if we're using a default value
             if len(list(item)) == 0:
@@ -130,6 +132,7 @@ class Enum(SimpleType):
                 self.values.append((item.get('name'), value.text))
             elif value.tag == 'bit':
                 self.values.append((item.get('name'), '%u' % (1 << int(value.text))))
+                self.bits.append((item.get('name'), value.text))
 
     def resolve(self, module):
         self.resolved = True