From 8be56d700309fad3966356249f024ed94ff36f8b Mon Sep 17 00:00:00 2001 From: TingPing Date: Wed, 12 Jun 2013 10:41:52 -0400 Subject: Don't open libcanberra connection for every event Closes #645 --- src/common/text.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/common') diff --git a/src/common/text.c b/src/common/text.c index 3d1c9280..f0a1dfb1 100644 --- a/src/common/text.c +++ b/src/common/text.c @@ -58,6 +58,9 @@ struct pevt_stage1 struct pevt_stage1 *next; }; +#ifdef USE_LIBCANBERRA +static ca_context *ca_con; +#endif static void mkdir_p (char *filename); static char *log_create_filename (char *channame); @@ -2209,9 +2212,6 @@ sound_play (const char *file, gboolean quiet) char *wavfile; #ifndef WIN32 char *cmd; -#ifdef USE_LIBCANBERRA - ca_context *con; -#endif #endif /* the pevents GUI editor triggers this after removing a soundfile */ @@ -2240,9 +2240,16 @@ sound_play (const char *file, gboolean quiet) PlaySound (wavfile, NULL, SND_NODEFAULT|SND_FILENAME|SND_ASYNC); #else #ifdef USE_LIBCANBERRA - ca_context_create (&con); - /* TODO: Volume setting? */ - if (ca_context_play (con, 0, CA_PROP_MEDIA_FILENAME, wavfile, NULL) != 0) + if (ca_con == NULL) + { + ca_context_create (&ca_con); + ca_context_change_props (ca_con, + CA_PROP_APPLICATION_ID, "hexchat", + CA_PROP_APPLICATION_NAME, "HexChat", + CA_PROP_APPLICATION_ICON_NAME, "hexchat", NULL); + } + + if (ca_context_play (ca_con, 0, CA_PROP_MEDIA_FILENAME, wavfile, NULL) != 0) #endif { cmd = g_find_program_in_path ("play"); -- cgit 1.4.1 From 9b958ed3932ddfbfb139d6bbe6c40c7638535dd6 Mon Sep 17 00:00:00 2001 From: TingPing Date: Thu, 13 Jun 2013 18:38:59 -0300 Subject: Use snprintf --- src/common/plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/common') diff --git a/src/common/plugin.c b/src/common/plugin.c index 61d5cb40..8a704e5f 100644 --- a/src/common/plugin.c +++ b/src/common/plugin.c @@ -1826,7 +1826,7 @@ hexchat_pluginpref_set_int (hexchat_plugin *pl, const char *var, int value) { char buffer[12]; - sprintf (buffer, "%d", value); + snprintf (buffer, sizeof (buffer), "%d", value); return hexchat_pluginpref_set_str_real (pl, var, buffer, 1); } -- cgit 1.4.1