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 package org.chromium.media.midi; | 5 package org.chromium.midi; |
6 | 6 |
7 import android.annotation.TargetApi; | 7 import android.annotation.TargetApi; |
8 import android.content.Context; | 8 import android.content.Context; |
9 import android.media.midi.MidiDevice; | 9 import android.media.midi.MidiDevice; |
10 import android.media.midi.MidiDeviceInfo; | 10 import android.media.midi.MidiDeviceInfo; |
11 import android.media.midi.MidiManager; | 11 import android.media.midi.MidiManager; |
12 import android.os.Build; | 12 import android.os.Build; |
13 import android.os.Handler; | 13 import android.os.Handler; |
14 | 14 |
15 import org.chromium.base.ThreadUtils; | 15 import org.chromium.base.ThreadUtils; |
16 import org.chromium.base.annotations.CalledByNative; | 16 import org.chromium.base.annotations.CalledByNative; |
17 import org.chromium.base.annotations.JNINamespace; | 17 import org.chromium.base.annotations.JNINamespace; |
18 | 18 |
19 import java.util.ArrayList; | 19 import java.util.ArrayList; |
20 import java.util.HashSet; | 20 import java.util.HashSet; |
21 import java.util.List; | 21 import java.util.List; |
22 import java.util.Set; | 22 import java.util.Set; |
23 | 23 |
24 /** | 24 /** |
25 * A Java class implementing media::midi::MidiManagerAndroid functionality. | 25 * A Java class implementing midi::MidiManagerAndroid functionality. |
26 */ | 26 */ |
27 @JNINamespace("media::midi") | 27 @JNINamespace("midi") |
28 @TargetApi(Build.VERSION_CODES.M) | 28 @TargetApi(Build.VERSION_CODES.M) |
29 class MidiManagerAndroid { | 29 class MidiManagerAndroid { |
30 /** | 30 /** |
31 * Set true when this instance is successfully initialized. | 31 * Set true when this instance is successfully initialized. |
32 */ | 32 */ |
33 private boolean mIsInitialized = false; | 33 private boolean mIsInitialized = false; |
34 /** | 34 /** |
35 * The devices held by this manager. | 35 * The devices held by this manager. |
36 */ | 36 */ |
37 private final List<MidiDeviceAndroid> mDevices = new ArrayList<>(); | 37 private final List<MidiDeviceAndroid> mDevices = new ArrayList<>(); |
38 /** | 38 /** |
39 * The device information instances which are being initialized. | 39 * The device information instances which are being initialized. |
40 */ | 40 */ |
41 private final Set<MidiDeviceInfo> mPendingDevices = new HashSet<>(); | 41 private final Set<MidiDeviceInfo> mPendingDevices = new HashSet<>(); |
42 /** | 42 /** |
43 * The underlying MidiManager. | 43 * The underlying MidiManager. |
44 */ | 44 */ |
45 private final MidiManager mManager; | 45 private final MidiManager mManager; |
46 /** | 46 /** |
47 * Callbacks will run on the message queue associated with this handler. | 47 * Callbacks will run on the message queue associated with this handler. |
48 */ | 48 */ |
49 private final Handler mHandler; | 49 private final Handler mHandler; |
50 /** | 50 /** |
51 * The associated media::midi::MidiDeviceAndroid instance. | 51 * The associated midi::MidiDeviceAndroid instance. |
52 */ | 52 */ |
53 private final long mNativeManagerPointer; | 53 private final long mNativeManagerPointer; |
54 | 54 |
55 /** | 55 /** |
56 * A creation function called by C++. | 56 * A creation function called by C++. |
57 * @param context | 57 * @param context |
58 * @param nativeManagerPointer The native pointer to a media::midi::MidiMana
gerAndroid object. | 58 * @param nativeManagerPointer The native pointer to a midi::MidiManagerAndr
oid object. |
59 */ | 59 */ |
60 @CalledByNative | 60 @CalledByNative |
61 static MidiManagerAndroid create(Context context, long nativeManagerPointer)
{ | 61 static MidiManagerAndroid create(Context context, long nativeManagerPointer)
{ |
62 return new MidiManagerAndroid(context, nativeManagerPointer); | 62 return new MidiManagerAndroid(context, nativeManagerPointer); |
63 } | 63 } |
64 | 64 |
65 /** | 65 /** |
66 * @param context | 66 * @param context |
67 * @param nativeManagerPointer The native pointer to a media::midi::MidiMana
gerAndroid object. | 67 * @param nativeManagerPointer The native pointer to a midi::MidiManagerAndr
oid object. |
68 */ | 68 */ |
69 private MidiManagerAndroid(Context context, long nativeManagerPointer) { | 69 private MidiManagerAndroid(Context context, long nativeManagerPointer) { |
70 assert ThreadUtils.runningOnUiThread(); | 70 assert ThreadUtils.runningOnUiThread(); |
71 | 71 |
72 mManager = (MidiManager) context.getSystemService(Context.MIDI_SERVICE); | 72 mManager = (MidiManager) context.getSystemService(Context.MIDI_SERVICE); |
73 mHandler = new Handler(ThreadUtils.getUiThreadLooper()); | 73 mHandler = new Handler(ThreadUtils.getUiThreadLooper()); |
74 mNativeManagerPointer = nativeManagerPointer; | 74 mNativeManagerPointer = nativeManagerPointer; |
75 } | 75 } |
76 | 76 |
77 /** | 77 /** |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 mIsInitialized = true; | 165 mIsInitialized = true; |
166 } | 166 } |
167 } | 167 } |
168 | 168 |
169 static native void nativeOnInitialized( | 169 static native void nativeOnInitialized( |
170 long nativeMidiManagerAndroid, MidiDeviceAndroid[] devices); | 170 long nativeMidiManagerAndroid, MidiDeviceAndroid[] devices); |
171 static native void nativeOnInitializationFailed(long nativeMidiManagerAndroi
d); | 171 static native void nativeOnInitializationFailed(long nativeMidiManagerAndroi
d); |
172 static native void nativeOnAttached(long nativeMidiManagerAndroid, MidiDevic
eAndroid device); | 172 static native void nativeOnAttached(long nativeMidiManagerAndroid, MidiDevic
eAndroid device); |
173 static native void nativeOnDetached(long nativeMidiManagerAndroid, MidiDevic
eAndroid device); | 173 static native void nativeOnDetached(long nativeMidiManagerAndroid, MidiDevic
eAndroid device); |
174 } | 174 } |
OLD | NEW |