Add new functions to handling running components
[platform/core/appfw/aul-1.git] / include / aul_screen_connector.h
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 #ifndef __AUL_SCREEN_CONNECTOR_H__
19 #define __AUL_SCREEN_CONNECTOR_H__
20
21 #include <stdbool.h>
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 typedef enum {
28         AUL_SCREEN_TYPE_WIDGET = 0x01,
29         AUL_SCREEN_TYPE_WATCH = 0x02,
30         AUL_SCREEN_TYPE_UI = 0x04,
31         AUL_SCREEN_TYPE_ALL = AUL_SCREEN_TYPE_WIDGET | AUL_SCREEN_TYPE_WATCH | AUL_SCREEN_TYPE_UI,
32 } aul_screen_type_e;
33
34 typedef enum {
35         AUL_SCREEN_CONNECTOR_EVENT_TYPE_ADD,
36         AUL_SCREEN_CONNECTOR_EVENT_TYPE_REMOVE,
37         AUL_SCREEN_CONNECTOR_EVENT_TYPE_UPDATE,
38 } aul_screen_connector_event_type_e;
39
40 typedef enum {
41         AUL_SCREEN_STATUS_RESUME,
42         AUL_SCREEN_STATUS_PRE_RESUME,
43         AUL_SCREEN_STATUS_PAUSE,
44 } aul_screen_status_e;
45
46 typedef void (*aul_screen_viewer_cb)(const char *appid,
47                 const char *instance_id, const int pid,
48                 const unsigned int surface_id,
49                 aul_screen_connector_event_type_e event_type, void *data);
50
51 typedef struct aul_screen_viewer_s *aul_screen_viewer_h;
52
53 /*
54  * This API is only for Appfw internally.
55  */
56 int aul_screen_connector_add_app_screen(const char *instance_id,
57                 unsigned int surf);
58
59 /*
60  * This API is only for Appfw internally.
61  */
62 int aul_screen_connector_remove_app_screen(const char *instance_id);
63
64 /*
65  * This API is only for Appfw internally.
66  */
67 int aul_screen_connector_send_update_request(const char *appid,
68                 const char *instance_id);
69
70 /*
71  * This API is only for Appfw internally.
72  */
73 int aul_screen_connector_add_screen_viewer(aul_screen_viewer_cb callback,
74                 aul_screen_type_e type, bool priv,
75                 void *data, aul_screen_viewer_h *handle);
76
77 /*
78  * This API is only for Appfw internally.
79  */
80 int aul_screen_connector_remove_screen_viewer(aul_screen_viewer_h handle);
81
82 /*
83  * This API is only for Appfw internally.
84  */
85 int aul_screen_connector_get_appid_by_surface_id(unsigned int surface_id,
86                 char **appid);
87
88 /*
89  * This API is only for Appfw internally.
90  */
91 int aul_screen_connector_get_instance_id_by_surface_id(unsigned int surface_id,
92                 char **instance_id);
93
94 /*
95  * This API is only for Appfw internally.
96  */
97 int aul_screen_connector_update_screen_viewer_status(aul_screen_status_e status,
98                 unsigned int provider_surf);
99
100 #ifdef __cplusplus
101 }
102 #endif
103
104 #endif /* __AUL_SCREEN_CONNECTOR_H__ */