15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/android/media_jni_registrar.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/jni_android.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/android/jni_registrar.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "media/audio/android/audio_manager_android.h"
12a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "media/audio/android/audio_record_input.h"
1390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "media/base/android/media_codec_bridge.h"
143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "media/base/android/media_drm_bridge.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/android/media_player_bridge.h"
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "media/base/android/media_player_listener.h"
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "media/base/android/webaudio_media_codec_bridge.h"
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "media/midi/usb_midi_device_android.h"
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "media/midi/usb_midi_device_factory_android.h"
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "media/video/capture/android/video_capture_device_android.h"
21e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch#include "media/video/capture/android/video_capture_device_factory_android.h"
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace media {
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static base::android::RegistrationMethod kMediaRegisteredMethods[] = {
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  { "AudioManagerAndroid",
27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    AudioManagerAndroid::RegisterAudioManager },
28a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)  { "AudioRecordInput",
29a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)    AudioRecordInputStream::RegisterAudioRecordInput },
3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)  { "MediaCodecBridge",
3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    MediaCodecBridge::RegisterMediaCodecBridge },
323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  { "MediaDrmBridge",
333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    MediaDrmBridge::RegisterMediaDrmBridge },
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { "MediaPlayerBridge",
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    MediaPlayerBridge::RegisterMediaPlayerBridge },
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  { "MediaPlayerListener",
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    MediaPlayerListener::RegisterMediaPlayerListener },
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  { "UsbMidiDevice",
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    UsbMidiDeviceAndroid::RegisterUsbMidiDevice },
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  { "UsbMidiDeviceFactory",
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    UsbMidiDeviceFactoryAndroid::RegisterUsbMidiDeviceFactory },
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  { "VideoCaptureDevice",
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    VideoCaptureDeviceAndroid::RegisterVideoCaptureDevice },
44e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch  { "VideoCaptureDeviceFactory",
45e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch    VideoCaptureDeviceFactoryAndroid::RegisterVideoCaptureDeviceFactory },
46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  { "WebAudioMediaCodecBridge",
47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    WebAudioMediaCodecBridge::RegisterWebAudioMediaCodecBridge },
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool RegisterJni(JNIEnv* env) {
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return base::android::RegisterNativeMethods(
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      env, kMediaRegisteredMethods, arraysize(kMediaRegisteredMethods));
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace media
56