package drm
//go:generate ./fourcc.py
import (
"fmt"
"strings"
)
type Format uint32
func (f Format) Name() string {
if name := f.str(); name != "" {
return name
}
return "unknown"
}
func (f Format) String() string {
return fmt.Sprintf("%s (0x%X)", f.Name(), uint32(f))
}
type ModifierVendor uint8
func (vendor ModifierVendor) String() string {
if name := vendor.str(); name != "" {
return name
}
return "unknown"
}
type Modifier uint64
func (mod Modifier) Vendor() ModifierVendor {
return ModifierVendor(mod >> 56)
}
func (mod Modifier) Name() string {
// TODO: parse complicated modifiers
if name := mod.str(); name != "" {
return name
}
if vendor := mod.Vendor().str(); vendor != "" {
return fmt.Sprintf("%s(unknown)", strings.ToUpper(vendor))
}
return "unknown"
}
func (mod Modifier) String() string {
return fmt.Sprintf("%s (0x%X)", mod.Name(), uint64(mod))
}