view dstep/appkit/NSSpeechSynthesizer.d @ 16:19885b43130e

Huge update, the bridge actually works now
author Jacob Carlborg <doob@me.com>
date Sun, 03 Jan 2010 22:06:11 +0100
parents
children b9de51448c6b
line wrap: on
line source

/**
 * Copyright: Copyright (c) 2009 Jacob Carlborg.
 * Authors: Jacob Carlborg
 * Version: Initial created: Sep 24, 2009 
 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
 */
module dstep.appkit.NSSpeechSynthesizer;

import dstep.appkit.AppKitDefines;
import dstep.foundation.NSArray;
import dstep.foundation.NSDictionary;
import dstep.foundation.NSError;
import dstep.foundation.NSObjCRuntime;
import dstep.foundation.NSObject;
import dstep.foundation.NSRange;
import dstep.foundation.NSString;
import dstep.foundation.NSURL;
import dstep.objc.bridge.Bridge;
import dstep.objc.objc;

import bindings = dstep.appkit.NSSpeechSynthesizer_bindings;

alias NSUInteger NSSpeechBoundary;

private
{
	NSString NSVoiceName_;
	NSString NSVoiceIdentifier_;
	NSString NSVoiceAge_;
	NSString NSVoiceGender_;
	NSString NSVoiceDemoText_;
	NSString NSVoiceLocaleIdentifier_;
	NSString NSVoiceSupportedCharacters_;
	NSString NSVoiceIndividuallySpokenCharacters_;
	NSString NSVoiceGenderNeuter_;
	NSString NSVoiceGenderMale_;
	NSString NSVoiceGenderFemale_;
	NSString NSSpeechStatusProperty_;
	NSString NSSpeechErrorsProperty_;
	NSString NSSpeechInputModeProperty_;
	NSString NSSpeechCharacterModeProperty_;
	NSString NSSpeechNumberModeProperty_;
	NSString NSSpeechRateProperty_;
	NSString NSSpeechPitchBaseProperty_;
	NSString NSSpeechPitchModProperty_;
	NSString NSSpeechVolumeProperty_;
	NSString NSSpeechSynthesizerInfoProperty_;
	NSString NSSpeechRecentSyncProperty_;
	NSString NSSpeechPhonemeSymbolsProperty_;
	NSString NSSpeechCurrentVoiceProperty_;
	NSString NSSpeechCommandDelimiterProperty_;
	NSString NSSpeechResetProperty_;
	NSString NSSpeechOutputToFileURLProperty_;
	NSString NSSpeechModeText_;
	NSString NSSpeechModePhoneme_;
	NSString NSSpeechModeNormal_;
	NSString NSSpeechModeLiteral_;
	NSString NSSpeechStatusOutputBusy_;
	NSString NSSpeechStatusOutputPaused_;
	NSString NSSpeechStatusNumberOfCharactersLeft_;
	NSString NSSpeechStatusPhonemeCode_;
	NSString NSSpeechErrorCount_;
	NSString NSSpeechErrorOldestCode_;
	NSString NSSpeechErrorOldestCharacterOffset_;
	NSString NSSpeechErrorNewestCode_;
	NSString NSSpeechErrorNewestCharacterOffset_;
	NSString NSSpeechSynthesizerInfoIdentifier_;
	NSString NSSpeechSynthesizerInfoVersion_;
	NSString NSSpeechPhonemeInfoOpcode_;
	NSString NSSpeechPhonemeInfoSymbol_;
	NSString NSSpeechPhonemeInfoExample_;
	NSString NSSpeechPhonemeInfoHiliteStart_;
	NSString NSSpeechPhonemeInfoHiliteEnd_;
	NSString NSSpeechCommandPrefix_;
	NSString NSSpeechCommandSuffix_;
	NSString NSSpeechDictionaryLocaleIdentifier_;
	NSString NSSpeechDictionaryModificationDate_;
	NSString NSSpeechDictionaryPronunciations_;
	NSString NSSpeechDictionaryAbbreviations_;
	NSString NSSpeechDictionaryEntrySpelling_;
	NSString NSSpeechDictionaryEntryPhonemes_;
}

NSString NSVoiceName ()
{
	if (NSVoiceName_)
		return NSVoiceName_;

	return NSVoiceName_ = new NSString(bindings.NSVoiceName);
}

