#include <iniparser.h>
#include "tizen-audio-internal.h"
+#include "tizen-audio-impl.h"
#define VOLUME_INI_DEFAULT_PATH SYSCONFDIR"/multimedia/mmfw_audio_volume.ini" /* SYSCONFDIR is defined at .spec */
#define VOLUME_INI_TEMP_PATH "/opt/system/mmfw_audio_volume.ini"
uint32_t vol_type_idx, vol_level_idx, gain_type_idx;
audio_volume_value_table_t *volume_value_table = ah->volume.volume_value_table;
int size = 0;
+ const char delimiter[] = ", ";
+ const char *table_str = "volumes";
+ const char *tmp_str = NULL;
+ const char *gain_str = NULL;
+ char *list_str = NULL, *ptr = NULL;
+ char *key, *token;
if (access(VOLUME_INI_TEMP_PATH, F_OK) == 0)
dict = iniparser_load(VOLUME_INI_TEMP_PATH);
}
}
- const char delimiter[] = ", ";
- char *key, *list_str, *token, *ptr = NULL;
- const char *table_str = "volumes";
-
/* Load volume table */
for (vol_type_idx = 0; vol_type_idx < AUDIO_VOLUME_TYPE_MAX; vol_type_idx++) {
const char *vol_type_str = __get_volume_type_string_by_idx(vol_type_idx);
key = malloc(size);
if (key) {
snprintf(key, size, "%s:%s", table_str, vol_type_str);
- list_str = iniparser_getstring(dict, key, NULL);
+ if ((tmp_str = iniparser_getstring(dict, key, NULL)))
+ list_str = strdup(tmp_str);
+
if (list_str) {
token = strtok_r(list_str, delimiter, &ptr);
while (token) {
volume_value_table->volume[vol_type_idx][ah->volume.volume_level_max[vol_type_idx]++] = vol_value;
token = strtok_r(NULL, delimiter, &ptr);
}
+ free(list_str);
+ list_str = NULL;
} else {
ah->volume.volume_level_max[vol_type_idx] = 1;
for (vol_level_idx = 0; vol_level_idx < AUDIO_VOLUME_LEVEL_MAX; vol_level_idx++) {
key = malloc(size);
if (key) {
snprintf(key, size, "%s:gain_%s", table_str, gain_type_str);
- token = iniparser_getstring(dict, key, NULL);
- if (token) {
- volume_value_table->gain[gain_type_idx] = atof(token);
+ gain_str = iniparser_getstring(dict, key, NULL);
+ if (gain_str) {
+ volume_value_table->gain[gain_type_idx] = atof(gain_str);
} else {
volume_value_table->gain[gain_type_idx] = GAIN_VALUE_MAX;
}
_mixer_control_set_value (ah, COMPRESS_VOL_CTRL, (int)(ratio * MAX_VOL_VALUE));
return audio_ret;
-}
\ No newline at end of file
+}