Files
ippserver/packages/ipp/resolution.go

49 lines
1.1 KiB
Go

package ipp
import (
"encoding/binary"
"fmt"
"io"
)
type resolution struct {
name string
crossFeedResolution int32
feedResolution int32
units int8
}
func NewResolution() *resolution {
r := new(resolution)
return r
}
func (r *resolution) unmarshal(byteStream io.Reader) {
var length uint16
binary.Read(byteStream, binary.BigEndian, &length)
attributeName := make([]byte, length)
if length > 0 {
binary.Read(byteStream, binary.BigEndian, attributeName)
}
r.name = string(attributeName)
binary.Read(byteStream, binary.BigEndian, &length)
if length != 9 {
panic("Wrong length in resolution")
}
binary.Read(byteStream, binary.BigEndian, &r.crossFeedResolution)
binary.Read(byteStream, binary.BigEndian, &r.feedResolution)
binary.Read(byteStream, binary.BigEndian, &r.units)
}
func (r resolution) String() string {
return fmt.Sprintf("%v:%v:%v", r.crossFeedResolution, r.feedResolution, r.units)
}
func (r *resolution) marshal() []byte {
return []byte{}
}
func (r *resolution) valueTag() tag {
return resolutionValueTag
}