#include <sc-debug.h>
+using namespace std;
+
+
#define SETTING_ABOUT_POWER_SUPPLY_PATH "/sys/class/power_supply"
#define SETTING_ABOUT_STAT_PATH "/proc/stat"
#define MAX_COMMON_BUFFER_LEN 1024
*
* @return -1 if getting CPU info fails, otherwise 0 is returned
*/
-static int __stat_get_cpuinfo(char *szStr, int nSize)
+static bool __stat_get_cpuinfo(char *szStr, int nSize)
{
int ret = 0;
if (0 != ret) {
snprintf(szStr, nSize, "%s", "Unavailable");
- return -1;
+ return false;
}
snprintf(szStr, nSize, "%s", cpu_name);
free(cpu_name);
- return 0;
+ return true;
}
/*---------------------------------------------------------------------------------------------------------------------------*/
#define MAX_DISPLAY_STR_LEN_ON_PHONE_INFO 256
return MENURUN_ERR_NONE;
}
+static MENURUN_ERROR menugetstring_ad_name(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ char *name_value = vconf_get_str(VCONFKEY_SETAPPL_DEVICE_NAME_STR);
+ resultstr = name_value;
+ free(name_value);
+
+ return MENURUN_ERR_NONE;
+};
+
static MENURUN_ERROR menufunc_ad_mn(int argc, char *argv[], GenSettingMenu *menu)
{
return MENURUN_ERR_NONE;
}
+static MENURUN_ERROR menugetstring_ad_mn(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ str[0] = '\0';
+ __get_phone_model_name(str, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO);
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
+
static MENURUN_ERROR menufunc_ad_ver(int argc, char *argv[], GenSettingMenu *menu)
{
return MENURUN_ERR_NONE;
}
-static MENURUN_ERROR menufunc_ad_cpu(int argc, char *argv[], GenSettingMenu *menu)
+static MENURUN_ERROR menugetstring_ad_ver(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
{
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ str[0] = '\0';
+ __get_sw_version(str, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO);
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
+static MENURUN_ERROR menufunc_ad_cpu(int argc, char *argv[], GenSettingMenu *menu)
+{
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
str[0] = '\0';
__stat_get_cpuinfo(str, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO);
return MENURUN_ERR_NONE;
}
-static MENURUN_ERROR menufunc_ad_ram(int argc, char *argv[], GenSettingMenu *menu)
+static MENURUN_ERROR menugetstring_ad_cpu(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
{
-
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
str[0] = '\0';
+ __stat_get_cpuinfo(str, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO);
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
+
+static MENURUN_ERROR menufunc_ad_ram(int argc, char *argv[], GenSettingMenu *menu)
+{
runtime_memory_info_s mem_info = {0};
int ret_value = runtime_info_get_system_memory_info(&mem_info);
+ if (RUNTIME_INFO_ERROR_NONE != ret_value)
+ return MENURUN_ERR_NORMAL;
+
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ float ram_total_gb = mem_info.total / 1000000.0;
+ snprintf(str, sizeof(str), "%0.1fGB", ram_total_gb);
- if (RUNTIME_INFO_ERROR_NONE == ret_value) {
- float ram_total_gb = mem_info.total / 1000000.0;
- snprintf(str, sizeof(str), "%0.1fGB", ram_total_gb);
- }
printf("\tRAM : ");
printf("%s\n", str);
return MENURUN_ERR_NONE;
}
-
-static MENURUN_ERROR menufunc_ad_res(int argc, char *argv[], GenSettingMenu *menu)
+static MENURUN_ERROR menugetstring_ad_ram(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
{
+ runtime_memory_info_s mem_info = { 0 };
+ int ret_value = runtime_info_get_system_memory_info(&mem_info);
+ if (RUNTIME_INFO_ERROR_NONE != ret_value)
+ return MENURUN_ERR_NORMAL;
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
- str[0] = '\0';
+ float ram_total_gb = mem_info.total / 1000000.0;
+ snprintf(str, sizeof(str), "%0.1fGB", ram_total_gb);
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
+
+static MENURUN_ERROR menufunc_ad_res(int argc, char *argv[], GenSettingMenu *menu)
+{
int dim1, dim2;
int ret_value = system_info_get_platform_int(
- "http://tizen.org/feature/screen.width",
- &dim1);
- if (SYSTEM_INFO_ERROR_NONE == ret_value) {
- system_info_get_platform_int(
- "http://tizen.org/feature/screen.height",
- &dim2);
- if (SYSTEM_INFO_ERROR_NONE == ret_value)
- snprintf(str, sizeof(str), "%d x %d", dim1, dim2);
- }
+ "http://tizen.org/feature/screen.width", &dim1);
+ if (SYSTEM_INFO_ERROR_NONE != ret_value)
+ return MENURUN_ERR_NORMAL;
+
+ system_info_get_platform_int(
+ "http://tizen.org/feature/screen.height", &dim2);
+ if (SYSTEM_INFO_ERROR_NONE != ret_value)
+ return MENURUN_ERR_NORMAL;
+
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ snprintf(str, sizeof(str), "%d x %d", dim1, dim2);
+
printf("\tResolution : ");
printf("%s\n", str);
return MENURUN_ERR_NONE;
}
+static MENURUN_ERROR menugetstring_ad_res(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ int dim1, dim2;
+ int ret_value = system_info_get_platform_int(
+ "http://tizen.org/feature/screen.width", &dim1);
+ if (SYSTEM_INFO_ERROR_NONE != ret_value)
+ return MENURUN_ERR_NORMAL;
+
+ system_info_get_platform_int(
+ "http://tizen.org/feature/screen.height", &dim2);
+ if (SYSTEM_INFO_ERROR_NONE != ret_value)
+ return MENURUN_ERR_NORMAL;
+
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ snprintf(str, sizeof(str), "%d x %d", dim1, dim2);
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
+
+
/* sim_number is started from 1, ex) SIM1, SIM2, SIM3 ... */
-static MENURUN_ERROR _get_sim_phone_number(int sim_number, char * str, int str_size)
+static bool _get_sim_phone_number(int sim_number, char *str, int str_size)
{
telephony_handle_list_s tel_h_list;
char *phone_num = nullptr;
int ret = 0;
if (telephony_init(&tel_h_list) != TELEPHONY_ERROR_NONE) {
eprintf("telephony_init failed");
- return MENURUN_ERR_NORMAL;
+ return false;
}
if ((int)tel_h_list.count < sim_number-1) {
printf("\tThere is no SIM%d card\n", sim_number);
if (telephony_deinit(&tel_h_list) != TELEPHONY_ERROR_NONE) {
eprintf("telephony_deinit failed");
- return MENURUN_ERR_NORMAL;
+ return false;
}
- return MENURUN_ERR_NORMAL;
+ return false;
}
ret = telephony_sim_get_subscriber_number(tel_h_list.handle[sim_number-1], &phone_num);
- if (!ret && (phone_num != nullptr)) {
- snprintf(str, str_size, "%s", phone_num);
- free(phone_num);
- } else {
+ if (ret != 0 || phone_num == nullptr) {
printf("\tThere is no SIM%d card, ret:%d phone_num addr:0x%x\n", sim_number, ret, (unsigned int)phone_num);
if (telephony_deinit(&tel_h_list) != TELEPHONY_ERROR_NONE) {
eprintf("telephony_deinit failed");
- return MENURUN_ERR_NORMAL;
+ return false;
}
- return MENURUN_ERR_NORMAL;
+ return false;
}
-
+ snprintf(str, str_size, "%s", phone_num);
+ free(phone_num);
+
if (telephony_deinit(&tel_h_list) != TELEPHONY_ERROR_NONE) {
eprintf("telephony_deinit failed");
- return MENURUN_ERR_NORMAL;
+ return false;
}
- return MENURUN_ERR_NONE;
+ return true;
}
static MENURUN_ERROR menufunc_ad_sim1(int argc, char *argv[], GenSettingMenu *menu)
{
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
- MENURUN_ERROR ret = _get_sim_phone_number(1, str, sizeof(str));
- if (ret != MENURUN_ERR_NONE)
- return ret;
+ if (!_get_sim_phone_number(1, str, sizeof(str)))
+ return MENURUN_ERR_NORMAL;
printf("\tSIM1 Phone Number : ");
printf("%s\n", str);
- return ret;
+ return MENURUN_ERR_NONE;
}
+static MENURUN_ERROR menugetstring_ad_sim1(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ if (!_get_sim_phone_number(1, str, sizeof(str)))
+ return MENURUN_ERR_NORMAL;
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
static MENURUN_ERROR menufunc_ad_sim2(int argc, char *argv[], GenSettingMenu *menu)
{
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
- MENURUN_ERROR ret = _get_sim_phone_number(2, str, sizeof(str));
- if (ret != MENURUN_ERR_NONE)
- return ret;
+ if (!_get_sim_phone_number(2, str, sizeof(str)))
+ return MENURUN_ERR_NORMAL;
printf("\tSIM2 Phone Number : ");
printf("%s\n", str);
- return ret;
+
+ return MENURUN_ERR_NONE;
}
+static MENURUN_ERROR menugetstring_ad_sim2(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ if (!_get_sim_phone_number(2, str, sizeof(str)))
+ return MENURUN_ERR_NORMAL;
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
/* sim_number is started from 1, ex) SIM1, SIM2, SIM3 ... */
-static MENURUN_ERROR _get_sim_ime(int sim_number, char * str, int str_size)
+static bool _get_sim_ime(int sim_number, char * str, int str_size)
{
telephony_handle_list_s tel_h_list;
char *ime_buffer = nullptr;
if (telephony_init(&tel_h_list) != TELEPHONY_ERROR_NONE) {
eprintf("telephony_init failed");
- return MENURUN_ERR_NORMAL;
+ return false;
}
if ((int)tel_h_list.count < sim_number-1) {
printf("\tThere is no SIM%d card\n", sim_number);
if (telephony_deinit(&tel_h_list) != TELEPHONY_ERROR_NONE) {
eprintf("telephony_deinit failed");
- return MENURUN_ERR_NORMAL;
+ return false;
}
- return MENURUN_ERR_NORMAL;
+ return false;
}
int ret = telephony_modem_get_imei(tel_h_list.handle[sim_number-1], &ime_buffer);
- if (!ret && (ime_buffer != nullptr)) {
- snprintf(str, str_size, "%s", ime_buffer);
- free(ime_buffer);
- } else {
+ if (ret != 0 || ime_buffer == nullptr) {
printf("\tThere is no SIM%d card, ret:%d ime_buffer addr:0x%x\n", sim_number, ret, (unsigned int)ime_buffer);
if (telephony_deinit(&tel_h_list) != TELEPHONY_ERROR_NONE) {
eprintf("telephony_deinit failed");
- return MENURUN_ERR_NORMAL;
+ return false;
}
- return MENURUN_ERR_NORMAL;
+ return false;
}
+ snprintf(str, str_size, "%s", ime_buffer);
+ free(ime_buffer);
if (telephony_deinit(&tel_h_list) != TELEPHONY_ERROR_NONE) {
eprintf("telephony_deinit failed");
- return MENURUN_ERR_NORMAL;
+ return false;
}
- return MENURUN_ERR_NONE;
+ return true;
}
static MENURUN_ERROR menufunc_ad_ime1(int argc, char *argv[], GenSettingMenu *menu)
{
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
- MENURUN_ERROR ret = _get_sim_ime(1, str, sizeof(str));
- if (ret != MENURUN_ERR_NONE)
- return ret;
+ if (!_get_sim_ime(1, str, sizeof(str)))
+ return MENURUN_ERR_NORMAL;
printf("\tIME1 : ");
printf("%s\n", str);
- return ret;
+
+ return MENURUN_ERR_NONE;
}
+static MENURUN_ERROR menugetstring_ad_ime1(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ if (!_get_sim_ime(1, str, sizeof(str)))
+ return MENURUN_ERR_NORMAL;
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
static MENURUN_ERROR menufunc_ad_ime2(int argc, char *argv[], GenSettingMenu *menu)
{
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
- MENURUN_ERROR ret = _get_sim_ime(2, str, sizeof(str));
- if (ret != MENURUN_ERR_NONE)
- return ret;
+ if (!_get_sim_ime(2, str, sizeof(str)))
+ return MENURUN_ERR_NORMAL;
printf("\tIME2 : ");
printf("%s\n", str);
- return ret;
-}
-static MENURUN_ERROR menufunc_ad_bta(int argc, char *argv[], GenSettingMenu *menu)
+ return MENURUN_ERR_NONE;
+}
+static MENURUN_ERROR menugetstring_ad_ime2(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
{
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ if (!_get_sim_ime(2, str, sizeof(str)))
+ return MENURUN_ERR_NORMAL;
+ resultstr = str;
- int ret = bt_initialize();
+ return MENURUN_ERR_NONE;
+};
+static MENURUN_ERROR menufunc_ad_bta(int argc, char *argv[], GenSettingMenu *menu)
+{
+ int ret = bt_initialize();
char *local_address = nullptr;
ret = bt_adapter_get_address(&local_address);
bt_deinitialize();
if (ret != BT_ERROR_NONE) {
+ char errmsg[200];
if (ret == BT_ERROR_NOT_ENABLED)
- snprintf(str, sizeof(str), "Bluetooth is disabled!\n");
+ snprintf(errmsg, sizeof(errmsg), "Bluetooth is disabled!\n");
else
- snprintf(str, sizeof(str), "Bluetooth is unavailable!\n");
- eprintf("Fail to get BT address, error code: %d\n",
- ret);
- } else {
- snprintf(str, sizeof(str), "%s", local_address);
+ snprintf(errmsg, sizeof(errmsg), "Bluetooth is unavailable!\n");
+ eprintf("Fail to get BT address, error code: %s\n", errmsg);
free(local_address);
+ return MENURUN_ERR_NORMAL;
}
+
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ snprintf(str, sizeof(str), "%s", local_address);
+ free(local_address);
printf("\tBluetooth address : ");
printf("%s\n", str);
+
return MENURUN_ERR_NONE;
}
-static MENURUN_ERROR menufunc_ad_wfa(int argc, char *argv[], GenSettingMenu *menu)
+static MENURUN_ERROR menugetstring_ad_bta(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
{
+ int ret = bt_initialize();
+ char *local_address = nullptr;
+ ret = bt_adapter_get_address(&local_address);
+
+ bt_deinitialize();
+
+ if (ret != BT_ERROR_NONE) {
+ char errmsg[200];
+ if (ret == BT_ERROR_NOT_ENABLED)
+ snprintf(errmsg, sizeof(errmsg), "Bluetooth is disabled!\n");
+ else
+ snprintf(errmsg, sizeof(errmsg), "Bluetooth is unavailable!\n");
+ eprintf("Fail to get BT address, error code: %s\n", errmsg);
+ free(local_address);
+ return MENURUN_ERR_NORMAL;
+ }
+
char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ snprintf(str, sizeof(str), "%s", local_address);
+ free(local_address);
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
+static MENURUN_ERROR menufunc_ad_wfa(int argc, char *argv[], GenSettingMenu *menu)
+{
wifi_manager_h wifi_handle = nullptr;
char *mac_addr = nullptr;
/* get wifi mac address */
ret = wifi_manager_get_mac_address(wifi_handle, &mac_addr);
- if (ret == WIFI_MANAGER_ERROR_NONE && mac_addr) {
- snprintf(str, sizeof(str), "%s", mac_addr);
- free(mac_addr);
- } else {
- snprintf(str, sizeof(str), "WIFI is unavailable!\n");
- eprintf("Fail to get WIFI address, error code: %d\n",
- ret);
+ if (ret != WIFI_MANAGER_ERROR_NONE && mac_addr) {
+ char errmsg[200];
+ snprintf(errmsg, sizeof(errmsg), "WIFI is unavailable!\n");
+ eprintf("Fail to get WIFI address, error code: %s\n", errmsg);
+ return MENURUN_ERR_NORMAL;
}
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ snprintf(str, sizeof(str), "%s", mac_addr);
+ free(mac_addr);
+
/* release wifi handle */
ret = wifi_manager_deinitialize(wifi_handle);
if (ret != WIFI_MANAGER_ERROR_NONE)
return MENURUN_ERR_NORMAL;
+
printf("\tWIFI address : ");
printf("%s\n", str);
+
return MENURUN_ERR_NONE;
}
+static MENURUN_ERROR menugetstring_ad_wfa(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ wifi_manager_h wifi_handle = nullptr;
+ char *mac_addr = nullptr;
+
+ /* get wifi handle */
+ int ret = wifi_manager_initialize(&wifi_handle);
+ if (ret != WIFI_MANAGER_ERROR_NONE)
+ return MENURUN_ERR_NORMAL;
+
+ /* get wifi mac address */
+ ret = wifi_manager_get_mac_address(wifi_handle, &mac_addr);
+ if (ret != WIFI_MANAGER_ERROR_NONE && mac_addr) {
+ char errmsg[200];
+ snprintf(errmsg, sizeof(errmsg), "WIFI is unavailable!\n");
+ eprintf("Fail to get WIFI address, error code: %s\n", errmsg);
+ return MENURUN_ERR_NORMAL;
+ }
+
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ snprintf(str, sizeof(str), "%s", mac_addr);
+ free(mac_addr);
+
+ /* release wifi handle */
+ ret = wifi_manager_deinitialize(wifi_handle);
+ if (ret != WIFI_MANAGER_ERROR_NONE)
+ return MENURUN_ERR_NORMAL;
+
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
static MENURUN_ERROR menufunc_ad_sto(int argc, char *argv[], GenSettingMenu *menu)
{
- char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
long long int total = 0;
long long int avail = 0;
struct statvfs internal;
if (storage_get_internal_memory_size(&internal) < 0) {
eprintf("Fail to get internal memory size\n");
- snprintf(str, sizeof(str), "internal storage is unavailable!\n");
return MENURUN_ERR_NORMAL;
- } else {
- total = (long long int)internal.f_frsize
- * (long long int)internal.f_blocks;
- avail = (long long int)internal.f_bsize
- * (long long int)internal.f_bavail;
}
+ total = (long long int)internal.f_frsize
+ * (long long int)internal.f_blocks;
+ avail = (long long int)internal.f_bsize
+ * (long long int)internal.f_bavail;
if (storage_get_external_memory_size(&external) < 0) {
eprintf("Fail to get external memory size\n");
/* check if values are appropriate*/
if (total < 0 || avail < 0 || total < avail) {
eprintf("Fail to get internal memory size\n");
- snprintf(str, sizeof(str), "external storage is unavailable!\n");
return MENURUN_ERR_NORMAL;
}
+
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
snprintf(str, sizeof(str), "%0.1fGB available (Total %0.1fGB)",
(double)(avail / 1000000000.0), (double)(total / 1000000000.0));
printf("\tStorage Size : ");
return MENURUN_ERR_NONE;
}
+static MENURUN_ERROR menugetstring_ad_sto(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ long long int total = 0;
+ long long int avail = 0;
+ struct statvfs internal;
+ struct statvfs external;
+
+ if (storage_get_internal_memory_size(&internal) < 0) {
+ eprintf("Fail to get internal memory size\n");
+ return MENURUN_ERR_NORMAL;
+ }
+ total = (long long int)internal.f_frsize
+ * (long long int)internal.f_blocks;
+ avail = (long long int)internal.f_bsize
+ * (long long int)internal.f_bavail;
+
+ if (storage_get_external_memory_size(&external) < 0) {
+ eprintf("Fail to get external memory size\n");
+ }
+ else {
+ total += (long long int)external.f_frsize
+ * (long long int)external.f_blocks;
+ avail += (long long int)external.f_bsize
+ * (long long int)external.f_bavail;
+ }
+
+ /* check if values are appropriate*/
+ if (total < 0 || avail < 0 || total < avail) {
+ eprintf("Fail to get internal memory size\n");
+ return MENURUN_ERR_NORMAL;
+ }
+
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ snprintf(str, sizeof(str), "%0.1fGB available (Total %0.1fGB)",
+ (double)(avail / 1000000000.0), (double)(total / 1000000000.0));
+ resultstr = str;
+
+ return MENURUN_ERR_NONE;
+};
static MENURUN_ERROR menufunc_ad_batt(int argc, char *argv[], GenSettingMenu *menu)
{
- int val = -1;
char file[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO] = { 0, };
snprintf(file, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO, "%s/%s/%s",
- SETTING_ABOUT_POWER_SUPPLY_PATH, "battery", "capacity");
+ SETTING_ABOUT_POWER_SUPPLY_PATH, "battery", "capacity");
+
+ int fd = open(file, O_RDONLY);
+ if (fd == -1) {
+ eprintf("open file fail\n");
+ return MENURUN_ERR_NORMAL;
+ }
- char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
char buf[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO] = { 0, };
- int fd = 0;
- int r = 0;
-
- fd = open(file, O_RDONLY);
- if (fd != -1) {
- r = read(fd, buf, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO);
- if ((r >= 0) && (r < MAX_DISPLAY_STR_LEN_ON_PHONE_INFO)) {
- buf[r] = '\0';
- val = atoi(buf);
- snprintf(str, sizeof(str), "%d%%", val);
- } else {
- eprintf("read file fail\n");
- snprintf(str, sizeof(str), "%s unavailable!\n", SETTING_ABOUT_POWER_SUPPLY_PATH);
- }
+ int r = read(fd, buf, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO);
+ if (r < 0 || r >= MAX_DISPLAY_STR_LEN_ON_PHONE_INFO) {
+ eprintf("read file fail\n");
+ return MENURUN_ERR_NORMAL;
+ }
+ close(fd);
- close(fd);
- printf("\tBattery percentage : ");
- printf("%s\n", str);
- } else {
+ buf[r] = '\0';
+ int val = atoi(buf);
+
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ snprintf(str, sizeof(str), "%d%%", val);
+ printf("\tBattery percentage : ");
+ printf("%s\n", str);
+
+ return MENURUN_ERR_NONE;
+}
+static MENURUN_ERROR menugetstring_ad_batt(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ char file[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO] = { 0, };
+ snprintf(file, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO, "%s/%s/%s",
+ SETTING_ABOUT_POWER_SUPPLY_PATH, "battery", "capacity");
+
+ int fd = open(file, O_RDONLY);
+ if (fd == -1) {
eprintf("open file fail\n");
- snprintf(str, sizeof(str), "%s unavailable!\n", SETTING_ABOUT_POWER_SUPPLY_PATH);
+ return MENURUN_ERR_NORMAL;
+ }
+
+ char buf[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO] = { 0, };
+ int r = read(fd, buf, MAX_DISPLAY_STR_LEN_ON_PHONE_INFO);
+ if (r < 0 || r >= MAX_DISPLAY_STR_LEN_ON_PHONE_INFO) {
+ eprintf("read file fail\n");
+ return MENURUN_ERR_NORMAL;
}
+ close(fd);
+
+ buf[r] = '\0';
+ int val = atoi(buf);
+
+ char str[MAX_DISPLAY_STR_LEN_ON_PHONE_INFO];
+ snprintf(str, sizeof(str), "%d%%", val);
+ resultstr = str;
+
return MENURUN_ERR_NONE;
}
static int __stat_get_cpu_usage(float *usr_pct, float *sys_pct)
{
+ static unsigned long long usr_time = 0, sys_time = 0;
+ static unsigned long long old_usr = 0, old_sys = 0;
+ static struct timeval old_tv, cur_tv;
+
/* default value */
*usr_pct = 0.0;
*sys_pct = 0.0;
- static unsigned long long usr_time = 0, /*nice_time = 0,*/sys_time = 0;
- static unsigned long long old_usr = 0, /*old_nice = 0,*/old_sys = 0;
- static struct timeval old_tv, cur_tv;
- unsigned long long elapsed_tick;
- long tick_per_sec;
- long cpu_num;
- FILE *fp = nullptr;
- int ret = 0;
- tick_per_sec = sysconf(_SC_CLK_TCK);
- cpu_num = sysconf(_SC_NPROCESSORS_ONLN);
+ long tick_per_sec = sysconf(_SC_CLK_TCK);
+ long cpu_num = sysconf(_SC_NPROCESSORS_ONLN);
if (cpu_num < 1)
cpu_num = 1;
gettimeofday(&cur_tv, nullptr);
- fp = fopen(SETTING_ABOUT_STAT_PATH, "r");
+
+ FILE *fp = fopen(SETTING_ABOUT_STAT_PATH, "r");
if (fp == nullptr) {
eprintf("fp == nullptr\n");
return -ENOENT;
if (i >= 3)
break;
}
-
fclose(fp);
- fp = nullptr;
+
if (old_usr == 0) {
- ret = -EAGAIN;
- //eprintf("old_usr == 0\n");
- goto out;
+ old_usr = usr_time;
+ old_sys = sys_time;
+ old_tv = cur_tv;
+
+ return -EAGAIN;
}
- elapsed_tick = (unsigned long long)(((long long)cur_tv.tv_sec
+ unsigned long long elapsed_tick = (unsigned long long)(((long long)cur_tv.tv_sec
- old_tv.tv_sec) * tick_per_sec
+ (((long long)cur_tv.tv_usec - old_tv.tv_usec)
* tick_per_sec) / 1000000);
*sys_pct = 0;
}
-out:
old_usr = usr_time;
/*old_nice = nice_time; */
old_sys = sys_time;
old_tv = cur_tv;
- return ret;
+ return 0;
}
-
static MENURUN_ERROR menufunc_ad_cpuu(int argc, char *argv[], GenSettingMenu *menu)
{
- float usr = 0.0;
- float sys = 0.0;
- MENURUN_ERROR ret = MENURUN_ERR_NONE;
printf("\tWhen you want to stop checking CPU usage,\n");
printf("\tPress Ctrl+C\n\n");
while(1) {
+ float usr = 0.0, sys = 0.0;
int result = __stat_get_cpu_usage(&usr, &sys);
if (result != 0)
continue;
printf("%.0f%%\n", usr + sys);
sleep(1);
}
- return ret;
+
+ return MENURUN_ERR_NONE;
+}
+static MENURUN_ERROR menugetstring_ad_cpuu(string &resultstr, int argc, char *argv[], GenSettingMenu *menu)
+{
+ const int repeatcout = 4;
+
+ float sum = 0.0;
+ for(int i=0;i<repeatcout;i++){
+ float usr = 0.0, sys = 0.0;
+ int result = __stat_get_cpu_usage(&usr, &sys);
+ if (result != 0)
+ continue;
+ sum += usr + sys;
+ sleep(1);
+ }
+ sum /= repeatcout;
+
+ char tempstr[100];
+ snprintf(tempstr, sizeof(tempstr), "%.0f%%\n", sum);
+ resultstr= tempstr;
+
+ return MENURUN_ERR_NONE;
}
MenuItem ad_menulist[] ={
- {"name", "Name", menufunc_ad_name},
- {"mn", "Model number", menufunc_ad_mn},
- {"ver", "Tizen version", menufunc_ad_ver},
- {"cpu", "CPU", menufunc_ad_cpu},
- {"ram", "RAM", menufunc_ad_ram},
- {"res", "Resolution", menufunc_ad_res},
- {"sim1", "SIM1 Phone Number", menufunc_ad_sim1},
- {"sim2", "SIM2 Phone Number", menufunc_ad_sim2},
- {"ime1", "IME1", menufunc_ad_ime1},
- {"ime2", "IME2", menufunc_ad_ime2},
- {"bta", "Bluetooth address", menufunc_ad_bta},
- {"wfa", "Wi-Fi MAC Address", menufunc_ad_wfa},
- {"sto", "Storage", menufunc_ad_sto},
- {"batt", "Battery percentage", menufunc_ad_batt},
- {"cpuu", "CPU usage", menufunc_ad_cpuu}
+ {"name", "Name", menufunc_ad_name, nullptr, menugetstring_ad_name},
+ {"mn", "Model number", menufunc_ad_mn, nullptr, menugetstring_ad_mn},
+ {"ver", "Tizen version", menufunc_ad_ver, nullptr, menugetstring_ad_ver},
+ {"cpu", "CPU", menufunc_ad_cpu, nullptr, menugetstring_ad_cpu},
+ {"ram", "RAM", menufunc_ad_ram, nullptr, menugetstring_ad_ram},
+ {"res", "Resolution", menufunc_ad_res, nullptr, menugetstring_ad_res},
+ {"sim1", "SIM1 Phone Number", menufunc_ad_sim1, nullptr, menugetstring_ad_sim1},
+ {"sim2", "SIM2 Phone Number", menufunc_ad_sim2, nullptr, menugetstring_ad_sim2},
+ {"ime1", "IME1", menufunc_ad_ime1, nullptr, menugetstring_ad_ime1},
+ {"ime2", "IME2", menufunc_ad_ime2, nullptr, menugetstring_ad_ime2},
+ {"bta", "Bluetooth address", menufunc_ad_bta, nullptr, menugetstring_ad_bta},
+ {"wfa", "Wi-Fi MAC Address", menufunc_ad_wfa, nullptr, menugetstring_ad_wfa},
+ {"sto", "Storage", menufunc_ad_sto, nullptr, menugetstring_ad_sto},
+ {"batt", "Battery percentage", menufunc_ad_batt, nullptr, menugetstring_ad_batt},
+ {"cpuu", "CPU usage", menufunc_ad_cpuu, nullptr, menugetstring_ad_cpuu}
};
void precreate_ad(GenSettingMenu *menu)