1 /*
2 * Copyright (C) 2017 The Android Open Source Project
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 #include "DirectReportChannel.h"
18 #include "utils.h"
19
20 namespace android {
21 namespace frameworks {
22 namespace sensorservice {
23 namespace V1_0 {
24 namespace implementation {
25
DirectReportChannel(::android::SensorManager & manager,int channelId)26 DirectReportChannel::DirectReportChannel(::android::SensorManager& manager, int channelId)
27 : mManager(manager), mId(channelId) {}
28
~DirectReportChannel()29 DirectReportChannel::~DirectReportChannel() {
30 mManager.destroyDirectChannel(mId);
31 }
32
33 // Methods from ::android::frameworks::sensorservice::V1_0::IDirectReportChannel follow.
configure(int32_t sensorHandle,RateLevel rate,configure_cb _hidl_cb)34 Return<void> DirectReportChannel::configure(int32_t sensorHandle, RateLevel rate,
35 configure_cb _hidl_cb) {
36 int token = mManager.configureDirectChannel(mId,
37 static_cast<int>(sensorHandle), static_cast<int>(rate));
38 _hidl_cb(token <= 0 ? 0 : token,
39 token <= 0 ? convertResult(token) : Result::OK);
40 return Void();
41 }
42
43
44 } // namespace implementation
45 } // namespace V1_0
46 } // namespace sensorservice
47 } // namespace frameworks
48 } // namespace android
49