From ae38eaa6be67da01a9b56924324adfbb1a58e8b8 Mon Sep 17 00:00:00 2001 From: Junghoon Park Date: Fri, 5 Aug 2016 11:23:11 +0900 Subject: [PATCH 1/1] Add abstract app core APIs Change-Id: I5ad5e5c9717002e3d91cbaf638bad7a910817c6d Signed-off-by: Junghoon Park --- CMakeLists.txt | 9 +- include/SLP_Appcore_PG.h | 557 ------------------- include/appcore-internal.h | 5 - include/appcore_base.h | 94 ++++ include/appcore_ui_base.h | 72 +++ include/image/SLP_Appcore_PG_events.png | Bin 98265 -> 0 bytes include/image/SLP_Appcore_PG_lifecycle.png | Bin 32877 -> 0 bytes include/image/SLP_Appcore_PG_overview.png | Bin 70991 -> 0 bytes include/image/SLP_Appcore_PG_rotation.png | Bin 42198 -> 0 bytes packaging/app-core.changes | 3 - packaging/app-core.spec | 4 +- src/appcore-noti.c | 181 ------- src/base/appcore_base.c | 746 ++++++++++++++++++++++++++ src/base/appcore_base_private.h | 86 +++ src/ui_base/appcore_ui_base.c | 833 +++++++++++++++++++++++++++++ src/ui_base/appcore_ui_base_private.h | 53 ++ 16 files changed, 1891 insertions(+), 752 deletions(-) delete mode 100644 include/SLP_Appcore_PG.h create mode 100644 include/appcore_base.h create mode 100644 include/appcore_ui_base.h delete mode 100644 include/image/SLP_Appcore_PG_events.png delete mode 100644 include/image/SLP_Appcore_PG_lifecycle.png delete mode 100644 include/image/SLP_Appcore_PG_overview.png delete mode 100644 include/image/SLP_Appcore_PG_rotation.png delete mode 100644 packaging/app-core.changes delete mode 100644 src/appcore-noti.c create mode 100644 src/base/appcore_base.c create mode 100644 src/base/appcore_base_private.h create mode 100644 src/ui_base/appcore_ui_base.c create mode 100644 src/ui_base/appcore_ui_base_private.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ec39fe..01e2963 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,10 +23,10 @@ SET(CMAKE_SKIP_BUILD_RPATH TRUE) # Build appcore-common Library # ------------------------------ SET(APPCORE_COMMON "appcore-common") -SET(SRCS_common src/appcore.c src/appcore-i18n.c src/appcore-measure.c src/appcore-rotation.c) +SET(SRCS_common src/appcore.c src/appcore-i18n.c src/appcore-measure.c src/appcore-rotation.c src/base/appcore_base.c) -SET(HEADERS_common appcore-common.h) +SET(HEADERS_common appcore-common.h appcore_base.h) INCLUDE(FindPkgConfig) SET(APPCORE_PKG_CHECK_MODULES "gio-2.0 vconf sensor aul dlog ecore capi-system-info") @@ -51,14 +51,13 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${APPCORE_COMMON}.pc DESTINATION ${LIB FOREACH(hfile ${HEADERS_common}) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/${hfile} DESTINATION include/appcore) ENDFOREACH(hfile) -INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/SLP_Appcore_PG.h DESTINATION include) ################################################################# # Build appcore-efl Library # ------------------------------ SET(APPCORE_EFL "appcore-efl") -SET(SRCS_efl src/appcore-efl.c src/appcore-group.c) -SET(HEADERS_efl appcore-efl.h) +SET(SRCS_efl src/appcore-efl.c src/appcore-group.c src/ui_base/appcore_ui_base.c) +SET(HEADERS_efl appcore-efl.h appcore_ui_base.h) INCLUDE(FindPkgConfig) SET(APPCORE_PKG_CHECK_MODULES2 "elementary dlog ecore gobject-2.0 glib-2.0 aul pkgmgr-info ttrace capi-system-info") diff --git a/include/SLP_Appcore_PG.h b/include/SLP_Appcore_PG.h deleted file mode 100644 index df4823a..0000000 --- a/include/SLP_Appcore_PG.h +++ /dev/null @@ -1,557 +0,0 @@ -/* - * app-core - * - * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: Jayoun Lee , Sewook Park , Jaeho Lee - * - * 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. - * - */ - - -/** - @ingroup SLP_PG - @defgroup SLP_PG_APPCORE Application Model and Appcore - @{ - -

Introduction

- -

Purpose of this document

- This document demonstrates the basic steps needed to develop application(EFL or GTK) using appcore module in the SLP(Samsung Linux Platform). The document provides a brief introduction to the appcore architecture and explains application life-cycle of appcore. Programmers should develop their applications(EFL or GTK) based on the appcore module. The sample applications can be studied and can be used to develop other applications. - -

Features

-- Support EFL and GTK(including STK) application's basic function -- Support internalization -- Support rotation function -- Support power state function - - - -

Components of Appcore

