#[repr(C)]
pub struct AkDeviceSettings { pub pIOMemory: *mut c_void, pub uIOMemorySize: AkUInt32, pub uIOMemoryAlignment: AkUInt32, pub ePoolAttributes: AkUInt32, pub uGranularity: AkUInt32, pub uSchedulerTypeFlags: AkUInt32, pub threadProperties: AkThreadProperties, pub fTargetAutoStmBufferLength: AkReal32, pub uMaxConcurrentIO: AkUInt32, pub bUseStreamCache: bool, pub uMaxCachePinnedBytes: AkUInt32, }
Expand description

High-level IO devices initialization settings. \sa

  • AK::IAkStreamMgr
  • AK::StreamMgr::CreateDevice()
  • \ref streamingmanager_settings

Fields

pIOMemory: *mut c_void

Pointer for I/O memory allocated by user. Pass NULL if you want memory to be allocated via AK::MemoryMgr::Malign(). If specified, uIOMemorySize, uIOMemoryAlignment and ePoolAttributes are ignored.

uIOMemorySize: AkUInt32

Size of memory for I/O (for automatic streams). It is passed directly to AK::MemoryMgr::Malign(), after having been rounded down to a multiple of uGranularity.

uIOMemoryAlignment: AkUInt32

I/O memory alignment. It is passed directly to AK::MemoryMgr::Malign().

ePoolAttributes: AkUInt32

Attributes for I/O memory. Here, specify the allocation type (AkMemType_Device, and so on). It is passed directly to AK::MemoryMgr::Malign().

uGranularity: AkUInt32

I/O requests granularity (typical bytes/request).

uSchedulerTypeFlags: AkUInt32

Scheduler type flags.

threadProperties: AkThreadProperties

Scheduler thread properties.

fTargetAutoStmBufferLength: AkReal32

Targetted automatic stream buffer length (ms). When a stream reaches that buffering, it stops being scheduled for I/O except if the scheduler is idle.

uMaxConcurrentIO: AkUInt32

Maximum number of transfers that can be sent simultaneously to the Low-Level I/O (applies to AK_SCHEDULER_DEFERRED_LINED_UP device only).

bUseStreamCache: bool

If true the device attempts to reuse IO buffers that have already been streamed from disk. This is particularly useful when streaming small looping sounds. The drawback is a small CPU hit when allocating memory, and a slightly larger memory footprint in the StreamManager pool.

uMaxCachePinnedBytes: AkUInt32

Maximum number of bytes that can be “pinned” using AK::SoundEngine::PinEventInStreamCache() or AK::IAkStreamMgr::PinFileInCache()

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Gets the default values of the platform-independent initialization settings.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.