1 /*
2  * Copyright (C) 2023 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 #pragma once
17 
18 #include <libradiocompat/RadioImsMedia.h>
19 #include <libradiocompat/RadioImsMediaSession.h>
20 
21 namespace cf::ril {
22 
23 class RefImsMedia : public android::hardware::radio::compat::RadioImsMedia {
24   public:
25     using android::hardware::radio::compat::RadioImsMedia::RadioImsMedia;
26 
27     ::ndk::ScopedAStatus setListener(
28             const std::shared_ptr<::aidl::android::hardware::radio::ims::media::IImsMediaListener>&
29                     in_mediaListener) override;
30     ::ndk::ScopedAStatus openSession(
31             int32_t in_sessionId,
32             const ::aidl::android::hardware::radio::ims::media::LocalEndPoint& in_localEndPoint,
33             const ::aidl::android::hardware::radio::ims::media::RtpConfig& in_config) override;
34     ::ndk::ScopedAStatus closeSession(int32_t in_sessionId) override;
35 };
36 
37 class RefImsMediaSession : public android::hardware::radio::compat::RadioImsMediaSession {
38   public:
39     using android::hardware::radio::compat::RadioImsMediaSession::RadioImsMediaSession;
40 
41     ::ndk::ScopedAStatus setListener(
42             const std::shared_ptr<
43                     ::aidl::android::hardware::radio::ims::media::IImsMediaSessionListener>&
44                     in_sessionListener) override;
45     ::ndk::ScopedAStatus modifySession(
46             const ::aidl::android::hardware::radio::ims::media::RtpConfig& in_config) override;
47     ::ndk::ScopedAStatus sendDtmf(char16_t in_dtmfDigit, int32_t in_duration) override;
48     ::ndk::ScopedAStatus startDtmf(char16_t in_dtmfDigit) override;
49     ::ndk::ScopedAStatus stopDtmf() override;
50     ::ndk::ScopedAStatus sendHeaderExtension(
51             const std::vector<::aidl::android::hardware::radio::ims::media::RtpHeaderExtension>&
52                     in_extensions) override;
53     ::ndk::ScopedAStatus setMediaQualityThreshold(
54             const ::aidl::android::hardware::radio::ims::media::MediaQualityThreshold& in_threshold)
55             override;
56 };
57 
58 }  // namespace cf::ril
59