NSString NSVoiceIdentifier ()
{
	if (NSVoiceIdentifier_)
		return NSVoiceIdentifier_;

	return NSVoiceIdentifier_ = new NSString(bindings.NSVoiceIdentifier);
}

NSString NSVoiceAge ()
{
	if (NSVoiceAge_)
		return NSVoiceAge_;

	return NSVoiceAge_ = new NSString(bindings.NSVoiceAge);
}

NSString NSVoiceGender ()
{
	if (NSVoiceGender_)
		return NSVoiceGender_;

	return NSVoiceGender_ = new NSString(bindings.NSVoiceGender);
}

NSString NSVoiceDemoText ()
{
	if (NSVoiceDemoText_)
		return NSVoiceDemoText_;

	return NSVoiceDemoText_ = new NSString(bindings.NSVoiceDemoText);
}

NSString NSVoiceLocaleIdentifier ()
{
	if (NSVoiceLocaleIdentifier_)
		return NSVoiceLocaleIdentifier_;

	return NSVoiceLocaleIdentifier_ = new NSString(bindings.NSVoiceLocaleIdentifier);
}

NSString NSVoiceSupportedCharacters ()
{
	if (NSVoiceSupportedCharacters_)
		return NSVoiceSupportedCharacters_;

	return NSVoiceSupportedCharacters_ = new NSString(bindings.NSVoiceSupportedCharacters);
}

NSString NSVoiceIndividuallySpokenCharacters ()
{
	if (NSVoiceIndividuallySpokenCharacters_)
		return NSVoiceIndividuallySpokenCharacters_;

	return NSVoiceIndividuallySpokenCharacters_ = new NSString(bindings.NSVoiceIndividuallySpokenCharacters);
}

NSString NSVoiceGenderNeuter ()
{
	if (NSVoiceGenderNeuter_)
		return NSVoiceGenderNeuter_;

	return NSVoiceGenderNeuter_ = new NSString(bindings.NSVoiceGenderNeuter);
}

NSString NSVoiceGenderMale ()
{
	if (NSVoiceGenderMale_)
		return NSVoiceGenderMale_;

	return NSVoiceGenderMale_ = new NSString(bindings.NSVoiceGenderMale);
}

NSString NSVoiceGenderFemale ()
{
	if (NSVoiceGenderFemale_)
		return NSVoiceGenderFemale_;

	return NSVoiceGenderFemale_ = new NSString(bindings.NSVoiceGenderFemale);
}

NSString NSSpeechStatusProperty ()
{
	if (NSSpeechStatusProperty_)
		return NSSpeechStatusProperty_;

	return NSSpeechStatusProperty_ = new NSString(bindings.NSSpeechStatusProperty);
}

NSString NSSpeechErrorsProperty ()
{
	if (NSSpeechErrorsProperty_)
		return NSSpeechErrorsProperty_;

	return NSSpeechErrorsProperty_ = new NSString(bindings.NSSpeechErrorsProperty);
}

NSString NSSpeechInputModeProperty ()
{
	if (NSSpeechInputModeProperty_)
		return NSSpeechInputModeProperty_;

	return NSSpeechInputModeProperty_ = new NSString(bindings.NSSpeechInputModeProperty);
}

NSString NSSpeechCharacterModeProperty ()
{
	if (NSSpeechCharacterModeProperty_)
		return NSSpeechCharacterModeProperty_;

	return NSSpeechCharacterModeProperty_ = new NSString(bindings.NSSpeechCharacterModeProperty);
}

NSString NSSpeechNumberModeProperty ()
{
	if (NSSpeechNumberModeProperty_)
		return NSSpeechNumberModeProperty_;

	return NSSpeechNumberModeProperty_ = new NSString(bindings.NSSpeechNumberModeProperty);
}

NSString NSSpeechRateProperty ()
{
	if (NSSpeechRateProperty_)
		return NSSpeechRateProperty_;

	return NSSpeechRateProperty_ = new NSString(bindings.NSSpeechRateProperty);
}

NSString NSSpeechPitchBaseProperty ()
{
	if (NSSpeechPitchBaseProperty_)
		return NSSpeechPitchBaseProperty_;

	return NSSpeechPitchBaseProperty_ = new NSString(bindings.NSSpeechPitchBaseProperty);
}

