1 /* 2 * Copyright (C) 2025 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 #pragma once 18 #include <memory> 19 20 #include <aidl/android/hardware/radio/ims/BnRadioIms.h> 21 #include "AtChannel.h" 22 23 namespace aidl { 24 namespace android { 25 namespace hardware { 26 namespace radio { 27 namespace implementation { 28 using ::ndk::ScopedAStatus; 29 30 struct RadioIms : public ims::BnRadioIms { 31 RadioIms(std::shared_ptr<AtChannel> atChannel); 32 33 ScopedAStatus setSrvccCallInfo( 34 int32_t serial, const std::vector<ims::SrvccCall>& srvccCalls) override; 35 ScopedAStatus updateImsRegistrationInfo( 36 int32_t serial, const ims::ImsRegistration& imsRegistration) override; 37 ScopedAStatus startImsTraffic( 38 int32_t serial, int32_t token, ims::ImsTrafficType imsTrafficType, 39 AccessNetwork accessNetworkType, ims::ImsCall::Direction trafficDirection) override; 40 ScopedAStatus stopImsTraffic(int32_t serial, int32_t token) override; 41 ScopedAStatus triggerEpsFallback( 42 int32_t serial, ims::EpsFallbackReason reason) override; 43 ScopedAStatus sendAnbrQuery( 44 int32_t serial, ims::ImsStreamType mediaType, 45 ims::ImsStreamDirection direction, int32_t bitsPerSecond) override; 46 ScopedAStatus updateImsCallStatus( 47 int32_t serial, const std::vector<ims::ImsCall>& imsCalls) override; 48 49 void atResponseSink(const AtResponsePtr& response); 50 51 ScopedAStatus setResponseFunctions( 52 const std::shared_ptr<ims::IRadioImsResponse>& radioImsResponse, 53 const std::shared_ptr<ims::IRadioImsIndication>& radioImsIndication) override; 54 55 std::shared_ptr<ims::IRadioImsResponse> mRadioImsResponse; 56 std::shared_ptr<ims::IRadioImsIndication> mRadioImsIndication; 57 }; 58 59 } // namespace implementation 60 } // namespace radio 61 } // namespace hardware 62 } // namespace android 63 } // namespace aidl 64