packages feed

xcffib 1.2.0 → 1.3.0

raw patch · 5 files changed

+127/−7 lines, 5 filesdep ~xcb-typesPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: xcb-types

API changes (from Hackage documentation)

Files

generator/Data/XCB/Python/Parse.hs view
@@ -290,7 +290,8 @@                      -> Either (Maybe String, String)                                (String, Either (Expr (), Expr ())                                                ([(Expr (), [GenStructElem Type])]), Maybe Int)-structElemToPyUnpack _ _ _ (Pad i) = Left (Nothing, mkPad i)+structElemToPyUnpack _ _ _ (Pad PadBytes i) = Left (Nothing, mkPad i)+structElemToPyUnpack _ _ _ (Pad PadAlignment _) = Left (Nothing, "")  -- XXX: This is a cheap hack for noop, we should really do better. structElemToPyUnpack _ _ _ (Doc _ _ _) = Left (Nothing, "")@@ -357,7 +358,7 @@                    -> Either (Maybe String, String) [(String, Either (Maybe (Expr ()))                                                                      [(Expr (), [GenStructElem Type])]                                                     )]-structElemToPyPack _ _ _ (Pad i) = Left (Nothing, mkPad i)+structElemToPyPack _ _ _ (Pad _ i) = Left (Nothing, mkPad i) -- TODO: implement these? structElemToPyPack _ _ _ (Doc _ _ _) = Left (Nothing, "") structElemToPyPack _ _ _ (Fd _) = Left (Nothing, "")@@ -654,7 +655,7 @@   if null names then [] else [Decorated [classmethod] synthetic ()]     where       getName :: GenStructElem Type -> Maybe String-      getName (Pad _) = Nothing+      getName (Pad _ _) = Nothing       getName (X.List n _ _ _) = Just n       getName (SField n _ _ _) = Just n       getName (ExprField n _ _) = Just n
test/GeneratorTests.hs view
@@ -41,6 +41,7 @@           , "render_1.7"           , "xproto_1.7"           , "render"+          , "randr"           , "eventstruct"           ] 
+ test/generator/randr.py view
@@ -0,0 +1,65 @@+import xcffib+import struct+import io+MAJOR_VERSION = 1+MINOR_VERSION = 6+key = xcffib.ExtensionKey("RANDR")+_events = {}+_errors = {}+class TRANSFORM(xcffib.Struct):+    xge = False+    def __init__(self, unpacker):+        if isinstance(unpacker, xcffib.Protobj):+            unpacker = xcffib.MemoryUnpacker(unpacker.pack())+        xcffib.Struct.__init__(self, unpacker)+        base = unpacker.offset+        self.matrix11, self.matrix12, self.matrix13, self.matrix21, self.matrix22, self.matrix23, self.matrix31, self.matrix32, self.matrix33 = unpacker.unpack("iiiiiiiii")+        self.bufsize = unpacker.offset - base+    def pack(self):+        buf = io.BytesIO()+        buf.write(struct.pack("=iiiiiiiii", self.matrix11, self.matrix12, self.matrix13, self.matrix21, self.matrix22, self.matrix23, self.matrix31, self.matrix32, self.matrix33))+        return buf.getvalue()+    fixed_size = 36+    @classmethod+    def synthetic(cls, matrix11, matrix12, matrix13, matrix21, matrix22, matrix23, matrix31, matrix32, matrix33):+        self = cls.__new__(cls)+        self.matrix11 = matrix11+        self.matrix12 = matrix12+        self.matrix13 = matrix13+        self.matrix21 = matrix21+        self.matrix22 = matrix22+        self.matrix23 = matrix23+        self.matrix31 = matrix31+        self.matrix32 = matrix32+        self.matrix33 = matrix33+        return self+class GetCrtcTransformReply(xcffib.Reply):+    xge = False+    def __init__(self, unpacker):+        if isinstance(unpacker, xcffib.Protobj):+            unpacker = xcffib.MemoryUnpacker(unpacker.pack())+        xcffib.Reply.__init__(self, unpacker)+        base = unpacker.offset+        unpacker.unpack("xx2x4x")+        self.pending_transform = TRANSFORM(unpacker)+        self.has_transforms, = unpacker.unpack("B3x")+        unpacker.pad(TRANSFORM)+        self.current_transform = TRANSFORM(unpacker)+        self.pending_len, self.pending_nparams, self.current_len, self.current_nparams = unpacker.unpack("4xHHHH")+        unpacker.pad("c")+        self.pending_filter_name = xcffib.List(unpacker, "c", self.pending_len)+        unpacker.pad("i")+        self.pending_params = xcffib.List(unpacker, "i", self.pending_nparams)+        unpacker.pad("c")+        self.current_filter_name = xcffib.List(unpacker, "c", self.current_len)+        unpacker.pad("i")+        self.current_params = xcffib.List(unpacker, "i", self.current_nparams)+        self.bufsize = unpacker.offset - base+class GetCrtcTransformCookie(xcffib.Cookie):+    reply_type = GetCrtcTransformReply+class randrExtension(xcffib.Extension):+    def GetCrtcTransform(self, crtc, is_checked=True):+        buf = io.BytesIO()+        buf.write(struct.pack("=xx2xI", crtc))+        return self.send_request(27, buf, GetCrtcTransformCookie, is_checked=is_checked)+xcffib._add_ext(key, randrExtension, _events, _errors)
+ test/generator/randr.xml view
@@ -0,0 +1,53 @@+<xcb header="randr" extension-xname="RANDR" extension-name="RandR"+    major-version="1" minor-version="6">++  <typedef oldname="INT32" newname="FIXED" />++  <struct name="TRANSFORM">+    <field type="FIXED" name="matrix11" />+    <field type="FIXED" name="matrix12" />+    <field type="FIXED" name="matrix13" />+    <field type="FIXED" name="matrix21" />+    <field type="FIXED" name="matrix22" />+    <field type="FIXED" name="matrix23" />+    <field type="FIXED" name="matrix31" />+    <field type="FIXED" name="matrix32" />+    <field type="FIXED" name="matrix33" />+  </struct>++	<xidtype name="MODE" />+	<xidtype name="CRTC" />+	<xidtype name="OUTPUT" />+	<xidtype name="PROVIDER" />+	<xidtype name="LEASE" />++	<request name="GetCrtcTransform" opcode="27">+		<field type="CRTC" name="crtc" />+		<reply>+			<pad bytes="1" />+			<field type="TRANSFORM" name="pending_transform" />+			<field type="BOOL" name="has_transforms" />+			<pad bytes="3" />+			<field type="TRANSFORM" name="current_transform" />+			<pad bytes="4" />+			<field type="CARD16" name="pending_len" />+			<field type="CARD16" name="pending_nparams" />+			<field type="CARD16" name="current_len" />+			<field type="CARD16" name="current_nparams" />+			<list type="char" name="pending_filter_name" >+				<fieldref>pending_len</fieldref>+			</list>+			<pad align="4" />+			<list type="FIXED" name="pending_params" >+				<fieldref>pending_nparams</fieldref>+			</list>+			<list type="char" name="current_filter_name" >+				<fieldref>current_len</fieldref>+			</list>+			<pad align="4" />+			<list type="FIXED" name="current_params" >+				<fieldref>current_nparams</fieldref>+			</list>+		</reply>+	</request>+</xcb>
xcffib.cabal view
@@ -1,5 +1,5 @@ name:                xcffib-version:             1.2.0+version:             1.3.0 synopsis:            A cffi-based python binding for X homepage:            http://github.com/tych0/xcffib license:             OtherLicense@@ -25,7 +25,7 @@  library   build-depends: base ==4.*,-                 xcb-types >= 0.12.0,+                 xcb-types >= 0.13.0,                  language-python >= 0.5.6,                  filepath,                  filemanip,@@ -48,7 +48,7 @@                  xcffib,                  language-python >= 0.5.6,                  split,-                 xcb-types >= 0.12.0,+                 xcb-types >= 0.13.0,                  optparse-applicative >= 0.13,                  filepath,                  filemanip,@@ -83,7 +83,7 @@   type: exitcode-stdio-1.0   build-depends: base ==4.*,                  xcffib,-                 xcb-types >= 0.12.0,+                 xcb-types >= 0.13.0,                  language-python >= 0.5.6,                  HUnit,                  test-framework,