Chromium Code Reviews| Index: media/base/android/media_player_listener.cc |
| diff --git a/media/base/android/media_player_listener.cc b/media/base/android/media_player_listener.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..a07f2962133b696b48f227f59f2aedf15a3bbc2e |
| --- /dev/null |
| +++ b/media/base/android/media_player_listener.cc |
| @@ -0,0 +1,89 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "media/base/android/media_player_listener.h" |
| + |
| +#include "base/android/jni_android.h" |
| +#include "base/bind.h" |
| +#include "base/logging.h" |
| +#include "base/message_loop_proxy.h" |
| +#include "media/base/android/media_player_bridge.h" |
| + |
| +// Auto generated jni class from MediaPlayerListener.java. |
| +// Check base/android/jni_generator/golden_sample_for_tests_jni.h for example. |
| +#include "jni/MediaPlayerListener_jni.h" |
| + |
| +using base::android::AttachCurrentThread; |
| +using base::android::CheckException; |
| +using base::android::ScopedJavaLocalRef; |
| + |
| +namespace media { |
| + |
| +MediaPlayerListener::MediaPlayerListener( |
| + const scoped_refptr<base::MessageLoopProxy>& message_loop, |
| + base::WeakPtr<MediaPlayerBridge> mediaplayer) |
| + : message_loop_(message_loop), |
| + mediaplayer_(mediaplayer) { |
| + DCHECK(message_loop_); |
| + DCHECK(mediaplayer_); |
| +} |
| + |
| +MediaPlayerListener::~MediaPlayerListener() { |
|
scherkus (not reviewing)
2012/09/10 12:19:08
{}
qinmin
2012/09/11 04:50:24
Done.
|
| +} |
| + |
| +ScopedJavaLocalRef<jobject> MediaPlayerListener::CreateMediaPlayerListener() { |
| + JNIEnv* env = AttachCurrentThread(); |
| + CHECK(env); |
| + |
| + ScopedJavaLocalRef<jobject> j_listener( |
| + Java_MediaPlayerListener_create(env, reinterpret_cast<intptr_t>(this))); |
| + DCHECK(!j_listener.is_null()); |
| + return j_listener; |
| +} |
| + |
|
scherkus (not reviewing)
2012/09/10 12:19:08
remove extra blank line
qinmin
2012/09/11 04:50:24
Done.
|
| + |
| +void MediaPlayerListener::OnMediaError( |
| + JNIEnv* /* env */, jobject /* obj */, jint error_type) { |
| + message_loop_->PostTask(FROM_HERE, base::Bind( |
| + &MediaPlayerBridge::OnMediaError, mediaplayer_, error_type)); |
| +} |
| + |
| +void MediaPlayerListener::OnVideoSizeChanged( |
| + JNIEnv* /* env */, jobject /* obj */, jint width, jint height) { |
| + message_loop_->PostTask(FROM_HERE, base::Bind( |
| + &MediaPlayerBridge::OnVideoSizeChanged, mediaplayer_, |
| + width, height)); |
| +} |
| + |
| +void MediaPlayerListener::OnBufferingUpdate( |
| + JNIEnv* /* env */, jobject /* obj */, jint percent) { |
| + message_loop_->PostTask(FROM_HERE, base::Bind( |
| + &MediaPlayerBridge::OnBufferingUpdate, mediaplayer_, percent)); |
| +} |
| + |
| +void MediaPlayerListener::OnPlaybackComplete( |
| + JNIEnv* /* env */, jobject /* obj */) { |
| + message_loop_->PostTask(FROM_HERE, base::Bind( |
| + &MediaPlayerBridge::OnPlaybackComplete, mediaplayer_)); |
| +} |
| + |
| +void MediaPlayerListener::OnSeekComplete( |
| + JNIEnv* /* env */, jobject /* obj */) { |
| + message_loop_->PostTask(FROM_HERE, base::Bind( |
| + &MediaPlayerBridge::OnSeekComplete, mediaplayer_)); |
| +} |
| + |
| +void MediaPlayerListener::OnMediaPrepared( |
| + JNIEnv* /* env */, jobject /* obj */) { |
| + message_loop_->PostTask(FROM_HERE, base::Bind( |
| + &MediaPlayerBridge::OnMediaPrepared, mediaplayer_)); |
| +} |
| + |
| +bool MediaPlayerListener::RegisterMediaPlayerListener(JNIEnv* env) { |
| + bool ret = RegisterNativesImpl(env); |
| + DCHECK(g_MediaPlayerListener_clazz); |
| + return ret; |
| +} |
| + |
| +} // namespace media |