package xgb /* This file was generated by xprint.xml on May 8 2012 11:03:25pm EDT. This file is automatically generated. Edit at your peril! */ // Imports are not necessary for XGB because everything is // in one package. They are still listed here for reference. // import "xproto" // XprintInit must be called before using the XpExtension extension. func (c *Conn) XprintInit() error { reply, err := c.QueryExtension(11, "XpExtension").Reply() switch { case err != nil: return err case !reply.Present: return errorf("No extension named XpExtension could be found on on the server.") } c.extLock.Lock() c.extensions["XpExtension"] = reply.MajorOpcode for evNum, fun := range newExtEventFuncs["XpExtension"] { newEventFuncs[int(reply.FirstEvent)+evNum] = fun } for errNum, fun := range newExtErrorFuncs["XpExtension"] { newErrorFuncs[int(reply.FirstError)+errNum] = fun } c.extLock.Unlock() return nil } func init() { newExtEventFuncs["XpExtension"] = make(map[int]newEventFun) newExtErrorFuncs["XpExtension"] = make(map[int]newErrorFun) } // Skipping definition for base type 'Int16' // Skipping definition for base type 'Int32' // Skipping definition for base type 'Void' // Skipping definition for base type 'Byte' // Skipping definition for base type 'Int8' // Skipping definition for base type 'Card16' // Skipping definition for base type 'Char' // Skipping definition for base type 'Card32' // Skipping definition for base type 'Double' // Skipping definition for base type 'Bool' // Skipping definition for base type 'Float' // Skipping definition for base type 'Id' // Skipping definition for base type 'Card8' const ( XprintGetDocFinished = 0 XprintGetDocSecondConsumer = 1 ) const ( XprintEvMaskNoEventMask = 0 XprintEvMaskPrintMask = 1 XprintEvMaskAttributeMask = 2 ) const ( XprintDetailStartJobNotify = 1 XprintDetailEndJobNotify = 2 XprintDetailStartDocNotify = 3 XprintDetailEndDocNotify = 4 XprintDetailStartPageNotify = 5 XprintDetailEndPageNotify = 6 ) const ( XprintAttrJobAttr = 1 XprintAttrDocAttr = 2 XprintAttrPageAttr = 3 XprintAttrPrinterAttr = 4 XprintAttrServerAttr = 5 XprintAttrMediumAttr = 6 XprintAttrSpoolerAttr = 7 ) // Skipping resource definition of 'Pcontext' type XprintString8 byte // 'XprintPrinter' struct definition // Size: (((4 + pad((int(NameLen) * 1))) + 4) + pad((int(DescLen) * 1))) type XprintPrinter struct { NameLen uint32 Name []XprintString8 // size: pad((int(NameLen) * 1)) DescLen uint32 Description []XprintString8 // size: pad((int(DescLen) * 1)) } // Struct read XprintPrinter func ReadXprintPrinter(buf []byte, v *XprintPrinter) int { b := 0 v.NameLen = Get32(buf[b:]) b += 4 v.Name = make([]XprintString8, v.NameLen) for i := 0; i < int(v.NameLen); i++ { v.Name[i] = XprintString8(buf[b]) b += 1 } b = pad(b) v.DescLen = Get32(buf[b:]) b += 4 v.Description = make([]XprintString8, v.DescLen) for i := 0; i < int(v.DescLen); i++ { v.Description[i] = XprintString8(buf[b]) b += 1 } b = pad(b) return b } // Struct list read XprintPrinter func ReadXprintPrinterList(buf []byte, dest []XprintPrinter) int { b := 0 for i := 0; i < len(dest); i++ { dest[i] = XprintPrinter{} b += ReadXprintPrinter(buf[b:], &dest[i]) } return pad(b) } // Struct write XprintPrinter func (v XprintPrinter) Bytes() []byte { buf := make([]byte, (((4 + pad((int(v.NameLen) * 1))) + 4) + pad((int(v.DescLen) * 1)))) b := 0 Put32(buf[b:], v.NameLen) b += 4 for i := 0; i < int(v.NameLen); i++ { buf[b] = byte(v.Name[i]) b += 1 } b = pad(b) Put32(buf[b:], v.DescLen) b += 4 for i := 0; i < int(v.DescLen); i++ { buf[b] = byte(v.Description[i]) b += 1 } b = pad(b) return buf } // Write struct list XprintPrinter func XprintPrinterListBytes(buf []byte, list []XprintPrinter) int { b := 0 var structBytes []byte for _, item := range list { structBytes = item.Bytes() copy(buf[b:], structBytes) b += pad(len(structBytes)) } return b } // Struct list size XprintPrinter func XprintPrinterListSize(list []XprintPrinter) int { size := 0 for _, item := range list { size += (((4 + pad((int(item.NameLen) * 1))) + 4) + pad((int(item.DescLen) * 1))) } return size } // Event definition XprintNotify (0) // Size: 32 const XprintNotify = 0 type XprintNotifyEvent struct { Sequence uint16 Detail byte Context Id Cancel bool } // Event read XprintNotify func NewXprintNotifyEvent(buf []byte) Event { v := XprintNotifyEvent{} b := 1 // don't read event number v.Detail = buf[b] b += 1 v.Sequence = Get16(buf[b:]) b += 2 v.Context = Id(Get32(buf[b:])) b += 4 if buf[b] == 1 { v.Cancel = true } else { v.Cancel = false } b += 1 return v } // Event write XprintNotify func (v XprintNotifyEvent) Bytes() []byte { buf := make([]byte, 32) b := 0 // write event number buf[b] = 0 b += 1 buf[b] = v.Detail b += 1 b += 2 // skip sequence number Put32(buf[b:], uint32(v.Context)) b += 4 if v.Cancel { buf[b] = 1 } else { buf[b] = 0 } b += 1 return buf } func (v XprintNotifyEvent) ImplementsEvent() {} func (v XprintNotifyEvent) SequenceId() uint16 { return v.Sequence } func (v XprintNotifyEvent) String() string { fieldVals := make([]string, 0, 3) fieldVals = append(fieldVals, sprintf("Sequence: %d", v.Sequence)) fieldVals = append(fieldVals, sprintf("Detail: %d", v.Detail)) fieldVals = append(fieldVals, sprintf("Context: %d", v.Context)) fieldVals = append(fieldVals, sprintf("Cancel: %t", v.Cancel)) return "XprintNotify {" + stringsJoin(fieldVals, ", ") + "}" } func init() { newExtEventFuncs["XpExtension"][0] = NewXprintNotifyEvent } // Event definition XprintAttributNotify (1) // Size: 32 const XprintAttributNotify = 1 type XprintAttributNotifyEvent struct { Sequence uint16 Detail byte Context Id } // Event read XprintAttributNotify func NewXprintAttributNotifyEvent(buf []byte) Event { v := XprintAttributNotifyEvent{} b := 1 // don't read event number v.Detail = buf[b] b += 1 v.Sequence = Get16(buf[b:]) b += 2 v.Context = Id(Get32(buf[b:])) b += 4 return v } // Event write XprintAttributNotify func (v XprintAttributNotifyEvent) Bytes() []byte { buf := make([]byte, 32) b := 0 // write event number buf[b] = 1 b += 1 buf[b] = v.Detail b += 1 b += 2 // skip sequence number Put32(buf[b:], uint32(v.Context)) b += 4 return buf } func (v XprintAttributNotifyEvent) ImplementsEvent() {} func (v XprintAttributNotifyEvent) SequenceId() uint16 { return v.Sequence } func (v XprintAttributNotifyEvent) String() string { fieldVals := make([]string, 0, 2) fieldVals = append(fieldVals, sprintf("Sequence: %d", v.Sequence)) fieldVals = append(fieldVals, sprintf("Detail: %d", v.Detail)) fieldVals = append(fieldVals, sprintf("Context: %d", v.Context)) return "XprintAttributNotify {" + stringsJoin(fieldVals, ", ") + "}" } func init() { newExtEventFuncs["XpExtension"][1] = NewXprintAttributNotifyEvent } // Error definition XprintBadContext (0) // Size: 32 const BadXprintBadContext = 0 type XprintBadContextError struct { Sequence uint16 NiceName string } // Error read XprintBadContext func NewXprintBadContextError(buf []byte) Error { v := XprintBadContextError{} v.NiceName = "XprintBadContext" b := 1 // skip error determinant b += 1 // don't read error number v.Sequence = Get16(buf[b:]) b += 2 return v } func (err XprintBadContextError) ImplementsError() {} func (err XprintBadContextError) SequenceId() uint16 { return err.Sequence } func (err XprintBadContextError) BadId() Id { return 0 } func (err XprintBadContextError) Error() string { fieldVals := make([]string, 0, 0) fieldVals = append(fieldVals, "NiceName: "+err.NiceName) fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence)) return "BadXprintBadContext {" + stringsJoin(fieldVals, ", ") + "}" } func init() { newExtErrorFuncs["XpExtension"][0] = NewXprintBadContextError } // Error definition XprintBadSequence (1) // Size: 32 const BadXprintBadSequence = 1 type XprintBadSequenceError struct { Sequence uint16 NiceName string } // Error read XprintBadSequence func NewXprintBadSequenceError(buf []byte) Error { v := XprintBadSequenceError{} v.NiceName = "XprintBadSequence" b := 1 // skip error determinant b += 1 // don't read error number v.Sequence = Get16(buf[b:]) b += 2 return v } func (err XprintBadSequenceError) ImplementsError() {} func (err XprintBadSequenceError) SequenceId() uint16 { return err.Sequence } func (err XprintBadSequenceError) BadId() Id { return 0 } func (err XprintBadSequenceError) Error() string { fieldVals := make([]string, 0, 0) fieldVals = append(fieldVals, "NiceName: "+err.NiceName) fieldVals = append(fieldVals, sprintf("Sequence: %d", err.Sequence)) return "BadXprintBadSequence {" + stringsJoin(fieldVals, ", ") + "}" } func init() { newExtErrorFuncs["XpExtension"][1] = NewXprintBadSequenceError } // Request XprintPrintQueryVersion // size: 4 type XprintPrintQueryVersionCookie struct { *cookie } func (c *Conn) XprintPrintQueryVersion() XprintPrintQueryVersionCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintQueryVersionRequest(), cookie) return XprintPrintQueryVersionCookie{cookie} } func (c *Conn) XprintPrintQueryVersionUnchecked() XprintPrintQueryVersionCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintQueryVersionRequest(), cookie) return XprintPrintQueryVersionCookie{cookie} } // Request reply for XprintPrintQueryVersion // size: 12 type XprintPrintQueryVersionReply struct { Sequence uint16 Length uint32 // padding: 1 bytes MajorVersion uint16 MinorVersion uint16 } // Waits and reads reply data from request XprintPrintQueryVersion func (cook XprintPrintQueryVersionCookie) Reply() (*XprintPrintQueryVersionReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintQueryVersionReply(buf), nil } // Read reply into structure from buffer for XprintPrintQueryVersion func xprintPrintQueryVersionReply(buf []byte) *XprintPrintQueryVersionReply { v := new(XprintPrintQueryVersionReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.MajorVersion = Get16(buf[b:]) b += 2 v.MinorVersion = Get16(buf[b:]) b += 2 return v } func (cook XprintPrintQueryVersionCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintQueryVersion func (c *Conn) xprintPrintQueryVersionRequest() []byte { size := 4 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 0 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 return buf } // Request XprintPrintGetPrinterList // size: pad(((12 + pad((int(PrinterNameLen) * 1))) + pad((int(LocaleLen) * 1)))) type XprintPrintGetPrinterListCookie struct { *cookie } func (c *Conn) XprintPrintGetPrinterList(PrinterNameLen uint32, LocaleLen uint32, PrinterName []XprintString8, Locale []XprintString8) XprintPrintGetPrinterListCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintGetPrinterListRequest(PrinterNameLen, LocaleLen, PrinterName, Locale), cookie) return XprintPrintGetPrinterListCookie{cookie} } func (c *Conn) XprintPrintGetPrinterListUnchecked(PrinterNameLen uint32, LocaleLen uint32, PrinterName []XprintString8, Locale []XprintString8) XprintPrintGetPrinterListCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintGetPrinterListRequest(PrinterNameLen, LocaleLen, PrinterName, Locale), cookie) return XprintPrintGetPrinterListCookie{cookie} } // Request reply for XprintPrintGetPrinterList // size: (32 + XprintPrinterListSize(Printers)) type XprintPrintGetPrinterListReply struct { Sequence uint16 Length uint32 // padding: 1 bytes ListCount uint32 // padding: 20 bytes Printers []XprintPrinter // size: XprintPrinterListSize(Printers) } // Waits and reads reply data from request XprintPrintGetPrinterList func (cook XprintPrintGetPrinterListCookie) Reply() (*XprintPrintGetPrinterListReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintGetPrinterListReply(buf), nil } // Read reply into structure from buffer for XprintPrintGetPrinterList func xprintPrintGetPrinterListReply(buf []byte) *XprintPrintGetPrinterListReply { v := new(XprintPrintGetPrinterListReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.ListCount = Get32(buf[b:]) b += 4 b += 20 // padding v.Printers = make([]XprintPrinter, v.ListCount) b += ReadXprintPrinterList(buf[b:], v.Printers) return v } func (cook XprintPrintGetPrinterListCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintGetPrinterList func (c *Conn) xprintPrintGetPrinterListRequest(PrinterNameLen uint32, LocaleLen uint32, PrinterName []XprintString8, Locale []XprintString8) []byte { size := pad(((12 + pad((int(PrinterNameLen) * 1))) + pad((int(LocaleLen) * 1)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 1 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], PrinterNameLen) b += 4 Put32(buf[b:], LocaleLen) b += 4 for i := 0; i < int(PrinterNameLen); i++ { buf[b] = byte(PrinterName[i]) b += 1 } b = pad(b) for i := 0; i < int(LocaleLen); i++ { buf[b] = byte(Locale[i]) b += 1 } b = pad(b) return buf } // Request XprintPrintRehashPrinterList // size: 4 type XprintPrintRehashPrinterListCookie struct { *cookie } // Write request to wire for XprintPrintRehashPrinterList func (c *Conn) XprintPrintRehashPrinterList() XprintPrintRehashPrinterListCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintRehashPrinterListRequest(), cookie) return XprintPrintRehashPrinterListCookie{cookie} } func (c *Conn) XprintPrintRehashPrinterListChecked() XprintPrintRehashPrinterListCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintRehashPrinterListRequest(), cookie) return XprintPrintRehashPrinterListCookie{cookie} } func (cook XprintPrintRehashPrinterListCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintRehashPrinterList func (c *Conn) xprintPrintRehashPrinterListRequest() []byte { size := 4 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 20 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 return buf } // Request XprintCreateContext // size: pad(((16 + pad((int(PrinterNameLen) * 1))) + pad((int(LocaleLen) * 1)))) type XprintCreateContextCookie struct { *cookie } // Write request to wire for XprintCreateContext func (c *Conn) XprintCreateContext(ContextId uint32, PrinterNameLen uint32, LocaleLen uint32, PrinterName []XprintString8, Locale []XprintString8) XprintCreateContextCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintCreateContextRequest(ContextId, PrinterNameLen, LocaleLen, PrinterName, Locale), cookie) return XprintCreateContextCookie{cookie} } func (c *Conn) XprintCreateContextChecked(ContextId uint32, PrinterNameLen uint32, LocaleLen uint32, PrinterName []XprintString8, Locale []XprintString8) XprintCreateContextCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintCreateContextRequest(ContextId, PrinterNameLen, LocaleLen, PrinterName, Locale), cookie) return XprintCreateContextCookie{cookie} } func (cook XprintCreateContextCookie) Check() error { return cook.check() } // Write request to wire for XprintCreateContext func (c *Conn) xprintCreateContextRequest(ContextId uint32, PrinterNameLen uint32, LocaleLen uint32, PrinterName []XprintString8, Locale []XprintString8) []byte { size := pad(((16 + pad((int(PrinterNameLen) * 1))) + pad((int(LocaleLen) * 1)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 2 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], ContextId) b += 4 Put32(buf[b:], PrinterNameLen) b += 4 Put32(buf[b:], LocaleLen) b += 4 for i := 0; i < int(PrinterNameLen); i++ { buf[b] = byte(PrinterName[i]) b += 1 } b = pad(b) for i := 0; i < int(LocaleLen); i++ { buf[b] = byte(Locale[i]) b += 1 } b = pad(b) return buf } // Request XprintPrintSetContext // size: 8 type XprintPrintSetContextCookie struct { *cookie } // Write request to wire for XprintPrintSetContext func (c *Conn) XprintPrintSetContext(Context uint32) XprintPrintSetContextCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintSetContextRequest(Context), cookie) return XprintPrintSetContextCookie{cookie} } func (c *Conn) XprintPrintSetContextChecked(Context uint32) XprintPrintSetContextCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintSetContextRequest(Context), cookie) return XprintPrintSetContextCookie{cookie} } func (cook XprintPrintSetContextCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintSetContext func (c *Conn) xprintPrintSetContextRequest(Context uint32) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 3 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], Context) b += 4 return buf } // Request XprintPrintGetContext // size: 4 type XprintPrintGetContextCookie struct { *cookie } func (c *Conn) XprintPrintGetContext() XprintPrintGetContextCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintGetContextRequest(), cookie) return XprintPrintGetContextCookie{cookie} } func (c *Conn) XprintPrintGetContextUnchecked() XprintPrintGetContextCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintGetContextRequest(), cookie) return XprintPrintGetContextCookie{cookie} } // Request reply for XprintPrintGetContext // size: 12 type XprintPrintGetContextReply struct { Sequence uint16 Length uint32 // padding: 1 bytes Context uint32 } // Waits and reads reply data from request XprintPrintGetContext func (cook XprintPrintGetContextCookie) Reply() (*XprintPrintGetContextReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintGetContextReply(buf), nil } // Read reply into structure from buffer for XprintPrintGetContext func xprintPrintGetContextReply(buf []byte) *XprintPrintGetContextReply { v := new(XprintPrintGetContextReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.Context = Get32(buf[b:]) b += 4 return v } func (cook XprintPrintGetContextCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintGetContext func (c *Conn) xprintPrintGetContextRequest() []byte { size := 4 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 4 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 return buf } // Request XprintPrintDestroyContext // size: 8 type XprintPrintDestroyContextCookie struct { *cookie } // Write request to wire for XprintPrintDestroyContext func (c *Conn) XprintPrintDestroyContext(Context uint32) XprintPrintDestroyContextCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintDestroyContextRequest(Context), cookie) return XprintPrintDestroyContextCookie{cookie} } func (c *Conn) XprintPrintDestroyContextChecked(Context uint32) XprintPrintDestroyContextCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintDestroyContextRequest(Context), cookie) return XprintPrintDestroyContextCookie{cookie} } func (cook XprintPrintDestroyContextCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintDestroyContext func (c *Conn) xprintPrintDestroyContextRequest(Context uint32) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 5 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], Context) b += 4 return buf } // Request XprintPrintGetScreenOfContext // size: 4 type XprintPrintGetScreenOfContextCookie struct { *cookie } func (c *Conn) XprintPrintGetScreenOfContext() XprintPrintGetScreenOfContextCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintGetScreenOfContextRequest(), cookie) return XprintPrintGetScreenOfContextCookie{cookie} } func (c *Conn) XprintPrintGetScreenOfContextUnchecked() XprintPrintGetScreenOfContextCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintGetScreenOfContextRequest(), cookie) return XprintPrintGetScreenOfContextCookie{cookie} } // Request reply for XprintPrintGetScreenOfContext // size: 12 type XprintPrintGetScreenOfContextReply struct { Sequence uint16 Length uint32 // padding: 1 bytes Root Id } // Waits and reads reply data from request XprintPrintGetScreenOfContext func (cook XprintPrintGetScreenOfContextCookie) Reply() (*XprintPrintGetScreenOfContextReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintGetScreenOfContextReply(buf), nil } // Read reply into structure from buffer for XprintPrintGetScreenOfContext func xprintPrintGetScreenOfContextReply(buf []byte) *XprintPrintGetScreenOfContextReply { v := new(XprintPrintGetScreenOfContextReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.Root = Id(Get32(buf[b:])) b += 4 return v } func (cook XprintPrintGetScreenOfContextCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintGetScreenOfContext func (c *Conn) xprintPrintGetScreenOfContextRequest() []byte { size := 4 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 6 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 return buf } // Request XprintPrintStartJob // size: 8 type XprintPrintStartJobCookie struct { *cookie } // Write request to wire for XprintPrintStartJob func (c *Conn) XprintPrintStartJob(OutputMode byte) XprintPrintStartJobCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintStartJobRequest(OutputMode), cookie) return XprintPrintStartJobCookie{cookie} } func (c *Conn) XprintPrintStartJobChecked(OutputMode byte) XprintPrintStartJobCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintStartJobRequest(OutputMode), cookie) return XprintPrintStartJobCookie{cookie} } func (cook XprintPrintStartJobCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintStartJob func (c *Conn) xprintPrintStartJobRequest(OutputMode byte) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 7 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = OutputMode b += 1 return buf } // Request XprintPrintEndJob // size: 8 type XprintPrintEndJobCookie struct { *cookie } // Write request to wire for XprintPrintEndJob func (c *Conn) XprintPrintEndJob(Cancel bool) XprintPrintEndJobCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintEndJobRequest(Cancel), cookie) return XprintPrintEndJobCookie{cookie} } func (c *Conn) XprintPrintEndJobChecked(Cancel bool) XprintPrintEndJobCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintEndJobRequest(Cancel), cookie) return XprintPrintEndJobCookie{cookie} } func (cook XprintPrintEndJobCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintEndJob func (c *Conn) xprintPrintEndJobRequest(Cancel bool) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 8 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 if Cancel { buf[b] = 1 } else { buf[b] = 0 } b += 1 return buf } // Request XprintPrintStartDoc // size: 8 type XprintPrintStartDocCookie struct { *cookie } // Write request to wire for XprintPrintStartDoc func (c *Conn) XprintPrintStartDoc(DriverMode byte) XprintPrintStartDocCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintStartDocRequest(DriverMode), cookie) return XprintPrintStartDocCookie{cookie} } func (c *Conn) XprintPrintStartDocChecked(DriverMode byte) XprintPrintStartDocCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintStartDocRequest(DriverMode), cookie) return XprintPrintStartDocCookie{cookie} } func (cook XprintPrintStartDocCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintStartDoc func (c *Conn) xprintPrintStartDocRequest(DriverMode byte) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 9 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 buf[b] = DriverMode b += 1 return buf } // Request XprintPrintEndDoc // size: 8 type XprintPrintEndDocCookie struct { *cookie } // Write request to wire for XprintPrintEndDoc func (c *Conn) XprintPrintEndDoc(Cancel bool) XprintPrintEndDocCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintEndDocRequest(Cancel), cookie) return XprintPrintEndDocCookie{cookie} } func (c *Conn) XprintPrintEndDocChecked(Cancel bool) XprintPrintEndDocCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintEndDocRequest(Cancel), cookie) return XprintPrintEndDocCookie{cookie} } func (cook XprintPrintEndDocCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintEndDoc func (c *Conn) xprintPrintEndDocRequest(Cancel bool) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 10 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 if Cancel { buf[b] = 1 } else { buf[b] = 0 } b += 1 return buf } // Request XprintPrintPutDocumentData // size: pad((((16 + pad((int(LenData) * 1))) + pad((len(DocFormat) * 1))) + pad((len(Options) * 1)))) type XprintPrintPutDocumentDataCookie struct { *cookie } // Write request to wire for XprintPrintPutDocumentData func (c *Conn) XprintPrintPutDocumentData(Drawable Id, LenData uint32, LenFmt uint16, LenOptions uint16, Data []byte, DocFormat []XprintString8, Options []XprintString8) XprintPrintPutDocumentDataCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintPutDocumentDataRequest(Drawable, LenData, LenFmt, LenOptions, Data, DocFormat, Options), cookie) return XprintPrintPutDocumentDataCookie{cookie} } func (c *Conn) XprintPrintPutDocumentDataChecked(Drawable Id, LenData uint32, LenFmt uint16, LenOptions uint16, Data []byte, DocFormat []XprintString8, Options []XprintString8) XprintPrintPutDocumentDataCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintPutDocumentDataRequest(Drawable, LenData, LenFmt, LenOptions, Data, DocFormat, Options), cookie) return XprintPrintPutDocumentDataCookie{cookie} } func (cook XprintPrintPutDocumentDataCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintPutDocumentData func (c *Conn) xprintPrintPutDocumentDataRequest(Drawable Id, LenData uint32, LenFmt uint16, LenOptions uint16, Data []byte, DocFormat []XprintString8, Options []XprintString8) []byte { size := pad((((16 + pad((int(LenData) * 1))) + pad((len(DocFormat) * 1))) + pad((len(Options) * 1)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 11 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Drawable)) b += 4 Put32(buf[b:], LenData) b += 4 Put16(buf[b:], LenFmt) b += 2 Put16(buf[b:], LenOptions) b += 2 copy(buf[b:], Data[:LenData]) b += pad(int(LenData)) for i := 0; i < int(len(DocFormat)); i++ { buf[b] = byte(DocFormat[i]) b += 1 } b = pad(b) for i := 0; i < int(len(Options)); i++ { buf[b] = byte(Options[i]) b += 1 } b = pad(b) return buf } // Request XprintPrintGetDocumentData // size: 12 type XprintPrintGetDocumentDataCookie struct { *cookie } func (c *Conn) XprintPrintGetDocumentData(Context Id, MaxBytes uint32) XprintPrintGetDocumentDataCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintGetDocumentDataRequest(Context, MaxBytes), cookie) return XprintPrintGetDocumentDataCookie{cookie} } func (c *Conn) XprintPrintGetDocumentDataUnchecked(Context Id, MaxBytes uint32) XprintPrintGetDocumentDataCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintGetDocumentDataRequest(Context, MaxBytes), cookie) return XprintPrintGetDocumentDataCookie{cookie} } // Request reply for XprintPrintGetDocumentData // size: (32 + pad((int(DataLen) * 1))) type XprintPrintGetDocumentDataReply struct { Sequence uint16 Length uint32 // padding: 1 bytes StatusCode uint32 FinishedFlag uint32 DataLen uint32 // padding: 12 bytes Data []byte // size: pad((int(DataLen) * 1)) } // Waits and reads reply data from request XprintPrintGetDocumentData func (cook XprintPrintGetDocumentDataCookie) Reply() (*XprintPrintGetDocumentDataReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintGetDocumentDataReply(buf), nil } // Read reply into structure from buffer for XprintPrintGetDocumentData func xprintPrintGetDocumentDataReply(buf []byte) *XprintPrintGetDocumentDataReply { v := new(XprintPrintGetDocumentDataReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.StatusCode = Get32(buf[b:]) b += 4 v.FinishedFlag = Get32(buf[b:]) b += 4 v.DataLen = Get32(buf[b:]) b += 4 b += 12 // padding v.Data = make([]byte, v.DataLen) copy(v.Data[:v.DataLen], buf[b:]) b += pad(int(v.DataLen)) return v } func (cook XprintPrintGetDocumentDataCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintGetDocumentData func (c *Conn) xprintPrintGetDocumentDataRequest(Context Id, MaxBytes uint32) []byte { size := 12 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 12 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Context)) b += 4 Put32(buf[b:], MaxBytes) b += 4 return buf } // Request XprintPrintStartPage // size: 8 type XprintPrintStartPageCookie struct { *cookie } // Write request to wire for XprintPrintStartPage func (c *Conn) XprintPrintStartPage(Window Id) XprintPrintStartPageCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintStartPageRequest(Window), cookie) return XprintPrintStartPageCookie{cookie} } func (c *Conn) XprintPrintStartPageChecked(Window Id) XprintPrintStartPageCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintStartPageRequest(Window), cookie) return XprintPrintStartPageCookie{cookie} } func (cook XprintPrintStartPageCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintStartPage func (c *Conn) xprintPrintStartPageRequest(Window Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 13 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Window)) b += 4 return buf } // Request XprintPrintEndPage // size: 8 type XprintPrintEndPageCookie struct { *cookie } // Write request to wire for XprintPrintEndPage func (c *Conn) XprintPrintEndPage(Cancel bool) XprintPrintEndPageCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintEndPageRequest(Cancel), cookie) return XprintPrintEndPageCookie{cookie} } func (c *Conn) XprintPrintEndPageChecked(Cancel bool) XprintPrintEndPageCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintEndPageRequest(Cancel), cookie) return XprintPrintEndPageCookie{cookie} } func (cook XprintPrintEndPageCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintEndPage func (c *Conn) xprintPrintEndPageRequest(Cancel bool) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 14 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 if Cancel { buf[b] = 1 } else { buf[b] = 0 } b += 1 b += 3 // padding return buf } // Request XprintPrintSelectInput // size: pad((8 + (4 + pad((4 * popCount(int(EventMask))))))) type XprintPrintSelectInputCookie struct { *cookie } // Write request to wire for XprintPrintSelectInput func (c *Conn) XprintPrintSelectInput(Context Id, EventMask uint32, EventList []uint32) XprintPrintSelectInputCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintSelectInputRequest(Context, EventMask, EventList), cookie) return XprintPrintSelectInputCookie{cookie} } func (c *Conn) XprintPrintSelectInputChecked(Context Id, EventMask uint32, EventList []uint32) XprintPrintSelectInputCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintSelectInputRequest(Context, EventMask, EventList), cookie) return XprintPrintSelectInputCookie{cookie} } func (cook XprintPrintSelectInputCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintSelectInput func (c *Conn) xprintPrintSelectInputRequest(Context Id, EventMask uint32, EventList []uint32) []byte { size := pad((8 + (4 + pad((4 * popCount(int(EventMask))))))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 15 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Context)) b += 4 Put32(buf[b:], EventMask) b += 4 for i := 0; i < popCount(int(EventMask)); i++ { Put32(buf[b:], EventList[i]) b += 4 } b = pad(b) return buf } // Request XprintPrintInputSelected // size: 8 type XprintPrintInputSelectedCookie struct { *cookie } func (c *Conn) XprintPrintInputSelected(Context Id) XprintPrintInputSelectedCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintInputSelectedRequest(Context), cookie) return XprintPrintInputSelectedCookie{cookie} } func (c *Conn) XprintPrintInputSelectedUnchecked(Context Id) XprintPrintInputSelectedCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintInputSelectedRequest(Context), cookie) return XprintPrintInputSelectedCookie{cookie} } // Request reply for XprintPrintInputSelected // size: ((8 + (4 + pad((4 * popCount(int(EventMask)))))) + (4 + pad((4 * popCount(int(AllEventsMask)))))) type XprintPrintInputSelectedReply struct { Sequence uint16 Length uint32 // padding: 1 bytes EventMask uint32 EventList []uint32 AllEventsMask uint32 AllEventsList []uint32 } // Waits and reads reply data from request XprintPrintInputSelected func (cook XprintPrintInputSelectedCookie) Reply() (*XprintPrintInputSelectedReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintInputSelectedReply(buf), nil } // Read reply into structure from buffer for XprintPrintInputSelected func xprintPrintInputSelectedReply(buf []byte) *XprintPrintInputSelectedReply { v := new(XprintPrintInputSelectedReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.EventMask = Get32(buf[b:]) b += 4 v.EventList = make([]uint32, popCount(int(v.EventMask))) for i := 0; i < popCount(int(v.EventMask)); i++ { v.EventList[i] = Get32(buf[b:]) b += 4 } b = pad(b) v.AllEventsMask = Get32(buf[b:]) b += 4 v.AllEventsList = make([]uint32, popCount(int(v.AllEventsMask))) for i := 0; i < popCount(int(v.AllEventsMask)); i++ { v.AllEventsList[i] = Get32(buf[b:]) b += 4 } b = pad(b) return v } func (cook XprintPrintInputSelectedCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintInputSelected func (c *Conn) xprintPrintInputSelectedRequest(Context Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 16 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Context)) b += 4 return buf } // Request XprintPrintGetAttributes // size: 12 type XprintPrintGetAttributesCookie struct { *cookie } func (c *Conn) XprintPrintGetAttributes(Context Id, Pool byte) XprintPrintGetAttributesCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintGetAttributesRequest(Context, Pool), cookie) return XprintPrintGetAttributesCookie{cookie} } func (c *Conn) XprintPrintGetAttributesUnchecked(Context Id, Pool byte) XprintPrintGetAttributesCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintGetAttributesRequest(Context, Pool), cookie) return XprintPrintGetAttributesCookie{cookie} } // Request reply for XprintPrintGetAttributes // size: 33 type XprintPrintGetAttributesReply struct { Sequence uint16 Length uint32 // padding: 1 bytes StringLen uint32 // padding: 20 bytes Attributes XprintString8 } // Waits and reads reply data from request XprintPrintGetAttributes func (cook XprintPrintGetAttributesCookie) Reply() (*XprintPrintGetAttributesReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintGetAttributesReply(buf), nil } // Read reply into structure from buffer for XprintPrintGetAttributes func xprintPrintGetAttributesReply(buf []byte) *XprintPrintGetAttributesReply { v := new(XprintPrintGetAttributesReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.StringLen = Get32(buf[b:]) b += 4 b += 20 // padding v.Attributes = XprintString8(buf[b]) b += 1 return v } func (cook XprintPrintGetAttributesCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintGetAttributes func (c *Conn) xprintPrintGetAttributesRequest(Context Id, Pool byte) []byte { size := 12 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 17 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Context)) b += 4 buf[b] = Pool b += 1 b += 3 // padding return buf } // Request XprintPrintGetOneAttributes // size: pad((16 + pad((int(NameLen) * 1)))) type XprintPrintGetOneAttributesCookie struct { *cookie } func (c *Conn) XprintPrintGetOneAttributes(Context Id, NameLen uint32, Pool byte, Name []XprintString8) XprintPrintGetOneAttributesCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintGetOneAttributesRequest(Context, NameLen, Pool, Name), cookie) return XprintPrintGetOneAttributesCookie{cookie} } func (c *Conn) XprintPrintGetOneAttributesUnchecked(Context Id, NameLen uint32, Pool byte, Name []XprintString8) XprintPrintGetOneAttributesCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintGetOneAttributesRequest(Context, NameLen, Pool, Name), cookie) return XprintPrintGetOneAttributesCookie{cookie} } // Request reply for XprintPrintGetOneAttributes // size: (32 + pad((int(ValueLen) * 1))) type XprintPrintGetOneAttributesReply struct { Sequence uint16 Length uint32 // padding: 1 bytes ValueLen uint32 // padding: 20 bytes Value []XprintString8 // size: pad((int(ValueLen) * 1)) } // Waits and reads reply data from request XprintPrintGetOneAttributes func (cook XprintPrintGetOneAttributesCookie) Reply() (*XprintPrintGetOneAttributesReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintGetOneAttributesReply(buf), nil } // Read reply into structure from buffer for XprintPrintGetOneAttributes func xprintPrintGetOneAttributesReply(buf []byte) *XprintPrintGetOneAttributesReply { v := new(XprintPrintGetOneAttributesReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.ValueLen = Get32(buf[b:]) b += 4 b += 20 // padding v.Value = make([]XprintString8, v.ValueLen) for i := 0; i < int(v.ValueLen); i++ { v.Value[i] = XprintString8(buf[b]) b += 1 } b = pad(b) return v } func (cook XprintPrintGetOneAttributesCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintGetOneAttributes func (c *Conn) xprintPrintGetOneAttributesRequest(Context Id, NameLen uint32, Pool byte, Name []XprintString8) []byte { size := pad((16 + pad((int(NameLen) * 1)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 19 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Context)) b += 4 Put32(buf[b:], NameLen) b += 4 buf[b] = Pool b += 1 b += 3 // padding for i := 0; i < int(NameLen); i++ { buf[b] = byte(Name[i]) b += 1 } b = pad(b) return buf } // Request XprintPrintSetAttributes // size: pad((16 + pad((len(Attributes) * 1)))) type XprintPrintSetAttributesCookie struct { *cookie } // Write request to wire for XprintPrintSetAttributes func (c *Conn) XprintPrintSetAttributes(Context Id, StringLen uint32, Pool byte, Rule byte, Attributes []XprintString8) XprintPrintSetAttributesCookie { cookie := c.newCookie(false, false) c.newRequest(c.xprintPrintSetAttributesRequest(Context, StringLen, Pool, Rule, Attributes), cookie) return XprintPrintSetAttributesCookie{cookie} } func (c *Conn) XprintPrintSetAttributesChecked(Context Id, StringLen uint32, Pool byte, Rule byte, Attributes []XprintString8) XprintPrintSetAttributesCookie { cookie := c.newCookie(true, false) c.newRequest(c.xprintPrintSetAttributesRequest(Context, StringLen, Pool, Rule, Attributes), cookie) return XprintPrintSetAttributesCookie{cookie} } func (cook XprintPrintSetAttributesCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintSetAttributes func (c *Conn) xprintPrintSetAttributesRequest(Context Id, StringLen uint32, Pool byte, Rule byte, Attributes []XprintString8) []byte { size := pad((16 + pad((len(Attributes) * 1)))) b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 18 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Context)) b += 4 Put32(buf[b:], StringLen) b += 4 buf[b] = Pool b += 1 buf[b] = Rule b += 1 b += 2 // padding for i := 0; i < int(len(Attributes)); i++ { buf[b] = byte(Attributes[i]) b += 1 } b = pad(b) return buf } // Request XprintPrintGetPageDimensions // size: 8 type XprintPrintGetPageDimensionsCookie struct { *cookie } func (c *Conn) XprintPrintGetPageDimensions(Context Id) XprintPrintGetPageDimensionsCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintGetPageDimensionsRequest(Context), cookie) return XprintPrintGetPageDimensionsCookie{cookie} } func (c *Conn) XprintPrintGetPageDimensionsUnchecked(Context Id) XprintPrintGetPageDimensionsCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintGetPageDimensionsRequest(Context), cookie) return XprintPrintGetPageDimensionsCookie{cookie} } // Request reply for XprintPrintGetPageDimensions // size: 20 type XprintPrintGetPageDimensionsReply struct { Sequence uint16 Length uint32 // padding: 1 bytes Width uint16 Height uint16 OffsetX uint16 OffsetY uint16 ReproducibleWidth uint16 ReproducibleHeight uint16 } // Waits and reads reply data from request XprintPrintGetPageDimensions func (cook XprintPrintGetPageDimensionsCookie) Reply() (*XprintPrintGetPageDimensionsReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintGetPageDimensionsReply(buf), nil } // Read reply into structure from buffer for XprintPrintGetPageDimensions func xprintPrintGetPageDimensionsReply(buf []byte) *XprintPrintGetPageDimensionsReply { v := new(XprintPrintGetPageDimensionsReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.Width = Get16(buf[b:]) b += 2 v.Height = Get16(buf[b:]) b += 2 v.OffsetX = Get16(buf[b:]) b += 2 v.OffsetY = Get16(buf[b:]) b += 2 v.ReproducibleWidth = Get16(buf[b:]) b += 2 v.ReproducibleHeight = Get16(buf[b:]) b += 2 return v } func (cook XprintPrintGetPageDimensionsCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintGetPageDimensions func (c *Conn) xprintPrintGetPageDimensionsRequest(Context Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 21 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Context)) b += 4 return buf } // Request XprintPrintQueryScreens // size: 4 type XprintPrintQueryScreensCookie struct { *cookie } func (c *Conn) XprintPrintQueryScreens() XprintPrintQueryScreensCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintQueryScreensRequest(), cookie) return XprintPrintQueryScreensCookie{cookie} } func (c *Conn) XprintPrintQueryScreensUnchecked() XprintPrintQueryScreensCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintQueryScreensRequest(), cookie) return XprintPrintQueryScreensCookie{cookie} } // Request reply for XprintPrintQueryScreens // size: (32 + pad((int(ListCount) * 4))) type XprintPrintQueryScreensReply struct { Sequence uint16 Length uint32 // padding: 1 bytes ListCount uint32 // padding: 20 bytes Roots []Id // size: pad((int(ListCount) * 4)) } // Waits and reads reply data from request XprintPrintQueryScreens func (cook XprintPrintQueryScreensCookie) Reply() (*XprintPrintQueryScreensReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintQueryScreensReply(buf), nil } // Read reply into structure from buffer for XprintPrintQueryScreens func xprintPrintQueryScreensReply(buf []byte) *XprintPrintQueryScreensReply { v := new(XprintPrintQueryScreensReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.ListCount = Get32(buf[b:]) b += 4 b += 20 // padding v.Roots = make([]Id, v.ListCount) for i := 0; i < int(v.ListCount); i++ { v.Roots[i] = Id(Get32(buf[b:])) b += 4 } b = pad(b) return v } func (cook XprintPrintQueryScreensCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintQueryScreens func (c *Conn) xprintPrintQueryScreensRequest() []byte { size := 4 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 22 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 return buf } // Request XprintPrintSetImageResolution // size: 12 type XprintPrintSetImageResolutionCookie struct { *cookie } func (c *Conn) XprintPrintSetImageResolution(Context Id, ImageResolution uint16) XprintPrintSetImageResolutionCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintSetImageResolutionRequest(Context, ImageResolution), cookie) return XprintPrintSetImageResolutionCookie{cookie} } func (c *Conn) XprintPrintSetImageResolutionUnchecked(Context Id, ImageResolution uint16) XprintPrintSetImageResolutionCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintSetImageResolutionRequest(Context, ImageResolution), cookie) return XprintPrintSetImageResolutionCookie{cookie} } // Request reply for XprintPrintSetImageResolution // size: 10 type XprintPrintSetImageResolutionReply struct { Sequence uint16 Length uint32 Status bool PreviousResolutions uint16 } // Waits and reads reply data from request XprintPrintSetImageResolution func (cook XprintPrintSetImageResolutionCookie) Reply() (*XprintPrintSetImageResolutionReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintSetImageResolutionReply(buf), nil } // Read reply into structure from buffer for XprintPrintSetImageResolution func xprintPrintSetImageResolutionReply(buf []byte) *XprintPrintSetImageResolutionReply { v := new(XprintPrintSetImageResolutionReply) b := 1 // skip reply determinant if buf[b] == 1 { v.Status = true } else { v.Status = false } b += 1 v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.PreviousResolutions = Get16(buf[b:]) b += 2 return v } func (cook XprintPrintSetImageResolutionCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintSetImageResolution func (c *Conn) xprintPrintSetImageResolutionRequest(Context Id, ImageResolution uint16) []byte { size := 12 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 23 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Context)) b += 4 Put16(buf[b:], ImageResolution) b += 2 return buf } // Request XprintPrintGetImageResolution // size: 8 type XprintPrintGetImageResolutionCookie struct { *cookie } func (c *Conn) XprintPrintGetImageResolution(Context Id) XprintPrintGetImageResolutionCookie { cookie := c.newCookie(true, true) c.newRequest(c.xprintPrintGetImageResolutionRequest(Context), cookie) return XprintPrintGetImageResolutionCookie{cookie} } func (c *Conn) XprintPrintGetImageResolutionUnchecked(Context Id) XprintPrintGetImageResolutionCookie { cookie := c.newCookie(false, true) c.newRequest(c.xprintPrintGetImageResolutionRequest(Context), cookie) return XprintPrintGetImageResolutionCookie{cookie} } // Request reply for XprintPrintGetImageResolution // size: 10 type XprintPrintGetImageResolutionReply struct { Sequence uint16 Length uint32 // padding: 1 bytes ImageResolution uint16 } // Waits and reads reply data from request XprintPrintGetImageResolution func (cook XprintPrintGetImageResolutionCookie) Reply() (*XprintPrintGetImageResolutionReply, error) { buf, err := cook.reply() if err != nil { return nil, err } if buf == nil { return nil, nil } return xprintPrintGetImageResolutionReply(buf), nil } // Read reply into structure from buffer for XprintPrintGetImageResolution func xprintPrintGetImageResolutionReply(buf []byte) *XprintPrintGetImageResolutionReply { v := new(XprintPrintGetImageResolutionReply) b := 1 // skip reply determinant b += 1 // padding v.Sequence = Get16(buf[b:]) b += 2 v.Length = Get32(buf[b:]) // 4-byte units b += 4 v.ImageResolution = Get16(buf[b:]) b += 2 return v } func (cook XprintPrintGetImageResolutionCookie) Check() error { return cook.check() } // Write request to wire for XprintPrintGetImageResolution func (c *Conn) xprintPrintGetImageResolutionRequest(Context Id) []byte { size := 8 b := 0 buf := make([]byte, size) buf[b] = c.extensions["XPEXTENSION"] b += 1 buf[b] = 24 // request opcode b += 1 Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units b += 2 Put32(buf[b:], uint32(Context)) b += 4 return buf }