Modify screen connector
[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 void (*aul_screen_viewer_cb)(const char *appid,
41                 const char *instance_id, const int pid,
42                 const unsigned int surface_id,
43                 aul_screen_connector_event_type_e event_type, void *data);
44
45 typedef struct aul_screen_viewer_s *aul_screen_viewer_h;
46
47 /*
48  * This API is only for Appfw internally.
49  */
50 int aul_screen_connector_add_app_screen(const char *instance_id,
51                 unsigned int surf);
52
53 /*
54  * This API is only for Appfw internally.
55  */
56 int aul_screen_connector_remove_app_screen(const char *instance_id);
57
58 /*
59  * This API is only for Appfw internally.
60  */
61 int aul_screen_connector_send_update_request(const char *appid,
62                 const char *instance_id);
63
64 /*
65  * This API is only for Appfw internally.
66  */
67 int aul_screen_connector_add_screen_viewer(aul_screen_viewer_cb callback,
68                 aul_screen_type_e type, bool priv,
69                 void *data, aul_screen_viewer_h *handle);
70
71 /*
72  * This API is only for Appfw internally.
73  */
74 int aul_screen_connector_remove_screen_viewer(aul_screen_viewer_h handle);
75
76 #ifdef __cplusplus
77 }
78 #endif
79
80 #endif /* __AUL_SCREEN_CONNECTOR_H__ */