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

Commit b287c938 authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge "AudioSystem: add API to query audio HW sync source" into lmp-dev

parents 54b9e5ba b634e1b6
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1293,6 +1293,12 @@ android_media_AudioSystem_eventHandlerFinalize(JNIEnv *env, jobject thiz)
    AudioSystem::setAudioPortCallback(callback);
}

static jint
android_media_AudioSystem_getAudioHwSyncForSession(JNIEnv *env, jobject thiz, jint sessionId)
{
    return (jint)AudioSystem::getAudioHwSyncForSession((audio_session_t)sessionId);
}

// ----------------------------------------------------------------------------

static JNINativeMethod gMethods[] = {
@@ -1332,6 +1338,8 @@ static JNINativeMethod gMethods[] = {
                                                (void *)android_media_AudioSystem_listAudioPatches},
    {"setAudioPortConfig",   "(Landroid/media/AudioPortConfig;)I",
                                            (void *)android_media_AudioSystem_setAudioPortConfig},
    {"getAudioHwSyncForSession", "(I)I",
                                    (void *)android_media_AudioSystem_getAudioHwSyncForSession},
};


+8 −2
Original line number Diff line number Diff line
@@ -152,6 +152,12 @@ public final class AudioAttributes implements Parcelable {
     */
    public final static int FLAG_SCO = 0x1 << 2;

    /**
     * @hide
     * CANDIDATE FOR PUBLIC API
     * Flag requesting the use of an output stream supporting hardware A/V synchronization.
     */
    public final static int FLAG_HW_AV_SYNC = 0x1 << 4;

    private int mUsage = USAGE_UNKNOWN;
    private int mContentType = CONTENT_TYPE_UNKNOWN;
@@ -196,7 +202,7 @@ public final class AudioAttributes implements Parcelable {
     */
    public int getFlags() {
        // only return the flags that are public
        return (mFlags & (FLAG_AUDIBILITY_ENFORCED));
        return (mFlags & (FLAG_AUDIBILITY_ENFORCED | FLAG_HW_AV_SYNC));
    }

    /**
@@ -340,7 +346,7 @@ public final class AudioAttributes implements Parcelable {
         */
        public Builder setFlags(int flags) {
            flags &= (AudioAttributes.FLAG_AUDIBILITY_ENFORCED | AudioAttributes.FLAG_SCO
                    | AudioAttributes.FLAG_SECURE);
                    | AudioAttributes.FLAG_SECURE | AudioAttributes.FLAG_HW_AV_SYNC);
            mFlags |= flags;
            return this;
        }
+5 −0
Original line number Diff line number Diff line
@@ -487,5 +487,10 @@ public class AudioSystem
    public static native int releaseAudioPatch(AudioPatch patch);
    public static native int listAudioPatches(ArrayList<AudioPatch> patches, int[] generation);
    public static native int setAudioPortConfig(AudioPortConfig config);

    // must be kept in sync with value in include/system/audio.h
    public static final int AUDIO_HW_SYNC_INVALID = 0;

    public static native int getAudioHwSyncForSession(int sessionId);
}