4 * Copyright (c) 2017 Samsung Electronics Co., Ltd.
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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
20 #include "sensor_adapter.h"
22 #include <sensor_internal.h>
26 #include "test_bench.h"
28 #define SENSOR_EVENT(type) ((type) << 16 | 0x1)
30 bool sensor_adapter::is_batch_mode = false;
32 bool sensor_adapter::is_supported(sensor_type_t type)
36 int ret = sensord_get_default_sensor(type, &sensor);
43 int sensor_adapter::get_count(sensor_type_t type)
48 if (sensord_get_sensors(type, &sensors, &count) == 0)
54 bool sensor_adapter::get_handle(sensor_info info, int &handle)
60 err = sensord_get_sensors(info.type, &sensors, &count);
63 handle = sensord_connect(sensors[info.index]);
69 bool sensor_adapter::start(sensor_info info, int &handle)
76 err = sensord_get_sensors(info.type, &sensors, &count);
78 ASSERT_LT(info.index, count);
79 ASSERT_GE(info.index, 0);
81 handle = sensord_connect(sensors[info.index]);
85 ret = sensord_register_events(handle, SENSOR_EVENT(info.type), info.batch_latency, info.events_cb, NULL);
87 ret = sensord_register_event(handle, SENSOR_EVENT(info.type), info.interval, info.batch_latency, info.cb, NULL);
91 ret = sensord_start(handle, info.powersave);
99 bool sensor_adapter::stop(sensor_info info, int handle)
103 ret = sensord_stop(handle);
107 ret = sensord_unregister_events(handle, SENSOR_EVENT(info.type));
109 ret = sensord_unregister_event(handle, SENSOR_EVENT(info.type));
113 ret = sensord_disconnect(handle);
119 bool sensor_adapter::change_interval(int handle, int interval)
124 bool sensor_adapter::change_batch_latency(int handle, int batch_latency)
129 bool sensor_adapter::change_powersave(int handle, int powersave)
134 bool sensor_adapter::set_attribute(int handle, int attribute, int value)
138 ret = sensord_set_attribute_int(handle, attribute, value);
144 bool sensor_adapter::set_attribute(int handle, int attribute, char *value, int size)
148 ret = sensord_set_attribute_str(handle, attribute, value, size);
150 return ((ret == 0) ? true : false);
153 bool sensor_adapter::get_data(int handle, sensor_type_t type, sensor_data_t &data)
157 ret = sensord_get_data(handle, SENSOR_EVENT(type), &data);
163 bool sensor_adapter::flush(int handle)
167 ret = sensord_flush(handle);