diff options
-rw-r--r-- | ext/state.lv2/state.h | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/ext/state.lv2/state.h b/ext/state.lv2/state.h index f52b375..82105e5 100644 --- a/ext/state.lv2/state.h +++ b/ext/state.lv2/state.h @@ -175,18 +175,20 @@ typedef struct _LV2_State_Interface { @param instance The instance handle of the plugin. @param store The host-provided store callback. - @param callback_data An opaque pointer to host data, e.g. the map or + @param handle An opaque pointer to host data, e.g. the map or file where the values are to be stored. If @c store is called, this MUST - be passed as its callback_data parameter. + be passed as its handle parameter. @param flags Flags describing desires properties of this save. The plugin SHOULD use these values to determine the most appropriate and/or efficient serialisation, but is not required to do so. + @param features Extensible parameter for passing any additional + features to be used for this save. The plugin is expected to store everything necessary to completely restore its state later (possibly much later, in a different process, on a completely different machine, etc.) - The @c callback_data pointer and @c store function MUST NOT be used + The @c handle pointer and @c store function MUST NOT be used beyond the scope of save(). This function has its own special threading class: it may not be called @@ -205,20 +207,24 @@ typedef struct _LV2_State_Interface { care to do so in such a way that a concurrent call to save() will save a consistent representation of plugin state for a single instant in time. */ - void (*save)(LV2_Handle instance, - LV2_State_Store_Function store, - LV2_State_Handle handle, - uint32_t flags); + void (*save)(LV2_Handle instance, + LV2_State_Store_Function store, + LV2_State_Handle handle, + uint32_t flags, + const LV2_Feature *const * features); + /** Restore plugin state using a host-provided @c retrieve callback. @param instance The instance handle of the plugin. @param retrieve The host-provided retrieve callback. - @param callback_data An opaque pointer to host data, e.g. the map or + @param handle An opaque pointer to host data, e.g. the map or file from which the values are to be restored. If @c retrieve is - called, this MUST be passed as its callback_data parameter. + called, this MUST be passed as its handle parameter. @param flags Currently unused. + @param features Extensible parameter for passing any additional + features to be used for this restore. The plugin MAY assume a restored value was set by a previous call to LV2_State_Interface.save() by a plugin with the same URI. @@ -227,7 +233,7 @@ typedef struct _LV2_State_Interface { not be retrieved. This allows the host to reset the plugin state with an empty map. - The @c callback_data pointer and @c store function MUST NOT be used + The @c handle pointer and @c store function MUST NOT be used beyond the scope of restore(). This function is in the "Instantiation" threading class as defined by @@ -237,7 +243,8 @@ typedef struct _LV2_State_Interface { void (*restore)(LV2_Handle instance, LV2_State_Retrieve_Function retrieve, LV2_State_Handle handle, - uint32_t flags); + uint32_t flags, + const LV2_Feature *const * features); } LV2_State_Interface; |