6 #define ESPEAKTIME_BIN "espeaktime-now.sh"
7 #define GCONF_KEY "/apps/Maemo/espeaktime"
9 void cfg_read(GConfClient *client, struct espeaktime_settings *cfg)
11 cfg->voice = gconf_client_get_string(client, GCONF_KEY "/voice", NULL);
12 cfg->effect = gconf_client_get_string(client, GCONF_KEY "/effect", NULL);
13 cfg->text = gconf_client_get_string(client, GCONF_KEY "/text", NULL);
14 cfg->amplitude = gconf_client_get_int(client, GCONF_KEY "/amplitude", NULL);
15 cfg->pitch = gconf_client_get_int(client, GCONF_KEY "/pitch", NULL);
16 cfg->speed = gconf_client_get_int(client, GCONF_KEY "/speed", NULL);
17 cfg->ignore_silent = !gconf_client_get_bool(client, GCONF_KEY "/obey_silent_profile", NULL);
19 cfg->voice = g_strdup("en-us");
21 cfg->effect = g_strdup("");
23 cfg->text = g_strdup("%H:%M");
32 void cfg_write(GConfClient *client, struct espeaktime_settings *cfg)
34 gconf_client_add_dir(client, GCONF_KEY, GCONF_CLIENT_PRELOAD_NONE, NULL);
35 gconf_client_set_string(client, GCONF_KEY "/voice", cfg->voice, NULL);
36 gconf_client_set_string(client, GCONF_KEY "/effect", cfg->effect, NULL);
37 gconf_client_set_string(client, GCONF_KEY "/text", cfg->text, NULL);
38 gconf_client_set_int(client, GCONF_KEY "/amplitude", cfg->amplitude, NULL);
39 gconf_client_set_int(client, GCONF_KEY "/pitch", cfg->pitch, NULL);
40 gconf_client_set_int(client, GCONF_KEY "/speed", cfg->speed, NULL);
41 gconf_client_set_bool(client, GCONF_KEY "/obey_silent_profile", !cfg->ignore_silent, NULL);
44 void cfg_free(struct espeaktime_settings *cfg)
51 void cfg_speak(struct espeaktime_settings *cfg, gboolean test_mode)
53 gchar astr[16], pstr[16], sstr[16];
64 g_snprintf(astr, sizeof(astr), "%d", cfg->amplitude);
65 g_snprintf(pstr, sizeof(pstr), "%d", cfg->pitch);
66 g_snprintf(sstr, sizeof(sstr), "%d", cfg->speed);
67 g_snprintf(vstr, sizeof(vstr), "%s%s%s", cfg->voice,
68 (*cfg->effect) ? "+" : "", cfg->effect);
69 strftime(text, sizeof(text), cfg->text, tm);
71 setenv("EST_TESTMODE", test_mode ? "1" : "0", 1);
72 setenv("EST_IGN_SILENT", (cfg->ignore_silent || test_mode)
77 g_print("fork: %s", g_strerror(errno));
82 g_print("execlp: -a '%s' -p '%s' -s '%s' -v '%s' '%s'\n",
83 astr, pstr, sstr, vstr, text);
84 res = execlp(ESPEAKTIME_BIN, ESPEAKTIME_BIN,
85 "-a", astr, "-p", pstr, "-s", sstr, "-v", vstr,
87 g_print("execlp: %d (%s)\n", res, g_strerror(errno));