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 "chre/platform/platform_sensor.h"
18 
19 namespace chre {
20 
initBase(uint8_t sensorType,uint64_t minInterval,const char * sensorName,bool passiveSupported,uint16_t targetGroupMask)21 void PlatformSensorBase::initBase(uint8_t sensorType, uint64_t minInterval,
22                                   const char *sensorName, bool passiveSupported,
23                                   uint16_t targetGroupMask) {
24   mSensorType = sensorType;
25   mMinInterval = minInterval;
26   memcpy(mSensorName, sensorName, kSensorNameMaxLen);
27 
28   mPassiveSupported = passiveSupported;
29   mTargetGroupMask = targetGroupMask;
30 }
31 
getSensorType() const32 uint8_t PlatformSensor::getSensorType() const {
33   return mSensorType;
34 }
35 
getMinInterval() const36 uint64_t PlatformSensor::getMinInterval() const {
37   return mMinInterval;
38 }
39 
reportsBiasEvents() const40 bool PlatformSensor::reportsBiasEvents() const {
41   return PlatformSensorTypeHelpersBase::reportsBias(mSensorType);
42 }
43 
supportsPassiveMode() const44 bool PlatformSensor::supportsPassiveMode() const {
45   return mPassiveSupported;
46 }
47 
getSensorName() const48 const char *PlatformSensor::getSensorName() const {
49   return mSensorName;
50 }
51 
getTargetGroupMask() const52 uint16_t PlatformSensor::getTargetGroupMask() const {
53   return mTargetGroupMask;
54 }
55 
PlatformSensor(PlatformSensor && other)56 PlatformSensor::PlatformSensor(PlatformSensor &&other) {
57   *this = std::move(other);
58 }
59 
getSensorIndex() const60 uint8_t PlatformSensor::getSensorIndex() const {
61   return CHRE_SENSOR_INDEX_DEFAULT;
62 }
63 
operator =(PlatformSensor && other)64 PlatformSensor &PlatformSensor::operator=(PlatformSensor &&other) {
65   // Note: if this implementation is ever changed to depend on "this" containing
66   // initialized values, the move constructor implementation must be updated.
67   mSensorType = other.mSensorType;
68   mMinInterval = other.mMinInterval;
69   mPassiveSupported = other.mPassiveSupported;
70   mTargetGroupMask = other.mTargetGroupMask;
71 
72   memcpy(mSensorName, other.mSensorName, kSensorNameMaxLen);
73 
74   return *this;
75 }
76 
77 }  // namespace chre
78