xcffib-0.2.2: tests/generator/struct.py
import xcffib
import struct
import six
_events = {}
_errors = {}
class AxisInfo(xcffib.Struct):
def __init__(self, unpacker):
xcffib.Struct.__init__(self, unpacker)
base = unpacker.offset
self.resolution, self.minimum, self.maximum = unpacker.unpack("Iii")
self.bufsize = unpacker.offset - base
def pack(self):
buf = six.BytesIO()
buf.write(struct.pack("=Iii", self.resolution, self.minimum, self.maximum))
return buf.getvalue()
fixed_size = 12
class ValuatorInfo(xcffib.Struct):
def __init__(self, unpacker):
xcffib.Struct.__init__(self, unpacker)
base = unpacker.offset
self.class_id, self.len, self.axes_len, self.mode, self.motion_size = unpacker.unpack("BBBBI")
self.axes = xcffib.List(unpacker, AxisInfo, self.axes_len)
self.bufsize = unpacker.offset - base
def pack(self):
buf = six.BytesIO()
buf.write(struct.pack("=BBBBI", self.class_id, self.len, self.axes_len, self.mode, self.motion_size))
buf.write(xcffib.pack_list(self.axes, AxisInfo))
return buf.getvalue()
xcffib._add_ext(key, structExtension, _events, _errors)