-@image html SLP_Appcore_PG_overview.png - -- Appcore EFL(libappcore-efl.so) - - It provides appcore_efl_main() which includes elm_init(), elm_run(), and other initializations for EFL application - - Refer to appcore-efl.h -- Appcore common(libappcore-common.so) - - It provides useful rotation function to control sensor’s rotation operation in application - - It provides useful function to process internalization based on GNU gettext - - It provides useful function to control power-state in application - - Refer to appcore-common.h -- Libraries used by Appcore - - EFL and GTK(STK) is a graphic widget library - - Sensor for supporting rotation - - AUL for application's life-cycle - - RUA for task manager - - Vconf for system events (such as low battery, low memory). -@} - @defgroup SLP_PG_APPCORE1 1.Application's life-cycle - @ingroup SLP_PG_APPCORE - @{ - -

Application's life-cycle

-Appcore provides basic life-cycle like the following to manage application in SLP - - - - - -
@image html SLP_Appcore_PG_lifecycle.png - - - - - - - - - - - - - - - - - - - - - - - - - -
OperationDescription
CREATECalled once before the main loop. Initialize the application such as window creation, data structure allocation, and etc.
RESETCalled at the first idler and every "relaunch" message. Reset the application states and data structures.
PAUSECalled when the entire window in this application are invisible. Recommend to suspend the actions related to the visibility.
RESUMECalled when one of the windows in this application is visible. Resume the paused actions.
TERMINATECalled once after the main loop. Release the resources.
-
-Call the main function (appcore_efl_main() with struct appcore_ops filled with the proper function pointers. The functions are called by Appcore at the proper situation. -@code -struct appcore_ops { - void *data; // Callback data - int (*create)(void *); // Called before main loop - int (*terminate)(void *); // Called after main loop - int (*pause)(void *); // Called when every window goes back - int (*resume)(void *); // Called when any window comes on top - int (*reset)(bundle *, void *); // Called at the first idler and every relaunching -}; -@endcode - -@} - @defgroup SLP_PG_APPCORE2 2.Appcore event handling - @ingroup SLP_PG_APPCORE - @{ - -

Appcore event handling

-An Application should perform an action when a system change occurs, such as the battery level goes low. Appcore provides APIs to handle the system changes notified by other frameworks and managers. The following figure shows the relationship between events and callback functions. - -@image html SLP_Appcore_PG_events.png - -Appcore provides appcore_set_event_callback() to handle events from the system. If you set the callback function, it will be called when the event received. Otherwise, Appcore does default behavior which is defined as following. - - - - - - - - - - - - - - - - - - - - - -
EventDescriptionDefault behavior
APPCORE_EVENT_LOW_MEMORYA system memory goes lowcall malloc_trim() to enforce giving back the freed memory
APPCORE_EVENT_LOW_BATTERYA system is out of batteryQuit the main loop
APPCORE_EVENT_LANG_CHANGEA system's language setting is changedReset the environment variable "LANG". This has influence on the function related to internationalization
- - -@} - @defgroup SLP_PG_APPCORE3 3.Internationalization - @ingroup SLP_PG_APPCORE - @{ - -

Internationalization

-SLP platform uses GNU gettext for Internationalization. -The process of using gettext is as follows: --# Marking any phrases to be translated using gettext(“phrase”) or gettext_noop(“phrase”) --# Generating a po file by extracting marked phrases using a xgettext command. --# Modifying the po file and entering a translated phrase for the corresponding phrase. --# Compiling a po file into a mo file using a msgfmt command. --# Installing mo files into proper locale directories. --# gettext() returns a properly translated phrase while an application is running. - -For example, we have the following source code -@code -printf(“%s\n”, gettext(“Hello”)); -@endcode - -Then, as you can see, we can have the following po file using xgettext, -@code -#: hello.c:41 -msgid "Hello" -msgstr "" -@endcode - -And we can enter a translated phrase as the following, -@code -#: hello.c:41 -msgid "Hello" -msgstr "안녕하세요" // Hello in Korean -@endcode - -Finally we generate and install a mo file. In doing so, an application will print out "안녕하세요" instead of "Hello", if the applied language is Korean. - -appcore_set_i18n() has been introduced to achieve an internationalization which requires information on a mo file's name and its installed directory. -@code -int appcore_set_i18n(const char *domainname, const char *dirname) -@endcode - -The first parameter, domainname, a mo file’s name and the second one, dirname, is the directory.
-In general, a mo file will be installed in the following fashion, dirname/locale/category/domainname.mo. locale is a locale’s name, such as ‘ko’ and ‘ja’, and category is LC_MESSAGES. For instance, a mo file has been installed in /usr/share/locale/ko/LC_MESSAGES/example.mo, and then dirname becomes /usr/share/locale.
-Typically, mo files will be installed in ${prefix}/share/locale. - -Generally the following macros are defined for easy to use gettext() -@code -#define _(str) gettext(str) -#define gettext_noop(str) (str) -#define N_(str) gettext_noop(str) -@endcode - -N_() macro only extracts any marked phrases using xgettext command, it will not do anything in the action. This macro is used to handle an array of phrases. Since gettext() cannot be called in declaration of an array, we let N_() macro extract phrases and then call gettext(). Let’s look at the following example. - -@code -static const char *messages[] = { - N_(“Hello”), - N_(“World”) -}; -… -printf(“Message: %s\n”, _(messages[0]); -… -@endcode - -In doing so, we now can handle phrases in an array as same as we do for the following. - -@code -printf(“Message: %s\n”, _(“Hello”); -@endcode - -For more details, refer to GNU gettext manual (http://www.gnu.org/software/gettext/manual/gettext.html) - -@} - @defgroup SLP_PG_APPCORE4 4.Rotation - @ingroup SLP_PG_APPCORE - @{ - -

Rotation

-An Application can display its UI in either landscape or portrait mode. The application registers to receive rotation events from the system with the appcore_set_rotation_cb() API. The system automatically calls the registered user's callback whenever the sensor framework detects that the current rotation status has changed. This continues until appcore_unset_rotation_cb() is called. - -@code -enum appcore_rm { - APPCORE_RM_UNKNOWN, - APPCORE_RM_PORTRAIT_NORMAL , // Portrait mode - APPCORE_RM_PORTRAIT_REVERSE , // Portrait upside down mode - APPCORE_RM_LANDSCAPE_NORMAL , // Left handed landscape mode - APPCORE_RM_LANDSCAPE_REVERSE , // Right handed landscape mode -}; - -int appcore_set_rotation_cb(int (*cb)(enum appcore_rm, void *), void *data); -int appcore_unset_rotation_cb(void); -int appcore_get_rotation_state(enum appcore_rm *curr); -@endcode - -enum appcore_rm has portrait, portrait upside down, left handed landscape, and right handed landscape mode. The following is an each mode. -@image html SLP_Appcore_PG_rotation.png - -When the registered callback is called, it receives the current mode state as the first argument. According to the received mode state, the application should rotate the window, resize window to changed screen size and composite the screen. - -@} - @defgroup SLP_PG_APPCORE5 5.Using code template - @ingroup SLP_PG_APPCORE - @{ - -

Using code template

-We provide a code template for reference and convenience. You can generate a code template using the script "app-gen.sh" which is included in the app-template package. - -The usage as follow: -@code -# app-gen.sh -Usage) app-gen.sh dest app_name [EFL|GTK] - app_name does not support _ string because of debian usage." - -ex) - EFL application: - # app-gen.sh ~/efl_app MyApp - - GTK application: - # app-gen.sh /home/app/gtk_app TestApp GTK - -@endcode - -Let's make a simple application using template --# Install app-template package -@code -# apt-get install app-template -@endcode --# Generate a code template -@code -# app-gen.sh ~/apps/simple simple EFL -@endcode --# Build a package -@code -# cd ~/apps/simple -# dpkg-buildpackage -sa -rfakeroot -@endcode -@} - @defgroup SLP_PG_APPCORE6 6.Example: EFL Apps - @ingroup SLP_PG_APPCORE - @{ - -

Example: EFL application

- -Header example -@code -12 #ifndef __APP_COMMON_H__ -13 #define __APP_COMMON_H__ -14 -15 #include -16 -17 #if !defined(PACKAGE) -18 # define PACKAGE "example" // for appcore_set_i18n() -19 #endif -20 -21 #if !defined(LOCALEDIR) -22 # define LOCALEDIR "/opt/apps/com.slp.example/share/locale" // for appcore_set_i18n() -23 #endif -24 -25 #if !defined(EDJDIR) -26 # define EDJDIR "/opt/apps/com.slp.example/share/edje" -27 #endif -28 -29 #define EDJ_FILE EDJDIR "/" PACKAGE ".edj" -30 #define GRP_MAIN "main" -31 -32 struct appdata -33 { -34 Evas_Object *win; -35 Evas_Object *ly_main; -36 -37 // add more variables here -38 }; -39 -40 #endif // __APP_COMMON_H__ -@endcode - -Source example -@code -12 #include -13 #include -14 #include -15 -16 #include "example.h" -17 -18 struct text_part { // this for internationalization -19 char *part; -20 char *msgid; -21 }; -22 -23 static struct text_part main_txt[] = { -24 { "txt_title", N_("Application template"), }, -25 { "txt_mesg", N_("Click to exit"), }, // N_() is do nothing. Only for extracting the string -26 }; -27 -28 -29 static void win_del(void *data, Evas_Object *obj, void *event) -30 { -31 elm_exit(); -32 } -33 -34 static void main_quit_cb(void *data, Evas_Object *obj, -35 const char *emission, const char *source) -36 { -37 elm_exit(); -38 } -39 -40 static void update_ts(Evas_Object *eo, struct text_part *tp, int size) -41 { -42 int i; -43 -44 if (eo == NULL || tp == NULL || size < 0) -45 return; -46 -47 for (i = 0; i < size; i++) { -48 if (tp[i].part && tp[i].msgid) -49 edje_object_part_text_set(eo, -50 tp[i].part, _(tp[i].msgid)); // _() return translated string -51 } -52 } -53 -54 static int lang_changed(void *data) // language changed callback -55 { -56 struct appdata *ad = data; -57 -58 if (ad->ly_main == NULL) -59 return 0; -60 -61 update_ts(elm_layout_edje_get(ad->ly_main), main_txt, -62 sizeof(main_txt)/sizeof(main_txt[0])); -63 -64 return 0; -65 } -66 -67 static int rotate(enum appcore_rm m, void *data) // rotation callback -68 { -69 struct appdata *ad = data; -70 int r; -71 -72 if (ad == NULL || ad->win == NULL) -73 return 0; -74 -75 switch(m) { -76 case APPCORE_RM_PORTRAIT_NORMAL: -77 r = 0; -78 break; -79 case APPCORE_RM_PORTRAIT_REVERSE: -80 r = 180; -81 break; -82 case APPCORE_RM_LANDSCAPE_NORMAL: -83 r = 270; -84 break; -85 case APPCORE_RM_LANDSCAPE_REVERSE: -86 r = 90; -87 break; -88 default: -89 r = -1; -90 break; -91 } -92 -93 if (r >= 0) // Using this API, you can implement the rotation mode easily -94 elm_win_rotation_with_resize_set(ad->win, r); -95 -96 return 0; -97 } -98 -99 static Evas_Object* create_win(const char *name) -100 { -101 Evas_Object *eo; -102 int w, h; -103 -104 eo = elm_win_add(NULL, name, ELM_WIN_BASIC); -105 if (eo) { -106 elm_win_title_set(eo, name); -107 elm_win_borderless_set(eo, EINA_TRUE); -108 evas_object_smart_callback_add(eo, "delete,request", -109 win_del, NULL); -110 ecore_x_window_size_get(ecore_x_window_root_first_get(), // get root window(screen) size -111 &w, &h); -112 evas_object_resize(eo, w, h); -113 } -114 -115 return eo; -116 } -117 -118 static Evas_Object* load_edj(Evas_Object *parent, const char *file, -119 const char *group) -120 { -121 Evas_Object *eo; -122 int r; -123 -124 eo = elm_layout_add(parent); -125 if (eo) { -126 r = elm_layout_file_set(eo, file, group); -127 if (!r) { -128 evas_object_del(eo); -129 return NULL; -130 } -131 -132 evas_object_size_hint_weight_set(eo, -133 EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); -134 } -135 -136 return eo; -137 } -138 -139 static int app_create(void *data) -140 { -141 struct appdata *ad = data; -142 Evas_Object *win; -143 Evas_Object *ly; -144 int r; -145 -146 // create window -147 win = create_win(PACKAGE); -148 if (win == NULL) -149 return -1; -150 ad->win = win; -151 -152 // load edje -153 ly = load_edj(win, EDJ_FILE, GRP_MAIN); -154 if (ly == NULL) -155 return -1; -156 elm_win_resize_object_add(win, ly); // This can make the EDJE object fitted in window size -157 edje_object_signal_callback_add(elm_layout_edje_get(ly), -158 "EXIT", "*", main_quit_cb, NULL); -159 ad->ly_main = ly; -160 evas_object_show(ly); -161 -166 lang_changed(ad); // call the language changed callback to update strings -167 -168 evas_object_show(win); -169 -170 // add system event callback -171 appcore_set_event_callback(APPCORE_EVENT_LANG_CHANGE, -172 lang_changed, ad); -173 -174 appcore_set_rotation_cb(rotate, ad); // set rotation callback -175 -176 // appcore measure time example -177 printf("from AUL to %s(): %d msec\n", __func__, -178 appcore_measure_time_from("APP_START_TIME")); -179 -180 appcore_measure_start(); -181 return 0; -182 } -183 -184 static int app_terminate(void *data) // terminate callback -185 { -186 struct appdata *ad = data; -187 -188 if (ad->ly_main) -189 evas_object_del(ad->ly_main); -190 -191 if (ad->win) -192 evas_object_del(ad->win); -193 -194 return 0; -195 } -196 -197 static int app_pause(void *data) // pause callback -198 { -199 struct appdata *ad = data; -200 -201 return 0; -202 } -203 -204 static int app_resume(void *data) // resume callback -205 { -206 struct appdata *ad = data; -207 -208 return 0; -209 } -210 -211 static int app_reset(bundle *b, void *data) // reset callback -212 { -213 struct appdata *ad = data; -214 -215 // appcore measure time example -216 printf("from AUL to %s(): %d msec\n", __func__, -217 appcore_measure_time_from("APP_START_TIME")); -218 printf("from create to %s(): %d msec\n", __func__, -219 appcore_measure_time()); -220 -221 if (ad->win) -222 elm_win_activate(ad->win); // You should make one of the window on top -223 -224 return 0; -225 } -226 -227 int main(int argc, char *argv[]) -228 { -229 struct appdata ad; -230 struct appcore_ops ops = { // fill the appcore_ops with callback functions -231 .create = app_create, -232 .terminate = app_terminate, -233 .pause = app_pause, -234 .resume = app_resume, -235 .reset = app_reset, -236 }; -237 -238 // appcore measure time example -239 printf("from AUL to %s(): %d msec\n", __func__, -240 appcore_measure_time_from("APP_START_TIME")); -241 -242 memset(&ad, 0x0, sizeof(struct appdata)); -243 ops.data = &ad; -244 -245 return appcore_efl_main(PACKAGE, &argc, &argv, &ops); // start mainloop -246 } -@endcode - - @} -**/ diff --git a/include/appcore-internal.h b/include/appcore-internal.h index ff6ced3..4253acb 100644 --- a/include/appcore-internal.h +++ b/include/appcore-internal.h @@ -161,11 +161,6 @@ extern void update_lang(void); extern int set_i18n(const char *domainname, const char *dirname); void update_region(void); - -/* appcore-X.c */ -extern int x_raise_win(pid_t pid); -extern int x_pause_win(pid_t pid); - /* appcore-util.c */ /* extern void stack_trim(void);*/ diff --git a/include/appcore_base.h b/include/appcore_base.h new file mode 100644 index 0000000..bd8b758 --- /dev/null +++ b/include/appcore_base.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2016 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. + */ + +#pragma once + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum appcore_base_rm { + APPCORE_BASE_RM_UNKNOWN, + APPCORE_BASE_RM_PORTRAIT_NORMAL, + APPCORE_BASE_RM_PORTRAIT_REVERSE, + APPCORE_BASE_RM_LANDSCAPE_NORMAL, + APPCORE_BASE_RM_LANDSCAPE_REVERSE, +}; + +enum appcore_base_event { + APPCORE_BASE_EVENT_START, + APPCORE_BASE_EVENT_LOW_MEMORY, + APPCORE_BASE_EVENT_LOW_BATTERY, + APPCORE_BASE_EVENT_LANG_CHANGE, + APPCORE_BASE_EVENT_DEVICE_ORIENTATION_CHANGED, + APPCORE_BASE_EVENT_REGION_CHANGE, + APPCORE_BASE_EVENT_SUSPENDED_STATE_CHANGE, + APPCORE_BASE_EVENT_UPDATE_REQUESTED, + APPCORE_BASE_EVENT_MAX, +}; + +enum appcore_base_suspended_state { + APPCORE_BASE_SUSPENDED_STATE_WILL_ENTER_SUSPEND = 0, + APPCORE_BASE_SUSPENDED_STATE_DID_EXIT_FROM_SUSPEND +}; + + +typedef int (*appcore_base_event_cb)(void *event, void *data); +typedef void *appcore_base_event_h; + +typedef struct _appcore_base_ops { + int (*create) (void *data); + int (*terminate) (void *data); + int (*control) (bundle *b, void *data); + int (*receive)(aul_type type, bundle *b, void *data); + int (*set_i18n)(void *data); + void (*run)(void *data); + void (*exit)(void *data); + void (*set_event)(enum appcore_base_event event, void *data); + void (*unset_event)(enum appcore_base_event event, void *data); +} appcore_base_ops; + +int appcore_base_on_receive(aul_type type, bundle *b); +int appcore_base_on_create(void); +int appcore_base_on_control(bundle *b); +int appcore_base_on_terminate(void); +int appcore_base_on_set_i18n(void); +void appcore_base_on_set_event(enum appcore_base_event event); +void appcore_base_on_unset_event(enum appcore_base_event event); +int appcore_base_init(appcore_base_ops ops, int argc, char **argv, void *data); +void appcore_base_fini(void); +appcore_base_ops appcore_base_get_default_ops(void); +appcore_base_event_h appcore_base_add_event(enum appcore_base_event event, + appcore_base_event_cb cb, void *data); +int appcore_base_remove_event(appcore_base_event_h handle); +int appcore_base_raise_event(void *event, enum appcore_base_event type); +int appcore_base_flush_memory(void); +int appcore_base_get_rotation_state(enum appcore_base_rm *curr); +bool appcore_base_is_bg_allowed(void); +bool appcore_base_is_suspended(void); +void appcore_base_toggle_suspended_state(void); + + +#ifdef __cplusplus +} +#endif + + diff --git a/include/appcore_ui_base.h b/include/appcore_ui_base.h new file mode 100644 index 0000000..dc9d615 --- /dev/null +++ b/include/appcore_ui_base.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2016 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. + */ + +#pragma once + +#include +#include +#include +#include + +typedef struct _appcore_ui_base_window_ops { + void (*show)(int type, void *event, void *data); + void (*hide)(int type, void *event, void *data); + void (*lower)(int type, void *event, void *data); + void (*visibility)(int type, void *event, void *data); +} appcore_ui_base_window_ops; + +typedef struct _appcore_ui_base_ops { + int (*pause) (void *data); + int (*resume) (void *data); + appcore_base_ops base; + appcore_ui_base_window_ops window; +} appcore_ui_base_ops; + +#ifdef __cplusplus +extern "C" { +#endif + +enum appcore_ui_base_hint { + APPCORE_UI_BASE_HINT_WINDOW_GROUP_CONTROL = 0x1, + APPCORE_UI_BASE_HINT_WINDOW_STACK_CONTROL = 0x2, + APPCORE_UI_BASE_HINT_BG_LAUNCH_CONTROL = 0x4, + APPCORE_UI_BASE_HINT_HW_ACC_CONTROL = 0x8, +}; + +int appcore_ui_base_on_receive(aul_type type, bundle *b); +int appcore_ui_base_on_create(void); +int appcore_ui_base_on_terminate(void); +int appcore_ui_base_on_pause(void); +int appcore_ui_base_on_resume(void); +int appcore_ui_base_on_control(bundle *b); +void appcore_ui_base_window_on_show(int type, void *event); +void appcore_ui_base_window_on_hide(int type, void *event); +void appcore_ui_base_window_on_lower(int type, void *event); +void appcore_ui_base_window_on_visibility(int type, void *event); +int appcore_ui_base_init(appcore_ui_base_ops ops, int argc, char **argv, + void *data, unsigned int hint); +void appcore_ui_base_fini(void); +appcore_ui_base_ops appcore_ui_base_get_default_ops(void); +void appcore_ui_base_pause(void); +void appcore_ui_base_resume(void); +bool appcore_ui_base_is_resumed(void); +void appcore_ui_base_exit(void); + +#ifdef __cplusplus +} +#endif + + diff --git a/include/image/SLP_Appcore_PG_events.png b/include/image/SLP_Appcore_PG_events.png deleted file mode 100644 index 03a1547a2a5827625f6f3990abb744099e86d35a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98265 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 diff --git a/include/image/SLP_Appcore_PG_lifecycle.png b/include/image/SLP_Appcore_PG_lifecycle.png deleted file mode 100644 index 0b12db430bfb2615877cee3fdd05f11e439e78f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32877 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 ZP^2ziI1RJf)UTgITv$e^T0qbL{{WccbZ`Iw diff --git a/include/image/SLP_Appcore_PG_overview.png b/include/image/SLP_Appcore_PG_overview.png deleted file mode 100644 index ce3fbc99ce557e3fdc04b038c3219a164b78cebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70991 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 QSO5S307*qoM6N<$f`p?&%m4rY diff --git a/include/image/SLP_Appcore_PG_rotation.png b/include/image/SLP_Appcore_PG_rotation.png deleted file mode 100644 index 444d7ba1b3e9c9408ae069ece527a8a448d03d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42198 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 DZqWi! diff --git a/packaging/app-core.changes b/packaging/app-core.changes deleted file mode 100644 index a9e9ec7..0000000 --- a/packaging/app-core.changes +++ /dev/null @@ -1,3 +0,0 @@ -* Tue May 28 2013 Xavier Roche accepted/tizen/20130520.100903@8c0d950 -- Fix X86_64 build-install compliance - diff --git a/packaging/app-core.spec b/packaging/app-core.spec index 1abb475..cea659c 100644 --- a/packaging/app-core.spec +++ b/packaging/app-core.spec @@ -115,6 +115,7 @@ rm -rf %{buildroot} %files efl-devel %manifest %{name}.manifest %{_includedir}/appcore/appcore-efl.h +%{_includedir}/appcore/appcore_ui_base.h %{_libdir}/libappcore-efl.so %{_libdir}/pkgconfig/appcore-efl.pc @@ -128,4 +129,5 @@ rm -rf %{buildroot} %{_libdir}/libappcore-common.so %{_libdir}/pkgconfig/appcore-common.pc %{_includedir}/appcore/appcore-common.h -%{_includedir}/SLP_Appcore_PG.h +%{_includedir}/appcore/appcore_base.h + diff --git a/src/appcore-noti.c b/src/appcore-noti.c deleted file mode 100644 index c3af2aa..0000000 --- a/src/appcore-noti.c +++ /dev/null @@ -1,181 +0,0 @@ -/* - * app-core - * - * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. - * - * Contact: Jayoun Lee , Sewook Park , Jaeho Lee - * - * 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 - -#include "appcore-internal.h" - -#define NOTI_COMP(a, b) (strcmp(a->name, b->name)) - -struct noti_s { - const char *name; - void *data; - int (*cb_pre) (void *); - int (*cb) (void *); - int (*cb_post) (void *); - - struct noti_s *next; -}; -typedef struct noti_s notis; - - -SGLIB_DEFINE_LIST_PROTOTYPES(notis, NOTI_COMP, next); -SGLIB_DEFINE_LIST_FUNCTIONS(notis, NOTI_COMP, next); - -static struct noti_s *noti_h; - -static void __main_handle(void *data) -{ - struct noti_s *n = data; - - _ret_if(n == NULL || n->name == NULL); - - _DBG("[APP %d] noti: %s", getpid(), n->name); - - if (n->cb_pre) - n->cb_pre(n->data); - - if (n->cb) - n->cb(n->data); - - if (n->cb_post) - n->cb_post(n->data); -} - -static int __del_noti(int fd, struct noti_s *t) -{ - int r; - - r = heynoti_unsubscribe(fd, t->name, __main_handle); - if (r == 0) { - sglib_notis_delete(¬i_h, t); - free((void *)t->name); - free(t); - } - - return r; -} - -static int __del_notis(int fd) -{ - struct sglib_notis_iterator it; - struct noti_s *t; - - t = sglib_notis_it_init(&it, noti_h); - while (t) { - __del_noti(fd, t); - t = sglib_notis_it_next(&it); - } - - return 0; -} - -int add_noti(int fd, const char *name, int (*cb_pre) (void *), - int (*cb) (void *), int (*cb_post) (void *), void *data) -{ - int r; - struct noti_s *t; - - if (fd < 0) { - errno = EBADF; - return -1; - } - - if (name == NULL || name[0] == '\0') { - errno = EINVAL; - return -1; - } - - t = calloc(1, sizeof(struct noti_s)); - if (t == NULL) - return -1; - - t->name = strdup(name); - if (t->name == NULL) { - free(t); - return -1; - } - - t->cb_pre = cb_pre; - t->cb = cb; - t->cb_post = cb_post; - t->data = data; - - r = heynoti_subscribe(fd, name, __main_handle, t); - if (r != 0) { - free((void *)t->name); - free(t); - return -1; - } - - sglib_notis_add(¬i_h, t); - - return r; -} - -int del_noti(int fd, const char *name) -{ - struct noti_s t; - struct noti_s *f; - - if (fd < 0) { - errno = EBADF; - return -1; - } - - t.name = name; - f = sglib_notis_find_member(noti_h, &t); - if (f == NULL) { - errno = ENOENT; - return -1; - } - - return __del_noti(fd, f); -} - -int noti_start(int fd) -{ - return heynoti_attach_handler(fd); -} - -int noti_init(void) -{ - return heynoti_init(); -} - -void noti_exit(int *fd) -{ - _ret_if(fd == NULL || *fd < 0); - - __del_notis(*fd); - - heynoti_close(*fd); - - *fd = -1; -} diff --git a/src/base/appcore_base.c b/src/base/appcore_base.c new file mode 100644 index 0000000..7c1b826 --- /dev/null +++ b/src/base/appcore_base.c @@ -0,0 +1,746 @@ +/* + * Copyright (c) 2016 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. + */ + + +#define _GNU_SOURCE + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "appcore_base.h" +#include "appcore_base_private.h" + +#define PATH_LOCALE "locale" +#define RESOURCED_FREEZER_PATH "/Org/Tizen/Resourced/Freezer" +#define RESOURCED_FREEZER_INTERFACE "org.tizen.resourced.freezer" +#define RESOURCED_FREEZER_SIGNAL "FreezerState" + +typedef struct _appcore_base_context { + appcore_base_ops ops; + void *data; + int argc; + char **argv; + unsigned int tid; + bool suspended_state; + bool allowed_bg; +} appcore_base_context; + +typedef struct _appcore_base_event_node { + int type; + appcore_base_event_cb cb; + void *data; +} appcore_base_event_node; + +static appcore_base_context __context; +static GList *__events; +static GDBusConnection *__bus; +static guint __suspend_dbus_handler_initialized; + +static void __invoke_callback(void *event, int type) +{ + GList *iter = __events; + + while (iter) { + appcore_base_event_node *node = iter->data; + + if (node->type == type) + node->cb(event, node->data); + iter = g_list_next(iter); + } +} + +static bool __exist_callback(int type) +{ + GList *iter = __events; + + while (iter) { + appcore_base_event_node *node = iter->data; + + if (node->type == type) + return true; + + iter = g_list_next(iter); + } + + return false; +} + +static void __on_low_memory(keynode_t *key, void *data) +{ + int val; + + val = vconf_keynode_get_int(key); + + if (val >= VCONFKEY_SYSMAN_LOW_MEMORY_SOFT_WARNING) { + __invoke_callback(key, APPCORE_BASE_EVENT_LOW_MEMORY); + malloc_trim(0); + } +} + +static void __on_low_battery(keynode_t *key, void *data) +{ + int val; + + val = vconf_keynode_get_int(key); + + if (val <= VCONFKEY_SYSMAN_BAT_CRITICAL_LOW) + __invoke_callback(key, APPCORE_BASE_EVENT_LOW_BATTERY); +} + +static void __update_lang(void) +{ + char language[32]; + char *lang; + char *r; + + lang = vconf_get_str(VCONFKEY_LANGSET); + if (lang) { + snprintf(language, sizeof(language), "%s:en_US:en_GB:en", lang); + setenv("LANGUAGE", language, 1); + setenv("LANG", lang, 1); + setenv("LC_MESSAGES", lang, 1); + r = setlocale(LC_ALL, ""); + if (r == NULL) { + r = setlocale(LC_ALL, lang); + if (r != NULL) + _DBG("*****appcore setlocale=%s\n", r); + } + free(lang); + } +} + +static void __update_region(void) +{ + char *region; + char *r; + + region = vconf_get_str(VCONFKEY_REGIONFORMAT); + if (region) { + setenv("LC_CTYPE", region, 1); + setenv("LC_NUMERIC", region, 1); + setenv("LC_TIME", region, 1); + setenv("LC_COLLATE", region, 1); + setenv("LC_MONETARY", region, 1); + setenv("LC_PAPER", region, 1); + setenv("LC_NAME", region, 1); + setenv("LC_ADDRESS", region, 1); + setenv("LC_TELEPHONE", region, 1); + setenv("LC_MEASUREMENT", region, 1); + setenv("LC_IDENTIFICATION", region, 1); + r = setlocale(LC_ALL, ""); + if (r != NULL) + _DBG("*****appcore setlocale=%s\n", r); + + free(region); + } +} + +static void __on_language_change(keynode_t *key, void *data) +{ + char *val; + + val = vconf_keynode_get_str(key); + + __update_lang(); + __invoke_callback((void *)val, APPCORE_BASE_EVENT_LANG_CHANGE); +} + +static void __on_region_change(keynode_t *key, void *data) +{ + char *val = NULL; + const char *name; + + name = vconf_keynode_get_name(key); + if (!strcmp(name, VCONFKEY_REGIONFORMAT)) + val = vconf_keynode_get_str(key); + + __update_region(); + __invoke_callback((void *)val, APPCORE_BASE_EVENT_REGION_CHANGE); +} + +static gboolean __flush_memory(gpointer data) +{ + int suspend = APPCORE_BASE_SUSPENDED_STATE_WILL_ENTER_SUSPEND; + + appcore_base_flush_memory(); + __context.tid = 0; + + if (!__context.allowed_bg && !__context.suspended_state) { + _DBG("[__SUSPEND__] flush case"); + __invoke_callback((void *)&suspend, APPCORE_BASE_EVENT_SUSPENDED_STATE_CHANGE); + __context.suspended_state = true; + } + + return FALSE; +} + +static void __add_suspend_timer(void) +{ + __context.tid = g_timeout_add_seconds(5, __flush_memory, NULL); +} + +static void __remove_suspend_timer(void) +{ + if (__context.tid > 0) { + g_source_remove(__context.tid); + __context.tid = 0; + } +} + +static void __on_receive_suspend_signal(GDBusConnection *connection, + const gchar *sender_name, + const gchar *object_path, + const gchar *interface_name, + const gchar *signal_name, + GVariant *parameters, + gpointer user_data) +{ + gint suspend = APPCORE_BASE_SUSPENDED_STATE_DID_EXIT_FROM_SUSPEND; + gint pid; + gint status; + + if (g_strcmp0(signal_name, RESOURCED_FREEZER_SIGNAL) == 0) { + g_variant_get(parameters, "(ii)", &status, &pid); + if (pid == getpid() && status == 0) { + if (!__context.allowed_bg && __context.suspended_state) { + __remove_suspend_timer(); + __invoke_callback((void *)&suspend, APPCORE_BASE_EVENT_SUSPENDED_STATE_CHANGE); + __context.suspended_state = false; + __add_suspend_timer(); + } + } + } +} + +static int __init_suspend_dbus_handler(void) +{ + GError *err = NULL; + + if (__suspend_dbus_handler_initialized) + return 0; + + if (!__bus) { + __bus = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &err); + if (!__bus) { + _ERR("Failed to connect to the D-BUS daemon: %s", + err->message); + g_error_free(err); + return -1; + } + } + + __suspend_dbus_handler_initialized = g_dbus_connection_signal_subscribe( + __bus, + NULL, + RESOURCED_FREEZER_INTERFACE, + RESOURCED_FREEZER_SIGNAL, + RESOURCED_FREEZER_PATH, + NULL, + G_DBUS_SIGNAL_FLAGS_NONE, + __on_receive_suspend_signal, + NULL, + NULL); + if (__suspend_dbus_handler_initialized == 0) { + _ERR("g_dbus_connection_signal_subscribe() is failed."); + return -1; + } + + _DBG("[__SUSPEND__] suspend signal initialized"); + + return 0; +} + +static void __fini_suspend_dbus_handler(void) +{ + if (__bus == NULL) + return; + + if (__suspend_dbus_handler_initialized) { + g_dbus_connection_signal_unsubscribe(__bus, + __suspend_dbus_handler_initialized); + __suspend_dbus_handler_initialized = 0; + } + + g_object_unref(__bus); + __bus = NULL; +} + +static int __get_locale_resource_dir(char *locale_dir, int size) +{ + const char *res_path; + + res_path = aul_get_app_resource_path(); + if (res_path == NULL) { + _ERR("Failed to get resource path"); + return -1; + } + + snprintf(locale_dir, size, "%s" PATH_LOCALE, res_path); + if (access(locale_dir, R_OK) != 0) + return -1; + + return 0; +} + +static int __get_app_name(const char *appid, char **name) +{ + char *name_token = NULL; + + if (appid == NULL) + return -1; + + /* com.vendor.name -> name */ + name_token = strrchr(appid, '.'); + if (name_token == NULL) + return -1; + + name_token++; + + *name = strdup(name_token); + if (*name == NULL) + return -1; + + return 0; +} + +static int __set_i18n(const char *domain, const char *dir) +{ + char *r; + char *lan; + + if (domain == NULL) { + errno = EINVAL; + return -1; + } + + __update_lang(); + __update_region(); + + r = setlocale(LC_ALL, ""); + /* if locale is not set properly, try again to set as language base */ + if (r == NULL) { + lan = vconf_get_str(VCONFKEY_LANGSET); + if (lan != NULL) { + r = setlocale(LC_ALL, lan); + _DBG("*****appcore setlocale=%s\n", r); + free(lan); + } + } + if (r == NULL) + _ERR("appcore: setlocale() error"); + + r = bindtextdomain(domain, dir); + if (r == NULL) + _ERR("appcore: bindtextdomain() error"); + + r = textdomain(domain); + if (r == NULL) + _ERR("appcore: textdomain() error"); + + return 0; +} + +EXPORT_API int appcore_base_on_set_i18n(void) +{ + int r; + char locale_dir[PATH_MAX]; + char appid[PATH_MAX]; + char *name = NULL; + + r = aul_app_get_appid_bypid(getpid(), appid, PATH_MAX); + if (r < 0) + return -1; + + r = __get_app_name(appid, &name); + if (r < 0) + return -1; + + r = __get_locale_resource_dir(locale_dir, sizeof(locale_dir)); + if (r < 0) { + free(name); + return -1; + } + + r = __set_i18n(name, locale_dir); + if (r < 0) { + free(name); + return -1; + } + + free(name); + + return 0; +} + +EXPORT_API int appcore_base_init(appcore_base_ops ops, int argc, char **argv, void *data) +{ + __context.ops = ops; + __context.argc = argc; + __context.argv = argv; + __context.data = data; + __context.tid = 0; + __context.suspended_state = false; + __context.allowed_bg = false; + + if (__context.ops.set_i18n) + __context.ops.set_i18n(__context.data); + + __init_suspend_dbus_handler(); + + if (__context.ops.create && __context.ops.create(__context.data) < 0) { + aul_status_update(STATUS_DYING); + return 0; + } + + if (__context.ops.run) + __context.ops.run(__context.data); + + return 0; +} + +EXPORT_API void appcore_base_fini(void) +{ + int i; + + for (i = APPCORE_BASE_EVENT_START + 1; i < APPCORE_BASE_EVENT_MAX; i++) { + if (__exist_callback(i)) { + if (__context.ops.unset_event) + __context.ops.unset_event(i, __context.data); + } + } + + g_list_free_full(__events, free); + __events = NULL; + __fini_suspend_dbus_handler(); + + aul_status_update(STATUS_DYING); + if (__context.ops.terminate) + __context.ops.terminate(__context.data); + +} + +EXPORT_API int appcore_base_flush_memory(void) +{ + malloc_trim(0); + return 0; +} + +EXPORT_API int appcore_base_on_receive(aul_type type, bundle *b) +{ + int ret; + const char **tep_path; + int len = 0; + int i; + const char *bg; + int dummy = 0; + + switch (type) { + case AUL_START: + _DBG("[APP %d] AUL event: AUL_START", getpid()); + tep_path = bundle_get_str_array(b, AUL_TEP_PATH, &len); + if (tep_path) { + for (i = 0; i < len; i++) { + ret = aul_check_tep_mount(tep_path[i]); + if (ret == -1) { + _ERR("mount request not completed within 1 sec"); + exit(-1); + } + } + } + + bg = bundle_get_val(b, AUL_K_ALLOWED_BG); + if (bg && strncmp(bg, "ALLOWED_BG", strlen("ALLOWED_BG")) == 0) { + _DBG("[__SUSPEND__] allowed background"); + __context.allowed_bg = true; + __remove_suspend_timer(); + } + + if (__context.ops.control) + __context.ops.control(b, __context.data); + break; + case AUL_RESUME: + _DBG("[APP %d] AUL event: AUL_RESUME", getpid()); + bg = bundle_get_val(b, AUL_K_ALLOWED_BG); + if (bg && strncmp(bg, "ALLOWED_BG", strlen("ALLOWED_BG")) == 0) { + _DBG("[__SUSPEND__] allowed background"); + __context.allowed_bg = true; + __remove_suspend_timer(); + } + break; + case AUL_TERMINATE: + _DBG("[APP %d] AUL event: AUL_TERMINATE", getpid()); + aul_status_update(STATUS_DYING); + if (!__context.allowed_bg) + __remove_suspend_timer(); + + if (__context.ops.exit) + __context.ops.exit(__context.data); + break; + case AUL_TERMINATE_BGAPP: + _DBG("[APP %d] AUL event: AUL_TERMINATE_BGAPP", getpid()); + if (!__context.allowed_bg) + __remove_suspend_timer(); + break; + case AUL_WAKE: + _DBG("[APP %d] AUL event: AUL_WAKE", getpid()); + if (!__context.allowed_bg && __context.suspended_state) { + int suspend = APPCORE_BASE_SUSPENDED_STATE_DID_EXIT_FROM_SUSPEND; + __remove_suspend_timer(); + __invoke_callback((void *)&suspend, APPCORE_BASE_EVENT_SUSPENDED_STATE_CHANGE); + __context.suspended_state = false; + } + break; + case AUL_SUSPEND: + _DBG("[APP %d] AUL event: AUL_SUSPEND", getpid()); + if (!__context.allowed_bg && !__context.suspended_state) { + __remove_suspend_timer(); + __flush_memory(NULL); + } + break; + case AUL_UPDATE_REQUESTED: + _DBG("[APP %d] AUL event: AUL_UPDATE_REQUESTED", getpid()); + __invoke_callback((void *)&dummy, APPCORE_BASE_EVENT_UPDATE_REQUESTED); + break; + default: + _DBG("[APP %d] AUL event: %d", getpid(), type); + /* do nothing */ + break; + } + + return 0; +} + +EXPORT_API int appcore_base_on_create(void) +{ + int r; + r = aul_launch_init(__context.ops.receive, NULL); + if (r < 0) { + _ERR("Aul init failed: %d", r); + return -1; + } + + r = aul_launch_argv_handler(__context.argc, __context.argv); + if (r < 0) { + _ERR("Aul argv handler failed: %d", r); + return -1; + } + + return 0; +} + +EXPORT_API int appcore_base_on_control(bundle *b) +{ + return 0; +} + +EXPORT_API int appcore_base_on_terminate() +{ + aul_finalize(); + if (__context.ops.exit) + __context.ops.exit(__context.data); + + return 0; +} + +EXPORT_API void appcore_base_on_set_event(enum appcore_base_event event) +{ + int r; + + switch (event) { + case APPCORE_BASE_EVENT_LOW_MEMORY: + vconf_notify_key_changed(VCONFKEY_SYSMAN_LOW_MEMORY, __on_low_memory, NULL); + break; + case APPCORE_BASE_EVENT_LOW_BATTERY: + vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, __on_low_battery, NULL); + break; + case APPCORE_BASE_EVENT_LANG_CHANGE: + vconf_notify_key_changed(VCONFKEY_LANGSET, __on_language_change, NULL); + break; + case APPCORE_BASE_EVENT_REGION_CHANGE: + r = vconf_notify_key_changed(VCONFKEY_REGIONFORMAT, __on_region_change, NULL); + if (r < 0) + break; + + vconf_notify_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, __on_region_change, NULL); + break; + case APPCORE_BASE_EVENT_SUSPENDED_STATE_CHANGE: + break; + + default: + break; + } + +} + +EXPORT_API void appcore_base_on_unset_event(enum appcore_base_event event) +{ + int r; + + switch (event) { + case APPCORE_BASE_EVENT_LOW_MEMORY: + vconf_ignore_key_changed(VCONFKEY_SYSMAN_LOW_MEMORY, __on_low_memory); + break; + case APPCORE_BASE_EVENT_LOW_BATTERY: + vconf_ignore_key_changed(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, __on_low_battery); + break; + case APPCORE_BASE_EVENT_LANG_CHANGE: + vconf_ignore_key_changed(VCONFKEY_LANGSET, __on_language_change); + break; + case APPCORE_BASE_EVENT_REGION_CHANGE: + r = vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT, __on_region_change); + if (r < 0) + break; + vconf_ignore_key_changed(VCONFKEY_REGIONFORMAT_TIME1224, __on_region_change); + break; + case APPCORE_BASE_EVENT_SUSPENDED_STATE_CHANGE: + break; + default: + break; + } +} + +EXPORT_API appcore_base_event_h appcore_base_add_event(enum appcore_base_event event, + appcore_base_event_cb cb, void *data) +{ + appcore_base_event_node *node; + + if (!__exist_callback(event)) { + if (__context.ops.set_event) + __context.ops.set_event(event, __context.data); + } + + node = malloc(sizeof(appcore_base_event_node)); + + if (node == NULL) + return NULL; + + node->cb = cb; + node->type = event; + node->data = data; + __events = g_list_append(__events, node); + + return node; +} + +EXPORT_API int appcore_base_remove_event(appcore_base_event_h handle) +{ + appcore_base_event_node *node = handle; + enum appcore_base_event event; + + event = node->type; + __events = g_list_remove(__events, node); + free(node); + if (!__exist_callback(event)) { + if (__context.ops.unset_event) + __context.ops.unset_event(event, __context.data); + } + + return 0; +} + +EXPORT_API int appcore_base_raise_event(void *event, enum appcore_base_event type) +{ + __invoke_callback(event, type); + return 0; +} + +EXPORT_API int appcore_base_get_rotation_state(enum appcore_base_rm *curr) +{ + return 0; +} + +EXPORT_API bool appcore_base_is_bg_allowed(void) +{ + return __context.allowed_bg; +} + +EXPORT_API bool appcore_base_is_suspended(void) +{ + return __context.suspended_state; +} + +EXPORT_API void appcore_base_toggle_suspended_state(void) +{ + __context.suspended_state ^= __context.suspended_state; +} + +static int __on_receive(aul_type type, bundle *b, void *data) +{ + return appcore_base_on_receive(type, b); +} + +static int __on_create(void *data) +{ + return appcore_base_on_create(); +} + +static int __on_control(bundle *b, void *data) +{ + return appcore_base_on_control(b); +} + +static int __on_terminate(void *data) +{ + return appcore_base_on_terminate(); +} + +static int __on_set_i18n(void *data) +{ + return appcore_base_on_set_i18n(); +} + +static void __on_set_event(enum appcore_base_event event, void *data) +{ + return appcore_base_on_set_event(event); +} + +static void __on_unset_event(enum appcore_base_event event, void *data) +{ + return appcore_base_on_unset_event(event); +} + +EXPORT_API appcore_base_ops appcore_base_get_default_ops(void) +{ + appcore_base_ops ops; + + ops.create = __on_create; + ops.control = __on_control; + ops.terminate = __on_terminate; + ops.receive = __on_receive; + ops.set_i18n = __on_set_i18n; + ops.run = NULL; + ops.exit = NULL; + ops.set_event = __on_set_event; + ops.unset_event = __on_unset_event; + + return ops; +} + + diff --git a/src/base/appcore_base_private.h b/src/base/appcore_base_private.h new file mode 100644 index 0000000..9e596fe --- /dev/null +++ b/src/base/appcore_base_private.h @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2016 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. + */ + +#pragma once + +#define LOG_TAG "APP_CORE_BASE" + +#include +#include +#include + +#ifndef EXPORT_API +# define EXPORT_API __attribute__ ((visibility("default"))) +#endif + +#ifndef _DLOG_H_ +# define _ERR(fmt, arg...) \ + do { fprintf(stderr, "appcore: "fmt"\n", ##arg); } while (0) + +# define _INFO(fmt, arg...) \ + do { fprintf(stdout, fmt"\n", ##arg); } while (0) + +# define _DBG(fmt, arg...) \ + do { \ + if (getenv("APPCORE_DEBUG")) { \ + fprintf(stdout, fmt"\n", ##arg); \ + } \ + } while (0) +#else +# define _ERR(fmt, arg...) \ + do { \ + fprintf(stderr, "appcore: "fmt"\n", ##arg); \ + LOGE(fmt, ##arg); \ + } while (0) +# define _INFO(...) LOGI(__VA_ARGS__) +# define _DBG(...) LOGD(__VA_ARGS__) +#endif + +#define _warn_if(expr, fmt, arg...) do { \ + if (expr) { \ + _ERR(fmt, ##arg); \ + } \ + } while (0) + +#define _ret_if(expr) do { \ + if (expr) { \ + return; \ + } \ + } while (0) + +#define _retv_if(expr, val) do { \ + if (expr) { \ + return (val); \ + } \ + } while (0) + +#define _retm_if(expr, fmt, arg...) do { \ + if (expr) { \ + _ERR(fmt, ##arg); \ + return; \ + } \ + } while (0) + +#define _retvm_if(expr, val, fmt, arg...) do { \ + if (expr) { \ + _ERR(fmt, ##arg); \ + return (val); \ + } \ + } while (0) + + +extern void aul_finalize(); + diff --git a/src/ui_base/appcore_ui_base.c b/src/ui_base/appcore_ui_base.c new file mode 100644 index 0000000..baf80cd --- /dev/null +++ b/src/ui_base/appcore_ui_base.c @@ -0,0 +1,833 @@ +/* + * Copyright (c) 2016 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 +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "appcore_base.h" +#include "appcore_ui_base.h" +#include "appcore_ui_base_private.h" + +enum app_state { + AS_NONE, + AS_CREATED, + AS_RUNNING, + AS_PAUSED, + AS_DYING, +}; + +typedef struct _appcore_ui_base_context { + appcore_ui_base_ops ops; + void *data; + int argc; + char **argv; + unsigned int hint; + char *below_app; + char *appid; + + int state; + Ecore_Event_Handler *hshow; + Ecore_Event_Handler *hhide; + Ecore_Event_Handler *hvchange; + Ecore_Event_Handler *hlower; +} appcore_ui_base_context; + + +static bool b_active = false; +static bool first_launch = true; + +struct win_node { + unsigned int win; + unsigned int surf; + bool bfobscured; +}; + +static GSList *g_winnode_list; +static appcore_ui_base_context __context; +static struct wl_display *dsp; +static struct wl_registry *reg; +static struct tizen_policy *tz_policy; +static bool bg_state = false; + +static void __wl_listener_cb(void *data, struct wl_registry *reg, + uint32_t id, const char *interface, uint32_t ver) +{ + if (interface && !strcmp(interface, "tizen_policy")) { + if (!tz_policy) + tz_policy = wl_registry_bind(reg, id, + &tizen_policy_interface, 1); + } +} + +static void __wl_listener_remove_cb(void *data, struct wl_registry *reg, + unsigned int id) +{ + /* do nothing */ +} + +static const struct wl_registry_listener reg_listener = { + __wl_listener_cb, + __wl_listener_remove_cb +}; + +static Eina_Bool __stub_show_cb(void *data, int type, void *event) +{ + if (__context.ops.window.show) + __context.ops.window.show(type, event, __context.data); + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool __stub_hide_cb(void *data, int type, void *event) +{ + if (__context.ops.window.hide) + __context.ops.window.hide(type, event, __context.data); + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool __stub_visibility_cb(void *data, int type, void *event) +{ + if (__context.ops.window.visibility) + __context.ops.window.visibility(type, event, __context.data); + + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool __stub_lower_cb(void *data, int type, void *event) +{ + if (__context.ops.window.lower) + __context.ops.window.lower(type, event, __context.data); + + return ECORE_CALLBACK_RENEW; +} + +static void __prepare_to_suspend(void) +{ + int suspend = APPCORE_BASE_SUSPENDED_STATE_WILL_ENTER_SUSPEND; + + if (appcore_base_is_bg_allowed() && !appcore_base_is_suspended()) { + appcore_base_raise_event((void *)&suspend, APPCORE_BASE_EVENT_SUSPENDED_STATE_CHANGE); + appcore_base_toggle_suspended_state(); + } +} + +static void __exit_from_suspend(void) +{ + int suspend = APPCORE_BASE_SUSPENDED_STATE_DID_EXIT_FROM_SUSPEND; + + if (appcore_base_is_suspended()) { + appcore_base_raise_event((void *)&suspend, APPCORE_BASE_EVENT_SUSPENDED_STATE_CHANGE); + appcore_base_toggle_suspended_state(); + } +} + +static void __do_pause(void) +{ + if (__context.state == AS_RUNNING) { + if (__context.ops.pause) + __context.ops.pause(__context.data); + + __context.state = AS_PAUSED; + __prepare_to_suspend(); + } + aul_status_update(STATUS_BG); +} + +static void __do_resume(void) +{ + if (__context.state == AS_PAUSED || __context.state == AS_CREATED) { + __exit_from_suspend(); + if (__context.ops.resume) { + LOG(LOG_DEBUG, "LAUNCH", "[%s:Application:resume:start]", __context.appid); + __context.ops.resume(__context.data); + LOG(LOG_DEBUG, "LAUNCH", "[%s:Application:resume:done]", __context.appid); + LOG(LOG_DEBUG, "LAUNCH", "[%s:Application:Launching:done]", __context.appid); + } + if ((__context.hint & APPCORE_UI_BASE_HINT_WINDOW_STACK_CONTROL) && + __context.below_app) { + aul_app_group_activate_below(__context.below_app); + free(__context.below_app); + __context.below_app = NULL; + } + __context.state = AS_RUNNING; + } + + aul_status_update(STATUS_VISIBLE); +} + +static GSList *__find_win(unsigned int win) +{ + GSList *iter; + struct win_node *t; + + for (iter = g_winnode_list; iter; iter = g_slist_next(iter)) { + t = iter->data; + if (t && t->win == win) + return iter; + } + + return NULL; +} + +static int __get_main_window(void) +{ + struct win_node *entry = NULL; + + if (g_winnode_list != NULL) { + entry = g_winnode_list->data; + return (unsigned int) entry->win; + } + + return 0; +} + +static int __get_main_surface(void) +{ + struct win_node *entry = NULL; + + if (g_winnode_list != NULL) { + entry = g_winnode_list->data; + return (unsigned int) entry->surf; + } + + return 0; +} + +static bool __add_win(unsigned int win, unsigned int surf) +{ + struct win_node *t; + GSList *f; + + _DBG("[EVENT_TEST][EVENT] __add_win WIN:%x\n", win); + + f = __find_win(win); + if (f) { + errno = ENOENT; + _DBG("[EVENT_TEST][EVENT] ERROR There is already window : %x \n", win); + return FALSE; + } + + t = calloc(1, sizeof(struct win_node)); + if (t == NULL) + return FALSE; + + t->win = win; + t->surf = surf; + t->bfobscured = FALSE; + + g_winnode_list = g_slist_append(g_winnode_list, t); + + return TRUE; +} + +static bool __delete_win(unsigned int win) +{ + GSList *f; + + f = __find_win(win); + if (!f) { + errno = ENOENT; + _DBG("[EVENT_TEST][EVENT] ERROR There is no window : %x \n", + win); + return FALSE; + } + + free(f->data); + g_winnode_list = g_slist_delete_link(g_winnode_list, f); + + return TRUE; +} + +static bool __update_win(unsigned int win, unsigned int surf, bool bfobscured) +{ + GSList *f; + struct win_node *t; + + _DBG("[EVENT_TEST][EVENT] __update_win WIN:%x fully_obscured %d\n", win, + bfobscured); + + f = __find_win(win); + if (!f) { + errno = ENOENT; + _DBG("[EVENT_TEST][EVENT] ERROR There is no window : %x \n", win); + return FALSE; + } + + t = (struct win_node *)f->data; + t->win = win; + if (surf != 0) + t->surf = surf; + t->bfobscured = bfobscured; + + return TRUE; +} + +static void __raise_win(void) +{ + Ecore_Wl_Window *win; + unsigned int win_id; + + if (!(__context.hint & APPCORE_UI_BASE_HINT_WINDOW_STACK_CONTROL)) + return; + + win_id = __get_main_window(); + + _DBG("Raise window: %d", win_id); + win = ecore_wl_window_find(win_id); + ecore_wl_window_activate(win); +} + +static void __pause_win(void) +{ + Ecore_Wl_Window *win; + GSList *wlist = g_winnode_list; + struct win_node *entry = NULL; + + if (!(__context.hint & APPCORE_UI_BASE_HINT_WINDOW_STACK_CONTROL)) + return; + + _DBG("Pause window"); + + while (wlist) { + entry = wlist->data; + + _DBG("Pause window: %d", entry->win); + win = ecore_wl_window_find(entry->win); + ecore_wl_window_iconified_set(win, EINA_TRUE); + + wlist = wlist->next; + } +} + +static int __init_wl(void) +{ + _DBG("initialize wayland"); + dsp = wl_display_connect(NULL); + if (dsp == NULL) { + _ERR("Failed to connect wl display"); + return -1; + } + + reg = wl_display_get_registry(dsp); + if (reg == NULL) { + _ERR("Failed to get registry"); + wl_display_disconnect(dsp); + return -1; + } + + wl_registry_add_listener(reg, ®_listener, NULL); + wl_display_roundtrip(dsp); + + if (!tz_policy) { + _ERR("Failed to get tizen policy interface"); + wl_registry_destroy(reg); + wl_display_disconnect(dsp); + return -1; + } + + return 0; +} + +static void __finish_wl(void) +{ + if (tz_policy) { + tizen_policy_destroy(tz_policy); + tz_policy = NULL; + } + + if (reg) { + wl_registry_destroy(reg); + reg = NULL; + } + + if (dsp) { + wl_display_disconnect(dsp); + dsp = NULL; + } +} + +static void __set_bg_state(void) +{ + if (__init_wl() < 0) + return; + + tizen_policy_set_background_state(tz_policy, getpid()); + wl_display_roundtrip(dsp); + bg_state = true; + _DBG("bg state: %d", bg_state); +} + +static void __unset_bg_state(void) +{ + if (!tz_policy) + return; + + tizen_policy_unset_background_state(tz_policy, getpid()); + wl_display_roundtrip(dsp); + bg_state = false; + _DBG("bg state: %d", bg_state); + __finish_wl(); +} + +static void __do_start(bundle *b) +{ + const char *bg_launch; + const char *below_app; + + if (__context.hint & APPCORE_UI_BASE_HINT_WINDOW_STACK_CONTROL) { + if (__context.below_app) { + free(__context.below_app); + __context.below_app = NULL; + } + + below_app = bundle_get_val(b, AUL_SVC_K_RELOCATE_BELOW); + if (below_app) + __context.below_app = strdup(below_app); + } + + if (first_launch) { + first_launch = FALSE; + return; + } + + if ((__context.hint & APPCORE_UI_BASE_HINT_BG_LAUNCH_CONTROL) && + bg_state) { + bg_launch = bundle_get_val(b, AUL_SVC_K_BG_LAUNCH); + if (!bg_launch || strcmp(bg_launch, "enable")) + __unset_bg_state(); + } + + __raise_win(); +} + +EXPORT_API int appcore_ui_base_on_receive(aul_type type, bundle *b) +{ + if (__context.state == AS_DYING) { + _ERR("Skip the event in dying state"); + return 0; + } + + if (type == AUL_TERMINATE_BGAPP && __context.state != AS_PAUSED) + return 0; + + if (type == AUL_START) + __exit_from_suspend(); + + appcore_base_on_receive(type, b); + + switch (type) { + case AUL_START: + __do_start(b); + break; + case AUL_RESUME: + __do_resume(); + break; + case AUL_TERMINATE: + break; + case AUL_TERMINATE_BGAPP: + _DBG("[APP %d] is paused. TERMINATE", getpid()); + __context.state = AS_DYING; + aul_status_update(STATUS_DYING); + if (__context.ops.base.exit) + __context.ops.base.exit(__context.data); + break; + case AUL_PAUSE: + __pause_win(); + break; + default: + break; + } + + return 0; +} + +EXPORT_API int appcore_ui_base_on_create(void) +{ + appcore_base_on_create(); + + __context.hshow = ecore_event_handler_add(ECORE_WL_EVENT_WINDOW_SHOW, __stub_show_cb, NULL); + __context.hhide = ecore_event_handler_add(ECORE_WL_EVENT_WINDOW_HIDE, __stub_hide_cb, NULL); + __context.hvchange = ecore_event_handler_add(ECORE_WL_EVENT_WINDOW_VISIBILITY_CHANGE, + __stub_visibility_cb, NULL); + __context.hlower = ecore_event_handler_add(ECORE_WL_EVENT_WINDOW_LOWER, __stub_lower_cb, NULL); + __context.state = AS_CREATED; + LOG(LOG_DEBUG, "LAUNCH", "[%s:Application:create:done]", __context.appid); + + return 0; +} + +EXPORT_API int appcore_ui_base_on_terminate(void) +{ + if (__context.state == AS_RUNNING) { + if (__context.ops.pause) + __context.ops.pause(__context.data); + } + + __context.state = AS_DYING; + if (__context.hshow) + ecore_event_handler_del(__context.hshow); + if (__context.hhide) + ecore_event_handler_del(__context.hhide); + if (__context.hvchange) + ecore_event_handler_del(__context.hvchange); + if (__context.hlower) + ecore_event_handler_del(__context.hlower); + + elm_shutdown(); + + /* Check loader case */ + if (getenv("AUL_LOADER_INIT")) { + unsetenv("AUL_LOADER_INIT"); + elm_shutdown(); + } + + appcore_base_on_terminate(); + + return 0; +} + +EXPORT_API int appcore_ui_base_on_pause(void) +{ + return 0; +} + +EXPORT_API int appcore_ui_base_on_resume(void) +{ + return 0; +} + +EXPORT_API int appcore_ui_base_on_control(bundle *b) +{ + LOG(LOG_DEBUG, "LAUNCH", "[%s:Application:reset:start]", __context.appid); + appcore_base_on_control(b); + LOG(LOG_DEBUG, "LAUNCH", "[%s:Application:reset:done]", __context.appid); + + return 0; +} + +static void __group_attach() +{ + static bool attached = false; + + if (!(__context.hint & APPCORE_UI_BASE_HINT_WINDOW_GROUP_CONTROL)) + return; + + _DBG("__group_attach"); + if (attached) + return; + + int wid = __get_main_surface(); + if (wid == 0) { + _ERR("window wasn't ready"); + return; + } + + aul_app_group_set_window(wid); + attached = true; +} + +static void __group_lower() +{ + int exit = 0; + + if (!(__context.hint & APPCORE_UI_BASE_HINT_WINDOW_GROUP_CONTROL)) + return; + + _DBG("__group_lower"); + aul_app_group_lower(&exit); + if (exit) { + _DBG("__group_lower : sub-app!"); + if (__context.ops.base.exit) + __context.ops.base.exit(__context.data); + } +} + +EXPORT_API void appcore_ui_base_window_on_show(int type, void *event) +{ + Ecore_Wl_Event_Window_Show *ev; + + ev = event; + if (ev->parent_win != 0) { + /* This is child window. Skip!!! */ + return; + } + + _DBG("[EVENT_TEST][EVENT] GET SHOW EVENT!!!. WIN:%x, %d\n", ev->win, ev->data[0]); + + if (!__find_win((unsigned int)ev->win)) + __add_win((unsigned int)ev->win, (unsigned int)ev->data[0]); + else + __update_win((unsigned int)ev->win, (unsigned int)ev->data[0], FALSE); + __group_attach(); +} + +static bool __check_visible(void) +{ + GSList *iter = NULL; + struct win_node *entry = NULL; + + _DBG("[EVENT_TEST][EVENT] __check_visible\n"); + + for (iter = g_winnode_list; iter != NULL; iter = g_slist_next(iter)) { + entry = iter->data; + _DBG("win : %x obscured : %d\n", entry->win, entry->bfobscured); + if (entry->bfobscured == FALSE) + return true; + } + + return false; +} + +EXPORT_API void appcore_ui_base_window_on_hide(int type, void *event) +{ + Ecore_Wl_Event_Window_Hide *ev; + int bvisibility; + + ev = event; + _DBG("[EVENT_TEST][EVENT] GET HIDE EVENT!!!. WIN:%x\n", ev->win); + + if (__find_win((unsigned int)ev->win)) { + __delete_win((unsigned int)ev->win); + bvisibility = __check_visible(); + if (!bvisibility && b_active == TRUE) { + _DBG(" Go to Pasue state \n"); + b_active = FALSE; + __do_pause(); + } + } +} + +EXPORT_API void appcore_ui_base_window_on_lower(int type, void *event) +{ + Ecore_Wl_Event_Window_Lower *ev; + + ev = event; + if (!ev) + return; + _DBG("ECORE_WL_EVENT_WINDOW_LOWER window id:%u\n", ev->win); + __group_lower(); +} + +EXPORT_API void appcore_ui_base_window_on_visibility(int type, void *event) +{ + Ecore_Wl_Event_Window_Visibility_Change *ev; + int bvisibility; + + ev = event; + __update_win((unsigned int)ev->win, 0, ev->fully_obscured); + bvisibility = __check_visible(); + + _DBG("bvisibility %d, b_active %d", bvisibility, b_active); + + if (bvisibility && b_active == FALSE) { + _DBG(" Go to Resume state\n"); + b_active = TRUE; + __do_resume(); + } else if (!bvisibility && b_active == TRUE) { + _DBG(" Go to Pasue state \n"); + b_active = FALSE; + __do_pause(); + } else { + _DBG(" No change state \n"); + } + +} + +EXPORT_API int appcore_ui_base_init(appcore_ui_base_ops ops, int argc, char **argv, + void *data, unsigned int hint) +{ + char *hwacc; + const char *bg_launch; + bundle *b; + char appid[PATH_MAX] = {0, }; + + aul_app_get_appid_bypid(getpid(), appid, sizeof(appid)); + __context.ops = ops; + __context.data = data; + __context.argc = argc; + __context.argv = argv; + __context.hint = hint; + __context.state = AS_NONE; + __context.appid = strdup(appid); + + LOG(LOG_DEBUG, "LAUNCH", "[%s:Application:main:done]", appid); + elm_init(argc, argv); + + if (__context.hint & APPCORE_UI_BASE_HINT_HW_ACC_CONTROL) { + hwacc = getenv("HWACC"); + + if (hwacc == NULL) { + _DBG("elm_config_accel_preference_set is not called"); + } else if (strcmp(hwacc, "USE") == 0) { + elm_config_accel_preference_set("hw"); + _DBG("elm_config_accel_preference_set : hw"); + } else if (strcmp(hwacc, "NOT_USE") == 0) { + elm_config_accel_preference_set("none"); + _DBG("elm_config_accel_preference_set : none"); + } else { + _DBG("elm_config_accel_preference_set is not called"); + } + } + + if (__context.hint & APPCORE_UI_BASE_HINT_BG_LAUNCH_CONTROL) { + b = bundle_import_from_argv(argc, argv); + if (b) { + bg_launch = bundle_get_val(b, AUL_SVC_K_BG_LAUNCH); + if (bg_launch && strcmp(bg_launch, "enable") == 0) + __set_bg_state(); + + bundle_free(b); + } + } + + return appcore_base_init(ops.base, argc, argv, data); +} + +EXPORT_API void appcore_ui_base_fini(void) +{ + appcore_base_fini(); + free(__context.appid); + __context.appid = NULL; +} + +EXPORT_API void appcore_ui_base_pause(void) +{ + __do_pause(); +} + +EXPORT_API void appcore_ui_base_resume(void) +{ + __do_resume(); +} + +EXPORT_API bool appcore_ui_base_is_resumed(void) +{ + return __context.state == AS_RUNNING; +} + +EXPORT_API void appcore_ui_base_exit(void) +{ + if (__context.ops.base.exit) + __context.ops.base.exit(__context.data); +} + +static int __on_receive(aul_type type, bundle *b, void *data) +{ + return appcore_ui_base_on_receive(type, b); +} + +static int __on_create(void *data) +{ + return appcore_ui_base_on_create(); +} + +static int __on_terminate(void *data) +{ + return appcore_ui_base_on_terminate(); +} + +static int __on_pause(void *data) +{ + return appcore_ui_base_on_pause(); +} + +static int __on_resume(void *data) +{ + return appcore_ui_base_on_resume(); +} + +static void __window_on_show(int type, void *event, void *data) +{ + appcore_ui_base_window_on_show(type, event); +} + +static void __window_on_hide(int type, void *event, void *data) +{ + appcore_ui_base_window_on_hide(type, event); +} + +static void __window_on_lower(int type, void *event, void *data) +{ + appcore_ui_base_window_on_lower(type, event); +} + +static void __window_on_visibility(int type, void *event, void *data) +{ + appcore_ui_base_window_on_visibility(type, event); +} + +static void __run(void *data) +{ + elm_run(); +} + +static void __exit(void *data) +{ + elm_exit(); +} + +EXPORT_API appcore_ui_base_ops appcore_ui_base_get_default_ops(void) +{ + appcore_ui_base_ops ops; + + ops.base = appcore_base_get_default_ops(); + + /* override methods */ + ops.base.create = __on_create; + ops.base.terminate = __on_terminate; + ops.base.receive = __on_receive; + ops.base.run = __run; + ops.base.exit = __exit; + + ops.pause = __on_pause; + ops.resume = __on_resume; + ops.window.show = __window_on_show; + ops.window.hide = __window_on_hide; + ops.window.lower = __window_on_lower; + ops.window.visibility = __window_on_visibility; + + return ops; +} + + diff --git a/src/ui_base/appcore_ui_base_private.h b/src/ui_base/appcore_ui_base_private.h new file mode 100644 index 0000000..cfa0c28 --- /dev/null +++ b/src/ui_base/appcore_ui_base_private.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2016 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. + */ + +#pragma once + +#define LOG_TAG "APP_CORE_UI_BASE" + +#include +#include +#include + +#ifndef EXPORT_API +# define EXPORT_API __attribute__ ((visibility("default"))) +#endif + +#ifndef _DLOG_H_ +# define _ERR(fmt, arg...) \ + do { fprintf(stderr, "appcore: "fmt"\n", ##arg); } while (0) + +# define _INFO(fmt, arg...) \ + do { fprintf(stdout, fmt"\n", ##arg); } while (0) + +# define _DBG(fmt, arg...) \ + do { \ + if (getenv("APPCORE_DEBUG")) { \ + fprintf(stdout, fmt"\n", ##arg); \ + } \ + } while (0) +#else +# define _ERR(fmt, arg...) \ + do { \ + fprintf(stderr, "appcore: "fmt"\n", ##arg); \ + LOGE(fmt, ##arg); \ + } while (0) +# define _INFO(...) LOGI(__VA_ARGS__) +# define _DBG(...) LOGD(__VA_ARGS__) +#endif + + + -- 2.7.4