#[repr(C)]pub struct VTable {
pub plugin_free: extern "C" fn(*mut PluginData),
pub plugin_init: unsafe extern "C" fn(*mut PluginData) -> c_int,
pub error_message_ns: extern "C" fn(c_int) -> *const c_uchar,
pub attribute_count: unsafe extern "C" fn(plugin_data: *const PluginData, count: *mut size_t) -> c_int,
pub attribute_ids: unsafe extern "C" fn(plugin_data: *const PluginData, ids: *mut size_t, _: size_t) -> c_int,
pub attribute_name: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, buffer: *mut c_uchar, length: size_t) -> c_int,
pub attribute_pre_init: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, pre_init: *mut c_char) -> c_int,
pub attribute_value: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, value: *mut Val, phase: Phase) -> c_int,
pub set_attribute_value: unsafe extern "C" fn(plugin_data: *mut PluginData, id: size_t, value: *const Val, phase: Phase) -> c_int,
}Expand description
A table of function pointers that comprise the plugin API for the foreign function interface.
By default, functions in the VTable return a number that represents a status code that maps onto a particular reason for an error. All functions should use the same mapping between status code and reason.
Functions that return values that do not represent status codes have names that end in the characters ‘_ns’ that stand for “no status.”
Fields§
§plugin_free: extern "C" fn(*mut PluginData)Frees the memory associated with a plugin’s data.
plugin_init: unsafe extern "C" fn(*mut PluginData) -> c_intInitializes a plugin.
This method is distinct from the kpal_plugin_new FFI call in that it actually
communicates with the hardware, whereas kpal_plugin_new is used merely to create the
plugin data structures.
error_message_ns: extern "C" fn(c_int) -> *const c_ucharReturns an error message associated with a Plugin error code.
attribute_count: unsafe extern "C" fn(plugin_data: *const PluginData, count: *mut size_t) -> c_intReturns the number of attributes of the plugin.
attribute_ids: unsafe extern "C" fn(plugin_data: *const PluginData, ids: *mut size_t, _: size_t) -> c_intReturns the attribute IDs in a buffer provided by the caller.
attribute_name: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, buffer: *mut c_uchar, length: size_t) -> c_intWrites the name of an attribute to a buffer that is provided by the caller.
attribute_pre_init: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, pre_init: *mut c_char) -> c_intIndicates whether an attribute may be set before initialization.
attribute_value: unsafe extern "C" fn(plugin_data: *const PluginData, id: size_t, value: *mut Val, phase: Phase) -> c_intWrites the value of an attribute to a Value instance that is provided by the caller.
set_attribute_value: unsafe extern "C" fn(plugin_data: *mut PluginData, id: size_t, value: *const Val, phase: Phase) -> c_intSets the value of an attribute.