Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e7561a8 authored by Dongwon Kang's avatar Dongwon Kang Committed by Android (Google) Code Review
Browse files

Merge "MediaPlayer2: remove AudioManager private API usage"

parents 958176c7 ee42cb2f
Loading
Loading
Loading
Loading
+3 −49
Original line number Diff line number Diff line
@@ -798,11 +798,7 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {

    @Override
    public boolean setPreferredDevice(AudioDeviceInfo deviceInfo) {
        if (deviceInfo != null && !deviceInfo.isSink()) {
            return false;
        }
        int preferredDeviceId = deviceInfo != null ? deviceInfo.getId() : 0;
        boolean status = native_setOutputDevice(preferredDeviceId);
        boolean status = native_setPreferredDevice(deviceInfo);
        if (status == true) {
            synchronized (this) {
                mPreferredDevice = deviceInfo;
@@ -819,20 +815,7 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {
    }

    @Override
    public AudioDeviceInfo getRoutedDevice() {
        int deviceId = native_getRoutedDeviceId();
        if (deviceId == 0) {
            return null;
        }
        AudioDeviceInfo[] devices =
                AudioManager.getDevicesStatic(AudioManager.GET_DEVICES_OUTPUTS);
        for (int i = 0; i < devices.length; i++) {
            if (devices[i].getId() == deviceId) {
                return devices[i];
            }
        }
        return null;
    }
    public native AudioDeviceInfo getRoutedDevice();

    @Override
    public void addOnRoutingChangedListener(AudioRouting.OnRoutingChangedListener listener,
@@ -852,8 +835,7 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {
        native_removeDeviceCallback(listener);
    }

    private native final boolean native_setOutputDevice(int deviceId);
    private native final int native_getRoutedDeviceId();
    private native boolean native_setPreferredDevice(AudioDeviceInfo device);
    private native void native_addDeviceCallback(RoutingDelegate rd);
    private native void native_removeDeviceCallback(
            AudioRouting.OnRoutingChangedListener listener);
@@ -2773,34 +2755,6 @@ public final class MediaPlayer2Impl extends MediaPlayer2 {

    }

    // Called from the native side
    @SuppressWarnings("unused")
    private static boolean setAudioOutputDeviceById(AudioTrack track, int deviceId) {
        if (track == null) {
            return false;
        }

        if (deviceId == 0) {
            // Use default routing.
            track.setPreferredDevice(null);
            return true;
        }

        // TODO: Unhide AudioManager.getDevicesStatic.
        AudioDeviceInfo[] outputDevices =
                AudioManager.getDevicesStatic(AudioManager.GET_DEVICES_OUTPUTS);

        boolean success = false;
        for (AudioDeviceInfo device : outputDevices) {
            if (device.getId() == deviceId) {
                track.setPreferredDevice(device);
                success = true;
                break;
            }
        }
        return success;
    }

    // Instantiated from the native side
    @SuppressWarnings("unused")
    private static class StreamEventCallback extends AudioTrack.StreamEventCallback {
+7 −7
Original line number Diff line number Diff line
@@ -1306,22 +1306,22 @@ static void android_media_MediaPlayer2_releaseDrm(JNIEnv *env, jobject thiz)

/////////////////////////////////////////////////////////////////////////////////////
// AudioRouting begin
static jboolean android_media_MediaPlayer2_setOutputDevice(JNIEnv *env, jobject thiz, jint device_id)
static jboolean android_media_MediaPlayer2_setPreferredDevice(JNIEnv *env, jobject thiz, jobject device)
{
    sp<MediaPlayer2> mp = getMediaPlayer(env, thiz);
    if (mp == NULL) {
        return false;
    }
    return mp->setOutputDevice(device_id) == NO_ERROR;
    return mp->setPreferredDevice(device) == NO_ERROR;
}

static jint android_media_MediaPlayer2_getRoutedDeviceId(JNIEnv *env, jobject thiz)
static jobject android_media_MediaPlayer2_getRoutedDevice(JNIEnv *env, jobject thiz)
{
    sp<MediaPlayer2> mp = getMediaPlayer(env, thiz);
    if (mp == NULL) {
        return AUDIO_PORT_HANDLE_NONE;
        return nullptr;
    }
    return mp->getRoutedDeviceId();
    return mp->getRoutedDevice();
}

static void android_media_MediaPlayer2_addDeviceCallback(
@@ -1470,8 +1470,8 @@ static const JNINativeMethod gMethods[] = {
    { "_releaseDrm", "()V",                                     (void *)android_media_MediaPlayer2_releaseDrm },

    // AudioRouting
    {"native_setOutputDevice", "(I)Z",                          (void *)android_media_MediaPlayer2_setOutputDevice},
    {"native_getRoutedDeviceId", "()I",                         (void *)android_media_MediaPlayer2_getRoutedDeviceId},
    {"native_setPreferredDevice", "(Landroid/media/AudioDeviceInfo;)Z", (void *)android_media_MediaPlayer2_setPreferredDevice},
    {"getRoutedDevice", "()Landroid/media/AudioDeviceInfo;", (void *)android_media_MediaPlayer2_getRoutedDevice},
    {"native_addDeviceCallback", "(Landroid/media/RoutingDelegate;)V", (void *)android_media_MediaPlayer2_addDeviceCallback},
    {"native_removeDeviceCallback", "(Landroid/media/AudioRouting$OnRoutingChangedListener;)V",
            (void *)android_media_MediaPlayer2_removeDeviceCallback},