Initialize Tizen 2.3
[framework/system/deviced.git] / src / display / display-ops.c
1 /*
2  * deviced
3  *
4  * Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the License);
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19
20 #include <stdio.h>
21
22 #include "util.h"
23 #include "display-ops.h"
24 #include "core/list.h"
25 #include "core/common.h"
26
27 static dd_list *disp_head;
28
29 void add_display(const struct display_ops *disp)
30 {
31         DD_LIST_APPEND(disp_head, disp);
32 }
33
34 void remove_display(const struct display_ops *disp)
35 {
36         DD_LIST_REMOVE(disp_head, disp);
37 }
38
39 const struct display_ops *find_display(const char *name)
40 {
41         dd_list *elem;
42         const struct display_ops *disp;
43
44         DD_LIST_FOREACH(disp_head, elem, disp) {
45                 if (!strcmp(disp->name, name))
46                         return disp;
47         }
48         return NULL;
49 }
50
51 void display_ops_init(void *data)
52 {
53         dd_list *elem;
54         const struct display_ops *disp;
55
56         DD_LIST_FOREACH(disp_head, elem, disp) {
57                 _D("[%s] initialize", disp->name);
58                 if (disp->init)
59                         disp->init(data);
60         }
61 }
62
63 void display_ops_exit(void *data)
64 {
65         dd_list *elem;
66         const struct display_ops *disp;
67
68         DD_LIST_FOREACH(disp_head, elem, disp) {
69                 _D("[%s] deinitialize", disp->name);
70                 if (disp->exit)
71                         disp->exit(data);
72         }
73 }
74