upload tizen1.0 source
[platform/core/appfw/app-core.git] / include / appcore-internal.h
1 /*
2  *  app-core
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Jayoun Lee <airjany@samsung.com>, Sewook Park <sewook7.park@samsung.com>, Jaeho Lee <jaeho81.lee@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22
23
24 #ifndef __APPCORE_INTERNAL_H__
25 #define __APPCORE_INTERNAL_H__
26
27 #define LOG_TAG "Appcore"
28
29 #include <stdio.h>
30 #include <dlog.h>
31 #include "appcore-common.h"
32
33
34 #ifndef EXPORT_API
35 #  define EXPORT_API __attribute__ ((visibility("default")))
36 #endif
37
38 #ifndef _DLOG_H_
39 #  define _ERR(fmt, arg...) \
40         do { fprintf(stderr, "appcore: "fmt"\n", ##arg); } while (0)
41
42 #  define _INFO(fmt, arg...) \
43         do { fprintf(stdout, fmt"\n", ##arg); } while (0)
44
45 #  define _DBG(fmt, arg...) \
46         do { \
47                 if (getenv("APPCORE_DEBUG")) { \
48                         fprintf(stdout, fmt"\n", ##arg); \
49                 } \
50         } while (0)
51 #else
52 #  define _ERR(fmt, arg...) \
53         do { \
54                 fprintf(stderr, "appcore: "fmt"\n", ##arg); \
55                 LOGE(fmt, ##arg); \
56         } while (0)
57 #  define _INFO(...) LOGI(__VA_ARGS__)
58 #  define _DBG(...) LOGD(__VA_ARGS__)
59 #endif
60
61 #define _warn_if(expr, fmt, arg...) do { \
62                 if (expr) { \
63                         _ERR(fmt, ##arg); \
64                 } \
65         } while (0)
66
67 #define _ret_if(expr) do { \
68                 if (expr) { \
69                         return; \
70                 } \
71         } while (0)
72
73 #define _retv_if(expr, val) do { \
74                 if (expr) { \
75                         return (val); \
76                 } \
77         } while (0)
78
79 #define _retm_if(expr, fmt, arg...) do { \
80                 if (expr) { \
81                         _ERR(fmt, ##arg); \
82                         return; \
83                 } \
84         } while (0)
85
86 #define _retvm_if(expr, val, fmt, arg...) do { \
87                 if (expr) { \
88                         _ERR(fmt, ##arg); \
89                         return (val); \
90                 } \
91         } while (0)
92
93 /**
94  * Appcore internal state
95  */
96 enum app_state {
97         AS_NONE,
98         AS_CREATED,
99         AS_RUNNING,
100         AS_PAUSED,
101         AS_DYING,
102 };
103
104 /**
105  * Appcore internal event
106  */
107 enum app_event {
108         AE_UNKNOWN,
109         AE_CREATE,
110         AE_TERMINATE,
111         AE_PAUSE,
112         AE_RESUME,
113         AE_RESET,
114         AE_LOWMEM_POST,
115         AE_MEM_FLUSH,
116         AE_MAX
117 };
118
119 /**
120  * Appcore internal system event
121  */
122 enum sys_event {
123         SE_UNKNOWN,
124         SE_LOWMEM,
125         SE_LOWBAT,
126         SE_LANGCHG,
127         SE_REGIONCHG,
128         SE_MAX
129 };
130
131 /**
132  * Appcore system event operation
133  */
134 struct sys_op {
135         int (*func) (void *);
136         void *data;
137 };
138
139 /**
140  * Appcore internal structure
141  */
142 struct appcore {
143         int state;
144
145         const struct ui_ops *ops;
146         struct sys_op sops[SE_MAX];
147 };
148
149 /**
150  * Appcore UI operation
151  */
152 struct ui_ops {
153         void *data;
154         void (*cb_app) (enum app_event evnt, void *data, bundle *b);
155 };
156
157 /* appcore-i18n.c */
158 extern void update_lang(void);
159 extern int set_i18n(const char *domainname, const char *dirname);
160 void update_region(void);
161
162
163 /* appcore-X.c */
164 extern int x_raise_win(pid_t pid);
165
166 /* appcore-util.c */
167 /* extern void stack_trim(void);*/
168
169 int appcore_pause_rotation_cb(void);
170 int appcore_resume_rotation_cb(void);
171
172
173 #define ENV_START "APP_START_TIME"
174
175 #define MEMORY_FLUSH_ACTIVATE
176
177 #endif                          /* __APPCORE_INTERNAL_H__ */