summaryrefslogtreecommitdiff
path: root/navit/speech
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-05-03 17:35:08 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2012-05-03 17:35:08 +0000
commitbfdad091487ab40a306f213613fe1d0db11b6453 (patch)
treee40947581b3226d69f14f914d858615a010ac4da /navit/speech
parent8e4bbe8f99e8d7ccf8f6fe50c84e029b06389d70 (diff)
downloadnavit-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.txt1
-rw-r--r--navit/speech/iphone/VSSpeechSynthesizer.h18
-rw-r--r--navit/speech/iphone/speech_iphone.m74
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);
+}