use crate::common::*;
use crate::AppKit::*;
use crate::CoreData::*;
use crate::Foundation::*;
typed_enum!(
pub type NSSpeechSynthesizerVoiceName = NSString;
);
typed_enum!(
pub type NSVoiceAttributeKey = NSString;
);
extern_static!(NSVoiceName: &'static NSVoiceAttributeKey);
extern_static!(NSVoiceIdentifier: &'static NSVoiceAttributeKey);
extern_static!(NSVoiceAge: &'static NSVoiceAttributeKey);
extern_static!(NSVoiceGender: &'static NSVoiceAttributeKey);
extern_static!(NSVoiceDemoText: &'static NSVoiceAttributeKey);
extern_static!(NSVoiceLocaleIdentifier: &'static NSVoiceAttributeKey);
extern_static!(NSVoiceSupportedCharacters: &'static NSVoiceAttributeKey);
extern_static!(NSVoiceIndividuallySpokenCharacters: &'static NSVoiceAttributeKey);
typed_enum!(
pub type NSSpeechDictionaryKey = NSString;
);
extern_static!(NSSpeechDictionaryLocaleIdentifier: &'static NSSpeechDictionaryKey);
extern_static!(NSSpeechDictionaryModificationDate: &'static NSSpeechDictionaryKey);
extern_static!(NSSpeechDictionaryPronunciations: &'static NSSpeechDictionaryKey);
extern_static!(NSSpeechDictionaryAbbreviations: &'static NSSpeechDictionaryKey);
extern_static!(NSSpeechDictionaryEntrySpelling: &'static NSSpeechDictionaryKey);
extern_static!(NSSpeechDictionaryEntryPhonemes: &'static NSSpeechDictionaryKey);
typed_enum!(
pub type NSVoiceGenderName = NSString;
);
extern_static!(NSVoiceGenderNeuter: &'static NSVoiceGenderName);
extern_static!(NSVoiceGenderMale: &'static NSVoiceGenderName);
extern_static!(NSVoiceGenderFemale: &'static NSVoiceGenderName);
extern_static!(NSVoiceGenderNeutral: &'static NSVoiceGenderName);
typed_enum!(
pub type NSSpeechPropertyKey = NSString;
);
extern_static!(NSSpeechStatusProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechErrorsProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechInputModeProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechCharacterModeProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechNumberModeProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechRateProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechPitchBaseProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechPitchModProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechVolumeProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechSynthesizerInfoProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechRecentSyncProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechPhonemeSymbolsProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechCurrentVoiceProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechCommandDelimiterProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechResetProperty: &'static NSSpeechPropertyKey);
extern_static!(NSSpeechOutputToFileURLProperty: &'static NSSpeechPropertyKey);
extern_static!(NSVoiceLanguage: &'static NSVoiceAttributeKey);
ns_enum!(
#[underlying(NSUInteger)]
pub enum NSSpeechBoundary {
NSSpeechImmediateBoundary = 0,
NSSpeechWordBoundary = 1,
NSSpeechSentenceBoundary = 2,
}
);
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
pub struct NSSpeechSynthesizer;
unsafe impl ClassType for NSSpeechSynthesizer {
type Super = NSObject;
}
);
extern_methods!(
unsafe impl NSSpeechSynthesizer {
#[method_id(@__retain_semantics Init initWithVoice:)]
pub unsafe fn initWithVoice(
this: Option<Allocated<Self>>,
voice: Option<&NSSpeechSynthesizerVoiceName>,
) -> Option<Id<Self, Shared>>;
#[method(startSpeakingString:)]
pub unsafe fn startSpeakingString(&self, string: &NSString) -> bool;
#[method(startSpeakingString:toURL:)]
pub unsafe fn startSpeakingString_toURL(&self, string: &NSString, url: &NSURL) -> bool;
#[method(isSpeaking)]
pub unsafe fn isSpeaking(&self) -> bool;
#[method(stopSpeaking)]
pub unsafe fn stopSpeaking(&self);
#[method(stopSpeakingAtBoundary:)]
pub unsafe fn stopSpeakingAtBoundary(&self, boundary: NSSpeechBoundary);
#[method(pauseSpeakingAtBoundary:)]
pub unsafe fn pauseSpeakingAtBoundary(&self, boundary: NSSpeechBoundary);
#[method(continueSpeaking)]
pub unsafe fn continueSpeaking(&self);
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(&self) -> Option<Id<NSSpeechSynthesizerDelegate, Shared>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(&self, delegate: Option<&NSSpeechSynthesizerDelegate>);
#[method_id(@__retain_semantics Other voice)]
pub unsafe fn voice(&self) -> Option<Id<NSSpeechSynthesizerVoiceName, Shared>>;
#[method(setVoice:)]
pub unsafe fn setVoice(&self, voice: Option<&NSSpeechSynthesizerVoiceName>) -> bool;
#[method(rate)]
pub unsafe fn rate(&self) -> c_float;
#[method(setRate:)]
pub unsafe fn setRate(&self, rate: c_float);
#[method(volume)]
pub unsafe fn volume(&self) -> c_float;
#[method(setVolume:)]
pub unsafe fn setVolume(&self, volume: c_float);
#[method(usesFeedbackWindow)]
pub unsafe fn usesFeedbackWindow(&self) -> bool;
#[method(setUsesFeedbackWindow:)]
pub unsafe fn setUsesFeedbackWindow(&self, usesFeedbackWindow: bool);
#[method(addSpeechDictionary:)]
pub unsafe fn addSpeechDictionary(
&self,
speechDictionary: &NSDictionary<NSSpeechDictionaryKey, Object>,
);
#[method_id(@__retain_semantics Other phonemesFromText:)]
pub unsafe fn phonemesFromText(&self, text: &NSString) -> Id<NSString, Shared>;
#[method_id(@__retain_semantics Other objectForProperty:error:)]
pub unsafe fn objectForProperty_error(
&self,
property: &NSSpeechPropertyKey,
) -> Result<Id<Object, Shared>, Id<NSError, Shared>>;
#[method(setObject:forProperty:error:)]
pub unsafe fn setObject_forProperty_error(
&self,
object: Option<&Object>,
property: &NSSpeechPropertyKey,
) -> Result<(), Id<NSError, Shared>>;
#[method(isAnyApplicationSpeaking)]
pub unsafe fn isAnyApplicationSpeaking() -> bool;
#[method_id(@__retain_semantics Other defaultVoice)]
pub unsafe fn defaultVoice() -> Id<NSSpeechSynthesizerVoiceName, Shared>;
#[method_id(@__retain_semantics Other availableVoices)]
pub unsafe fn availableVoices() -> Id<NSArray<NSSpeechSynthesizerVoiceName>, Shared>;
#[method_id(@__retain_semantics Other attributesForVoice:)]
pub unsafe fn attributesForVoice(
voice: &NSSpeechSynthesizerVoiceName,
) -> Id<NSDictionary<NSVoiceAttributeKey, Object>, Shared>;
}
);
extern_protocol!(
pub struct NSSpeechSynthesizerDelegate;
unsafe impl ProtocolType for NSSpeechSynthesizerDelegate {
#[optional]
#[method(speechSynthesizer:didFinishSpeaking:)]
pub unsafe fn speechSynthesizer_didFinishSpeaking(
&self,
sender: &NSSpeechSynthesizer,
finishedSpeaking: bool,
);
#[optional]
#[method(speechSynthesizer:willSpeakWord:ofString:)]
pub unsafe fn speechSynthesizer_willSpeakWord_ofString(
&self,
sender: &NSSpeechSynthesizer,
characterRange: NSRange,
string: &NSString,
);
#[optional]
#[method(speechSynthesizer:willSpeakPhoneme:)]
pub unsafe fn speechSynthesizer_willSpeakPhoneme(
&self,
sender: &NSSpeechSynthesizer,
phonemeOpcode: c_short,
);
#[optional]
#[method(speechSynthesizer:didEncounterErrorAtIndex:ofString:message:)]
pub unsafe fn speechSynthesizer_didEncounterErrorAtIndex_ofString_message(
&self,
sender: &NSSpeechSynthesizer,
characterIndex: NSUInteger,
string: &NSString,
message: &NSString,
);
#[optional]
#[method(speechSynthesizer:didEncounterSyncMessage:)]
pub unsafe fn speechSynthesizer_didEncounterSyncMessage(
&self,
sender: &NSSpeechSynthesizer,
message: &NSString,
);
}
);
typed_enum!(
pub type NSSpeechMode = NSString;
);
extern_static!(NSSpeechModeText: &'static NSSpeechMode);
extern_static!(NSSpeechModePhoneme: &'static NSSpeechMode);
extern_static!(NSSpeechModeNormal: &'static NSSpeechMode);
extern_static!(NSSpeechModeLiteral: &'static NSSpeechMode);
typed_enum!(
pub type NSSpeechStatusKey = NSString;
);
extern_static!(NSSpeechStatusOutputBusy: &'static NSSpeechStatusKey);
extern_static!(NSSpeechStatusOutputPaused: &'static NSSpeechStatusKey);
extern_static!(NSSpeechStatusNumberOfCharactersLeft: &'static NSSpeechStatusKey);
extern_static!(NSSpeechStatusPhonemeCode: &'static NSSpeechStatusKey);
typed_enum!(
pub type NSSpeechErrorKey = NSString;
);
extern_static!(NSSpeechErrorCount: &'static NSSpeechErrorKey);
extern_static!(NSSpeechErrorOldestCode: &'static NSSpeechErrorKey);
extern_static!(NSSpeechErrorOldestCharacterOffset: &'static NSSpeechErrorKey);
extern_static!(NSSpeechErrorNewestCode: &'static NSSpeechErrorKey);
extern_static!(NSSpeechErrorNewestCharacterOffset: &'static NSSpeechErrorKey);
typed_enum!(
pub type NSSpeechSynthesizerInfoKey = NSString;
);
extern_static!(NSSpeechSynthesizerInfoIdentifier: &'static NSSpeechSynthesizerInfoKey);
extern_static!(NSSpeechSynthesizerInfoVersion: &'static NSSpeechSynthesizerInfoKey);
typed_enum!(
pub type NSSpeechPhonemeInfoKey = NSString;
);
extern_static!(NSSpeechPhonemeInfoOpcode: &'static NSSpeechPhonemeInfoKey);
extern_static!(NSSpeechPhonemeInfoSymbol: &'static NSSpeechPhonemeInfoKey);
extern_static!(NSSpeechPhonemeInfoExample: &'static NSSpeechPhonemeInfoKey);
extern_static!(NSSpeechPhonemeInfoHiliteStart: &'static NSSpeechPhonemeInfoKey);
extern_static!(NSSpeechPhonemeInfoHiliteEnd: &'static NSSpeechPhonemeInfoKey);
typed_enum!(
pub type NSSpeechCommandDelimiterKey = NSString;
);
extern_static!(NSSpeechCommandPrefix: &'static NSSpeechCommandDelimiterKey);
extern_static!(NSSpeechCommandSuffix: &'static NSSpeechCommandDelimiterKey);