pub trait IAudioClient_Impl: Sized {
    // Required methods
    fn Initialize(
        &self,
        sharemode: AUDCLNT_SHAREMODE,
        streamflags: u32,
        hnsbufferduration: i64,
        hnsperiodicity: i64,
        pformat: *const WAVEFORMATEX,
        audiosessionguid: *const GUID
    ) -> Result<()>;
    fn GetBufferSize(&self) -> Result<u32>;
    fn GetStreamLatency(&self) -> Result<i64>;
    fn GetCurrentPadding(&self) -> Result<u32>;
    fn IsFormatSupported(
        &self,
        sharemode: AUDCLNT_SHAREMODE,
        pformat: *const WAVEFORMATEX,
        ppclosestmatch: *mut *mut WAVEFORMATEX
    ) -> HRESULT;
    fn GetMixFormat(&self) -> Result<*mut WAVEFORMATEX>;
    fn GetDevicePeriod(
        &self,
        phnsdefaultdeviceperiod: *mut i64,
        phnsminimumdeviceperiod: *mut i64
    ) -> Result<()>;
    fn Start(&self) -> Result<()>;
    fn Stop(&self) -> Result<()>;
    fn Reset(&self) -> Result<()>;
    fn SetEventHandle(&self, eventhandle: HANDLE) -> Result<()>;
    fn GetService(&self, riid: *const GUID, ppv: *mut *mut c_void) -> Result<()>;
}

Required Methods§

fn Initialize( &self, sharemode: AUDCLNT_SHAREMODE, streamflags: u32, hnsbufferduration: i64, hnsperiodicity: i64, pformat: *const WAVEFORMATEX, audiosessionguid: *const GUID ) -> Result<()>

fn GetBufferSize(&self) -> Result<u32>

fn GetStreamLatency(&self) -> Result<i64>

fn GetCurrentPadding(&self) -> Result<u32>

fn IsFormatSupported( &self, sharemode: AUDCLNT_SHAREMODE, pformat: *const WAVEFORMATEX, ppclosestmatch: *mut *mut WAVEFORMATEX ) -> HRESULT

fn GetMixFormat(&self) -> Result<*mut WAVEFORMATEX>

fn GetDevicePeriod( &self, phnsdefaultdeviceperiod: *mut i64, phnsminimumdeviceperiod: *mut i64 ) -> Result<()>

fn Start(&self) -> Result<()>

fn Stop(&self) -> Result<()>

fn Reset(&self) -> Result<()>

fn SetEventHandle(&self, eventhandle: HANDLE) -> Result<()>

fn GetService(&self, riid: *const GUID, ppv: *mut *mut c_void) -> Result<()>

Object Safety§

This trait is not object safe.

Implementors§