Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Side by Side Diff: content/browser/media/session/audio_focus_delegate_android.cc

Issue 2416853005: Fixing naming issues in MediaSession (Closed)
Patch Set: addressed nits Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/media/session/media_session_delegate_android.h" 5 #include "content/browser/media/session/audio_focus_delegate_android.h"
6 6
7 #include "base/android/context_utils.h" 7 #include "base/android/context_utils.h"
8 #include "base/android/jni_android.h" 8 #include "base/android/jni_android.h"
9 #include "jni/MediaSessionDelegate_jni.h" 9 #include "jni/AudioFocusDelegate_jni.h"
10 10
11 using base::android::JavaParamRef; 11 using base::android::JavaParamRef;
12 12
13 namespace content { 13 namespace content {
14 14
15 // static 15 // static
16 bool MediaSessionDelegateAndroid::Register(JNIEnv* env) { 16 bool AudioFocusDelegateAndroid::Register(JNIEnv* env) {
17 return RegisterNativesImpl(env); 17 return RegisterNativesImpl(env);
18 } 18 }
19 19
20 MediaSessionDelegateAndroid::MediaSessionDelegateAndroid( 20 AudioFocusDelegateAndroid::AudioFocusDelegateAndroid(
21 MediaSession* media_session) 21 MediaSession* media_session)
22 : media_session_(media_session) { 22 : media_session_(media_session) {}
23
24 AudioFocusDelegateAndroid::~AudioFocusDelegateAndroid() {
25 JNIEnv* env = base::android::AttachCurrentThread();
26 DCHECK(env);
27 Java_AudioFocusDelegate_tearDown(env, j_media_session_delegate_);
23 } 28 }
24 29
25 MediaSessionDelegateAndroid::~MediaSessionDelegateAndroid() { 30 void AudioFocusDelegateAndroid::Initialize() {
26 JNIEnv* env = base::android::AttachCurrentThread(); 31 JNIEnv* env = base::android::AttachCurrentThread();
27 DCHECK(env); 32 DCHECK(env);
28 Java_MediaSessionDelegate_tearDown(env, j_media_session_delegate_); 33 j_media_session_delegate_.Reset(Java_AudioFocusDelegate_create(
29 } 34 env, base::android::GetApplicationContext(),
30
31 void MediaSessionDelegateAndroid::Initialize() {
32 JNIEnv* env = base::android::AttachCurrentThread();
33 DCHECK(env);
34 j_media_session_delegate_.Reset(Java_MediaSessionDelegate_create(
35 env,
36 base::android::GetApplicationContext(),
37 reinterpret_cast<intptr_t>(this))); 35 reinterpret_cast<intptr_t>(this)));
38 } 36 }
39 37
40 bool MediaSessionDelegateAndroid::RequestAudioFocus( 38 bool AudioFocusDelegateAndroid::RequestAudioFocus(
41 AudioFocusManager::AudioFocusType audio_focus_type) { 39 AudioFocusManager::AudioFocusType audio_focus_type) {
42 JNIEnv* env = base::android::AttachCurrentThread(); 40 JNIEnv* env = base::android::AttachCurrentThread();
43 DCHECK(env); 41 DCHECK(env);
44 return Java_MediaSessionDelegate_requestAudioFocus( 42 return Java_AudioFocusDelegate_requestAudioFocus(
45 env, j_media_session_delegate_, 43 env, j_media_session_delegate_,
46 audio_focus_type == 44 audio_focus_type ==
47 AudioFocusManager::AudioFocusType::GainTransientMayDuck); 45 AudioFocusManager::AudioFocusType::GainTransientMayDuck);
48 } 46 }
49 47
50 void MediaSessionDelegateAndroid::AbandonAudioFocus() { 48 void AudioFocusDelegateAndroid::AbandonAudioFocus() {
51 JNIEnv* env = base::android::AttachCurrentThread(); 49 JNIEnv* env = base::android::AttachCurrentThread();
52 DCHECK(env); 50 DCHECK(env);
53 Java_MediaSessionDelegate_abandonAudioFocus(env, j_media_session_delegate_); 51 Java_AudioFocusDelegate_abandonAudioFocus(env, j_media_session_delegate_);
54 } 52 }
55 53
56 void MediaSessionDelegateAndroid::OnSuspend( 54 void AudioFocusDelegateAndroid::OnSuspend(JNIEnv*,
57 JNIEnv*, const JavaParamRef<jobject>&, jboolean temporary) { 55 const JavaParamRef<jobject>&,
56 jboolean temporary) {
58 // TODO(mlamouri): this check makes it so that if a MediaSession is paused and 57 // TODO(mlamouri): this check makes it so that if a MediaSession is paused and
59 // then loses audio focus, it will still stay in the Suspended state. 58 // then loses audio focus, it will still stay in the Suspended state.
60 // See https://crbug.com/539998 59 // See https://crbug.com/539998
61 if (!media_session_->IsActive()) 60 if (!media_session_->IsActive())
62 return; 61 return;
63 62
64 if (temporary) { 63 if (temporary) {
65 media_session_->Suspend(MediaSession::SuspendType::SYSTEM); 64 media_session_->Suspend(MediaSession::SuspendType::SYSTEM);
66 } else { 65 } else {
67 media_session_->Stop(MediaSession::SuspendType::SYSTEM); 66 media_session_->Stop(MediaSession::SuspendType::SYSTEM);
68 } 67 }
69 } 68 }
70 69
71 void MediaSessionDelegateAndroid::OnResume( 70 void AudioFocusDelegateAndroid::OnResume(JNIEnv*,
72 JNIEnv*, const JavaParamRef<jobject>&) { 71 const JavaParamRef<jobject>&) {
73 if (!media_session_->IsReallySuspended()) 72 if (!media_session_->IsReallySuspended())
74 return; 73 return;
75 74
76 media_session_->Resume(MediaSession::SuspendType::SYSTEM); 75 media_session_->Resume(MediaSession::SuspendType::SYSTEM);
77 } 76 }
78 77
79 void MediaSessionDelegateAndroid::OnStartDucking(JNIEnv*, jobject) { 78 void AudioFocusDelegateAndroid::OnStartDucking(JNIEnv*, jobject) {
80 media_session_->StartDucking(); 79 media_session_->StartDucking();
81 } 80 }
82 81
83 void MediaSessionDelegateAndroid::OnStopDucking(JNIEnv*, jobject) { 82 void AudioFocusDelegateAndroid::OnStopDucking(JNIEnv*, jobject) {
84 media_session_->StopDucking(); 83 media_session_->StopDucking();
85 } 84 }
86 85
87 void MediaSessionDelegateAndroid::RecordSessionDuck( 86 void AudioFocusDelegateAndroid::RecordSessionDuck(
88 JNIEnv*, const JavaParamRef<jobject>&) { 87 JNIEnv*,
88 const JavaParamRef<jobject>&) {
89 media_session_->RecordSessionDuck(); 89 media_session_->RecordSessionDuck();
90 } 90 }
91 91
92 // static 92 // static
93 std::unique_ptr<MediaSessionDelegate> MediaSessionDelegate::Create( 93 std::unique_ptr<AudioFocusDelegate> AudioFocusDelegate::Create(
94 MediaSession* media_session) { 94 MediaSession* media_session) {
95 MediaSessionDelegateAndroid* delegate = 95 AudioFocusDelegateAndroid* delegate =
96 new MediaSessionDelegateAndroid(media_session); 96 new AudioFocusDelegateAndroid(media_session);
97 delegate->Initialize(); 97 delegate->Initialize();
98 return std::unique_ptr<MediaSessionDelegate>(delegate); 98 return std::unique_ptr<AudioFocusDelegate>(delegate);
99 } 99 }
100 100
101 } // namespace content 101 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698