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 *key, *list_str, *token, *ptr = NULL;
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;
}
{
dictionary * dict = NULL;
const char delimiter[] = ", ";
+ const char *tmp_str = NULL;
char* ptr = NULL;
char* token = NULL;
char* list_str = NULL;
*volume_table = temp_table;
- list_str = iniparser_getstring(dict, RADIO_TUNING_VOLUME_TABLE, NULL);
+ if ((tmp_str = iniparser_getstring(dict, RADIO_TUNING_VOLUME_TABLE, NULL)))
+ list_str = strdup(tmp_str);
+
if (list_str) {
token = strtok_r(list_str, delimiter, &ptr);
while (token) {
index++;
token = strtok_r(NULL, delimiter, &ptr);
}
+ free(list_str);
+ list_str = NULL;
}
error:
iniparser_freedict(dict);