Skip to content

Commit 9476db0

Browse files
committed
allow disabling of individual sounds
1 parent 04fbf5f commit 9476db0

3 files changed

Lines changed: 47 additions & 22 deletions

File tree

doc/toxic.conf.5

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,8 @@ tox = {
252252
.br
253253
};
254254
.br
255+
// To disable a sound set the path to "silent"
256+
.br
255257
sounds = {
256258
.br
257259
error="__DATADIR__/sounds/Error.wav";

misc/toxic.conf.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ tox = {
3737
// download_path="/home/USERNAME/Downloads/";
3838
};
3939

40+
// To disable a sound set the path to "silent"
4041
sounds = {
4142
error="__DATADIR__/sounds/Error.wav";
4243
self_log_in="__DATADIR__/sounds/LogIn.wav";

src/settings.c

Lines changed: 44 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
#define PACKAGE_DATADIR "."
4141
#endif
4242

43+
#define NO_SOUND "silent"
44+
4345
const struct _ui_strings {
4446
const char* self;
4547
const char* timestamps;
@@ -202,44 +204,64 @@ int settings_load(struct user_settings *s, const char *patharg)
202204
#ifdef _SOUND_NOTIFY
203205
if ((setting = config_lookup(cfg, sound_strings.self)) != NULL) {
204206
if ( (config_setting_lookup_string(setting, sound_strings.error, &str) != CONFIG_TRUE) ||
205-
!set_sound(error, str) )
206-
set_sound(error, PACKAGE_DATADIR "/sounds/Error.wav");
207+
!set_sound(error, str) ) {
208+
if (strcasecmp(str, NO_SOUND))
209+
set_sound(error, PACKAGE_DATADIR "/sounds/Error.wav");
210+
}
207211

208212
if ( !config_setting_lookup_string(setting, sound_strings.user_log_in, &str) ||
209-
!set_sound(user_log_in, str) )
210-
set_sound(user_log_in, PACKAGE_DATADIR "/sounds/ContactLogsIn.wav");
213+
!set_sound(user_log_in, str) ) {
214+
if (strcasecmp(str, NO_SOUND))
215+
set_sound(user_log_in, PACKAGE_DATADIR "/sounds/ContactLogsIn.wav");
216+
}
211217

212218
if ( !config_setting_lookup_string(setting, sound_strings.self_log_in, &str) ||
213-
!set_sound(self_log_in, str) )
214-
set_sound(self_log_in, PACKAGE_DATADIR "/sounds/LogIn.wav");
215-
219+
!set_sound(self_log_in, str) ) {
220+
if (strcasecmp(str, NO_SOUND))
221+
set_sound(self_log_in, PACKAGE_DATADIR "/sounds/LogIn.wav");
222+
}
223+
216224
if ( !config_setting_lookup_string(setting, sound_strings.user_log_out, &str) ||
217-
!set_sound(user_log_out, str) )
218-
set_sound(user_log_out, PACKAGE_DATADIR "/sounds/ContactLogsOut.wav");
219-
225+
!set_sound(user_log_out, str) ) {
226+
if (strcasecmp(str, NO_SOUND))
227+
set_sound(user_log_out, PACKAGE_DATADIR "/sounds/ContactLogsOut.wav");
228+
}
229+
220230
if ( !config_setting_lookup_string(setting, sound_strings.self_log_out, &str) ||
221-
!set_sound(self_log_out, str) )
222-
set_sound(self_log_out, PACKAGE_DATADIR "/sounds/LogOut.wav");
231+
!set_sound(self_log_out, str) ) {
232+
if (strcasecmp(str, NO_SOUND))
233+
set_sound(self_log_out, PACKAGE_DATADIR "/sounds/LogOut.wav");
234+
}
223235

224236
if ( !config_setting_lookup_string(setting, sound_strings.call_incoming, &str) ||
225-
!set_sound(call_incoming, str) )
226-
set_sound(call_incoming, PACKAGE_DATADIR "/sounds/IncomingCall.wav");
237+
!set_sound(call_incoming, str) ) {
238+
if (strcasecmp(str, NO_SOUND))
239+
set_sound(call_incoming, PACKAGE_DATADIR "/sounds/IncomingCall.wav");
240+
}
227241

228242
if ( !config_setting_lookup_string(setting, sound_strings.call_outgoing, &str) ||
229-
!set_sound(call_outgoing, str) )
230-
set_sound(call_outgoing, PACKAGE_DATADIR "/sounds/OutgoingCall.wav");
243+
!set_sound(call_outgoing, str) ) {
244+
if (strcasecmp(str, NO_SOUND))
245+
set_sound(call_outgoing, PACKAGE_DATADIR "/sounds/OutgoingCall.wav");
246+
}
231247

232248
if ( config_setting_lookup_string(setting, sound_strings.generic_message, &str) ||
233-
!set_sound(generic_message, str) )
234-
set_sound(generic_message, PACKAGE_DATADIR "/sounds/NewMessage.wav");
249+
!set_sound(generic_message, str) ) {
250+
if (strcasecmp(str, NO_SOUND))
251+
set_sound(generic_message, PACKAGE_DATADIR "/sounds/NewMessage.wav");
252+
}
235253

236254
if ( !config_setting_lookup_string(setting, sound_strings.transfer_pending, &str) ||
237-
!set_sound(transfer_pending, str) )
238-
set_sound(transfer_pending, PACKAGE_DATADIR "/sounds/TransferPending.wav");
255+
!set_sound(transfer_pending, str) ) {
256+
if (strcasecmp(str, NO_SOUND))
257+
set_sound(transfer_pending, PACKAGE_DATADIR "/sounds/TransferPending.wav");
258+
}
239259

240260
if ( !config_setting_lookup_string(setting, sound_strings.transfer_completed, &str) ||
241-
!set_sound(transfer_completed, str) )
242-
set_sound(transfer_completed, PACKAGE_DATADIR "/sounds/TransferComplete.wav");
261+
!set_sound(transfer_completed, str) ) {
262+
if (strcasecmp(str, NO_SOUND))
263+
set_sound(transfer_completed, PACKAGE_DATADIR "/sounds/TransferComplete.wav");
264+
}
243265
}
244266
else {
245267
set_sound(error, PACKAGE_DATADIR "/sounds/Error.wav");

0 commit comments

Comments
 (0)