diff options
Diffstat (limited to 'navit/speech.c')
-rw-r--r-- | navit/speech.c | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/navit/speech.c b/navit/speech.c deleted file mode 100644 index cabd998dc..000000000 --- a/navit/speech.c +++ /dev/null @@ -1,165 +0,0 @@ -/** - * 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 <glib.h> -#include <string.h> -#include "debug.h" -#include "item.h" -#include "speech.h" -#include "plugin.h" -#include "xmlconfig.h" - -struct speech { - NAVIT_OBJECT; - struct speech_priv *priv; - struct speech_methods meth; -}; - - -struct speech * -speech_new(struct attr *parent, struct attr **attrs) -{ - struct speech *this_; - struct speech_priv *(*speech_new)(struct speech_methods *meth, struct attr **attrs, struct attr *parent); - struct attr *attr; - - attr=attr_search(attrs, NULL, attr_type); - if (! attr) { - dbg(lvl_error,"type missing\n"); - return NULL; - } - dbg(lvl_debug,"type='%s'\n", attr->u.str); - speech_new=plugin_get_category_speech(attr->u.str); - dbg(lvl_debug,"new=%p\n", speech_new); - if (! speech_new) { - dbg(lvl_error,"wrong type '%s'\n", attr->u.str); - return NULL; - } - this_=(struct speech *)navit_object_new(attrs, &speech_func, sizeof(struct speech)); - this_->priv=speech_new(&this_->meth, this_->attrs, parent); - dbg(lvl_debug, "say=%p\n", this_->meth.say); - dbg(lvl_debug,"priv=%p\n", this_->priv); - if (! this_->priv) { - speech_destroy(this_); - return NULL; - } - dbg(lvl_debug,"return %p\n", this_); - - return this_; -} - -void -speech_destroy(struct speech *this_) -{ - if (this_->priv) - this_->meth.destroy(this_->priv); - navit_object_destroy((struct navit_object *)this_); -} - -int -speech_say(struct speech *this_, const char *text) -{ - dbg(lvl_debug, "this_=%p text='%s' calling %p\n", this_, text, this_->meth.say); - return (this_->meth.say)(this_->priv, text); -} - -struct attr active=ATTR_INT(active, 1); -struct attr *speech_default_attrs[]={ - &active, - NULL, -}; - -/** - * @brief Gets an attribute from a speech plugin - * - * @param this_ The speech plugin the attribute should be read from - * @param type The type of the attribute to be read - * @param attr Pointer to an attrib-structure where the attribute should be written to - * @param iter (NOT IMPLEMENTED) Used to iterate through all attributes of a type. Set this to NULL to get the first attribute, set this to an attr_iter to get the next attribute - * @return True if the attribute type was found, false if not - */ - -int -speech_get_attr(struct speech *this_, enum attr_type type, struct attr *attr, struct attr_iter *iter) -{ - return attr_generic_get_attr(this_->attrs, speech_default_attrs, type, attr, iter); -} - -/** - * @brief Tries to estimate how long it will take to speak a certain string - * - * This function tries to estimate how long it will take to speak a certain string - * passed in str. It relies on the "characters per second"-value passed from the - * configuration. - * - * @param this_ The speech whose speed should be used - * @param str The string that should be estimated - * @return Time in tenth of seconds or -1 on error - */ -int -speech_estimate_duration(struct speech *this_, char *str) -{ - int count; - struct attr cps_attr; - - if (!speech_get_attr(this_,attr_cps,&cps_attr,NULL)) { - return -1; - } - - count = strlen(str); - - return (count * 10) / cps_attr.u.num; -} - -/** - * @brief Sets an attribute from an speech plugin - * - * This sets an attribute of a speech plugin, overwriting an attribute of the same type if it - * already exists. This function also calls all the callbacks that are registred - * to be called when attributes change. - * - * @param this_ The speech plugin to set the attribute of - * @param attr The attribute to set - * @return True if the attr could be set, false otherwise - */ - -int -speech_set_attr(struct speech *this_, struct attr *attr) -{ - this_->attrs=attr_generic_set_attr(this_->attrs, attr); - //callback_list_call_attr_2(this_->attr_cbl, attr->type, this_, attr); - return 1; -} - -struct object_func speech_func = { - attr_speech, - (object_func_new)speech_new, - (object_func_get_attr)speech_get_attr, - (object_func_iter_new)navit_object_attr_iter_new, - (object_func_iter_destroy)navit_object_attr_iter_destroy, - (object_func_set_attr)speech_set_attr, - (object_func_add_attr)navit_object_add_attr, - (object_func_remove_attr)navit_object_remove_attr, - (object_func_init)NULL, - (object_func_destroy)speech_destroy, - (object_func_dup)NULL, - (object_func_ref)navit_object_ref, - (object_func_unref)navit_object_unref, -}; - |