Home | History | Annotate | Download | only in smgr
      1 /*
      2  * Copyright (C) 2016 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 #ifndef CHRE_PLATFORM_SLPI_SMGR_PLATFORM_SENSOR_UTIL_H_
     18 #define CHRE_PLATFORM_SLPI_SMGR_PLATFORM_SENSOR_UTIL_H_
     19 
     20 #include <cstdint>
     21 
     22 #include "chre/util/time.h"
     23 
     24 namespace chre {
     25 
     26 /**
     27  * Converts an interval in nanoseconds to an SMGR report rate. SMGR overloads
     28  * the value of a uint16_t to have an inversion point at which the value is no
     29  * longer a sample rate and becomes an interval for sub-zero sampling rates.
     30  * This function handles that conversion.
     31  *
     32  * @param interval The sampling interval to convert to a report rate.
     33  * @return Returns the SMGR report rate for this interval.
     34  */
     35 uint16_t intervalToSmgrSamplingRate(Nanoseconds interval);
     36 
     37 /**
     38  * Converts an interval in nanoseconds to an SMGR report rate in Hz and Q16
     39  * format.
     40  *
     41  * @param interval The interval to convert to a report rate.
     42  * @return Returns the SMGR uint32_t report rate for this interval.
     43  */
     44 uint32_t intervalToSmgrQ16ReportRate(Nanoseconds interval);
     45 
     46 }  // namespace chre
     47 
     48 #endif  // CHRE_PLATFORM_SLPI_SMGR_PLATFORM_SENSOR_UTIL_H_
     49