diff options
author | Andrew Gallant (Ocelot) <Andrew.Gallant@tufts.edu> | 2012-05-06 03:06:48 -0400 |
---|---|---|
committer | Andrew Gallant (Ocelot) <Andrew.Gallant@tufts.edu> | 2012-05-06 03:06:48 -0400 |
commit | 135cee57610cccd10009b264cce7fbcd5af367cb (patch) | |
tree | aa4bb450d28eff241e35978233613436edafe045 /nexgb/auto_xvmc.go | |
parent | 70ebcf5178018a31378367f67542fc89980e62a2 (diff) | |
download | haven-135cee57610cccd10009b264cce7fbcd5af367cb.tar.gz haven-135cee57610cccd10009b264cce7fbcd5af367cb.tar.xz haven-135cee57610cccd10009b264cce7fbcd5af367cb.zip |
auto-generated Go code ftw. ~65,000 lines. woooheee
Diffstat (limited to 'nexgb/auto_xvmc.go')
-rw-r--r-- | nexgb/auto_xvmc.go | 879 |
1 files changed, 879 insertions, 0 deletions
diff --git a/nexgb/auto_xvmc.go b/nexgb/auto_xvmc.go new file mode 100644 index 0000000..1d8814d --- /dev/null +++ b/nexgb/auto_xvmc.go @@ -0,0 +1,879 @@ +package xgb + +/* + This file was generated by xvmc.xml on May 6 2012 3:00:45am 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 "xv" + +// 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' + +// 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 resource definition of 'Context' + +// Skipping resource definition of 'Surface' + +// Skipping resource definition of 'Subpicture' + +// 'XvmcSurfaceInfo' struct definition +// Size: 24 +type XvmcSurfaceInfo struct { + Id Id + ChromaFormat uint16 + Pad0 uint16 + MaxWidth uint16 + MaxHeight uint16 + SubpictureMaxWidth uint16 + SubpictureMaxHeight uint16 + McType uint32 + Flags uint32 +} + +// Struct read XvmcSurfaceInfo +func ReadXvmcSurfaceInfo(buf []byte, v *XvmcSurfaceInfo) int { + b := 0 + + v.Id = Id(Get32(buf[b:])) + b += 4 + + v.ChromaFormat = Get16(buf[b:]) + b += 2 + + v.Pad0 = Get16(buf[b:]) + b += 2 + + v.MaxWidth = Get16(buf[b:]) + b += 2 + + v.MaxHeight = Get16(buf[b:]) + b += 2 + + v.SubpictureMaxWidth = Get16(buf[b:]) + b += 2 + + v.SubpictureMaxHeight = Get16(buf[b:]) + b += 2 + + v.McType = Get32(buf[b:]) + b += 4 + + v.Flags = Get32(buf[b:]) + b += 4 + + return b +} + +// Struct list read XvmcSurfaceInfo +func ReadXvmcSurfaceInfoList(buf []byte, dest []XvmcSurfaceInfo) int { + b := 0 + for i := 0; i < len(dest); i++ { + dest[i] = XvmcSurfaceInfo{} + b += ReadXvmcSurfaceInfo(buf[b:], &dest[i]) + } + return pad(b) +} + +// Struct write XvmcSurfaceInfo +func (v XvmcSurfaceInfo) Bytes() []byte { + buf := make([]byte, 24) + b := 0 + + Put32(buf[b:], uint32(v.Id)) + b += 4 + + Put16(buf[b:], v.ChromaFormat) + b += 2 + + Put16(buf[b:], v.Pad0) + b += 2 + + Put16(buf[b:], v.MaxWidth) + b += 2 + + Put16(buf[b:], v.MaxHeight) + b += 2 + + Put16(buf[b:], v.SubpictureMaxWidth) + b += 2 + + Put16(buf[b:], v.SubpictureMaxHeight) + b += 2 + + Put32(buf[b:], v.McType) + b += 4 + + Put32(buf[b:], v.Flags) + b += 4 + + return buf +} + +// Write struct list XvmcSurfaceInfo +func XvmcSurfaceInfoListBytes(buf []byte, list []XvmcSurfaceInfo) int { + b := 0 + var structBytes []byte + for _, item := range list { + structBytes = item.Bytes() + copy(buf[b:], structBytes) + b += pad(len(structBytes)) + } + return b +} + +// Request XvmcQueryVersion +// size: 4 +type XvmcQueryVersionCookie struct { + *cookie +} + +func (c *Conn) XvmcQueryVersion() XvmcQueryVersionCookie { + cookie := c.newCookie(true, true) + c.newRequest(c.xvmcQueryVersionRequest(), cookie) + return XvmcQueryVersionCookie{cookie} +} + +func (c *Conn) XvmcQueryVersionUnchecked() XvmcQueryVersionCookie { + cookie := c.newCookie(false, true) + c.newRequest(c.xvmcQueryVersionRequest(), cookie) + return XvmcQueryVersionCookie{cookie} +} + +// Request reply for XvmcQueryVersion +// size: 16 +type XvmcQueryVersionReply struct { + Sequence uint16 + Length uint32 + // padding: 1 bytes + Major uint32 + Minor uint32 +} + +// Waits and reads reply data from request XvmcQueryVersion +func (cook XvmcQueryVersionCookie) Reply() (*XvmcQueryVersionReply, error) { + buf, err := cook.reply() + if err != nil { + return nil, err + } + if buf == nil { + return nil, nil + } + return xvmcQueryVersionReply(buf), nil +} + +// Read reply into structure from buffer for XvmcQueryVersion +func xvmcQueryVersionReply(buf []byte) *XvmcQueryVersionReply { + v := new(XvmcQueryVersionReply) + 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.Major = Get32(buf[b:]) + b += 4 + + v.Minor = Get32(buf[b:]) + b += 4 + + return v +} + +func (cook XvmcQueryVersionCookie) Check() error { + return cook.check() +} + +// Write request to wire for XvmcQueryVersion +func (c *Conn) xvmcQueryVersionRequest() []byte { + size := 4 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] + 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 XvmcListSurfaceTypes +// size: 8 +type XvmcListSurfaceTypesCookie struct { + *cookie +} + +func (c *Conn) XvmcListSurfaceTypes(PortId Id) XvmcListSurfaceTypesCookie { + cookie := c.newCookie(true, true) + c.newRequest(c.xvmcListSurfaceTypesRequest(PortId), cookie) + return XvmcListSurfaceTypesCookie{cookie} +} + +func (c *Conn) XvmcListSurfaceTypesUnchecked(PortId Id) XvmcListSurfaceTypesCookie { + cookie := c.newCookie(false, true) + c.newRequest(c.xvmcListSurfaceTypesRequest(PortId), cookie) + return XvmcListSurfaceTypesCookie{cookie} +} + +// Request reply for XvmcListSurfaceTypes +// size: (32 + pad((int(Num) * 24))) +type XvmcListSurfaceTypesReply struct { + Sequence uint16 + Length uint32 + // padding: 1 bytes + Num uint32 + // padding: 20 bytes + Surfaces []XvmcSurfaceInfo // size: pad((int(Num) * 24)) +} + +// Waits and reads reply data from request XvmcListSurfaceTypes +func (cook XvmcListSurfaceTypesCookie) Reply() (*XvmcListSurfaceTypesReply, error) { + buf, err := cook.reply() + if err != nil { + return nil, err + } + if buf == nil { + return nil, nil + } + return xvmcListSurfaceTypesReply(buf), nil +} + +// Read reply into structure from buffer for XvmcListSurfaceTypes +func xvmcListSurfaceTypesReply(buf []byte) *XvmcListSurfaceTypesReply { + v := new(XvmcListSurfaceTypesReply) + 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.Num = Get32(buf[b:]) + b += 4 + + b += 20 // padding + + v.Surfaces = make([]XvmcSurfaceInfo, v.Num) + b += ReadXvmcSurfaceInfoList(buf[b:], v.Surfaces) + + return v +} + +func (cook XvmcListSurfaceTypesCookie) Check() error { + return cook.check() +} + +// Write request to wire for XvmcListSurfaceTypes +func (c *Conn) xvmcListSurfaceTypesRequest(PortId Id) []byte { + size := 8 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] + 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:], uint32(PortId)) + b += 4 + + return buf +} + +// Request XvmcCreateContext +// size: 24 +type XvmcCreateContextCookie struct { + *cookie +} + +func (c *Conn) XvmcCreateContext(ContextId Id, PortId Id, SurfaceId Id, Width uint16, Height uint16, Flags uint32) XvmcCreateContextCookie { + cookie := c.newCookie(true, true) + c.newRequest(c.xvmcCreateContextRequest(ContextId, PortId, SurfaceId, Width, Height, Flags), cookie) + return XvmcCreateContextCookie{cookie} +} + +func (c *Conn) XvmcCreateContextUnchecked(ContextId Id, PortId Id, SurfaceId Id, Width uint16, Height uint16, Flags uint32) XvmcCreateContextCookie { + cookie := c.newCookie(false, true) + c.newRequest(c.xvmcCreateContextRequest(ContextId, PortId, SurfaceId, Width, Height, Flags), cookie) + return XvmcCreateContextCookie{cookie} +} + +// Request reply for XvmcCreateContext +// size: (36 + pad((int(Length) * 4))) +type XvmcCreateContextReply struct { + Sequence uint16 + Length uint32 + // padding: 1 bytes + WidthActual uint16 + HeightActual uint16 + FlagsReturn uint32 + // padding: 20 bytes + PrivData []uint32 // size: pad((int(Length) * 4)) +} + +// Waits and reads reply data from request XvmcCreateContext +func (cook XvmcCreateContextCookie) Reply() (*XvmcCreateContextReply, error) { + buf, err := cook.reply() + if err != nil { + return nil, err + } + if buf == nil { + return nil, nil + } + return xvmcCreateContextReply(buf), nil +} + +// Read reply into structure from buffer for XvmcCreateContext +func xvmcCreateContextReply(buf []byte) *XvmcCreateContextReply { + v := new(XvmcCreateContextReply) + 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.WidthActual = Get16(buf[b:]) + b += 2 + + v.HeightActual = Get16(buf[b:]) + b += 2 + + v.FlagsReturn = Get32(buf[b:]) + b += 4 + + b += 20 // padding + + v.PrivData = make([]uint32, v.Length) + for i := 0; i < int(v.Length); i++ { + v.PrivData[i] = Get32(buf[b:]) + b += 4 + } + b = pad(b) + + return v +} + +func (cook XvmcCreateContextCookie) Check() error { + return cook.check() +} + +// Write request to wire for XvmcCreateContext +func (c *Conn) xvmcCreateContextRequest(ContextId Id, PortId Id, SurfaceId Id, Width uint16, Height uint16, Flags uint32) []byte { + size := 24 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] + 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:], uint32(ContextId)) + b += 4 + + Put32(buf[b:], uint32(PortId)) + b += 4 + + Put32(buf[b:], uint32(SurfaceId)) + b += 4 + + Put16(buf[b:], Width) + b += 2 + + Put16(buf[b:], Height) + b += 2 + + Put32(buf[b:], Flags) + b += 4 + + return buf +} + +// Request XvmcDestroyContext +// size: 8 +type XvmcDestroyContextCookie struct { + *cookie +} + +// Write request to wire for XvmcDestroyContext +func (c *Conn) XvmcDestroyContext(ContextId Id) XvmcDestroyContextCookie { + cookie := c.newCookie(false, false) + c.newRequest(c.xvmcDestroyContextRequest(ContextId), cookie) + return XvmcDestroyContextCookie{cookie} +} + +func (c *Conn) XvmcDestroyContextChecked(ContextId Id) XvmcDestroyContextCookie { + cookie := c.newCookie(true, false) + c.newRequest(c.xvmcDestroyContextRequest(ContextId), cookie) + return XvmcDestroyContextCookie{cookie} +} + +func (cook XvmcDestroyContextCookie) Check() error { + return cook.check() +} + +// Write request to wire for XvmcDestroyContext +func (c *Conn) xvmcDestroyContextRequest(ContextId Id) []byte { + size := 8 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] + 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:], uint32(ContextId)) + b += 4 + + return buf +} + +// Request XvmcCreateSurface +// size: 12 +type XvmcCreateSurfaceCookie struct { + *cookie +} + +func (c *Conn) XvmcCreateSurface(SurfaceId Id, ContextId Id) XvmcCreateSurfaceCookie { + cookie := c.newCookie(true, true) + c.newRequest(c.xvmcCreateSurfaceRequest(SurfaceId, ContextId), cookie) + return XvmcCreateSurfaceCookie{cookie} +} + +func (c *Conn) XvmcCreateSurfaceUnchecked(SurfaceId Id, ContextId Id) XvmcCreateSurfaceCookie { + cookie := c.newCookie(false, true) + c.newRequest(c.xvmcCreateSurfaceRequest(SurfaceId, ContextId), cookie) + return XvmcCreateSurfaceCookie{cookie} +} + +// Request reply for XvmcCreateSurface +// size: (32 + pad((int(Length) * 4))) +type XvmcCreateSurfaceReply struct { + Sequence uint16 + Length uint32 + // padding: 1 bytes + // padding: 24 bytes + PrivData []uint32 // size: pad((int(Length) * 4)) +} + +// Waits and reads reply data from request XvmcCreateSurface +func (cook XvmcCreateSurfaceCookie) Reply() (*XvmcCreateSurfaceReply, error) { + buf, err := cook.reply() + if err != nil { + return nil, err + } + if buf == nil { + return nil, nil + } + return xvmcCreateSurfaceReply(buf), nil +} + +// Read reply into structure from buffer for XvmcCreateSurface +func xvmcCreateSurfaceReply(buf []byte) *XvmcCreateSurfaceReply { + v := new(XvmcCreateSurfaceReply) + 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 + + b += 24 // padding + + v.PrivData = make([]uint32, v.Length) + for i := 0; i < int(v.Length); i++ { + v.PrivData[i] = Get32(buf[b:]) + b += 4 + } + b = pad(b) + + return v +} + +func (cook XvmcCreateSurfaceCookie) Check() error { + return cook.check() +} + +// Write request to wire for XvmcCreateSurface +func (c *Conn) xvmcCreateSurfaceRequest(SurfaceId Id, ContextId Id) []byte { + size := 12 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] + b += 1 + + buf[b] = 4 // request opcode + b += 1 + + Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units + b += 2 + + Put32(buf[b:], uint32(SurfaceId)) + b += 4 + + Put32(buf[b:], uint32(ContextId)) + b += 4 + + return buf +} + +// Request XvmcDestroySurface +// size: 8 +type XvmcDestroySurfaceCookie struct { + *cookie +} + +// Write request to wire for XvmcDestroySurface +func (c *Conn) XvmcDestroySurface(SurfaceId Id) XvmcDestroySurfaceCookie { + cookie := c.newCookie(false, false) + c.newRequest(c.xvmcDestroySurfaceRequest(SurfaceId), cookie) + return XvmcDestroySurfaceCookie{cookie} +} + +func (c *Conn) XvmcDestroySurfaceChecked(SurfaceId Id) XvmcDestroySurfaceCookie { + cookie := c.newCookie(true, false) + c.newRequest(c.xvmcDestroySurfaceRequest(SurfaceId), cookie) + return XvmcDestroySurfaceCookie{cookie} +} + +func (cook XvmcDestroySurfaceCookie) Check() error { + return cook.check() +} + +// Write request to wire for XvmcDestroySurface +func (c *Conn) xvmcDestroySurfaceRequest(SurfaceId Id) []byte { + size := 8 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] + 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:], uint32(SurfaceId)) + b += 4 + + return buf +} + +// Request XvmcCreateSubpicture +// size: 20 +type XvmcCreateSubpictureCookie struct { + *cookie +} + +func (c *Conn) XvmcCreateSubpicture(SubpictureId Id, Context Id, XvimageId uint32, Width uint16, Height uint16) XvmcCreateSubpictureCookie { + cookie := c.newCookie(true, true) + c.newRequest(c.xvmcCreateSubpictureRequest(SubpictureId, Context, XvimageId, Width, Height), cookie) + return XvmcCreateSubpictureCookie{cookie} +} + +func (c *Conn) XvmcCreateSubpictureUnchecked(SubpictureId Id, Context Id, XvimageId uint32, Width uint16, Height uint16) XvmcCreateSubpictureCookie { + cookie := c.newCookie(false, true) + c.newRequest(c.xvmcCreateSubpictureRequest(SubpictureId, Context, XvimageId, Width, Height), cookie) + return XvmcCreateSubpictureCookie{cookie} +} + +// Request reply for XvmcCreateSubpicture +// size: (32 + pad((int(Length) * 4))) +type XvmcCreateSubpictureReply struct { + Sequence uint16 + Length uint32 + // padding: 1 bytes + WidthActual uint16 + HeightActual uint16 + NumPaletteEntries uint16 + EntryBytes uint16 + ComponentOrder []byte // size: 4 + // padding: 12 bytes + PrivData []uint32 // size: pad((int(Length) * 4)) +} + +// Waits and reads reply data from request XvmcCreateSubpicture +func (cook XvmcCreateSubpictureCookie) Reply() (*XvmcCreateSubpictureReply, error) { + buf, err := cook.reply() + if err != nil { + return nil, err + } + if buf == nil { + return nil, nil + } + return xvmcCreateSubpictureReply(buf), nil +} + +// Read reply into structure from buffer for XvmcCreateSubpicture +func xvmcCreateSubpictureReply(buf []byte) *XvmcCreateSubpictureReply { + v := new(XvmcCreateSubpictureReply) + 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.WidthActual = Get16(buf[b:]) + b += 2 + + v.HeightActual = Get16(buf[b:]) + b += 2 + + v.NumPaletteEntries = Get16(buf[b:]) + b += 2 + + v.EntryBytes = Get16(buf[b:]) + b += 2 + + v.ComponentOrder = make([]byte, 4) + copy(v.ComponentOrder[:4], buf[b:]) + b += pad(int(4)) + + b += 12 // padding + + v.PrivData = make([]uint32, v.Length) + for i := 0; i < int(v.Length); i++ { + v.PrivData[i] = Get32(buf[b:]) + b += 4 + } + b = pad(b) + + return v +} + +func (cook XvmcCreateSubpictureCookie) Check() error { + return cook.check() +} + +// Write request to wire for XvmcCreateSubpicture +func (c *Conn) xvmcCreateSubpictureRequest(SubpictureId Id, Context Id, XvimageId uint32, Width uint16, Height uint16) []byte { + size := 20 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] + b += 1 + + buf[b] = 6 // request opcode + b += 1 + + Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units + b += 2 + + Put32(buf[b:], uint32(SubpictureId)) + b += 4 + + Put32(buf[b:], uint32(Context)) + b += 4 + + Put32(buf[b:], XvimageId) + b += 4 + + Put16(buf[b:], Width) + b += 2 + + Put16(buf[b:], Height) + b += 2 + + return buf +} + +// Request XvmcDestroySubpicture +// size: 8 +type XvmcDestroySubpictureCookie struct { + *cookie +} + +// Write request to wire for XvmcDestroySubpicture +func (c *Conn) XvmcDestroySubpicture(SubpictureId Id) XvmcDestroySubpictureCookie { + cookie := c.newCookie(false, false) + c.newRequest(c.xvmcDestroySubpictureRequest(SubpictureId), cookie) + return XvmcDestroySubpictureCookie{cookie} +} + +func (c *Conn) XvmcDestroySubpictureChecked(SubpictureId Id) XvmcDestroySubpictureCookie { + cookie := c.newCookie(true, false) + c.newRequest(c.xvmcDestroySubpictureRequest(SubpictureId), cookie) + return XvmcDestroySubpictureCookie{cookie} +} + +func (cook XvmcDestroySubpictureCookie) Check() error { + return cook.check() +} + +// Write request to wire for XvmcDestroySubpicture +func (c *Conn) xvmcDestroySubpictureRequest(SubpictureId Id) []byte { + size := 8 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] + b += 1 + + buf[b] = 7 // request opcode + b += 1 + + Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units + b += 2 + + Put32(buf[b:], uint32(SubpictureId)) + b += 4 + + return buf +} + +// Request XvmcListSubpictureTypes +// size: 12 +type XvmcListSubpictureTypesCookie struct { + *cookie +} + +func (c *Conn) XvmcListSubpictureTypes(PortId Id, SurfaceId Id) XvmcListSubpictureTypesCookie { + cookie := c.newCookie(true, true) + c.newRequest(c.xvmcListSubpictureTypesRequest(PortId, SurfaceId), cookie) + return XvmcListSubpictureTypesCookie{cookie} +} + +func (c *Conn) XvmcListSubpictureTypesUnchecked(PortId Id, SurfaceId Id) XvmcListSubpictureTypesCookie { + cookie := c.newCookie(false, true) + c.newRequest(c.xvmcListSubpictureTypesRequest(PortId, SurfaceId), cookie) + return XvmcListSubpictureTypesCookie{cookie} +} + +// Request reply for XvmcListSubpictureTypes +// size: (32 + XvImageFormatInfoListSize(Types)) +type XvmcListSubpictureTypesReply struct { + Sequence uint16 + Length uint32 + // padding: 1 bytes + Num uint32 + // padding: 20 bytes + Types []XvImageFormatInfo // size: XvImageFormatInfoListSize(Types) +} + +// Waits and reads reply data from request XvmcListSubpictureTypes +func (cook XvmcListSubpictureTypesCookie) Reply() (*XvmcListSubpictureTypesReply, error) { + buf, err := cook.reply() + if err != nil { + return nil, err + } + if buf == nil { + return nil, nil + } + return xvmcListSubpictureTypesReply(buf), nil +} + +// Read reply into structure from buffer for XvmcListSubpictureTypes +func xvmcListSubpictureTypesReply(buf []byte) *XvmcListSubpictureTypesReply { + v := new(XvmcListSubpictureTypesReply) + 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.Num = Get32(buf[b:]) + b += 4 + + b += 20 // padding + + v.Types = make([]XvImageFormatInfo, v.Num) + b += ReadXvImageFormatInfoList(buf[b:], v.Types) + + return v +} + +func (cook XvmcListSubpictureTypesCookie) Check() error { + return cook.check() +} + +// Write request to wire for XvmcListSubpictureTypes +func (c *Conn) xvmcListSubpictureTypesRequest(PortId Id, SurfaceId Id) []byte { + size := 12 + b := 0 + buf := make([]byte, size) + + buf[b] = c.extensions["XVIDEO-MOTIONCOMPENSATION"] + b += 1 + + buf[b] = 8 // request opcode + b += 1 + + Put16(buf[b:], uint16(size/4)) // write request size in 4-byte units + b += 2 + + Put32(buf[b:], uint32(PortId)) + b += 4 + + Put32(buf[b:], uint32(SurfaceId)) + b += 4 + + return buf +} |