1 /* 2 * Copyright (C) 2020 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 #define LOG_TAG "GnssPsdsAidl" 18 19 #include "GnssPsds.h" 20 #include <aidl/android/hardware/gnss/BnGnss.h> 21 #include <log/log.h> 22 23 namespace aidl::android::hardware::gnss { 24 25 std::shared_ptr<IGnssPsdsCallback> GnssPsds::sCallback = nullptr; 26 setCallback(const std::shared_ptr<IGnssPsdsCallback> & callback)27ndk::ScopedAStatus GnssPsds::setCallback(const std::shared_ptr<IGnssPsdsCallback>& callback) { 28 ALOGD("setCallback"); 29 std::unique_lock<std::mutex> lock(mMutex); 30 sCallback = callback; 31 return ndk::ScopedAStatus::ok(); 32 } 33 injectPsdsData(PsdsType psdsType,const std::vector<uint8_t> & psdsData)34ndk::ScopedAStatus GnssPsds::injectPsdsData(PsdsType psdsType, 35 const std::vector<uint8_t>& psdsData) { 36 ALOGD("injectPsdsData. psdsType: %d, psdsData: %d bytes", static_cast<int>(psdsType), 37 static_cast<int>(psdsData.size())); 38 if (psdsData.size() > 0) { 39 return ndk::ScopedAStatus::ok(); 40 } else { 41 return ndk::ScopedAStatus::fromServiceSpecificError(IGnss::ERROR_INVALID_ARGUMENT); 42 } 43 } 44 } // namespace aidl::android::hardware::gnss 45