NSString NSSpeechPitchModProperty ()
{
	if (NSSpeechPitchModProperty_)
		return NSSpeechPitchModProperty_;

	return NSSpeechPitchModProperty_ = new NSString(bindings.NSSpeechPitchModProperty);
}

NSString NSSpeechVolumeProperty ()
{
	if (NSSpeechVolumeProperty_)
		return NSSpeechVolumeProperty_;

	return NSSpeechVolumeProperty_ = new NSString(bindings.NSSpeechVolumeProperty);
}

NSString NSSpeechSynthesizerInfoProperty ()
{
	if (NSSpeechSynthesizerInfoProperty_)
		return NSSpeechSynthesizerInfoProperty_;

	return NSSpeechSynthesizerInfoProperty_ = new NSString(bindings.NSSpeechSynthesizerInfoProperty);
}

NSString NSSpeechRecentSyncProperty ()
{
	if (NSSpeechRecentSyncProperty_)
		return NSSpeechRecentSyncProperty_;

	return NSSpeechRecentSyncProperty_ = new NSString(bindings.NSSpeechRecentSyncProperty);
}

NSString NSSpeechPhonemeSymbolsProperty ()
{
	if (NSSpeechPhonemeSymbolsProperty_)
		return NSSpeechPhonemeSymbolsProperty_;

	return NSSpeechPhonemeSymbolsProperty_ = new NSString(bindings.NSSpeechPhonemeSymbolsProperty);
}

NSString NSSpeechCurrentVoiceProperty ()
{
	if (NSSpeechCurrentVoiceProperty_)
		return NSSpeechCurrentVoiceProperty_;

	return NSSpeechCurrentVoiceProperty_ = new NSString(bindings.NSSpeechCurrentVoiceProperty);
}

NSString NSSpeechCommandDelimiterProperty ()
{
	if (NSSpeechCommandDelimiterProperty_)
		return NSSpeechCommandDelimiterProperty_;

	return NSSpeechCommandDelimiterProperty_ = new NSString(bindings.NSSpeechCommandDelimiterProperty);
}

NSString NSSpeechResetProperty ()
{
	if (NSSpeechResetProperty_)
		return NSSpeechResetProperty_;

	return NSSpeechResetProperty_ = new NSString(bindings.NSSpeechResetProperty);
}

NSString NSSpeechOutputToFileURLProperty ()
{
	if (NSSpeechOutputToFileURLProperty_)
		return NSSpeechOutputToFileURLProperty_;

	return NSSpeechOutputToFileURLProperty_ = new NSString(bindings.NSSpeechOutputToFileURLProperty);
}

NSString NSSpeechModeText ()
{
	if (NSSpeechModeText_)
		return NSSpeechModeText_;

	return NSSpeechModeText_ = new NSString(bindings.NSSpeechModeText);
}

NSString NSSpeechModePhoneme ()
{
	if (NSSpeechModePhoneme_)
		return NSSpeechModePhoneme_;

	return NSSpeechModePhoneme_ = new NSString(bindings.NSSpeechModePhoneme);
}

NSString NSSpeechModeNormal ()
{
	if (NSSpeechModeNormal_)
		return NSSpeechModeNormal_;

	return NSSpeechModeNormal_ = new NSString(bindings.NSSpeechModeNormal);
}

NSString NSSpeechModeLiteral ()
{
	if (NSSpeechModeLiteral_)
		return NSSpeechModeLiteral_;

	return NSSpeechModeLiteral_ = new NSString(bindings.NSSpeechModeLiteral);
}

NSString NSSpeechStatusOutputBusy ()
{
	if (NSSpeechStatusOutputBusy_)
		return NSSpeechStatusOutputBusy_;

	return NSSpeechStatusOutputBusy_ = new NSString(bindings.NSSpeechStatusOutputBusy);
}

NSString NSSpeechStatusOutputPaused ()
{
	if (NSSpeechStatusOutputPaused_)
		return NSSpeechStatusOutputPaused_;

	return NSSpeechStatusOutputPaused_ = new NSString(bindings.NSSpeechStatusOutputPaused);
}

NSString NSSpeechStatusNumberOfCharactersLeft ()
{
	if (NSSpeechStatusNumberOfCharactersLeft_)
		return NSSpeechStatusNumberOfCharactersLeft_;

	return NSSpeechStatusNumberOfCharactersLeft_ = new NSString(bindings.NSSpeechStatusNumberOfCharactersLeft);
}

