#![allow(non_upper_case_globals, missing_docs)]
use ffi;
use pa::{
DeviceIndex,
HostApiTypeId,
Sample,
Stream
};
pub static MacCoreChangeDeviceParameters : u32 = 0x01;
pub static MacCoreFailIfConversionRequired : u32 = 0x02;
pub static MacCoreConversionQualityMin : u32 = 0x0100;
pub static MacCoreConversionQualityMedium : u32 = 0x0200;
pub static MacCoreConversionQualityLow : u32 = 0x0300;
pub static MacCoreConversionQualityHigh : u32 = 0x0400;
pub static MacCoreConversionQualityMax : u32 = 0x0000;
pub static MacCorePlayNice : u32 = 0x00;
pub static MacCorePro : u32 = 0x01;
pub static MacCoreMinimizeCPUButPlayNice : u32 = 0x0100;
pub static MacCoreMinimizeCPU : u32 = 0x0101;
#[allow(raw_pointer_derive)]
#[derive(Copy)]
pub struct MacCoreStreamInfo {
size : u32,
host_api_type : HostApiTypeId,
version : u32,
flags : u32,
channel_map : *const i32,
channel_map_size : u32
}
pub trait MacCore {
fn get_stream_input_device(&self) -> DeviceIndex;
fn get_stream_output_device(&self) -> DeviceIndex;
}
impl<I: Sample, O: Sample> MacCore for Stream<I, O> {
fn get_stream_input_device(&self) -> DeviceIndex {
unsafe {
ffi::PaMacCore_GetStreamInputDevice(self.get_c_pa_stream())
}
}
fn get_stream_output_device(&self) -> DeviceIndex {
unsafe {
ffi::PaMacCore_GetStreamOutputDevice(self.get_c_pa_stream())
}
}
}