138bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol/*
238bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * Copyright (C) 2016 The Android Open Source Project
338bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol *
438bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * Licensed under the Apache License, Version 2.0 (the "License");
538bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * you may not use this file except in compliance with the License.
638bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * You may obtain a copy of the License at
738bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol *
838bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol *      http://www.apache.org/licenses/LICENSE-2.0
938bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol *
1038bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * Unless required by applicable law or agreed to in writing, software
1138bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * distributed under the License is distributed on an "AS IS" BASIS,
1238bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1338bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * See the License for the specific language governing permissions and
1438bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol * limitations under the License.
1538bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol */
1638bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol
170d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignol#include "chre/platform/platform_sensor.h"
1838bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol
1938bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignolnamespace chre {
2038bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol
2167de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan ChungPlatformSensor::~PlatformSensor() {}
2267de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung
230d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignolvoid PlatformSensor::init() {
2438bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol  // TODO: Implement this. Probably we would open some files provided to mock
2538bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol  // sensor data. Perhaps from command-line arguemnts.
2638bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol}
2738bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol
280d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignolvoid PlatformSensor::deinit() {
29b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol  // TODO: Implement this. Probably we would close the files opened previously
30b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol  // by init.
31b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol}
32b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol
330d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignolbool PlatformSensor::getSensors(DynamicVector<PlatformSensor> *sensors) {
34cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol  CHRE_ASSERT(sensors);
35cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol
36cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol  // TODO: Implement this. Perhaps look at all sensor trace files provided and
37cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol  // return the list of sensor data available.
38cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol  return false;
39cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol}
40cd70ffd7dc683bd0d473f98ba593362e9cc5a877Andrew Rossignol
41cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignolbool PlatformSensor::setRequest(const SensorRequest& request) {
42f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol  // TODO: Implement this. Perhaps consider the request and start to pass in
43f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol  // sensor samples from mock sensor data once the sensor has transitioned to
44f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol  // being enabled. Maybe consider resampling input data if the provided mock
45f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol  // data rate is higher than requested.
46f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol  return false;
47f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol}
48f546f4c27e66dc4ea868e660cebac9ba0c31fad9Andrew Rossignol
49cb8312e5ce53430576e2343e4863af84676c93adAndrew RossignolSensorType PlatformSensor::getSensorType() const {
50cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignol  // TODO: Implement this.
51cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignol  return SensorType::Unknown;
52cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignol}
53cb8312e5ce53430576e2343e4863af84676c93adAndrew Rossignol
549cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chunguint64_t PlatformSensor::getMinInterval() const {
559cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung  // TODO: Implement this.
569cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung  return 0;
579cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung}
589cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung
599cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chungconst char *PlatformSensor::getSensorName() const {
609cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung  // TODO: Implement this.
619cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung  return "";
629cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung}
639cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung
649cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan ChungPlatformSensor& PlatformSensor::operator=(PlatformSensor&& other) {
659cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung  // TODO: Implement this.
669cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung  return *this;
679cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung}
689cab6df9598abbf843a7b37eed0c7039048deba7Meng-hsuan Chung
6967de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan ChungChreSensorData *PlatformSensor::getLastEvent() const {
7067de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung  // TODO: Implement this.
7167de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung  return nullptr;
7267de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung}
7367de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung
7467de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chungvoid PlatformSensor::setLastEvent(const ChreSensorData *event) {
7567de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung  // TODO: Implement this.
7667de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung}
7767de3f239af66c0d5733950a916bc5566f2017f0Meng-hsuan Chung
7838bec5401084a884b19e8523649548d6a4f7169aAndrew Rossignol}  // namespace chre
79