1*4d7e907cSAndroid Build Coastguard Worker /* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2020 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Worker #pragma once 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Worker #include <android/hardware/gnss/BnGnssCallback.h> 20*4d7e907cSAndroid Build Coastguard Worker #include <utility> 21*4d7e907cSAndroid Build Coastguard Worker #include "GnssCallbackEventQueue.h" 22*4d7e907cSAndroid Build Coastguard Worker 23*4d7e907cSAndroid Build Coastguard Worker /* Callback class for data & Event. */ 24*4d7e907cSAndroid Build Coastguard Worker class GnssCallbackAidl : public android::hardware::gnss::BnGnssCallback { 25*4d7e907cSAndroid Build Coastguard Worker public: GnssCallbackAidl()26*4d7e907cSAndroid Build Coastguard Worker GnssCallbackAidl() 27*4d7e907cSAndroid Build Coastguard Worker : capabilities_cbq_("capabilities"), 28*4d7e907cSAndroid Build Coastguard Worker signal_type_capabilities_cbq_("signal_type_capabilities"), 29*4d7e907cSAndroid Build Coastguard Worker info_cbq_("system_info"), 30*4d7e907cSAndroid Build Coastguard Worker location_cbq_("location"), 31*4d7e907cSAndroid Build Coastguard Worker sv_info_list_cbq_("sv_info"), 32*4d7e907cSAndroid Build Coastguard Worker sv_info_list_timestamps_millis_cbq_("sv_info_timestamps"), 33*4d7e907cSAndroid Build Coastguard Worker nmea_cbq_("nmea"){}; ~GnssCallbackAidl()34*4d7e907cSAndroid Build Coastguard Worker ~GnssCallbackAidl(){}; 35*4d7e907cSAndroid Build Coastguard Worker 36*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssSetCapabilitiesCb(const int capabilities) override; 37*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssSetSignalTypeCapabilitiesCb( 38*4d7e907cSAndroid Build Coastguard Worker const std::vector<android::hardware::gnss::GnssSignalType>& signalTypes) override; 39*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssStatusCb(const GnssStatusValue status) override; 40*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssSvStatusCb(const std::vector<GnssSvInfo>& svInfoList) override; 41*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssLocationCb( 42*4d7e907cSAndroid Build Coastguard Worker const android::hardware::gnss::GnssLocation& location) override; 43*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssNmeaCb(const int64_t timestamp, const std::string& nmea) override; 44*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssAcquireWakelockCb() override; 45*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssReleaseWakelockCb() override; 46*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssSetSystemInfoCb(const GnssSystemInfo& info) override; 47*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssRequestTimeCb() override; 48*4d7e907cSAndroid Build Coastguard Worker android::binder::Status gnssRequestLocationCb(const bool independentFromGnss, 49*4d7e907cSAndroid Build Coastguard Worker const bool isUserEmergency) override; 50*4d7e907cSAndroid Build Coastguard Worker 51*4d7e907cSAndroid Build Coastguard Worker int last_capabilities_; 52*4d7e907cSAndroid Build Coastguard Worker std::vector<android::hardware::gnss::GnssSignalType> last_signal_type_capabilities; 53*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::IGnssCallback::GnssSystemInfo last_info_; 54*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::GnssLocation last_location_; 55*4d7e907cSAndroid Build Coastguard Worker 56*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::common::GnssCallbackEventQueue<int> capabilities_cbq_; 57*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::common::GnssCallbackEventQueue< 58*4d7e907cSAndroid Build Coastguard Worker std::vector<android::hardware::gnss::GnssSignalType>> 59*4d7e907cSAndroid Build Coastguard Worker signal_type_capabilities_cbq_; 60*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::common::GnssCallbackEventQueue< 61*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::IGnssCallback::GnssSystemInfo> 62*4d7e907cSAndroid Build Coastguard Worker info_cbq_; 63*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::common::GnssCallbackEventQueue<android::hardware::gnss::GnssLocation> 64*4d7e907cSAndroid Build Coastguard Worker location_cbq_; 65*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::common::GnssCallbackEventQueue< 66*4d7e907cSAndroid Build Coastguard Worker std::vector<android::hardware::gnss::IGnssCallback::GnssSvInfo>> 67*4d7e907cSAndroid Build Coastguard Worker sv_info_list_cbq_; 68*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::common::GnssCallbackEventQueue<long> 69*4d7e907cSAndroid Build Coastguard Worker sv_info_list_timestamps_millis_cbq_; 70*4d7e907cSAndroid Build Coastguard Worker android::hardware::gnss::common::GnssCallbackEventQueue<std::pair<int64_t, std::string>> 71*4d7e907cSAndroid Build Coastguard Worker nmea_cbq_; 72*4d7e907cSAndroid Build Coastguard Worker };