X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=UDI%2Fdrivers%2Fhelpers_gfx.h;fp=UDI%2Fdrivers%2Fhelpers_gfx.h;h=f4d9bcff65d0872598819c67ae8d0a828322de4d;hb=57ba49ade7a43d94ee2b4aa20f716df3b504c48c;hp=0000000000000000000000000000000000000000;hpb=721b84c825f9261526d7aa56f1ac812a56f8bd8f;p=tpg%2Facess2.git diff --git a/UDI/drivers/helpers_gfx.h b/UDI/drivers/helpers_gfx.h new file mode 100644 index 00000000..f4d9bcff --- /dev/null +++ b/UDI/drivers/helpers_gfx.h @@ -0,0 +1,62 @@ +/* + * UDI Driver Helper Macros + * + * GFX-specific helpers + */ +#ifndef _HELPERS_GFX_H_ +#define _HELPERS_GFX_H_ + +typedef struct { + udi_index_t op; + udi_ubit32_t arg_1; + udi_ubit32_t arg_2; + udi_ubit32_t arg_3; +} gfxhelpers_op_t; + +typedef struct { + udi_index_t op_count; + const gfxhelpers_op_t *ops; +} gfxhelpers_op_map_t; + +static inline udi_ubit32_t gfxhelpers_get_engine_op( + const gfxhelpers_op_map_t *map, udi_index_t index, udi_index_t prop + ) +{ + if( index >= map->op_count ) { + return 0; + } + switch(prop) { + case UDI_GFX_PROP_OPERATOR_OPCODE: return map->ops[index].op; + case UDI_GFX_PROP_OPERATOR_ARG_1: return map->ops[index].arg_1; + case UDI_GFX_PROP_OPERATOR_ARG_2: return map->ops[index].arg_2; + case UDI_GFX_PROP_OPERATOR_ARG_3: return map->ops[index].arg_3; + } + return 0; +} + +static inline void gfxhelpers_return_range_simple( + udi_gfx_range_connector_ack_op_t *callback, udi_gfx_range_cb_t *cb, + udi_ubit32_t min, udi_ubit32_t max, udi_ubit32_t step + ) +{ + +} + +static inline void gfxhelpers_return_range_set( + udi_gfx_range_connector_ack_op_t *callback, udi_gfx_range_cb_t *cb, + udi_ubit32_t count, ... + ) +{ + +} + +static inline void gfxhelpers_return_range_fixed( + udi_gfx_range_connector_ack_op_t *callback, udi_gfx_range_cb_t *cb, + udi_ubit32_t value + ) +{ + gfxhelpers_return_range_simple(callback, cb, value, value, 1); +} + +#endif +