NSString NSSpeechStatusPhonemeCode ()
{
	if (NSSpeechStatusPhonemeCode_)
		return NSSpeechStatusPhonemeCode_;

	return NSSpeechStatusPhonemeCode_ = new NSString(bindings.NSSpeechStatusPhonemeCode);
}

NSString NSSpeechErrorCount ()
{
	if (NSSpeechErrorCount_)
		return NSSpeechErrorCount_;

	return NSSpeechErrorCount_ = new NSString(bindings.NSSpeechErrorCount);
}

NSString NSSpeechErrorOldestCode ()
{
	if (NSSpeechErrorOldestCode_)
		return NSSpeechErrorOldestCode_;

	return NSSpeechErrorOldestCode_ = new NSString(bindings.NSSpeechErrorOldestCode);
}

NSString NSSpeechErrorOldestCharacterOffset ()
{
	if (NSSpeechErrorOldestCharacterOffset_)
		return NSSpeechErrorOldestCharacterOffset_;

	return NSSpeechErrorOldestCharacterOffset_ = new NSString(bindings.NSSpeechErrorOldestCharacterOffset);
}

NSString NSSpeechErrorNewestCode ()
{
	if (NSSpeechErrorNewestCode_)
		return NSSpeechErrorNewestCode_;

	return NSSpeechErrorNewestCode_ = new NSString(bindings.NSSpeechErrorNewestCode);
}

NSString NSSpeechErrorNewestCharacterOffset ()
{
	if (NSSpeechErrorNewestCharacterOffset_)
		return NSSpeechErrorNewestCharacterOffset_;

	return NSSpeechErrorNewestCharacterOffset_ = new NSString(bindings.NSSpeechErrorNewestCharacterOffset);
}

NSString NSSpeechSynthesizerInfoIdentifier ()
{
	if (NSSpeechSynthesizerInfoIdentifier_)
		return NSSpeechSynthesizerInfoIdentifier_;

	return NSSpeechSynthesizerInfoIdentifier_ = new NSString(bindings.NSSpeechSynthesizerInfoIdentifier);
}

NSString NSSpeechSynthesizerInfoVersion ()
{
	if (NSSpeechSynthesizerInfoVersion_)
		return NSSpeechSynthesizerInfoVersion_;

	return NSSpeechSynthesizerInfoVersion_ = new NSString(bindings.NSSpeechSynthesizerInfoVersion);
}

NSString NSSpeechPhonemeInfoOpcode ()
{
	if (NSSpeechPhonemeInfoOpcode_)
		return NSSpeechPhonemeInfoOpcode_;

	return NSSpeechPhonemeInfoOpcode_ = new NSString(bindings.NSSpeechPhonemeInfoOpcode);
}

NSString NSSpeechPhonemeInfoSymbol ()
{
	if (NSSpeechPhonemeInfoSymbol_)
		return NSSpeechPhonemeInfoSymbol_;

	return NSSpeechPhonemeInfoSymbol_ = new NSString(bindings.NSSpeechPhonemeInfoSymbol);
}

NSString NSSpeechPhonemeInfoExample ()
{
	if (NSSpeechPhonemeInfoExample_)
		return NSSpeechPhonemeInfoExample_;

	return NSSpeechPhonemeInfoExample_ = new NSString(bindings.NSSpeechPhonemeInfoExample);
}

NSString NSSpeechPhonemeInfoHiliteStart ()
{
	if (NSSpeechPhonemeInfoHiliteStart_)
		return NSSpeechPhonemeInfoHiliteStart_;

	return NSSpeechPhonemeInfoHiliteStart_ = new NSString(bindings.NSSpeechPhonemeInfoHiliteStart);
}

NSString NSSpeechPhonemeInfoHiliteEnd ()
{
	if (NSSpeechPhonemeInfoHiliteEnd_)
		return NSSpeechPhonemeInfoHiliteEnd_;

	return NSSpeechPhonemeInfoHiliteEnd_ = new NSString(bindings.NSSpeechPhonemeInfoHiliteEnd);
}

NSString NSSpeechCommandPrefix ()
{
	if (NSSpeechCommandPrefix_)
		return NSSpeechCommandPrefix_;

	return NSSpeechCommandPrefix_ = new NSString(bindings.NSSpeechCommandPrefix);
}

