xref: /aosp_15_r20/external/webrtc/sdk/android/src/jni/pc/dtmf_sender.cc (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1 /*
2  *  Copyright 2017 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #include "api/dtmf_sender_interface.h"
12 #include "sdk/android/generated_peerconnection_jni/DtmfSender_jni.h"
13 #include "sdk/android/native_api/jni/java_types.h"
14 #include "sdk/android/src/jni/jni_helpers.h"
15 
16 namespace webrtc {
17 namespace jni {
18 
JNI_DtmfSender_CanInsertDtmf(JNIEnv * jni,jlong j_dtmf_sender_pointer)19 static jboolean JNI_DtmfSender_CanInsertDtmf(JNIEnv* jni,
20                                              jlong j_dtmf_sender_pointer) {
21   return reinterpret_cast<DtmfSenderInterface*>(j_dtmf_sender_pointer)
22       ->CanInsertDtmf();
23 }
24 
JNI_DtmfSender_InsertDtmf(JNIEnv * jni,jlong j_dtmf_sender_pointer,const JavaParamRef<jstring> & tones,jint duration,jint inter_tone_gap)25 static jboolean JNI_DtmfSender_InsertDtmf(JNIEnv* jni,
26                                           jlong j_dtmf_sender_pointer,
27                                           const JavaParamRef<jstring>& tones,
28                                           jint duration,
29                                           jint inter_tone_gap) {
30   return reinterpret_cast<DtmfSenderInterface*>(j_dtmf_sender_pointer)
31       ->InsertDtmf(JavaToStdString(jni, tones), duration, inter_tone_gap);
32 }
33 
JNI_DtmfSender_Tones(JNIEnv * jni,jlong j_dtmf_sender_pointer)34 static ScopedJavaLocalRef<jstring> JNI_DtmfSender_Tones(
35     JNIEnv* jni,
36     jlong j_dtmf_sender_pointer) {
37   return NativeToJavaString(
38       jni,
39       reinterpret_cast<DtmfSenderInterface*>(j_dtmf_sender_pointer)->tones());
40 }
41 
JNI_DtmfSender_Duration(JNIEnv * jni,jlong j_dtmf_sender_pointer)42 static jint JNI_DtmfSender_Duration(JNIEnv* jni,
43                                     jlong j_dtmf_sender_pointer) {
44   return reinterpret_cast<DtmfSenderInterface*>(j_dtmf_sender_pointer)
45       ->duration();
46 }
47 
JNI_DtmfSender_InterToneGap(JNIEnv * jni,jlong j_dtmf_sender_pointer)48 static jint JNI_DtmfSender_InterToneGap(JNIEnv* jni,
49                                         jlong j_dtmf_sender_pointer) {
50   return reinterpret_cast<DtmfSenderInterface*>(j_dtmf_sender_pointer)
51       ->inter_tone_gap();
52 }
53 
54 }  // namespace jni
55 }  // namespace webrtc
56