#[repr(C, packed(1))]pub struct ARAStoreObjectsFilter {
pub structSize: ARASize,
pub documentData: ARABool,
pub audioSourceRefsCount: ARASize,
pub audioSourceRefs: *const ARAAudioSourceRef,
pub audioModificationRefsCount: ARASize,
pub audioModificationRefs: *const ARAAudioModificationRef,
}Expand description
! Optional filter when storing objects. ! \br ! Allows the host to specify a subset of the objects in the model graph to be stored in ! ARADocumentControllerInterface::storeObjectsToArchive(). ! \br ! The C++ ARA Library offers plug-in developers the ARA::PlugIn::StoreObjectsFilter ! utility class to ease the implementation of partial persistency.
Fields§
§structSize: ARASize! @see_Versioned_Structs
documentData: ARABool! Flag to indicate whether the plug-in should include its private, opaque document state ! in the archive. ! A typical example of private data is a fallback implementation in the plug-in for data not ! provided by the host. For example, if the host does not implement a chord track, a plug-in ! may need to implement this in its own UI in order to be fully usable. Since the host is not ! aware of this, the data must be stored privately at document level. ! This flag should be set to kARAFalse if the archive is intended for copy/paste or other ! means of data import/export between documents, or kARATrue if a host uses partial ! persistency as a general technique to store ARA documents for performance reasons (e.g. ! to avoid re-saving data that hasn’t been changed, or to minimize sync activity when ! implementing collaborative editing across the network - note that such optimizations rely ! on proper update notifications by the plug-in). ! If implementing the latter, hosts will typically split the document into a partial archive ! that contains only the document data, plus a set of archives that each contain a single ! audio source. In such a setup, the audio modifications are either stored in the same archive ! as their underlying audio source, or each audio modification is separated into an archive ! of its own. ! The only restriction for such archive splicing (in addition to respecting the general data ! dependency rules for partial persistency outlined in the documentation of ! ARADocumentControllerInterface::restoreObjectsFromArchive()) is that when restoring, the ! partial archive which was saved with documentData == kARATrue is restored as last archive in ! the restore cycle, where the graph has its final structure and all object states are available.
audioSourceRefsCount: ARASize! Length of #audioSourceRefs.
audioSourceRefs: *const ARAAudioSourceRef! Variable-sized C array listing the audio sources to store. ! The list may be empty, in which case count should be 0 and the pointer NULL.
audioModificationRefsCount: ARASize! Length of #audioModificationRefs.
audioModificationRefs: *const ARAAudioModificationRef! Variable-sized C array listing the audio modifications to store. ! The list may be empty, in which case count should be 0 and the pointer NULL.
Trait Implementations§
Source§impl Clone for ARAStoreObjectsFilter
impl Clone for ARAStoreObjectsFilter
Source§fn clone(&self) -> ARAStoreObjectsFilter
fn clone(&self) -> ARAStoreObjectsFilter
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more