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.
| 4561 | 1 | /** |
| 2 | * @file sound.h Sound API | |
| 9938 | 3 | * @ingroup core |
|
20889
3d0ef192f98c
All the links to libpurple signal pages were in the comment containing the
Will Thompson <resiak@pidgin.im>
parents:
20147
diff
changeset
|
4 | * @see @ref sound-signals |
|
20147
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
5 | */ |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
6 | |
|
66f05a854eee
applied changes from 8a731bbd0197fbcc91a705c2d8f528154216defa
Richard Laager <rlaager@pidgin.im>
parents:
19859
diff
changeset
|
7 | /* purple |
| 4561 | 8 | * |
| 15884 | 9 | * Purple is the legal property of its developers, whose names are too numerous |
| 8046 | 10 | * to list here. Please refer to the COPYRIGHT file distributed with this |
| 11 | * source distribution. | |
| 4561 | 12 | * |
| 13 | * This program is free software; you can redistribute it and/or modify | |
| 14 | * it under the terms of the GNU General Public License as published by | |
| 15 | * the Free Software Foundation; either version 2 of the License, or | |
| 16 | * (at your option) any later version. | |
| 17 | * | |
| 18 | * This program is distributed in the hope that it will be useful, | |
| 19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 21 | * GNU General Public License for more details. | |
| 22 | * | |
| 23 | * You should have received a copy of the GNU General Public License | |
| 24 | * along with this program; if not, write to the Free Software | |
|
19859
71d37b57eff2
The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
18412
diff
changeset
|
25 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
| 4561 | 26 | */ |
| 15884 | 27 | #ifndef _PURPLE_SOUND_H_ |
| 28 | #define _PURPLE_SOUND_H_ | |
| 4561 | 29 | |
|
11642
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
30 | #include "account.h" |
|
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
31 | |
| 4561 | 32 | /**************************************************************************/ |
| 33 | /** Data Structures */ | |
| 34 | /**************************************************************************/ | |
| 35 | ||
| 36 | ||
| 37 | /** | |
| 5684 | 38 | * A type of sound. |
| 4561 | 39 | */ |
| 40 | ||
| 15884 | 41 | typedef enum _PurpleSoundEventID |
| 4561 | 42 | { |
| 15884 | 43 | PURPLE_SOUND_BUDDY_ARRIVE = 0, /**< Buddy signs on. */ |
| 44 | PURPLE_SOUND_BUDDY_LEAVE, /**< Buddy signs off. */ | |
| 45 | PURPLE_SOUND_RECEIVE, /**< Receive an IM. */ | |
| 46 | PURPLE_SOUND_FIRST_RECEIVE, /**< Receive an IM that starts a conv. */ | |
| 47 | PURPLE_SOUND_SEND, /**< Send an IM. */ | |
| 48 | PURPLE_SOUND_CHAT_JOIN, /**< Someone joins a chat. */ | |
| 49 | PURPLE_SOUND_CHAT_LEAVE, /**< Someone leaves a chat. */ | |
| 50 | PURPLE_SOUND_CHAT_YOU_SAY, /**< You say something in a chat. */ | |
| 51 | PURPLE_SOUND_CHAT_SAY, /**< Someone else says somthing in a chat. */ | |
| 52 | PURPLE_SOUND_POUNCE_DEFAULT, /**< Default sound for a buddy pounce. */ | |
| 53 | PURPLE_SOUND_CHAT_NICK, /**< Someone says your name in a chat. */ | |
| 54 | PURPLE_NUM_SOUNDS /**< Total number of sounds. */ | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
55 | |
| 15884 | 56 | } PurpleSoundEventID; |
| 4561 | 57 | |
|
23512
b4cd56b9d709
add some trivial documentation to PurpleSoundUiOps
Will Thompson <resiak@pidgin.im>
parents:
20889
diff
changeset
|
58 | /** Operations used by the core to request that particular sound files, or the |
|
b4cd56b9d709
add some trivial documentation to PurpleSoundUiOps
Will Thompson <resiak@pidgin.im>
parents:
20889
diff
changeset
|
59 | * sound associated with a particular event, should be played. |
|
b4cd56b9d709
add some trivial documentation to PurpleSoundUiOps
Will Thompson <resiak@pidgin.im>
parents:
20889
diff
changeset
|
60 | */ |
| 15884 | 61 | typedef struct _PurpleSoundUiOps |
| 5684 | 62 | { |
| 63 | void (*init)(void); | |
|
10322
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
64 | void (*uninit)(void); |
| 5684 | 65 | void (*play_file)(const char *filename); |
| 15884 | 66 | void (*play_event)(PurpleSoundEventID event); |
| 5684 | 67 | |
|
16743
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
68 | void (*_purple_reserved1)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
69 | void (*_purple_reserved2)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
70 | void (*_purple_reserved3)(void); |
|
1ce5ffe12e2a
Initial addition of padding for ui_ops and other class-like structs
Gary Kramlich <grim@reaperworld.com>
parents:
15884
diff
changeset
|
71 | void (*_purple_reserved4)(void); |
| 15884 | 72 | } PurpleSoundUiOps; |
| 5684 | 73 | |
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
74 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
75 | extern "C" { |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
76 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
77 | |
| 4561 | 78 | /**************************************************************************/ |
| 79 | /** @name Sound API */ | |
| 80 | /**************************************************************************/ | |
| 81 | /*@{*/ | |
| 82 | ||
| 83 | /** | |
|
10322
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
84 | * Plays the specified sound file. |
|
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
85 | * |
|
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
86 | * @param filename The file to play. |
|
11642
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
87 | * @param account The account that this sound is associated with, or |
|
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
88 | * NULL if the sound is not associated with any specific |
|
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
89 | * account. This is needed for the "sounds while away?" |
|
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
90 | * preference to work correctly. |
|
10322
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
91 | */ |
| 15884 | 92 | void purple_sound_play_file(const char *filename, const PurpleAccount *account); |
|
10322
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
93 | |
|
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
94 | /** |
|
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
95 | * Plays the sound associated with the specified event. |
|
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
96 | * |
|
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
97 | * @param event The event. |
|
11642
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
98 | * @param account The account that this sound is associated with, or |
|
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
99 | * NULL if the sound is not associated with any specific |
|
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
100 | * account. This is needed for the "sounds while away?" |
|
76b60f0bf467
[gaim-migrate @ 13919]
Casey Harkins <charkins@pidgin.im>
parents:
10322
diff
changeset
|
101 | * preference to work correctly. |
|
10322
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
102 | */ |
| 15884 | 103 | void purple_sound_play_event(PurpleSoundEventID event, const PurpleAccount *account); |
|
10322
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
104 | |
|
06e23196da4b
[gaim-migrate @ 11529]
Mark Doliner <markdoliner@pidgin.im>
parents:
9938
diff
changeset
|
105 | /** |
| 5684 | 106 | * Sets the UI sound operations |
| 107 | * | |
| 108 | * @param ops The UI sound operations structure. | |
| 4561 | 109 | */ |
| 15884 | 110 | void purple_sound_set_ui_ops(PurpleSoundUiOps *ops); |
| 4561 | 111 | |
| 112 | /** | |
| 5684 | 113 | * Gets the UI sound operations |
| 114 | * | |
| 115 | * @return The UI sound operations structure. | |
| 4561 | 116 | */ |
| 15884 | 117 | PurpleSoundUiOps *purple_sound_get_ui_ops(void); |
| 5684 | 118 | |
| 119 | /** | |
| 120 | * Initializes the sound subsystem | |
| 121 | */ | |
| 15884 | 122 | void purple_sound_init(void); |
| 5684 | 123 | |
| 124 | /** | |
| 125 | * Shuts down the sound subsystem | |
| 126 | */ | |
| 15884 | 127 | void purple_sound_uninit(void); |
| 4561 | 128 | |
| 12291 | 129 | /** |
| 130 | * Returns the sound subsystem handle. | |
| 131 | * | |
| 132 | * @return The sound subsystem handle. | |
| 133 | */ | |
| 15884 | 134 | void *purple_sounds_get_handle(void); |
| 12291 | 135 | |
| 4561 | 136 | /*@}*/ |
| 137 | ||
|
5944
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
138 | #ifdef __cplusplus |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
139 | } |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
140 | #endif |
|
f19df037ac58
[gaim-migrate @ 6385]
Christian Hammond <chipx86@chipx86.com>
parents:
5684
diff
changeset
|
141 | |
| 15884 | 142 | #endif /* _PURPLE_SOUND_H_ */ |