NSString NSSpeechCommandSuffix ()
{
	if (NSSpeechCommandSuffix_)
		return NSSpeechCommandSuffix_;

	return NSSpeechCommandSuffix_ = new NSString(bindings.NSSpeechCommandSuffix);
}

NSString NSSpeechDictionaryLocaleIdentifier ()
{
	if (NSSpeechDictionaryLocaleIdentifier_)
		return NSSpeechDictionaryLocaleIdentifier_;

	return NSSpeechDictionaryLocaleIdentifier_ = new NSString(bindings.NSSpeechDictionaryLocaleIdentifier);
}

NSString NSSpeechDictionaryModificationDate ()
{
	if (NSSpeechDictionaryModificationDate_)
		return NSSpeechDictionaryModificationDate_;

	return NSSpeechDictionaryModificationDate_ = new NSString(bindings.NSSpeechDictionaryModificationDate);
}

NSString NSSpeechDictionaryPronunciations ()
{
	if (NSSpeechDictionaryPronunciations_)
		return NSSpeechDictionaryPronunciations_;

	return NSSpeechDictionaryPronunciations_ = new NSString(bindings.NSSpeechDictionaryPronunciations);
}

NSString NSSpeechDictionaryAbbreviations ()
{
	if (NSSpeechDictionaryAbbreviations_)
		return NSSpeechDictionaryAbbreviations_;

	return NSSpeechDictionaryAbbreviations_ = new NSString(bindings.NSSpeechDictionaryAbbreviations);
}

NSString NSSpeechDictionaryEntrySpelling ()
{
	if (NSSpeechDictionaryEntrySpelling_)
		return NSSpeechDictionaryEntrySpelling_;

	return NSSpeechDictionaryEntrySpelling_ = new NSString(bindings.NSSpeechDictionaryEntrySpelling);
}

NSString NSSpeechDictionaryEntryPhonemes ()
{
	if (NSSpeechDictionaryEntryPhonemes_)
		return NSSpeechDictionaryEntryPhonemes_;

	return NSSpeechDictionaryEntryPhonemes_ = new NSString(bindings.NSSpeechDictionaryEntryPhonemes);
}

enum
{
	NSSpeechImmediateBoundary = 0,
	NSSpeechWordBoundary,
	NSSpeechSentenceBoundary
}

class NSSpeechSynthesizer : NSObject
{
	mixin (ObjcWrap);

	NSSpeechSynthesizer initWithVoice (NSString voice)
	{
		id result = invokeObjcSelf!(id, "initWithVoice:", NSString)(voice);
		return result is this.objcObject ? this : (result !is null ? new NSSpeechSynthesizer(result) : null);
	}

	this (NSString voice)
	{
		super(NSSpeechSynthesizer.alloc.initWithVoice(voice).objcObject);
	}

	bool startSpeakingString (NSString string)
	{
		return invokeObjcSelf!(bool, "startSpeakingString:", NSString)(string);
	}

	bool startSpeakingString (NSString string, NSURL url)
	{
		return invokeObjcSelf!(bool, "startSpeakingString:toURL:", NSString, NSURL)(string, url);
	}

	bool isSpeaking ()
	{
		return invokeObjcSelf!(bool, "isSpeaking");
	}

	void stopSpeaking ()
	{
		return invokeObjcSelf!(void, "stopSpeaking");
	}

	void stopSpeakingAtBoundary (uint boundary)
	{
		return invokeObjcSelf!(void, "stopSpeakingAtBoundary:", uint)(boundary);
	}

	void pauseSpeakingAtBoundary (uint boundary)
	{
		return invokeObjcSelf!(void, "pauseSpeakingAtBoundary:", uint)(boundary);
	}

	void continueSpeaking ()
	{
		return invokeObjcSelf!(void, "continueSpeaking");
	}

	Object delegate_ ()
	{
		return invokeObjcSelf!(Object, "delegate");
	}

	void setDelegate (Object anObject)
	{
		return invokeObjcSelf!(void, "setDelegate:", Object)(anObject);
	}

	NSString voice ()
	{
		return invokeObjcSelf!(NSString, "voice");
	}

	bool setVoice (NSString voice)
	{
		return invokeObjcSelf!(bool, "setVoice:", NSString)(voice);
	}

