From: Abhishek Vijay Date: Tue, 26 Nov 2019 06:46:57 +0000 (+0530) Subject: [NonACR]removed dummy plugin & updated display plugin for common plugin interface X-Git-Tag: submit/tizen/20191126.081025^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F28%2F218628%2F2;p=platform%2Fcore%2Fsystem%2Fbatterymonitor-plugins.git [NonACR]removed dummy plugin & updated display plugin for common plugin interface Change-Id: I7389ccc7bdde7daaa1d5938d36d6cc4cf4ed67b6 Signed-off-by: Abhishek Vijay --- diff --git a/CMakeLists.txt b/CMakeLists.txt index e4ba023..de11c86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,4 +2,3 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6) ADD_SUBDIRECTORY(plugin/cpu) ADD_SUBDIRECTORY(plugin/display) -#ADD_SUBDIRECTORY(plugin/dummy) diff --git a/packaging/batterymonitor-plugins.spec b/packaging/batterymonitor-plugins.spec index ad680fc..51f7686 100644 --- a/packaging/batterymonitor-plugins.spec +++ b/packaging/batterymonitor-plugins.spec @@ -36,12 +36,6 @@ Summary: Battery-Monitor display plugin %description display Display plugin for Battery-Monitor -#%package dummy -#Summary: Battery-Monitor dummy plugin - -#%description dummy -#Dummy plugin for Battery-Monitor - %prep %setup -q cp %{SOURCE1001} . @@ -73,8 +67,3 @@ mkdir -p %{buildroot}%{BATTERY_MONITOR_LIBDIR} %manifest %{name}.manifest %license LICENSE %{BATTERY_MONITOR_LIBDIR}/lib%{name}-display* - -#%files dummy -#%manifest %{name}.manifest -#%license LICENSE -#%{BATTERY_MONITOR_LIBDIR}/lib%{name}-dummy* diff --git a/plugin/display/CMakeLists.txt b/plugin/display/CMakeLists.txt index 28c9716..81faaff 100644 --- a/plugin/display/CMakeLists.txt +++ b/plugin/display/CMakeLists.txt @@ -24,6 +24,7 @@ SET(SOURCES ) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../common/include) ADD_LIBRARY(${PROJECT_NAME} SHARED ${SOURCES}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_LDFLAGS}) diff --git a/plugin/display/include/bm_plugin_interface.h b/plugin/display/include/bm_plugin_interface.h deleted file mode 100644 index 668d560..0000000 --- a/plugin/display/include/bm_plugin_interface.h +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef __BM_PLUGIN_INTERFACE_H__ -#define __BM_PLUGIN_INTERFACE_H__ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef unsigned int uint; -typedef unsigned char uchar; - -#define BM_DATA_TYPE_MAX (BM_DATA_TYPE_BATTERY + 1) -#define BM_PLUGIN_ID_MAX (BM_PLUGIN_ID_BATTERY + 1) -#define BM_DURATION_TYPE_MAX (BM_DURATION_TYPE_1WEEK + 1) - -typedef enum { - BM_PLUGIN_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */ - BM_PLUGIN_ERROR_NO_DATA = TIZEN_ERROR_NO_DATA, /**< No data */ - BM_PLUGIN_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */ - BM_PLUGIN_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */ - BM_PLUGIN_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */ - BM_PLUGIN_ERROR_SERVICE_UNAVAILABLE = TIZEN_ERROR_UNKNOWN - 1 /**< Service unavailable */ -} bm_plugin_error_e; - -/* - * enum for plugin identifier - */ -typedef enum { - BM_PLUGIN_ID_BLE=0, /**< Bluetooth Low Energy */ - BM_PLUGIN_ID_WIFI, /**< Wi-Fi */ - BM_PLUGIN_ID_CPU, /**< CPU */ - BM_PLUGIN_ID_DISPLAY, /**< Display */ - BM_PLUGIN_ID_DEVICE_NETWORK, /**< Network */ - BM_PLUGIN_ID_GPS_SENSOR, /**< GPS */ - BM_PLUGIN_ID_HRM_SENSOR, /**< Heart Rate Monitor */ - BM_PLUGIN_ID_BATTERY /**< Battery */ -} bm_plugin_id_e; - -/* - * enum for feature data collection period - */ -typedef enum { - BM_DURATION_TYPE_1DAY = 0, /**< Set the period from a day ago to now */ - BM_DURATION_TYPE_1WEEK /**< Set the period from a week ago to now */ -} bm_duration_type_e; - -/* - * enum for feature data type - */ -typedef enum { - BM_DATA_TYPE_BLE=0, /**< Bluetooth Low Energy */ - BM_DATA_TYPE_WIFI, /**< Wi-Fi */ - BM_DATA_TYPE_CPU, /**< CPU */ - BM_DATA_TYPE_DISPLAY, /**< Display */ - BM_DATA_TYPE_DEVICE_NETWORK, /**< Network */ - BM_DATA_TYPE_GPS_SENSOR, /**< GPS */ - BM_DATA_TYPE_HRM_SENSOR, /**< Heart Rate Monitor */ - BM_DATA_TYPE_BATTERY /**< Battery */ -} bm_plugin_data_type_e; - -/* - * common structure for application time map. - */ -typedef struct { - char *app_id; /**< application id */ - uint time; /**< total duration for which application as active */ -} app_time_map_st1; - -typedef struct { - char *app_id; /**< application id */ - uint time; /**< total duration for which application as active */ - uint rx; /**< Total Bytes received by the application during runtime */ - uint tx; /**< Total Bytes transmitted by the application during runtime */ -} app_time_map_st2; - -/* - * structure for "display" feature data. - */ -typedef struct { - uint high; /**< total time in milliseconds during which brightness intensity was high */ - uint low; /**< total time in milliseconds during which brightness intensity was low */ - uint med; /**< total time in milliseconds during which brightness intensity was medium */ - time_t start; /**< start time of feature data collection session */ - time_t stop; /**< stop time of feature data collection session */ - GSList *atm_list; /**< application time map('app_time_map_st1') list for all active applications between start & stop */ - GSList *display_list; /**< list of nodes of 'bm_display_st' for next consecutive sessions */ -} bm_display_st; - -/* - * structure for "cpu" feature data. - */ -typedef struct { - uint cpuTicks; /**< CPU Usage during the session */ - uint cpuTimeBackground; /**< Time spent in Background State average operating frequency will be used to calculate the power */ - uint cpuTimeForeground; /**< Time spent in Foreground state average operating frequency will be used to calculate the power */ - GSList *atm_list; /**< application time map('app_time_map_st1') list for all active applications between start & stop */ - GSList *cpu_data_list; /**< list of nodes of 'bm_cpu_st' for next consecutive sessions */ -} bm_cpu_st; - -/* - * structure for "device_network" feature data. - */ -typedef struct { - uint time_level_0; /**< Total time in milliseconds during which signal_strength was on level 0 */ - uint time_level_1; /**< Total time in milliseconds during which signal_strength was on level 1 */ - uint time_level_2; /**< Total time in milliseconds during which signal_strength was on level 2 */ - uint time_level_3; /**< Total time in milliseconds during which signal_strength was on level 3 */ - uint time_level_4; /**< Total time in milliseconds during which signal_strength was on level 4 */ - uint time_level_5; /**< Total time in milliseconds during which signal_strength was on level 5 */ - uint time_level_6; /**< Total time in milliseconds during which signal_strength was on level 6 */ - GSList *atm_list; /**< application time map('app_time_map_st2') list for all active applications between start & stop */ - GSList *dn_data_list; /**< list of nodes of 'bm_device_network_st' for next consecutive sessions */ -} bm_device_network_st; - -/* - * structure for "Wi-Fi" feature data. - */ -typedef struct { - uint time_level_0; /**< Total time in milliseconds during which rssi was on level 0 */ - uint time_level_1; /**< Total time in milliseconds during which rssi was on level 1 */ - uint time_level_2; /**< Total time in milliseconds during which rssi was on level 2 */ - uint time_level_3; /**< Total time in milliseconds during which rssi was on level 3 */ - uint time_level_4; /**< Total time in milliseconds during which rssi was on level 4 */ - time_t startTime; /**< start time of feature data collection session */ - time_t endTime; /**< end time of feature data collection session */ - uint scanTime; /**< Total time spent by the resource in (scan) mode during the session */ - GSList *atm_list; /**< application time map('app_time_map_st2') list for all active applications between start & stop */ - GSList *wifi_data_list; /**< list of nodes of 'bm_wifi_st' for next consecutive sessions */ -} bm_wifi_st; - -/* - * structure for "bluetooth" feature data. - */ -typedef struct { - uint scanTime; /**< Total time spent by the resource in (scan) mode during the session */ - uint connectedTime; /**< Total time spent by the resource in (connected) mode during the session */ - time_t startTime; /**< start time of feature data collection session */ - time_t stopTime; /**< stop time of feature data collection session */ - GSList *atm_list; /**< application time map('app_time_map_st2') list for all active applications between start & stop */ - GSList *bt_data_list; /**< list of nodes of 'bm_bluetooth_st' for next consecutive sessions */ -} bm_bluetooth_st; - -/* - * structure for "gps" feature data. - */ -typedef struct { - time_t connStartTime; /**< start time of feature data collection session */ - time_t connStopTime; /**< stop time of feature data collection session */ - GSList *atm_list; /**< application time map('app_time_map_st1') list for all active applications between start & stop */ - GSList *gps_data_list; /**< list of nodes of 'bm_gps_st' for next consecutive sessions */ -} bm_gps_st; - -/* - * structure for "hrm-sensor" feature data. - */ -typedef struct { - uint sensor_hub_wakeup_time; /**< wake-up time of sensor-hub */ - uint sensor_hub_wakeup_count; /**< wake-up count of sensor-hub */ - uint sensor_wakeup_time; /**< sensor wake-up time */ - uint sensor_wakeup_count; /**< sensor wake-up count */ - GSList *atm_list; /**< application time map('app_time_map_st1') list for all active applications between start & stop */ - GSList *hrm_data_list; /**< list of nodes of 'bm_hrm_sensor_st' for next consecutive sessions */ -} bm_hrm_sensor_st; - -/* - * structure for "battery" feature data. - */ -typedef struct { - uint battery_percent; /**< Battery percent */ - uint is_charging; /**< State of charging */ -} bm_battery_st; - -/* ========================================================================== */ - -/* - * battery-monitor data handle - */ -typedef void *bm_data_h; - -/* - * Callback to be invoked when service is going OFF - * - * [Param] handle - handle through which service will provide data - * to battery-monitor service daemon. - * - * [Param] result - the result of callback operation - */ -typedef void (*bm_data_callback)(bm_plugin_error_e result, bm_data_h *handle); - -/* - * battery-monitor callback structure - */ -typedef struct { - bm_data_callback provide_feature_data; -} bm_callbacks_st; - -/* - * structure for plugin API's - */ -typedef struct { - /* - * [Sync API] To initialize plugin - */ - int (*init)(const bm_callbacks_st *callbacks); - /* - * [Sync API] To deinitialize plugin - */ - int (*deinit)(void); - /* - * [Sync API] To get feature data from plugin - * - * [Param] handle - battery-monitor data handle through which plugin - * will provide data to the manager. This handle will be passed - * as reference, plugin will assign a valid object which will be - * set free by the manager; battery-monitor manager will typecast - * the object provided through handle for each plugin and will use - * it for further calculation. - * - * [Param] data_type - type of data like - BLE, WiFi, CPU etc. - */ - int (*get_feature_data)(bm_data_h *handle, bm_plugin_data_type_e data_type); -} bm_api_st; - -/* - * structure for plugin information - */ -typedef struct { - /* - * Respective "identifier" of Plugin - */ - int id; - /* - * Respective "name" of Plugin - */ - const char *name; - /* - * Respective "author" of Plugin - */ - const char *author; - /* - * Respective "version" of Plugin - */ - const char *version; - /* - * Plugin init function - */ - int (*init)(bm_api_st **api); - /* - * Plugin de-init function - */ - int (*deinit)(void); -} bm_plugin_st; - - -/* - * macro for adding plugin - */ -#define BM_PLUGIN_ADD(id, name, author, version, init, deinit) \ - __attribute__ ((visibility("default"))) bm_plugin_st bm_plugin = { id, name, author, version, init, deinit }; - - -#ifdef __cplusplus -} -#endif - -#endif /* __BM_PLUGIN_INTERFACE_H__ */ diff --git a/plugin/dummy/CMakeLists.txt b/plugin/dummy/CMakeLists.txt deleted file mode 100644 index 0bfa1e6..0000000 --- a/plugin/dummy/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT("batterymonitor-plugins-dummy" C) - -SET(CMAKE_INSTALL_PREFIX /usr) -SET(PREFIX ${CMAKE_INSTALL_PREFIX}) - -SET(PKG_MODULES - aul - dlog - glib-2.0 -) -INCLUDE(FindPkgConfig) -pkg_check_modules(${PROJECT_NAME} REQUIRED ${PKG_MODULES}) - -FOREACH(flag ${${PROJECT_NAME}_CFLAGS}) - SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") -ENDFOREACH(flag) - -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror -fvisibility=hidden") -SET(CMAKE_C_FLAGS_DEBUG "-O0 -g") - -SET(SOURCES - src/bm_dummy_plugin.c -) - -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include) -INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../common/include) - -ADD_LIBRARY(${PROJECT_NAME} SHARED ${SOURCES}) -TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_LDFLAGS}) -SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES - VERSION ${FULLVER} SOVERSION ${MAJORVER} CLEAN_DIRECT_OUTPUT 1) - -INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${BATTERY_MONITOR_LIBDIR}) diff --git a/plugin/dummy/include/bm_dummy_plugin.h b/plugin/dummy/include/bm_dummy_plugin.h deleted file mode 100644 index 1a5f6e2..0000000 --- a/plugin/dummy/include/bm_dummy_plugin.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License") - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef __BM_DUMMY_PLUGIN_H__ -#define __BM_DUMMY_PLUGIN_H__ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * battery-monitor data handle - */ -typedef void *bm_display_data_h; - -#ifdef ENABLE /* these structures are defined in common plugin interface */ -/* - * alias for long data types - */ -typedef unsigned int uint; -typedef unsigned char uchar; - -/* - * structure for application time map. - */ -typedef struct { - char *app_id; /* application id */ - uint time; /* total duration for which application as active */ -} app_time_map_st1; - -/* - * structure for "display" feature data. - */ -typedef struct { - uint high; /* time in milliseconds during which brightness intensity was high */ - uint low; /* time in milliseconds during which brightness intensity was low */ - uint med; /* time in milliseconds during which brightness intensity was medium */ - time_t start; /* start time of feature data collection session */ - time_t stop; /* stop time of feature data collection session */ - GSList *atm_list; /* application time map('app_time_map_st') list for all active applications between start & stop */ - GSList *display_list; /* list of nodes of 'bm_display_st' for next consecutive sessions */ -} bm_display_st; -#endif /* end ENABLE */ - -#ifdef __cplusplus -} -#endif - -#endif /* __BM_DUMMY_PLUGIN_H__ */ - - diff --git a/plugin/dummy/include/bm_dummy_util.h b/plugin/dummy/include/bm_dummy_util.h deleted file mode 100644 index 136006b..0000000 --- a/plugin/dummy/include/bm_dummy_util.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License") - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef __BM_DUMMY_UTIL_H__ -#define __BM_DUMMY_UTIL_H__ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define NAME "dummy_plugin" -#define AUTHOR "SAMSUNG" -#define VERSION "0.1" - -#define BUFFER_SZ 200 - -#define STATUS_SUCCESS 1 -#define STATUS_FAILURE 0 - - -#define BMP_RETURN_VAL(eval, expr, ret_val, X) \ - if (!(eval)) { \ - expr; \ - return ret_val; \ - } else {} - -#define BMP_SNPRINTF(dest, size, format, arg...) \ - do { \ - snprintf(dest, size-1, format, ##arg); \ - } while (0) - -#define BMP_MEMSET(dest, value, size) \ - do { \ - memset(dest, value, size); \ - } while (0) - -#define BMP_CATCH_ERROR(eval, expr, error_val, X) \ - if (!(eval)) { \ - expr; \ - error_code = (error_val); \ - goto CATCH; \ - } else {} - -#define BMP_CATCH_ERROR_P(eval, expr, error_val, X) \ - if (!(eval)) { \ - expr; \ - *error_code = (error_val); \ - goto CATCH; \ - } else { } - -#define BMP_FREE(ptr)ptr \ - if (ptr != NULL) { \ - free(ptr); \ - ptr = NULL; \ - } \ - -#define BMP_GFREE(ptr)ptr \ - if (ptr != NULL) { \ - g_free(ptr); \ - ptr = NULL; \ - } \ - -#ifdef __cplusplus -} -#endif - -#endif /* __BM_DUMMY_UTIL_H__ */ - - diff --git a/plugin/dummy/include/bm_log.h b/plugin/dummy/include/bm_log.h deleted file mode 100644 index c497fa7..0000000 --- a/plugin/dummy/include/bm_log.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2019 Samsung Electronics Co., Ltd. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License") - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#ifndef __BM_LOG_H__ -#define __BM_LOG_H__ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef LOG_TAG -#undef LOG_TAG -#endif -#define LOG_TAG "BM_DUMMY" - -#ifndef _BME -#define _E(fmt, args...) LOGE("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) -#endif - -#ifndef _BMD -#define _D(fmt, args...) LOGD("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) -#endif - -#ifndef _BMI -#define _I(fmt, args...) LOGI("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) -#endif - -#ifndef _BMW -#define _W(fmt, args...) LOGW("[%s:%d] "fmt"\n", __func__, __LINE__, ##args) -#endif - -#define ENTER dlog_print(DLOG_DEBUG, LOG_TAG, "%s : %s(%d) >>>>>>>> called", rindex(__FILE__, '/') + 1, __func__, __LINE__) -#define EXIT dlog_print(DLOG_DEBUG, LOG_TAG, "%s : %s(%d) <<<<<<<< ended", rindex(__FILE__, '/') + 1, __func__, __LINE__) - - -#ifdef __cplusplus -} -#endif - -#endif /* __BM_LOG_H__ */ - - diff --git a/plugin/dummy/src/bm_dummy_plugin.c b/plugin/dummy/src/bm_dummy_plugin.c deleted file mode 100644 index 8d62cfc..0000000 --- a/plugin/dummy/src/bm_dummy_plugin.c +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include -#include -#include -#include - -#include "bm_dummy_plugin.h" -#include "bm_dummy_util.h" -#include "bm_log.h" - -#ifdef FOR_ON_DEMAND_SERVICES -const bm_callbacks_st *cb; -#endif - -/* - * To get AppID from PID - Needs to be handled by the respective framework owners: - * The PID might become outdated by the time data is read, which will create problems in mapping the application. - * Sample API's and fucntion is provided below to get app-id based on available pid. - * char *strAppId = NULL; - * pid_t nProcessId = getpid(); - * app_manager_get_app_id(nProcessId, &strAppId); - */ -static char* get_current_appid(int pid, uid_t uid) -{ - ENTER; - _I("getting caller appid with pid=[%d], uid=[%d]", pid, uid); - - int ret = 0; - char appid[128] = {0, }; - char *appid_ret = NULL; - - ret = aul_app_get_appid_bypid_for_uid(pid, appid, sizeof(appid), uid); - - if (ret < 0) - _E("fail to get current appid ret=[%d], appid=%s\n", ret, appid); - - appid_ret = strdup(appid); - if (appid_ret == NULL) - _E("Memory Allocation Failed"); - - EXIT; - return appid_ret; -} - - -static int get_record_count() -{ - ENTER; - -/* implementation for getting record count from db-storage/buffer */ - - EXIT; - return 0; -} - -static int get_app_count() -{ - ENTER; - -/* implementation for getting application count from db-storage/buffer */ - - EXIT; - return 0; -} - -#ifdef FOR_ON_DEMAND_SERVICES -static int on_service_closing() -{ - ENTER; - - /* create data handle */ - bm_display_st *data_h = calloc(1, sizeof(bm_display_st)); - if (data_h == NULL) { - _E("memory allocation failed"); - return -1; - } - - // populate data node here with data & the call the function - provide_feature_data() - // this function's handler is implemented at battery-monitor server. - - if (cb != NULL && cb->provide_feature_data) - cb->provide_feature_data(BM_PLUGIN_ERROR_NONE, (void *)data_h); - - // the memory provided to 'data_h' will be set free by server. - - EXIT; - return 0; -} -#endif /* FOR_ON_DEMAND_SERVICES end */ - -int init(const bm_callbacks_st *callbacks) -{ - ENTER; - - if (!callbacks) { - _E("invalid input param"); - return -1; - } - -/* Initialize the necessary paramters and callbacks if required */ - -#ifdef FOR_ON_DEMAND_SERVICES -/* handle callbacks */ - cb = callbacks; -#endif - - EXIT; - return STATUS_SUCCESS; -} - -int deinit() -{ - ENTER; - -/* De-initialize callbacks & parameters */ - - EXIT; - return STATUS_SUCCESS; -} - -int get_feature_data(bm_data_h *handle, bm_plugin_data_type_e type) -{ - ENTER; - -/*################################################# SAMPLE APPROACH #####################################################################*/ -#if 0 ->-----Fill in the details of the resource into the handle - - There are two list: - 1) Comprising of the resource usage parameters between a certain start/stop time pair. - 2) Comprising of the application using that resource along with the usage time, nested under the (1) list. - - Populating the structures by making the linked list of the below common structures - - FOR EXAMPLE: - Structure for "display" feature data. - - typedef struct { - uint high; /* Total time in milliseconds during which brightness intensity was high */ - uint low; /* Total time in milliseconds during which brightness intensity was low */ - uint med; /* Total time in milliseconds during which brightness intensity was medium */ - time_t start; /* Start time of feature data collection session */ - time_t stop; /* Stop time of feature data collection session */ - GSList *atm_list; /* Application time map('app_time_map_st1') list for all active applications between start & stop */ - GSList *display_list; /* List of nodes of 'bm_display_st' for next consecutive sessions */ - } bm_display_st; - - - Common structures for application time map. - - typedef struct { - char *app_id; /* Application Id */ - uint time; /* Total duration for which application as active */ - } app_time_map_st1; -#endif - - int uid = 0; - char *app_id = get_current_appid(getpid(), uid); - if (!app_id) { - _E("failed to get app_id\n"); - return 0; - } - - _I("current app_id = %s\n", app_id); - - GSList *display_list = NULL; - bm_display_st *display_record = NULL; - app_time_map_st1 *app_record = NULL; - - /* Number of record entries for the resource */ - int rec_count = get_record_count(); - - for(int i=0; iatm_list; - - /* Number of apps in the "atm_list" */ - int app_count = get_app_count(); - - for(int j=0; j