Merge branch 'devel/master' into tizen
[platform/core/uifw/dali-adaptor.git] / dali / internal / window-system / tizen-wayland / ecore-wl2 / window-system-ecore-wl2.cpp
1 /*
2  * Copyright (c) 2022 Samsung Electronics Co., Ltd.
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 // INTERNAL HEADERS
19 #include <dali/devel-api/adaptor-framework/keyboard.h>
20 #include <dali/internal/window-system/common/window-system.h>
21
22 // EXTERNAL_HEADERS
23 #include <Ecore_Wl2.h>
24
25 namespace Dali
26 {
27 namespace Internal
28 {
29 namespace Adaptor
30 {
31 namespace WindowSystem
32 {
33 namespace
34 {
35 static int32_t gScreenWidth  = 0;
36 static int32_t gScreenHeight = 0;
37 } // unnamed namespace
38
39 void Initialize()
40 {
41   ecore_wl2_init();
42 }
43
44 void Shutdown()
45 {
46   ecore_wl2_shutdown();
47 }
48
49 void GetScreenSize(int32_t& width, int32_t& height)
50 {
51   if(gScreenWidth == 0 || gScreenHeight == 0)
52   {
53     Ecore_Wl2_Display* display = ecore_wl2_display_connect(NULL);
54     if(display)
55     {
56       ecore_wl2_display_screen_size_get(display, &gScreenWidth, &gScreenHeight);
57       DALI_ASSERT_ALWAYS((gScreenWidth > 0) && "screen width is 0");
58       DALI_ASSERT_ALWAYS((gScreenHeight > 0) && "screen height is 0");
59     }
60   }
61   width  = gScreenWidth;
62   height = gScreenHeight;
63 }
64
65 void UpdateScreenSize()
66 {
67   Ecore_Wl2_Display* display = ecore_wl2_display_connect(NULL);
68   if(display)
69   {
70     ecore_wl2_display_screen_size_get(display, &gScreenWidth, &gScreenHeight);
71   }
72 }
73
74 bool SetKeyboardRepeatInfo(float rate, float delay)
75 {
76   Ecore_Wl2_Input* input = ecore_wl2_input_default_input_get(ecore_wl2_connected_display_get(NULL));
77   return ecore_wl2_input_keyboard_repeat_set(input, static_cast<double>(rate), static_cast<double>(delay));
78 }
79
80 bool GetKeyboardRepeatInfo(float& rate, float& delay)
81 {
82   Ecore_Wl2_Input* input = ecore_wl2_input_default_input_get(ecore_wl2_connected_display_get(NULL));
83   double           rateVal, delayVal;
84   bool             ret = ecore_wl2_input_keyboard_repeat_get(input, &rateVal, &delayVal);
85   rate                 = static_cast<float>(rateVal);
86   delay                = static_cast<float>(delayVal);
87
88   return ret;
89 }
90
91 } // namespace WindowSystem
92
93 } // namespace Adaptor
94
95 } // namespace Internal
96
97 } // namespace Dali
98
99 #pragma GCC diagnostic pop