static void pocketvox_controller_waiting(PocketvoxController *controller, gpointer data) { g_return_if_fail(NULL != controller); controller->priv = G_TYPE_INSTANCE_GET_PRIVATE (controller, TYPE_POCKETVOX_CONTROLLER, PocketvoxControllerPrivate); PocketvoxControllerPrivate *priv = controller->priv; pocketvox_notifier_say(priv->notifier, _("I'm waiting for your orders")); }
PocketvoxApplication* pocketvox_application_new() { PocketvoxApplication *application = (PocketvoxApplication *)g_object_new(TYPE_POCKETVOX_APPLICATION, NULL); application->priv = G_TYPE_INSTANCE_GET_PRIVATE (application, TYPE_POCKETVOX_APPLICATION, PocketvoxApplicationPrivate); PocketvoxApplicationPrivate *priv = application->priv; bindtextdomain (GETTEXT_PACKAGE, PROGRAMNAME_LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); gtk_init(NULL, NULL); gst_init(NULL, NULL); //access gettings parameters gchar *name = g_settings_get_string(priv->settings, "name"); gchar *voice = g_settings_get_string(priv->settings, "voice"); gchar *lm = g_settings_get_string(priv->settings, "lm"); gchar *dic = g_settings_get_string(priv->settings, "dict"); gchar *acoustic = g_settings_get_string(priv->settings, "hmm"); gchar *keyword = g_settings_get_string(priv->settings, "keyword"); gchar *material = g_settings_get_string(priv->settings, "source"); gchar *device = g_settings_get_string(priv->settings, "device"); gchar *host = g_settings_get_string(priv->settings, "host"); gint port = atoi(g_settings_get_string(priv->settings, "port")); gboolean visual = g_settings_get_boolean(priv->settings, "visual-notification"); gboolean sound = g_settings_get_boolean(priv->settings, "sound-notification"); GVariant *modules; GVariantIter *iter; gchar *key, *value; gboolean isapps; priv->indicator = pocketvox_indicator_new(); priv->notifier = pocketvox_notifier_new(name, voice); priv->recognizer = pocketvox_recognizer_new(acoustic, lm, dic, keyword, material, device, host, port); if(priv->indicator == NULL || priv->notifier == NULL || priv->recognizer == NULL) { g_error("A pocketvox component couldn't be created:\n%s %p\n%s %p\n%s %p", "PocketvoxIndicator",priv->indicator, "PocketvoxNotifier", priv->notifier, "PocketvoxRecognizer", priv->recognizer); } g_object_set(G_OBJECT(priv->notifier), "visual_notification", visual, "sound_notification", sound, NULL); priv->controller = pocketvox_controller_new(priv->recognizer, priv->notifier, priv->indicator); if(priv->controller == NULL) { g_error("PocketvoxController couldn't be created"); } //only need to connect signals modules = g_settings_get_value(priv->settings, "list-apps"); //get the content of the GVariant g_variant_get(modules, "a(ssb)", &iter); //loop other all apps while(g_variant_iter_loop(iter, "(ssb)", &key, &value, &isapps)) { pocketvox_application_add_profile_module(application, key, value, isapps); } g_variant_iter_free(iter); //a little startup msg gchar *startup = g_strdup_printf(_("Hello %s, I'm listening you, I need a few seconds to initialize myself"), name); pocketvox_notifier_say(priv->notifier, startup); g_free(startup); return application; }