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_supported(sensor_type_t type)
34 int ret = sensord_get_default_sensor(type, &sensor);
41 int sensor_adapter::get_count(sensor_type_t type)
46 if (sensord_get_sensors(type, &sensors, &count) == 0)
52 bool sensor_adapter::get_handle(sensor_info info, int &handle)
58 err = sensord_get_sensors(info.type, &sensors, &count);
61 handle = sensord_connect(sensors[info.index]);
67 bool sensor_adapter::start(sensor_info info, int &handle)
74 err = sensord_get_sensors(info.type, &sensors, &count);
76 ASSERT_LT(info.index, count);
77 ASSERT_GE(info.index, 0);
79 handle = sensord_connect(sensors[info.index]);
82 ret = sensord_register_event(handle, SENSOR_EVENT(info.type), info.interval, info.batch_latency, info.cb, NULL);
85 ret = sensord_start(handle, info.powersave);
93 bool sensor_adapter::stop(sensor_info info, int handle)
97 ret = sensord_stop(handle);
100 ret = sensord_unregister_event(handle, SENSOR_EVENT(info.type));
103 ret = sensord_disconnect(handle);
109 bool sensor_adapter::change_interval(int handle, int interval)
114 bool sensor_adapter::change_batch_latency(int handle, int batch_latency)
119 bool sensor_adapter::change_powersave(int handle, int powersave)
124 bool sensor_adapter::set_attribute(int handle, int attribute, int value)
128 ret = sensord_set_attribute_int(handle, attribute, value);
134 bool sensor_adapter::set_attribute(int handle, int attribute, char *value, int size)
138 ret = sensord_set_attribute_str(handle, attribute, value, size);
140 return ((ret == 0) ? true : false);
143 bool sensor_adapter::get_data(int handle, sensor_type_t type, sensor_data_t &data)
147 ret = sensord_get_data(handle, SENSOR_EVENT(type), &data);
153 bool sensor_adapter::flush(int handle)
157 ret = sensord_flush(handle);