windows::Win32::Media::Audio::XAudio2

Trait IXAudio2_Impl

pub trait IXAudio2_Impl: IUnknownImpl {
    // Required methods
    fn RegisterForCallbacks(
        &self,
        pcallback: Ref<'_, IXAudio2EngineCallback>,
    ) -> Result<()>;
    fn UnregisterForCallbacks(&self, pcallback: Ref<'_, IXAudio2EngineCallback>);
    fn CreateSourceVoice(
        &self,
        ppsourcevoice: OutRef<'_, IXAudio2SourceVoice>,
        psourceformat: *const WAVEFORMATEX,
        flags: u32,
        maxfrequencyratio: f32,
        pcallback: Ref<'_, IXAudio2VoiceCallback>,
        psendlist: *const XAUDIO2_VOICE_SENDS,
        peffectchain: *const XAUDIO2_EFFECT_CHAIN,
    ) -> Result<()>;
    fn CreateSubmixVoice(
        &self,
        ppsubmixvoice: OutRef<'_, IXAudio2SubmixVoice>,
        inputchannels: u32,
        inputsamplerate: u32,
        flags: u32,
        processingstage: u32,
        psendlist: *const XAUDIO2_VOICE_SENDS,
        peffectchain: *const XAUDIO2_EFFECT_CHAIN,
    ) -> Result<()>;
    fn CreateMasteringVoice(
        &self,
        ppmasteringvoice: OutRef<'_, IXAudio2MasteringVoice>,
        inputchannels: u32,
        inputsamplerate: u32,
        flags: u32,
        szdeviceid: &PCWSTR,
        peffectchain: *const XAUDIO2_EFFECT_CHAIN,
        streamcategory: AUDIO_STREAM_CATEGORY,
    ) -> Result<()>;
    fn StartEngine(&self) -> Result<()>;
    fn StopEngine(&self);
    fn CommitChanges(&self, operationset: u32) -> Result<()>;
    fn GetPerformanceData(&self, pperfdata: *mut XAUDIO2_PERFORMANCE_DATA);
    fn SetDebugConfiguration(
        &self,
        pdebugconfiguration: *const XAUDIO2_DEBUG_CONFIGURATION,
        preserved: *const c_void,
    );
}

Required Methods§

fn RegisterForCallbacks( &self, pcallback: Ref<'_, IXAudio2EngineCallback>, ) -> Result<()>

fn UnregisterForCallbacks(&self, pcallback: Ref<'_, IXAudio2EngineCallback>)

fn CreateSourceVoice( &self, ppsourcevoice: OutRef<'_, IXAudio2SourceVoice>, psourceformat: *const WAVEFORMATEX, flags: u32, maxfrequencyratio: f32, pcallback: Ref<'_, IXAudio2VoiceCallback>, psendlist: *const XAUDIO2_VOICE_SENDS, peffectchain: *const XAUDIO2_EFFECT_CHAIN, ) -> Result<()>

fn CreateSubmixVoice( &self, ppsubmixvoice: OutRef<'_, IXAudio2SubmixVoice>, inputchannels: u32, inputsamplerate: u32, flags: u32, processingstage: u32, psendlist: *const XAUDIO2_VOICE_SENDS, peffectchain: *const XAUDIO2_EFFECT_CHAIN, ) -> Result<()>

fn CreateMasteringVoice( &self, ppmasteringvoice: OutRef<'_, IXAudio2MasteringVoice>, inputchannels: u32, inputsamplerate: u32, flags: u32, szdeviceid: &PCWSTR, peffectchain: *const XAUDIO2_EFFECT_CHAIN, streamcategory: AUDIO_STREAM_CATEGORY, ) -> Result<()>

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

fn StopEngine(&self)

fn CommitChanges(&self, operationset: u32) -> Result<()>

fn GetPerformanceData(&self, pperfdata: *mut XAUDIO2_PERFORMANCE_DATA)

fn SetDebugConfiguration( &self, pdebugconfiguration: *const XAUDIO2_DEBUG_CONFIGURATION, preserved: *const c_void, )

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§