static int initVideoFile(struct ALL_DATA *all_data) { struct GWIDGET *gwidget = all_data->gwidget; struct paRecordData *pdata = all_data->pdata; struct GLOBAL *global = all_data->global; struct vdIn *videoIn = all_data->videoIn; struct VideoFormatData *videoF = all_data->videoF; const char *compression= get_vid4cc(global->VidCodec); videoF->vcodec = get_vcodec_id(global->VidCodec); videoF->acodec = CODEC_ID_NONE; videoF->keyframe = 0; int ret = 0; __LOCK_MUTEX(__VMUTEX); gboolean capVid = videoIn->capVid; __UNLOCK_MUTEX(__VMUTEX); /*alloc video ring buffer*/ alloc_videoBuff(all_data); switch (global->VidFormat) { case AVI_FORMAT: if(videoF->AviOut != NULL) { g_free(videoF->AviOut); videoF->AviOut = NULL; } videoF->AviOut = g_new0(struct avi_t, 1); if(AVI_open_output_file(videoF->AviOut, videoIn->VidFName)<0) { g_printerr("Error: Couldn't create Video.\n"); capVid = FALSE; /*don't start video capture*/ __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; return(-1); } else { AVI_set_video(videoF->AviOut, global->width, global->height, global->fps, compression); /* start video capture*/ capVid = TRUE; __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; /* start sound capture*/ if(global->Sound_enable > 0) { /*get channels and sample rate*/ set_sound(global, pdata); /*set audio header for avi*/ AVI_set_audio(videoF->AviOut, global->Sound_NumChan, global->Sound_SampRate, get_aud_bit_rate(get_ind_by4cc(global->Sound_Format)), /*bit rate*/ get_aud_bits(get_ind_by4cc(global->Sound_Format)), /*sample size - only used for PCM*/ global->Sound_Format); /* Initialize sound (open stream)*/ if(init_sound (pdata)) { g_printerr("Audio initialization error\n"); global->Sound_enable=0; if(!(global->no_display)) { gdk_threads_enter(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gwidget->SndEnable),0); gdk_flush(); gdk_threads_leave(); } else capture_vid(NULL, all_data); } } } break; case MKV_FORMAT: if(global->Sound_enable > 0) { /*set channels, sample rate and allocate buffers*/ set_sound(global, pdata); } if(init_FormatContext((void *) all_data)<0) { capVid = FALSE; __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; return (-1); } videoF->old_apts = 0; videoF->apts = 0; videoF->vpts = 0; /* start video capture*/ capVid = TRUE; __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; /* start sound capture*/ if(global->Sound_enable > 0) { /* Initialize sound (open stream)*/ if(init_sound (pdata)) { g_printerr("Audio initialization error\n"); global->Sound_enable=0; if(!(global->no_display)) { /*will this work with the checkbox disabled?*/ gdk_threads_enter(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gwidget->SndEnable),0); gdk_flush(); gdk_threads_leave(); } else capture_vid(NULL, all_data); } } break; //WebM = MKV + WebVTT //add META data capture case WEBM_FORMAT: if(global->Sound_enable > 0) { /*set channels, sample rate and allocate buffers*/ set_sound(global, pdata); } if(init_FormatContext((void *) all_data)<0) { capVid = FALSE; __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; return (-1); } videoF->old_apts = 0; videoF->apts = 0; videoF->vpts = 0; /* start video capture*/ capVid = TRUE; __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; /* start sound capture*/ if(global->Sound_enable > 0) { /* Initialize sound (open stream)*/ if(init_sound (pdata)) { g_printerr("Audio initialization error\n"); global->Sound_enable=0; if(!(global->no_display)) { /*will this work with the checkbox disabled?*/ gdk_threads_enter(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gwidget->SndEnable),0); gdk_flush(); gdk_threads_leave(); } else capture_vid(NULL, all_data); } } break; default: break; } return (ret); }
static int initVideoFile(struct ALL_DATA *all_data, void* lav_data) { //struct GWIDGET *gwidget = all_data->gwidget; struct paRecordData *pdata = all_data->pdata; struct GLOBAL *global = all_data->global; struct vdIn *videoIn = all_data->videoIn; struct VideoFormatData *videoF = all_data->videoF; io_Stream *vstream, *astream; struct lavcData **lavc_data = (struct lavcData **) lav_data; videoF->vcodec = get_vcodec_id(global->VidCodec); videoF->acodec = get_acodec_id(global->AudCodec); videoF->keyframe = 0; int ret = 0; __LOCK_MUTEX(__VMUTEX); gboolean capVid = videoIn->capVid; __UNLOCK_MUTEX(__VMUTEX); /*alloc video ring buffer*/ alloc_videoBuff(all_data); if(isLavcCodec(global->VidCodec)) *lavc_data = init_lavc(global->width, global->height, global->fps_num, global->fps, global->VidCodec); switch (global->VidFormat) { case AVI_FORMAT: if(videoF->avi != NULL) { avi_destroy_context(videoF->avi); videoF->avi = NULL; } videoF->avi = avi_create_context(videoIn->VidFName); if(!videoF->avi) { g_printerr("Error: Couldn't create AVI context.\n"); capVid = FALSE; /*don't start video capture*/ __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; return(-1); } vstream = avi_add_video_stream(videoF->avi, global->width, global->height, global->fps, videoF->vcodec, get_vid4cc(global->VidCodec)); if(videoF->vcodec == AV_CODEC_ID_THEORA) { vstream->extra_data = (BYTE*) (*lavc_data)->codec_context->extradata; vstream->extra_data_size = (*lavc_data)->codec_context->extradata_size; } if(global->Sound_enable > 0) { /*get channels and sample rate*/ set_sound(global, pdata); /*sample size - only used for PCM*/ int32_t a_bits = get_aud_bits(global->AudCodec); /*bit rate (compressed formats)*/ int32_t b_rate = get_aud_bit_rate(global->AudCodec); astream = avi_add_audio_stream(videoF->avi, global->Sound_NumChan, global->Sound_SampRate, a_bits, b_rate, videoF->acodec, global->Sound_Format); if(videoF->acodec == AV_CODEC_ID_VORBIS) { astream->extra_data = (BYTE*) pdata->lavc_data->codec_context->extradata; astream->extra_data_size = pdata->lavc_data->codec_context->extradata_size; } } /* add first riff header */ avi_add_new_riff(videoF->avi); /* start video capture*/ capVid = TRUE; __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; /* start sound capture*/ if(global->Sound_enable > 0 && init_sound (pdata)) { //FIXME: enable capture button g_printerr("Audio initialization error\n"); global->Sound_enable=0; } break; case WEBM_FORMAT: case MKV_FORMAT: if(videoF->mkv != NULL) { mkv_destroy_context(videoF->mkv); videoF->mkv = NULL; } videoF->mkv = mkv_create_context(videoIn->VidFName, global->VidFormat); if(!videoF->mkv) { g_printerr("Error: Couldn't create MKV context.\n"); capVid = FALSE; /*don't start video capture*/ __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; return(-1); } vstream = mkv_add_video_stream(videoF->mkv, global->width, global->height, videoF->vcodec); vstream->extra_data_size = set_mkvCodecPriv(global->VidCodec, global->width, global->height, *lavc_data); if(vstream->extra_data_size > 0) vstream->extra_data = get_mkvCodecPriv(global->VidCodec); if(global->Sound_enable > 0) { /*get channels and sample rate*/ set_sound(global, pdata); /*sample size - only used for PCM*/ int32_t a_bits = get_aud_bits(global->AudCodec); /*bit rate (compressed formats)*/ int32_t b_rate = get_aud_bit_rate(global->AudCodec); astream = mkv_add_audio_stream( videoF->mkv, pdata->channels, pdata->samprate, a_bits, b_rate, videoF->acodec, global->Sound_Format); astream->extra_data_size = set_mkvACodecPriv( global->AudCodec, pdata->samprate, pdata->channels, pdata->lavc_data); if(astream->extra_data_size > 0) astream->extra_data = get_mkvACodecPriv(global->AudCodec); } /** write the file header */ mkv_write_header(videoF->mkv); /* start video capture*/ capVid = TRUE; __LOCK_MUTEX(__VMUTEX); videoIn->capVid = capVid; __UNLOCK_MUTEX(__VMUTEX); pdata->capVid = capVid; /* start sound capture*/ if(global->Sound_enable > 0 && init_sound (pdata)) { //FIXME: enable capture button g_printerr("Audio initialization error\n"); global->Sound_enable=0; } break; default: break; } return (ret); }
int settings_load(struct user_settings *s, const char *patharg) { config_t cfg[1]; config_setting_t *setting; const char *str; /* Load default settings */ ui_defaults(s); tox_defaults(s); key_defaults(s); #ifdef _AUDIO audio_defaults(s); #endif config_init(cfg); char path[MAX_STR_SIZE]; /* use default config file path */ if (patharg == NULL) { char *user_config_dir = get_user_config_dir(); snprintf(path, sizeof(path), "%s%stoxic.conf", user_config_dir, CONFIGDIR); free(user_config_dir); /* make sure path exists or is created on first time running */ FILE *fp = fopen(path, "r"); if (fp == NULL) { if ((fp = fopen(path, "w")) == NULL) return -1; } fclose(fp); } else { snprintf(path, sizeof(path), "%s", patharg); } if (!config_read_file(cfg, path)) { config_destroy(cfg); return -1; } /* ui */ if ((setting = config_lookup(cfg, ui_strings.self)) != NULL) { config_setting_lookup_bool(setting, ui_strings.timestamps, &s->timestamps); config_setting_lookup_bool(setting, ui_strings.alerts, &s->alerts); config_setting_lookup_bool(setting, ui_strings.autolog, &s->autolog); config_setting_lookup_bool(setting, ui_strings.native_colors, &s->colour_theme); config_setting_lookup_int(setting, ui_strings.history_size, &s->history_size); config_setting_lookup_int(setting, ui_strings.time_format, &s->time); s->time = s->time == TIME_24 || s->time == TIME_12 ? s->time : TIME_24; /* Check defaults */ } if ((setting = config_lookup(cfg, tox_strings.self)) != NULL) { if ( config_setting_lookup_string(setting, tox_strings.download_path, &str) ) { strcpy(s->download_path, str); } } /* keys */ if((setting = config_lookup(cfg, key_strings.self)) != NULL) { const char* tmp = NULL; if(config_setting_lookup_string(setting, key_strings.next_tab, &tmp)) s->key_next_tab = key_parse(&tmp); if(config_setting_lookup_string(setting, key_strings.prev_tab, &tmp)) s->key_prev_tab = key_parse(&tmp); if(config_setting_lookup_string(setting, key_strings.scroll_line_up, &tmp)) s->key_scroll_line_up = key_parse(&tmp); if(config_setting_lookup_string(setting, key_strings.scroll_line_down, &tmp)) s->key_scroll_line_down= key_parse(&tmp); if(config_setting_lookup_string(setting, key_strings.half_page_up, &tmp)) s->key_half_page_up = key_parse(&tmp); if(config_setting_lookup_string(setting, key_strings.half_page_down, &tmp)) s->key_half_page_down = key_parse(&tmp); if(config_setting_lookup_string(setting, key_strings.page_bottom, &tmp)) s->key_page_bottom = key_parse(&tmp); if(config_setting_lookup_string(setting, key_strings.peer_list_up, &tmp)) s->key_peer_list_up = key_parse(&tmp); if(config_setting_lookup_string(setting, key_strings.peer_list_down, &tmp)) s->key_peer_list_down = key_parse(&tmp); } #ifdef _AUDIO if ((setting = config_lookup(cfg, audio_strings.self)) != NULL) { config_setting_lookup_int(setting, audio_strings.input_device, &s->audio_in_dev); s->audio_in_dev = s->audio_in_dev < 0 || s->audio_in_dev > MAX_DEVICES ? 0 : s->audio_in_dev; config_setting_lookup_int(setting, audio_strings.output_device, &s->audio_out_dev); s->audio_out_dev = s->audio_out_dev < 0 || s->audio_out_dev > MAX_DEVICES ? 0 : s->audio_out_dev; config_setting_lookup_float(setting, audio_strings.VAD_treshold, &s->VAD_treshold); } #endif #ifdef _SOUND_NOTIFY if ((setting = config_lookup(cfg, sound_strings.self)) != NULL) { if ( (config_setting_lookup_string(setting, sound_strings.error, &str) != CONFIG_TRUE) || !set_sound(error, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(error, PACKAGE_DATADIR "/sounds/Error.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.user_log_in, &str) || !set_sound(user_log_in, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(user_log_in, PACKAGE_DATADIR "/sounds/ContactLogsIn.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.self_log_in, &str) || !set_sound(self_log_in, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(self_log_in, PACKAGE_DATADIR "/sounds/LogIn.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.user_log_out, &str) || !set_sound(user_log_out, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(user_log_out, PACKAGE_DATADIR "/sounds/ContactLogsOut.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.self_log_out, &str) || !set_sound(self_log_out, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(self_log_out, PACKAGE_DATADIR "/sounds/LogOut.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.call_incoming, &str) || !set_sound(call_incoming, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(call_incoming, PACKAGE_DATADIR "/sounds/IncomingCall.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.call_outgoing, &str) || !set_sound(call_outgoing, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(call_outgoing, PACKAGE_DATADIR "/sounds/OutgoingCall.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.generic_message, &str) || !set_sound(generic_message, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(generic_message, PACKAGE_DATADIR "/sounds/NewMessage.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.transfer_pending, &str) || !set_sound(transfer_pending, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(transfer_pending, PACKAGE_DATADIR "/sounds/TransferPending.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.transfer_completed, &str) || !set_sound(transfer_completed, str) ) { if (strcasecmp(str, NO_SOUND) != 0) set_sound(transfer_completed, PACKAGE_DATADIR "/sounds/TransferComplete.wav"); } } else { set_sound(error, PACKAGE_DATADIR "/sounds/Error.wav"); set_sound(user_log_in, PACKAGE_DATADIR "/sounds/ContactLogsIn.wav"); set_sound(self_log_in, PACKAGE_DATADIR "/sounds/LogIn.wav"); set_sound(user_log_out, PACKAGE_DATADIR "/sounds/ContactLogsOut.wav"); set_sound(self_log_out, PACKAGE_DATADIR "/sounds/LogOut.wav"); set_sound(call_incoming, PACKAGE_DATADIR "/sounds/IncomingCall.wav"); set_sound(call_outgoing, PACKAGE_DATADIR "/sounds/OutgoingCall.wav"); set_sound(generic_message, PACKAGE_DATADIR "/sounds/NewMessage.wav"); set_sound(transfer_pending, PACKAGE_DATADIR "/sounds/TransferPending.wav"); set_sound(transfer_completed, PACKAGE_DATADIR "/sounds/TransferComplete.wav"); } #endif config_destroy(cfg); return 0; }
static bool stereo_width(void) { return set_sound(str(LANG_STEREO_WIDTH), &global_settings.stereo_width, SOUND_STEREO_WIDTH); }
int settings_load(struct user_settings *s, const char *patharg) { config_t cfg[1]; config_setting_t *setting; const char *str = NULL; /* Load default settings */ ui_defaults(s); tox_defaults(s); key_defaults(s); #ifdef AUDIO audio_defaults(s); #endif config_init(cfg); char path[MAX_STR_SIZE]; /* use default config file path */ if (patharg == NULL) { char *user_config_dir = get_user_config_dir(); snprintf(path, sizeof(path), "%s%stoxic.conf", user_config_dir, CONFIGDIR); free(user_config_dir); /* make sure path exists or is created on first time running */ if (!file_exists(path)) { FILE *fp = fopen(path, "w"); if (fp == NULL) return -1; fclose(fp); } } else { snprintf(path, sizeof(path), "%s", patharg); } if (!config_read_file(cfg, path)) { config_destroy(cfg); return -1; } /* ui */ if ((setting = config_lookup(cfg, ui_strings.self)) != NULL) { config_setting_lookup_bool(setting, ui_strings.timestamps, &s->timestamps); int time = 24; if ( config_setting_lookup_int(setting, ui_strings.time_format, &time) ) { if (time == 12) { snprintf(s->timestamp_format, sizeof(s->timestamp_format), "%s", "%I:%M:%S %p"); snprintf(s->log_timestamp_format, sizeof(s->log_timestamp_format), "%s", "%Y/%m/%d [%I:%M:%S %p]"); } } if ( config_setting_lookup_string(setting, ui_strings.timestamp_format, &str) ) { snprintf(s->timestamp_format, sizeof(s->timestamp_format), "%s", str); } if ( config_setting_lookup_string(setting, ui_strings.log_timestamp_format, &str) ) { snprintf(s->log_timestamp_format, sizeof(s->log_timestamp_format), "%s", str); } config_setting_lookup_bool(setting, ui_strings.alerts, &s->alerts); config_setting_lookup_bool(setting, ui_strings.autolog, &s->autolog); config_setting_lookup_bool(setting, ui_strings.native_colors, &s->colour_theme); config_setting_lookup_int(setting, ui_strings.history_size, &s->history_size); config_setting_lookup_bool(setting, ui_strings.show_typing_self, &s->show_typing_self); config_setting_lookup_bool(setting, ui_strings.show_typing_other, &s->show_typing_other); config_setting_lookup_bool(setting, ui_strings.show_welcome_msg, &s->show_welcome_msg); if ( config_setting_lookup_string(setting, ui_strings.line_join, &str) ) { snprintf(s->line_join, sizeof(s->line_join), "%s", str); } if ( config_setting_lookup_string(setting, ui_strings.line_quit, &str) ) { snprintf(s->line_quit, sizeof(s->line_quit), "%s", str); } if ( config_setting_lookup_string(setting, ui_strings.line_alert, &str) ) { snprintf(s->line_alert, sizeof(s->line_alert), "%s", str); } if ( config_setting_lookup_string(setting, ui_strings.line_normal, &str) ) { snprintf(s->line_normal, sizeof(s->line_normal), "%s", str); } config_setting_lookup_bool (setting, ui_strings.mplex_away, &s->mplex_away); if (config_setting_lookup_string (setting, ui_strings.mplex_away_note, &str)) { snprintf (s->mplex_away_note, sizeof (s->mplex_away_note), "%s", str); } } /* paths */ if ((setting = config_lookup(cfg, tox_strings.self)) != NULL) { if ( config_setting_lookup_string(setting, tox_strings.download_path, &str) ) { snprintf(s->download_path, sizeof(s->download_path), "%s", str); int len = strlen(s->download_path); /* make sure path ends with a '/' */ if (len >= sizeof(s->download_path) - 2) s->download_path[0] = '\0'; else if (s->download_path[len - 1] != '/') strcat(&s->download_path[len - 1], "/"); } if ( config_setting_lookup_string(setting, tox_strings.chatlogs_path, &str) ) { snprintf(s->chatlogs_path, sizeof(s->chatlogs_path), "%s", str); int len = strlen(s->chatlogs_path); if (len >= sizeof(s->chatlogs_path) - 2) s->chatlogs_path[0] = '\0'; else if (s->chatlogs_path[len - 1] != '/') strcat(&s->chatlogs_path[len - 1], "/"); } if ( config_setting_lookup_string(setting, tox_strings.avatar_path, &str) ) { snprintf(s->avatar_path, sizeof(s->avatar_path), "%s", str); int len = strlen(str); if (len >= sizeof(s->avatar_path)) s->avatar_path[0] = '\0'; } } /* keys */ if ((setting = config_lookup(cfg, key_strings.self)) != NULL) { const char* tmp = NULL; if (config_setting_lookup_string(setting, key_strings.next_tab, &tmp)) s->key_next_tab = key_parse(&tmp); if (config_setting_lookup_string(setting, key_strings.prev_tab, &tmp)) s->key_prev_tab = key_parse(&tmp); if (config_setting_lookup_string(setting, key_strings.scroll_line_up, &tmp)) s->key_scroll_line_up = key_parse(&tmp); if (config_setting_lookup_string(setting, key_strings.scroll_line_down, &tmp)) s->key_scroll_line_down= key_parse(&tmp); if (config_setting_lookup_string(setting, key_strings.half_page_up, &tmp)) s->key_half_page_up = key_parse(&tmp); if (config_setting_lookup_string(setting, key_strings.half_page_down, &tmp)) s->key_half_page_down = key_parse(&tmp); if (config_setting_lookup_string(setting, key_strings.page_bottom, &tmp)) s->key_page_bottom = key_parse(&tmp); if (config_setting_lookup_string(setting, key_strings.peer_list_up, &tmp)) s->key_peer_list_up = key_parse(&tmp); if (config_setting_lookup_string(setting, key_strings.peer_list_down, &tmp)) s->key_peer_list_down = key_parse(&tmp); if (config_setting_lookup_string(setting, key_strings.toggle_peerlist, &tmp)) s->key_toggle_peerlist = key_parse(&tmp); } #ifdef AUDIO if ((setting = config_lookup(cfg, audio_strings.self)) != NULL) { config_setting_lookup_int(setting, audio_strings.input_device, &s->audio_in_dev); s->audio_in_dev = s->audio_in_dev < 0 || s->audio_in_dev > MAX_DEVICES ? 0 : s->audio_in_dev; config_setting_lookup_int(setting, audio_strings.output_device, &s->audio_out_dev); s->audio_out_dev = s->audio_out_dev < 0 || s->audio_out_dev > MAX_DEVICES ? 0 : s->audio_out_dev; config_setting_lookup_float(setting, audio_strings.VAD_treshold, &s->VAD_treshold); } #endif #ifdef SOUND_NOTIFY if ((setting = config_lookup(cfg, sound_strings.self)) != NULL) { if ( (config_setting_lookup_string(setting, sound_strings.notif_error, &str) != CONFIG_TRUE) || !set_sound(notif_error, str) ) { if (str && strcasecmp(str, NO_SOUND) != 0) set_sound(notif_error, PACKAGE_DATADIR "/sounds/ToxicError.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.user_log_in, &str) || !set_sound(user_log_in, str) ) { if (str && strcasecmp(str, NO_SOUND) != 0) set_sound(user_log_in, PACKAGE_DATADIR "/sounds/ToxicContactOnline.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.user_log_out, &str) || !set_sound(user_log_out, str) ) { if (str && strcasecmp(str, NO_SOUND) != 0) set_sound(user_log_out, PACKAGE_DATADIR "/sounds/ToxicContactOffline.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.call_incoming, &str) || !set_sound(call_incoming, str) ) { if (str && strcasecmp(str, NO_SOUND) != 0) set_sound(call_incoming, PACKAGE_DATADIR "/sounds/ToxicIncomingCall.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.call_outgoing, &str) || !set_sound(call_outgoing, str) ) { if (str && strcasecmp(str, NO_SOUND) != 0) set_sound(call_outgoing, PACKAGE_DATADIR "/sounds/ToxicOutgoingCall.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.generic_message, &str) || !set_sound(generic_message, str) ) { if (str && strcasecmp(str, NO_SOUND) != 0) set_sound(generic_message, PACKAGE_DATADIR "/sounds/ToxicRecvMessage.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.transfer_pending, &str) || !set_sound(transfer_pending, str) ) { if (str && strcasecmp(str, NO_SOUND) != 0) set_sound(transfer_pending, PACKAGE_DATADIR "/sounds/ToxicTransferStart.wav"); } if ( !config_setting_lookup_string(setting, sound_strings.transfer_completed, &str) || !set_sound(transfer_completed, str) ) { if (str && strcasecmp(str, NO_SOUND) != 0) set_sound(transfer_completed, PACKAGE_DATADIR "/sounds/ToxicTransferComplete.wav"); } } else { set_sound(notif_error, PACKAGE_DATADIR "/sounds/ToxicError.wav"); set_sound(user_log_in, PACKAGE_DATADIR "/sounds/ToxicContactOnline.wav"); set_sound(user_log_out, PACKAGE_DATADIR "/sounds/ToxicContactOffline.wav"); set_sound(call_incoming, PACKAGE_DATADIR "/sounds/ToxicIncomingCall.wav"); set_sound(call_outgoing, PACKAGE_DATADIR "/sounds/ToxicOutgoingCall.wav"); set_sound(generic_message, PACKAGE_DATADIR "/sounds/ToxicRecvMessage.wav"); set_sound(transfer_pending, PACKAGE_DATADIR "/sounds/ToxicTransferStart.wav"); set_sound(transfer_completed, PACKAGE_DATADIR "/sounds/ToxicTransferComplete.wav"); } #endif config_destroy(cfg); return 0; }
static bool mdb_center(void) { return set_sound(str(LANG_MDB_CENTER), &global_settings.mdb_center, SOUND_MDB_CENTER); }
static bool mdb_shape(void) { return set_sound(str(LANG_MDB_SHAPE), &global_settings.mdb_shape, SOUND_MDB_SHAPE); }
static bool mdb_strength(void) { return set_sound(str(LANG_MDB_STRENGTH), &global_settings.mdb_strength, SOUND_MDB_STRENGTH); }
static bool mdb_harmonics(void) { return set_sound(str(LANG_MDB_HARMONICS), &global_settings.mdb_harmonics, SOUND_MDB_HARMONICS); }
static bool loudness(void) { return set_sound(str(LANG_LOUDNESS), &global_settings.loudness, SOUND_LOUDNESS); }
static bool treble(void) { return set_sound(str(LANG_TREBLE), &global_settings.treble, SOUND_TREBLE); }
static bool bass(void) { return set_sound(str(LANG_BASS), &global_settings.bass, SOUND_BASS); }
static bool balance(void) { return set_sound(str(LANG_BALANCE), &global_settings.balance, SOUND_BALANCE); }
static bool volume(void) { return set_sound(str(LANG_VOLUME), &global_settings.volume, SOUND_VOLUME); }