#[repr(C, packed(1))]pub struct ARAFactory {Show 18 fields
pub structSize: ARASize,
pub lowestSupportedApiGeneration: ARAAPIGeneration,
pub highestSupportedApiGeneration: ARAAPIGeneration,
pub factoryID: ARAPersistentID,
pub initializeARAWithConfiguration: Option<unsafe extern "C" fn(config: *const ARAInterfaceConfiguration)>,
pub uninitializeARA: Option<unsafe extern "C" fn()>,
pub plugInName: ARAUtf8String,
pub manufacturerName: ARAUtf8String,
pub informationURL: ARAUtf8String,
pub version: ARAUtf8String,
pub createDocumentControllerWithDocument: Option<unsafe extern "C" fn(hostInstance: *const ARADocumentControllerHostInstance, properties: *const ARADocumentProperties) -> *const ARADocumentControllerInstance>,
pub documentArchiveID: ARAPersistentID,
pub compatibleDocumentArchiveIDsCount: ARASize,
pub compatibleDocumentArchiveIDs: *const ARAPersistentID,
pub analyzeableContentTypesCount: ARASize,
pub analyzeableContentTypes: *const ARAContentType,
pub supportedPlaybackTransformationFlags: ARAPlaybackTransformationFlags,
pub supportsStoringAudioFileChunks: ARABool,
}Expand description
! @defgroup Plug_In_Interfaces Plug-In Interfaces ! @{ ***************************************************************************************************/
Fields§
§structSize: ARASize! @see_Versioned_Structs_
lowestSupportedApiGeneration: ARAAPIGeneration!< Lower bound of supported ARAAPIGeneration.
highestSupportedApiGeneration: ARAAPIGeneration!< Upper bound of supported ARAAPIGeneration.
factoryID: ARAPersistentID! Unique and versioned plug-in identifier. ! This ID must be globally unique and identifies the plug-in’s document controller class ! created by this factory at runtime. ! The ID includes versioning, it must be updated if e.g. the plug-in’s (compatible) document ! archive ID(s) or its analysis or playback transformation capabilities change. ! Host applications can therefore use it to trigger cache updates if they implement a plug-in ! caching mechanism to avoid scanning all plug-ins each time the program is launched. ! If a given plug-in supports multiple companion APIs, it will return the same ID across all ! companion APIs, allowing the host to choose which API to use for this particular plug-in. ! See @ref sec_ManagingARAArchives for more information.
initializeARAWithConfiguration: Option<unsafe extern "C" fn(config: *const ARAInterfaceConfiguration)>! Start up ARA with the given configuration.
uninitializeARA: Option<unsafe extern "C" fn()>! Shut down ARA.
plugInName: ARAUtf8String! Name of the plug-in to display to the user.
manufacturerName: ARAUtf8String! Name of the manufacturer of the plug-in to display to the user.
informationURL: ARAUtf8String! Web page to refer the user to if they need further information about the plug-in.
version: ARAUtf8String! Version string of the plug-in to display to the user.
createDocumentControllerWithDocument: Option<unsafe extern "C" fn(hostInstance: *const ARADocumentControllerHostInstance, properties: *const ARADocumentProperties) -> *const ARADocumentControllerInstance>! Factory function for the document controller. ! This call is used both when creating a new document from scratch and when restoring ! a document from an archive.
documentArchiveID: ARAPersistentID! Identifier for document archives created by the document controller. ! This ID must be globally unique and is shared only amongst document controllers that ! create the same archives and produce the same render results based upon the same input data. ! This means that the ID must be updated if the archive format changes in any way that is ! no longer downwards compatible. ! See @ref sec_ManagingARAArchives for more information.
compatibleDocumentArchiveIDsCount: ARASize! Length of compatibleDocumentArchiveIDs.
compatibleDocumentArchiveIDs: *const ARAPersistentID! Variable-sized C array listing other identifiers of archives that the document controller can import. ! This list is used for example when updating the data structures inside the controller. ! It is ordered descending, expressing a preference which state to load in case a document ! contains more than one compatible archive of older versions. ! The list may be empty, in which case count should be 0 and the pointer NULL.
analyzeableContentTypesCount: ARASize! Length of analyzeableContentTypes.
analyzeableContentTypes: *const ARAContentType! Variable-sized C array listing the content types for which the plug-in can perform an analysis. ! This list allows the host to determine whether the plug-in can be used as analysis engine in ! the background (i.e. without presenting the UI to the user) to achieve certain host features. ! Note that the plug-in may support more content types than listed here for some or all objects ! in the graph, but may rely on user interaction when dealing with those content types. ! The list may be empty, in which case count should be 0 and the pointer NULL.
supportedPlaybackTransformationFlags: ARAPlaybackTransformationFlags! Set of transformations that the plug-in supports when configuring playback regions. ! These flags allow the host to determine whether e.g. the plug-in can be used as time-stretch engine.
supportsStoringAudioFileChunks: ARABool! Flag whether the plug-in supports exporting ARA audio file chunks via ! ARADocumentControllerInterface::storeAudioSourceToAudioFileChunk(). ! Note that reading such chunks is unaffected by this flag - as long as the documentArchiveID ! in the chunk is compatible, the plug-in must be able to read the data via ! ARADocumentControllerInterface::restoreObjectsFromArchive().
Trait Implementations§
Source§impl Clone for ARAFactory
impl Clone for ARAFactory
Source§fn clone(&self) -> ARAFactory
fn clone(&self) -> ARAFactory
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more