Skip to main content

ARAFactory

Struct ARAFactory 

Source
#[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

Source§

fn clone(&self) -> ARAFactory

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ARAFactory

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Copy for ARAFactory

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.