Struct rrise::settings::AkDeviceSettings
source · pub struct AkDeviceSettings {
pub io_memory: AtomicPtr<c_void>,
pub io_memory_size: u32,
pub io_memory_alignment: u32,
pub pool_attributes: u32,
pub granularity: u32,
pub scheduler_type_flags: u32,
pub thread_properties: AkThreadProperties,
pub target_auto_stm_buffer_length: f32,
pub max_concurrent_io: u32,
pub use_stream_cache: bool,
pub max_cache_pinned_bytes: u32,
}Expand description
High-level IO devices initialization settings.
Fields
io_memory: AtomicPtr<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, io_memory_size, io_memory_alignment and pool_attributes are ignored.
io_memory_size: u32Size 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 granularity.
io_memory_alignment: u32I/O memory alignment. It is passed directly to AK::MemoryMgr::Malign().
pool_attributes: u32Attributes for I/O memory. Here, specify the allocation type (AkMemType_Device, and so on). It is passed directly to AK::MemoryMgr::Malign().
granularity: u32I/O requests granularity (typical bytes/request).
scheduler_type_flags: u32Scheduler type flags.
thread_properties: AkThreadPropertiesScheduler thread properties.
target_auto_stm_buffer_length: f32Targeted automatic stream buffer length (ms). When a stream reaches that buffering, it stops being scheduled for I/O except if the scheduler is idle.
max_concurrent_io: u32Maximum number of transfers that can be sent simultaneously to the Low-Level I/O (applies to AK_SCHEDULER_DEFERRED_LINED_UP device only).
use_stream_cache: boolIf 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.
max_cache_pinned_bytes: u32Maximum number of bytes that can be “pinned” using AK::SoundEngine::PinEventInStreamCache() or AK::IAkStreamMgr::PinFileInCache()