2 * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <iniparser.h>
20 #include "common/mm_resource_manager_utils.h"
21 #include "daemon/mm_resource_manager_daemon_conf.h"
25 #define MM_RESOURCE_MANAGER_INI_FILE "/etc/multimedia/mmfw_resource_manager.ini"
26 #define MM_RESOURCE_MANAGER_INI_MAX_VOLUME "max volume:"
27 #define MM_RESOURCE_MANAGER_INI_PRIORITY "priority:"
31 static mm_resource_manager_conf_s mm_resource_manager_conf = {
32 {[0 ... MM_RESOURCE_MANAGER_RES_TYPE_MAX - 1] =
33 MM_RESOURCE_MANAGER_NO_RES},
34 {[0 ... MM_RESOURCE_MANAGER_APP_CLASS_MAX - 1] =
35 MM_RESOURCE_MANAGER_NO_APP_CLASS},
36 {[0 ... MM_RESOURCE_MANAGER_RES_TYPE_MAX - 1]
37 [0 ... MM_RESOURCE_MANAGER_RES_TYPE_COND_MAX - 1] =
38 MM_RESOURCE_MANAGER_NO_RES}
43 gboolean mm_resource_manager_reload_conf()
49 ini = iniparser_load(MM_RESOURCE_MANAGER_INI_FILE);
51 param_name = g_string_sized_new(64);
53 for (i = 0; i < MM_RESOURCE_MANAGER_RES_TYPE_MAX; i++) {
54 mm_resource_manager_conf.max_volume[i] = iniparser_getint(ini,
55 g_string_append(g_string_assign(param_name,
56 MM_RESOURCE_MANAGER_INI_MAX_VOLUME),
57 _mm_resource_manager_get_res_str(i))->str,
58 MM_RESOURCE_MANAGER_NO_RES);
59 if (mm_resource_manager_conf.max_volume[i] >= 1) {
60 for (j = 0; j < MM_RESOURCE_MANAGER_RES_TYPE_COND_MAX; j++) {
61 g_string_printf(param_name, "%s:%s",
62 _mm_resource_manager_get_res_str(i),
63 _mm_resource_manager_get_condition_str(j));
64 mm_resource_manager_conf.condition_volume[i][j] =
65 iniparser_getint(ini, param_name->str,
66 MM_RESOURCE_MANAGER_NO_RES);
71 for (i = 0; i < MM_RESOURCE_MANAGER_APP_CLASS_MAX; i++) {
72 mm_resource_manager_conf.priority[i] = iniparser_getint(ini,
73 g_string_append(g_string_assign(param_name,
74 MM_RESOURCE_MANAGER_INI_PRIORITY),
75 _mm_resource_manager_get_app_class_str(i))->str,
76 MM_RESOURCE_MANAGER_NO_APP_CLASS);
79 g_string_free(param_name, TRUE);
80 iniparser_freedict(ini);
84 MM_RM_ERROR("Daemon cannot load conf file '%s'",
85 MM_RESOURCE_MANAGER_INI_FILE);
90 mm_resource_manager_conf_s* mm_resource_manager_get_conf()
92 return &mm_resource_manager_conf;