3636#include "settings.h"
3737#include "line_info.h"
3838
39+ #ifndef PACKAGE_DATADIR
40+ #define PACKAGE_DATADIR "."
41+ #endif
42+
3943const struct _ui_strings {
4044 const char * self ;
4145 const char * timestamps ;
@@ -197,38 +201,60 @@ int settings_load(struct user_settings *s, const char *patharg)
197201
198202#ifdef _SOUND_NOTIFY
199203 if ((setting = config_lookup (cfg , sound_strings .self )) != NULL ) {
200- if ( config_setting_lookup_string (setting , sound_strings .error , & str ) == CONFIG_TRUE )
201- set_sound (error , str );
202-
203- if ( config_setting_lookup_string (setting , sound_strings .user_log_in , & str ) )
204- set_sound (user_log_in , str );
204+ 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+
208+ 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" );
205211
206- if ( config_setting_lookup_string (setting , sound_strings .self_log_in , & str ) )
207- set_sound (self_log_in , str );
212+ 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" );
208215
209- if ( config_setting_lookup_string (setting , sound_strings .user_log_out , & str ) )
210- set_sound (user_log_out , str );
216+ 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" );
211219
212- if ( config_setting_lookup_string (setting , sound_strings .self_log_out , & str ) )
213- set_sound (self_log_out , str );
220+ 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" );
214223
215- if ( config_setting_lookup_string (setting , sound_strings .call_incoming , & str ) )
216- set_sound (call_incoming , str );
224+ 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" );
217227
218- if ( config_setting_lookup_string (setting , sound_strings .call_outgoing , & str ) )
219- set_sound (call_outgoing , str );
228+ 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" );
220231
221- if ( config_setting_lookup_string (setting , sound_strings .generic_message , & str ) )
222- set_sound (generic_message , str );
232+ 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" );
223235
224- if ( config_setting_lookup_string (setting , sound_strings .transfer_pending , & str ) )
225- set_sound (transfer_pending , str );
236+ 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" );
226239
227- if ( config_setting_lookup_string (setting , sound_strings .transfer_completed , & str ) )
228- set_sound (transfer_completed , str );
240+ 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" );
243+ }
244+ else {
245+ set_sound (error , PACKAGE_DATADIR "/sounds/Error.wav" );
246+ set_sound (user_log_in , PACKAGE_DATADIR "/sounds/ContactLogsIn.wav" );
247+ set_sound (self_log_in , PACKAGE_DATADIR "/sounds/LogIn.wav" );
248+ set_sound (user_log_out , PACKAGE_DATADIR "/sounds/ContactLogsOut.wav" );
249+ set_sound (self_log_out , PACKAGE_DATADIR "/sounds/LogOut.wav" );
250+ set_sound (call_incoming , PACKAGE_DATADIR "/sounds/IncomingCall.wav" );
251+ set_sound (call_outgoing , PACKAGE_DATADIR "/sounds/OutgoingCall.wav" );
252+ set_sound (generic_message , PACKAGE_DATADIR "/sounds/NewMessage.wav" );
253+ set_sound (transfer_pending , PACKAGE_DATADIR "/sounds/TransferPending.wav" );
254+ set_sound (transfer_completed , PACKAGE_DATADIR "/sounds/TransferComplete.wav" );
229255 }
230256#endif
231257
232258 config_destroy (cfg );
233259 return 0 ;
234- }
260+ }
0 commit comments