Wed, 13 May 2009 20:29:03 +0000
Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
1 | /* |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
2 | * Sound Themes for libpurple |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
3 | * |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
4 | * Pidgin is the legal property of its developers, whose names are too numerous |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
5 | * to list here. Please refer to the COPYRIGHT file distributed with this |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
6 | * source distribution. |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
7 | * |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
8 | * This program is free software; you can redistribute it and/or modify |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
9 | * it under the terms of the GNU General Public License as published by |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
10 | * the Free Software Foundation; either version 2 of the License, or |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
11 | * (at your option) any later version. |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
12 | * |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
13 | * This program is distributed in the hope that it will be useful, |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
16 | * GNU General Public License for more details. |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
17 | * |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
18 | * You should have received a copy of the GNU General Public License |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
19 | * along with this program; if not, write to the Free Software |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
21 | */ |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
22 | |
|
25010
57a841ca2450
Fix win32 build. I haven't actually tested any of the functionality, but it
Daniel Atallah <datallah@pidgin.im>
parents:
24931
diff
changeset
|
23 | #include "internal.h" |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
24 | #include "sound-theme.h" |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
25 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
26 | #define PURPLE_SOUND_THEME_GET_PRIVATE(Gobject) \ |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
27 | ((PurpleSoundThemePrivate *) ((PURPLE_SOUND_THEME(Gobject))->priv)) |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
28 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
29 | /****************************************************************************** |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
30 | * Structs |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
31 | *****************************************************************************/ |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
32 | |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
33 | typedef struct { |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
34 | /* used to store filenames of diffrent sounds */ |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
35 | GHashTable *sound_files; |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
36 | } PurpleSoundThemePrivate; |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
37 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
38 | /****************************************************************************** |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
39 | * Globals |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
40 | *****************************************************************************/ |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
41 | |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
42 | static GObjectClass *parent_class = NULL; |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
43 | |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
44 | /****************************************************************************** |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
45 | * Enums |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
46 | *****************************************************************************/ |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
47 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
48 | /****************************************************************************** |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
49 | * GObject Stuff |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
50 | *****************************************************************************/ |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
51 | |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
52 | static void |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
53 | purple_sound_theme_init(GTypeInstance *instance, |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
54 | gpointer klass) |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
55 | { |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
56 | PurpleSoundThemePrivate *priv; |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
57 | |
|
23647
b856721ba8dd
more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23646
diff
changeset
|
58 | (PURPLE_SOUND_THEME(instance))->priv = g_new0(PurpleSoundThemePrivate, 1); |
|
b856721ba8dd
more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23646
diff
changeset
|
59 | |
|
b856721ba8dd
more gobject fixed
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23646
diff
changeset
|
60 | priv = PURPLE_SOUND_THEME_GET_PRIVATE(instance); |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
61 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
62 | priv->sound_files = g_hash_table_new_full(g_str_hash, |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
63 | g_str_equal, g_free, g_free); |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
64 | } |
|
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
65 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
66 | static void |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
67 | purple_sound_theme_finalize(GObject *obj) |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
68 | { |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
69 | PurpleSoundThemePrivate *priv; |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
70 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
71 | priv = PURPLE_SOUND_THEME_GET_PRIVATE(obj); |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
72 | |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
73 | g_hash_table_destroy(priv->sound_files); |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
74 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
75 | parent_class->finalize(obj); |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
76 | } |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
77 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
78 | static void |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
79 | purple_sound_theme_class_init(PurpleSoundThemeClass *klass) |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
80 | { |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
81 | GObjectClass *obj_class = G_OBJECT_CLASS(klass); |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
82 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
83 | parent_class = g_type_class_peek_parent(klass); |
|
23642
ea82d96e4ebd
Fixed some things needed for proper gobfication (init/finalize/etc)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23639
diff
changeset
|
84 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
85 | obj_class->finalize = purple_sound_theme_finalize; |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
86 | } |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
87 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
88 | GType |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
89 | purple_sound_theme_get_type(void) |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
90 | { |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
91 | static GType type = 0; |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
92 | if (type == 0) { |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
93 | static const GTypeInfo info = { |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
94 | sizeof(PurpleSoundThemeClass), |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
95 | NULL, /* base_init */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
96 | NULL, /* base_finalize */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
97 | (GClassInitFunc)purple_sound_theme_class_init, /* class_init */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
98 | NULL, /* class_finalize */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
99 | NULL, /* class_data */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
100 | sizeof(PurpleSoundTheme), |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
101 | 0, /* n_preallocs */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
102 | purple_sound_theme_init, /* instance_init */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
103 | NULL, /* value table */ |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
104 | }; |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
105 | type = g_type_register_static(PURPLE_TYPE_THEME, |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
106 | "PurpleSoundTheme", &info, 0); |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
107 | } |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
108 | return type; |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
109 | } |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
110 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
111 | /***************************************************************************** |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
112 | * Public API functions |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
113 | *****************************************************************************/ |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
114 | |
|
23653
79934bf9a349
Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23651
diff
changeset
|
115 | const gchar * |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
116 | purple_sound_theme_get_file(PurpleSoundTheme *theme, |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
117 | const gchar *event) |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
118 | { |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
119 | PurpleSoundThemePrivate *priv; |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
120 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
121 | g_return_val_if_fail(PURPLE_IS_SOUND_THEME(theme), NULL); |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
122 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
123 | priv = PURPLE_SOUND_THEME_GET_PRIVATE(theme); |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
124 | |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
125 | return g_hash_table_lookup(priv->sound_files, event); |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
126 | } |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
127 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
128 | gchar * |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
129 | purple_sound_theme_get_file_full(PurpleSoundTheme *theme, |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
130 | const gchar *event) |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
131 | { |
|
24931
7cfa9bde653b
Fix a compiler warning.
Richard Laager <rlaager@pidgin.im>
parents:
23653
diff
changeset
|
132 | const gchar *filename; |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
133 | |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
134 | g_return_val_if_fail(PURPLE_IS_SOUND_THEME(theme), NULL); |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
135 | |
|
23649
5da5fe967d10
Working sound themes (option 1) theme is saved in prefs and there is no seperate custom theme, everything
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23647
diff
changeset
|
136 | filename = purple_sound_theme_get_file(theme, event); |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
137 | |
|
23649
5da5fe967d10
Working sound themes (option 1) theme is saved in prefs and there is no seperate custom theme, everything
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23647
diff
changeset
|
138 | g_return_val_if_fail(filename, NULL); |
|
5da5fe967d10
Working sound themes (option 1) theme is saved in prefs and there is no seperate custom theme, everything
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23647
diff
changeset
|
139 | |
|
23653
79934bf9a349
Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23651
diff
changeset
|
140 | return g_build_filename(purple_theme_get_dir(PURPLE_THEME(theme)), filename, NULL); |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
141 | } |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
142 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
143 | void |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
144 | purple_sound_theme_set_file(PurpleSoundTheme *theme, |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
145 | const gchar *event, |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
146 | const gchar *filename) |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
147 | { |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
148 | PurpleSoundThemePrivate *priv; |
|
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
149 | g_return_if_fail(PURPLE_IS_SOUND_THEME(theme)); |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
150 | |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
151 | priv = PURPLE_SOUND_THEME_GET_PRIVATE(theme); |
|
23651
2c04a707246d
Fixed a few small problems with the sound loader and sound theme
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
23649
diff
changeset
|
152 | |
|
25875
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
153 | if (filename != NULL) |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
154 | g_hash_table_replace(priv->sound_files, |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
155 | g_strdup(event), g_strdup(filename)); |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
156 | else |
|
a98b16817658
Lots of minor whitespace and comment changes:
Mark Doliner <markdoliner@pidgin.im>
parents:
25010
diff
changeset
|
157 | g_hash_table_remove(priv->sound_files, event); |
|
23639
c59dd2e328c3
Added minimal sound theme class (only get/set api)
Justin Rodriguez <ffdragon@soc.pidgin.im>
parents:
diff
changeset
|
158 | } |