| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef CONTENT_BROWSER_MEDIA_ANDROID_MEDIA_SESSION_H_ | 5 #ifndef CONTENT_BROWSER_MEDIA_ANDROID_MEDIA_SESSION_H_ |
| 6 #define CONTENT_BROWSER_MEDIA_ANDROID_MEDIA_SESSION_H_ | 6 #define CONTENT_BROWSER_MEDIA_ANDROID_MEDIA_SESSION_H_ |
| 7 | 7 |
| 8 #include <jni.h> | 8 #include <jni.h> |
| 9 #include <stddef.h> | 9 #include <stddef.h> |
| 10 | 10 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 // above. | 97 // above. |
| 98 bool IsControllable() const; | 98 bool IsControllable() const; |
| 99 | 99 |
| 100 // Returns if the session is currently suspended. | 100 // Returns if the session is currently suspended. |
| 101 bool IsSuspended() const; | 101 bool IsSuspended() const; |
| 102 | 102 |
| 103 private: | 103 private: |
| 104 friend class content::WebContentsUserData<MediaSession>; | 104 friend class content::WebContentsUserData<MediaSession>; |
| 105 friend class ::MediaSessionBrowserTest; | 105 friend class ::MediaSessionBrowserTest; |
| 106 | 106 |
| 107 // Resets the |j_media_session_| ref to prevent calling the Java backend | |
| 108 // during content_browsertests. | |
| 109 void ResetJavaRefForTest(); | |
| 110 bool IsActiveForTest() const; | |
| 111 Type audio_focus_type_for_test() const; | |
| 112 void RemoveAllPlayersForTest(); | |
| 113 MediaSessionUmaHelper* uma_helper_for_test(); | |
| 114 | |
| 115 enum class State { | 107 enum class State { |
| 116 ACTIVE, | 108 ACTIVE, |
| 117 SUSPENDED, | 109 SUSPENDED, |
| 118 INACTIVE | 110 INACTIVE |
| 119 }; | 111 }; |
| 120 | 112 |
| 121 enum class SuspendType { | 113 enum class SuspendType { |
| 122 // Suspended by the system because a transient sound needs to be played. | 114 // Suspended by the system because a transient sound needs to be played. |
| 123 SYSTEM, | 115 SYSTEM, |
| 124 // Suspended by the UI. | 116 // Suspended by the UI. |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 // Notifies WebContents about the state change of the media session. | 158 // Notifies WebContents about the state change of the media session. |
| 167 void UpdateWebContents(); | 159 void UpdateWebContents(); |
| 168 | 160 |
| 169 // Internal method that should be used instead of setting audio_focus_state_. | 161 // Internal method that should be used instead of setting audio_focus_state_. |
| 170 // It sets audio_focus_state_ and notifies observers about the state change. | 162 // It sets audio_focus_state_ and notifies observers about the state change. |
| 171 void SetAudioFocusState(State audio_focus_state); | 163 void SetAudioFocusState(State audio_focus_state); |
| 172 | 164 |
| 173 base::android::ScopedJavaGlobalRef<jobject> j_media_session_; | 165 base::android::ScopedJavaGlobalRef<jobject> j_media_session_; |
| 174 PlayersMap players_; | 166 PlayersMap players_; |
| 175 | 167 |
| 168 // The value returned by RequestSystemAudioFocus() when |j_media_session_| is |
| 169 // unavailable. Used for testing. |
| 170 bool default_system_audio_focus_response_; |
| 171 |
| 176 State audio_focus_state_; | 172 State audio_focus_state_; |
| 177 SuspendType suspend_type_; | 173 SuspendType suspend_type_; |
| 178 Type audio_focus_type_; | 174 Type audio_focus_type_; |
| 179 | 175 |
| 180 MediaSessionUmaHelper uma_helper_; | 176 MediaSessionUmaHelper uma_helper_; |
| 181 | 177 |
| 182 // The volume multiplier of this session. All players in this session should | 178 // The volume multiplier of this session. All players in this session should |
| 183 // multiply their volume with this multiplier to get the effective volume. | 179 // multiply their volume with this multiplier to get the effective volume. |
| 184 double volume_multiplier_; | 180 double volume_multiplier_; |
| 185 | 181 |
| 186 DISALLOW_COPY_AND_ASSIGN(MediaSession); | 182 DISALLOW_COPY_AND_ASSIGN(MediaSession); |
| 187 }; | 183 }; |
| 188 | 184 |
| 189 } // namespace content | 185 } // namespace content |
| 190 | 186 |
| 191 #endif // CONTENT_BROWSER_MEDIA_ANDROID_MEDIA_SESSION_H_ | 187 #endif // CONTENT_BROWSER_MEDIA_ANDROID_MEDIA_SESSION_H_ |
| OLD | NEW |