Obtain a specific named property. This function provides a way of looking up a property by name to observe it's current value, this may be of use for a user to query DIL properties
Release a previously queried property, this function provides a way of releasing any memory allocated by a call to DIL_QueryProperty. Any data contained in value maybe invalidated after this call
Release a previously queried property group, this function provides a way of releasing any memory allocated by a call to DIL_QueryPropertyGroup Any data contained in value maybe invalidated after this call
This structure contains all relevant information used to query a property or metadata from the DIL.
typedef struct DILProperty
{
const char* name; /* The name of the property. */
const char* description; /* A description of the property. */
DILPropertyType type; /* The value type for this property. */
union
{
int8_t i8;
int16_t i16;
int32_t i32;
int64_t i64;
uint8_t u8;
uint16_t u16;
uint32_t u32;
uint64_t u64;
float f;
double d;
const char* str;
const void* vptr;
const void* data;
const DILPropertyGroup* pgptr;
} value; /* A union representing the value of the property. The user must read the field that match the type enum value. */
const uint8_t* blob; /* Special field containing a block of contiguous memory when the type enum is set to DIL_PT_Blob. This is allowed to be NULL. */
uint32_t blob_size; /* When the blob is not NULL then the length in bytes of the memory, otherwise 0. */
uint64_t data_size; /* size of the "data" buffer in bytes */
bool can_free; /* flag to show if the pointer values should be free'ed when the DIL_ReleaseProperty is called */
} DILProperty;
DILPropertyGroup struct.
This structure contains a logical grouping of properties, this is a convenience feature to assist with providing a "pretty" command line, or GUI.
All properties are assigned to a group, and properties can only appear in one group.
typedef struct DILPropertyGroup_t
{
const char* name; /* The name for this group of properties. */
const char* description; /* A description of the property group. */
DILProperty* properties; /* An array of properties for this group. */
uint32_t property_count; /* The length of the properties array. */
bool can_free; /* flag to show if the properties pointer should be free'ed when the DIL_ReleaseProperty is called */
} DILPropertyGroup;