1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
use ffi::AVAudioServiceType::*; use ffi::*; #[derive(Eq, PartialEq, Clone, Copy, Debug)] pub enum AudioService { Main, Effects, VisuallyImpaired, HearingImpaired, Dialogue, Commentary, Emergency, VoiceOver, Karaoke, } impl From<AVAudioServiceType> for AudioService { fn from(value: AVAudioServiceType) -> Self { match value { AV_AUDIO_SERVICE_TYPE_MAIN => AudioService::Main, AV_AUDIO_SERVICE_TYPE_EFFECTS => AudioService::Effects, AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED => AudioService::VisuallyImpaired, AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED => AudioService::HearingImpaired, AV_AUDIO_SERVICE_TYPE_DIALOGUE => AudioService::Dialogue, AV_AUDIO_SERVICE_TYPE_COMMENTARY => AudioService::Commentary, AV_AUDIO_SERVICE_TYPE_EMERGENCY => AudioService::Emergency, AV_AUDIO_SERVICE_TYPE_VOICE_OVER => AudioService::VoiceOver, AV_AUDIO_SERVICE_TYPE_KARAOKE => AudioService::Karaoke, AV_AUDIO_SERVICE_TYPE_NB => AudioService::Main, } } } impl Into<AVAudioServiceType> for AudioService { fn into(self) -> AVAudioServiceType { match self { AudioService::Main => AV_AUDIO_SERVICE_TYPE_MAIN, AudioService::Effects => AV_AUDIO_SERVICE_TYPE_EFFECTS, AudioService::VisuallyImpaired => AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED, AudioService::HearingImpaired => AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED, AudioService::Dialogue => AV_AUDIO_SERVICE_TYPE_DIALOGUE, AudioService::Commentary => AV_AUDIO_SERVICE_TYPE_COMMENTARY, AudioService::Emergency => AV_AUDIO_SERVICE_TYPE_EMERGENCY, AudioService::VoiceOver => AV_AUDIO_SERVICE_TYPE_VOICE_OVER, AudioService::Karaoke => AV_AUDIO_SERVICE_TYPE_KARAOKE, } } }