	float rate ()
	{
		return invokeObjcSelf!(float, "rate");
	}

	void setRate (float rate)
	{
		return invokeObjcSelf!(void, "setRate:", float)(rate);
	}

	float volume ()
	{
		return invokeObjcSelf!(float, "volume");
	}

	void setVolume (float volume)
	{
		return invokeObjcSelf!(void, "setVolume:", float)(volume);
	}

	bool usesFeedbackWindow ()
	{
		return invokeObjcSelf!(bool, "usesFeedbackWindow");
	}

	void setUsesFeedbackWindow (bool flag)
	{
		return invokeObjcSelf!(void, "setUsesFeedbackWindow:", bool)(flag);
	}

	void addSpeechDictionary (NSDictionary speechDictionary)
	{
		return invokeObjcSelf!(void, "addSpeechDictionary:", NSDictionary)(speechDictionary);
	}

	NSString phonemesFromText (NSString text)
	{
		return invokeObjcSelf!(NSString, "phonemesFromText:", NSString)(text);
	}

	Object objectForProperty (NSString property, out NSError outError)
	{
		id error;
		
		Object result = invokeObjcSelf!(Object, "objectForProperty:error:", NSString, id*)(property, &error);
		
		if (error)
			outError = new NSError(error);
		
		return result;
	}

	bool setObject (Object object, NSString property, ref NSError outError)
	{
		id error;
				
		bool result = invokeObjcSelf!(bool, "setObject:forProperty:error:", Object, NSString, id*)(object, property, &error);
		
		if (error)
			outError = new NSError(error);
		
		return result;
	}

	static bool isAnyApplicationSpeaking ()
	{
		return invokeObjcSelfClass!(bool, "isAnyApplicationSpeaking");
	}

	static NSString defaultVoice ()
	{
		return invokeObjcSelfClass!(NSString, "defaultVoice");
	}

	static NSArray availableVoices ()
	{
		return invokeObjcSelfClass!(NSArray, "availableVoices");
	}

	static NSDictionary attributesForVoice (NSString voice)
	{
		return invokeObjcSelfClass!(NSDictionary, "attributesForVoice:", NSString)(voice);
	}
}

const TNSSpeechSynthesizerDelegate = `

	void speechSynthesizer (NSSpeechSynthesizer sender, bool finishedSpeaking)
	{
		return invokeObjcSelf!(void, "speechSynthesizer:didFinishSpeaking:", NSSpeechSynthesizer, bool)(sender, finishedSpeaking);
	}

	void speechSynthesizer (NSSpeechSynthesizer sender, NSRange characterRange, NSString string)
	{
		return invokeObjcSelf!(void, "speechSynthesizer:willSpeakWord:ofString:", NSSpeechSynthesizer, NSRange, NSString)(sender, characterRange, string);
	}

	void speechSynthesizer (NSSpeechSynthesizer sender, short phonemeOpcode)
	{
		return invokeObjcSelf!(void, "speechSynthesizer:willSpeakPhoneme:", NSSpeechSynthesizer, short)(sender, phonemeOpcode);
	}

	void speechSynthesizer (NSSpeechSynthesizer sender, NSUInteger characterIndex, NSString string, NSString message)
	{
		return invokeObjcSelf!(void, "speechSynthesizer:didEncounterErrorAtIndex:ofString:message:", NSSpeechSynthesizer, NSUInteger, NSString, NSString)(sender, characterIndex, string, message);
	}

	void speechSynthesizer (NSSpeechSynthesizer sender, NSString message)
	{
		return invokeObjcSelf!(void, "speechSynthesizer:didEncounterSyncMessage:", NSSpeechSynthesizer, NSString)(sender, message);
	}

	//mixin ObjcBindMethod!(speechSynthesizer, "speechSynthesizer:didFinishSpeaking:");
	//mixin ObjcBindMethod!(speechSynthesizer, "speechSynthesizer:willSpeakWord:ofString:");
	//mixin ObjcBindMethod!(speechSynthesizer, "speechSynthesizer:willSpeakPhoneme:");
	//mixin ObjcBindMethod!(speechSynthesizer, "speechSynthesizer:didEncounterErrorAtIndex:ofString:message:");
	//mixin ObjcBindMethod!(speechSynthesizer, "speechSynthesizer:didEncounterSyncMessage:");

`;