diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-05-03 17:35:08 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-05-03 17:35:08 +0000 |
commit | bfdad091487ab40a306f213613fe1d0db11b6453 (patch) | |
tree | e40947581b3226d69f14f914d858615a010ac4da /navit/speech | |
parent | 8e4bbe8f99e8d7ccf8f6fe50c84e029b06389d70 (diff) | |
download | navit-bfdad091487ab40a306f213613fe1d0db11b6453.tar.gz |
Add:Core:New speech module iphone
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5066 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/speech')
-rw-r--r-- | navit/speech/iphone/CMakeLists.txt | 1 | ||||
-rw-r--r-- | navit/speech/iphone/VSSpeechSynthesizer.h | 18 | ||||
-rw-r--r-- | navit/speech/iphone/speech_iphone.m | 74 |
3 files changed, 93 insertions, 0 deletions
diff --git a/navit/speech/iphone/CMakeLists.txt b/navit/speech/iphone/CMakeLists.txt new file mode 100644 index 000000000..fff10ffd6 --- /dev/null +++ b/navit/speech/iphone/CMakeLists.txt @@ -0,0 +1 @@ +module_add_library(speech_iphone speech_iphone.m) diff --git a/navit/speech/iphone/VSSpeechSynthesizer.h b/navit/speech/iphone/VSSpeechSynthesizer.h new file mode 100644 index 000000000..d7b83e337 --- /dev/null +++ b/navit/speech/iphone/VSSpeechSynthesizer.h @@ -0,0 +1,18 @@ +#import <foundation/foundation.h> + +@interface VSSpeechSynthesizer : NSObject +{ +} + ++ (id)availableLanguageCodes; ++ (BOOL)isSystemSpeaking; +- (id)startSpeakingString:(id)string; +- (id)startSpeakingString:(id)string toURL:(id)url; +- (id)startSpeakingString:(id)string toURL:(id)url withLanguageCode:(id)code; +- (float)rate; // default rate: 1 +- (id)setRate:(float)rate; +- (float)pitch; // default pitch: 0.5 +- (id)setPitch:(float)pitch; +- (float)volume; // default volume: 0.8 +- (id)setVolume:(float)volume; +@end diff --git a/navit/speech/iphone/speech_iphone.m b/navit/speech/iphone/speech_iphone.m new file mode 100644 index 000000000..7b443abfa --- /dev/null +++ b/navit/speech/iphone/speech_iphone.m @@ -0,0 +1,74 @@ +/** + * Navit, a modular navigation system. + * Copyright (C) 2005-2008 Navit Team + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the + * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + */ + +#include <stdlib.h> +#include <glib.h> +#include "config.h" +#include "item.h" +#include "debug.h" +#include "plugin.h" +#include "speech.h" +#import "VSSpeechSynthesizer.h" + +struct speech_priv { + VSSpeechSynthesizer *speech; +}; + +static int +speech_iphone_say(struct speech_priv *this, const char *text) +{ +#if 0 + NSString *s=[[NSString alloc]initWithCString:text encoding:NSMacOSRomanStringEncoding]; +#else + NSString *s=[NSString stringWithUTF8String: text]; +#endif + [this->speech startSpeakingString:s]; + [s release]; + return 1; +} + +static void +speech_iphone_destroy(struct speech_priv *this) +{ + [this->speech release]; + g_free(this); +} + +static struct speech_methods speech_iphone_meth = { + speech_iphone_destroy, + speech_iphone_say, +}; + +static struct speech_priv * +speech_iphone_new(struct speech_methods *meth, struct attr **attrs, struct attr *parent) +{ + struct speech_priv *this; + *meth=speech_iphone_meth; + this=g_new0(struct speech_priv,1); + this->speech=[[NSClassFromString(@"VSSpeechSynthesizer") alloc] init]; + [this->speech setRate:(float)1.0]; + return this; +} + + +void +plugin_init(void) +{ + plugin_register_speech_type("iphone", speech_iphone_new); +} |