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

Commit 67fdd894 authored by Phil Burk's avatar Phil Burk
Browse files

aaudio: fix sessionId conversion

Was not handling negative IDs correctly.
Update test to allow negative IDs.

Bug: 72333892
Test: CTS has test_session_id
Change-Id: I1ca57026d6202f7d54c8efd51b14854be6cc69e4
parent 254d783c
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -251,8 +251,8 @@ aaudio_result_t AAudioConvert_androidToAAudioResult(status_t status) {
}

audio_session_t AAudioConvert_aaudioToAndroidSessionId(aaudio_session_id_t sessionId) {
    // If not a valid sessionId then convert to a safe value of AUDIO_SESSION_ALLOCATE.
    return (sessionId < AAUDIO_SESSION_ID_MIN)
    // If not a regular sessionId then convert to a safe value of AUDIO_SESSION_ALLOCATE.
    return (sessionId == AAUDIO_SESSION_ID_ALLOCATE || sessionId == AAUDIO_SESSION_ID_NONE)
           ? AUDIO_SESSION_ALLOCATE
           : (audio_session_t) sessionId;
}
+0 −3
Original line number Diff line number Diff line
@@ -27,9 +27,6 @@

#include "aaudio/AAudio.h"


constexpr aaudio_session_id_t AAUDIO_SESSION_ID_MIN = 1; // must be positive

/**
 * Convert an AAudio result into the closest matching Android status.
 */
+4 −1
Original line number Diff line number Diff line
@@ -97,7 +97,10 @@ static void checkSessionIdAllocate(aaudio_performance_mode_t perfMode,

    // Get the allocated ID from the stream.
    sessionId1 = AAudioStream_getSessionId(aaudioStream1);
    ASSERT_LT(0, sessionId1); // Must be positive.

    // Check for invalid session IDs.
    ASSERT_NE(AAUDIO_SESSION_ID_NONE, sessionId1);
    ASSERT_NE(AAUDIO_SESSION_ID_ALLOCATE, sessionId1);

    ASSERT_EQ(AAUDIO_OK, AAudioStream_requestStart(aaudioStream1));