2 * Copyright (c) 2013, TOYOTA MOTOR CORPORATION.
4 * This program is licensed under the terms and conditions of the
5 * Apache License, version 2.0. The full tWlExt of the Apache License is at
6 * http://www.apache.org/licenses/LICENSE-2.0
10 //==========================================================================
12 * @file CicoSCWlInputMgrIF.cpp
16 //==========================================================================
19 #include "CicoSCWlInputMgrIF.h"
22 //==========================================================================
24 //==========================================================================
26 // ico_exinput listener
27 struct ico_exinput_listener CicoSCWlInputMgrIF::ms_exInputListener = {
28 .capabilities = CicoSCWlInputMgrIF::wlCapabilitiesCB,
29 .code = CicoSCWlInputMgrIF::wlCodeCB,
30 .input = CicoSCWlInputMgrIF::wlInputCB
33 // ico_input_mgr_device listener
34 struct ico_input_mgr_device_listener CicoSCWlInputMgrIF::ms_devListener = {
35 .input_region = CicoSCWlInputMgrIF::wlRegionCB
38 //--------------------------------------------------------------------------
40 * @brief default constructor
42 //--------------------------------------------------------------------------
43 CicoSCWlInputMgrIF::CicoSCWlInputMgrIF()
44 : m_inputmgr(NULL), m_exinput(NULL), m_inputmgrdev(NULL)
48 //--------------------------------------------------------------------------
52 //--------------------------------------------------------------------------
53 CicoSCWlInputMgrIF::~CicoSCWlInputMgrIF()
57 //--------------------------------------------------------------------------
59 * @brief initialize ico_input_mgr interfaces
61 * @param [IN] data user data
62 * @param [IN] registry wayland registry
63 * @param [IN] name wayland display id
64 * @parma [IN] interface wayland interface name
65 * @parma [IN] version wayland interface version number
67 //--------------------------------------------------------------------------
69 CicoSCWlInputMgrIF::initInterface(void *data,
70 struct wl_registry *registry,
72 const char *interface,
75 ICO_DBG("CicoSCWlInputMgrIF::initInterface : Enter(interface=%s)",
78 if (0 == strcmp(interface, ICO_WL_INPUT_MGR_CTRL_IF)) {
79 // get interface instance
80 void *wlProxy = wl_registry_bind(registry,
82 &ico_input_mgr_control_interface,
84 if (NULL == wlProxy) {
85 ICO_WRN("initInterface : interface(%s) wl_registry_bind failed.",
87 ICO_WRN("initInterface : Leave(binding failed");
91 m_inputmgr = (struct ico_input_mgr_control*)wlProxy;
93 else if (0 == strcmp(interface, ICO_WL_EXINPUT_IF)) {
94 // get interface instance
95 void *wlProxy = wl_registry_bind(registry,
97 &ico_exinput_interface,
99 if (NULL == wlProxy) {
100 ICO_WRN("initInterface : interface(%s) wl_registry_bind failed.",
102 ICO_WRN("initInterface : Leave(binding failed");
106 m_exinput = (struct ico_exinput*)wlProxy;
107 ico_exinput_add_listener(m_exinput,
111 ico_exinput_set_user_data(m_exinput, NULL/*user data*/);
114 else if (0 == strcmp(interface, ICO_WL_INPUT_MGR_DEV_IF)) {
115 // get interface instance
116 void *wlProxy = wl_registry_bind(registry,
118 &ico_input_mgr_device_interface,
120 if (NULL == wlProxy) {
121 ICO_WRN("initInterface : interface(%s) wl_registry_bind failed.",
123 ICO_WRN("initInterface : Leave(binding failed");
127 m_inputmgrdev = (struct ico_input_mgr_device*)wlProxy;
128 ico_input_mgr_device_add_listener(m_inputmgrdev,
132 ico_input_mgr_device_set_user_data(m_inputmgrdev, NULL/*user data*/);
136 if ((NULL != m_inputmgrdev) &&
137 (NULL != m_inputmgr) &&
138 (NULL != m_exinput)) {
139 m_initialized = true;
141 ICO_DBG("CicoSCWlInputMgrIF::initInterface : Leave");
144 //--------------------------------------------------------------------------
146 * @brief callback to application for input switch information
148 * @param [IN] data user data
149 * @param [IN] ico_exinput wayland ico_exinput interface
150 * @param [IN] device input device name
151 * @param [IN] type input device type (as enum type)
152 * @param [IN] swname input switch name
153 * @param [IN] input input switch number
154 * @param [IN] codename input code name
155 * @param [IN] code input code number
157 //--------------------------------------------------------------------------
159 CicoSCWlInputMgrIF::capabilitiesCB(void *data,
160 struct ico_exinput *ico_exinput,
165 const char *codename,
168 ICO_WRN("CicoSCWlInputMgrIF::capabilitiesCB called.");
171 //--------------------------------------------------------------------------
173 * @brief callback to application for input code information
175 * @param [IN] data user data
176 * @param [IN] ico_exinput wayland ico_exinput interface
177 * @param [IN] device input device name
178 * @param [IN] input input switch number
179 * @param [IN] codename input code name
180 * @param [IN] code input code number
182 //--------------------------------------------------------------------------
184 CicoSCWlInputMgrIF::codeCB(void *data,
185 struct ico_exinput *ico_exinput,
188 const char *codename,
191 ICO_WRN("CicoSCWlInputMgrIF::codeCB called.");
194 //--------------------------------------------------------------------------
196 * @brief callback to application for switch input
198 * @param [IN] data user data
199 * @param [IN] ico_exinput wayland ico_exinput interface
200 * @param [IN] time input time of miri-sec
201 * @param [IN] device input device name
202 * @param [IN] input input switch number
203 * @param [IN] code input switch code
204 * @param [IN] state Of/Off status
206 //--------------------------------------------------------------------------
208 CicoSCWlInputMgrIF::inputCB(void *data,
209 struct ico_exinput *ico_exinput,
216 ICO_WRN("CicoSCWlInputMgrIF::inputCB called.");
219 //--------------------------------------------------------------------------
221 * @brief callback to application for change input region
223 * @param [IN] data user data
224 * @param [IN] ico_input_mgr_dev wayland ico_exinput interface
225 * @param [IN] region input regions
227 //--------------------------------------------------------------------------
229 CicoSCWlInputMgrIF::regionCB(void *data,
230 struct ico_input_mgr_device *ico_input_mgr_dev,
231 struct wl_array *region)
233 ICO_WRN("CicoSCWlInputMgrIF::regionCB called.");
236 //==========================================================================
238 //==========================================================================
240 //--------------------------------------------------------------------------
242 * @brief callback to application for input switch information
244 * @param [IN] data user data
245 * @param [IN] ico_exinput wayland ico_exinput interface
246 * @param [IN] device input device name
247 * @param [IN] type input device type (as enum type)
248 * @param [IN] swname input switch name
249 * @param [IN] input input switch number
250 * @param [IN] codename input code name
251 * @param [IN] code input code number
253 //--------------------------------------------------------------------------
255 CicoSCWlInputMgrIF::wlCapabilitiesCB(void *data,
256 struct ico_exinput *ico_exinput,
261 const char *codename,
264 ICO_DBG("CicoSCWlInputMgrIF::wlCapabilitiesCB Enter");
267 ICO_WRN("wlCapabilitiesCB: data is null");
270 static_cast<CicoSCWlInputMgrIF*>(data)->capabilitiesCB(data, ico_exinput,
274 ICO_DBG("CicoSCWlInputMgrIF::wlCapabilitiesCB Leave");
277 //--------------------------------------------------------------------------
279 * @brief callback to application for input code information
281 * @param [IN] data user data
282 * @param [IN] ico_exinput wayland ico_exinput interface
283 * @param [IN] device input device name
284 * @param [IN] input input switch number
285 * @param [IN] codename input code name
286 * @param [IN] code input code number
288 //--------------------------------------------------------------------------
290 CicoSCWlInputMgrIF::wlCodeCB(void *data,
291 struct ico_exinput *ico_exinput,
294 const char *codename,
297 ICO_DBG("CicoSCWlInputMgrIF::wlCodeCB Enter");
300 ICO_WRN("wlCodeCB: data is null");
303 static_cast<CicoSCWlInputMgrIF*>(data)->codeCB(data, ico_exinput,
307 ICO_DBG("CicoSCWlInputMgrIF::wlCodeCB Leave");
310 //--------------------------------------------------------------------------
312 * @brief callback to application for switch input
314 * @param [IN] data user data
315 * @param [IN] ico_exinput wayland ico_exinput interface
316 * @param [IN] time input time of miri-sec
317 * @param [IN] device input device name
318 * @param [IN] input input switch number
319 * @param [IN] code input switch code
320 * @param [IN] state Of/Off status
322 //--------------------------------------------------------------------------
324 CicoSCWlInputMgrIF::wlInputCB(void *data,
325 struct ico_exinput *ico_exinput,
332 ICO_DBG("CicoSCWlInputMgrIF::wlInputCB Enter");
335 ICO_WRN("wlInputCB: data is null");
338 static_cast<CicoSCWlInputMgrIF*>(data)->inputCB(data, ico_exinput,
342 ICO_DBG("CicoSCWlInputMgrIF::wlInputCB Leave");
345 //--------------------------------------------------------------------------
347 * @brief callback to application for change input region
349 * @param [IN] data user data
350 * @param [IN] ico_input_mgr_dev wayland ico_exinput interface
351 * @param [IN] region input regions
353 //--------------------------------------------------------------------------
355 CicoSCWlInputMgrIF::wlRegionCB(void *data,
356 struct ico_input_mgr_device *ico_input_mgr_dev,
357 struct wl_array *region)
359 ICO_DBG("CicoSCWlInputMgrIF::wlRegionCB Enter");
362 ICO_WRN("wlRegionCB: data is null");
365 static_cast<CicoSCWlInputMgrIF*>(data)->regionCB(data, ico_input_mgr_dev,
368 ICO_DBG("CicoSCWlInputMgrIF::wlRegionCB Leave");
370 // vim:set expandtab ts=4 sw=4: