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

Commit 68309493 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi Committed by android-build-merger
Browse files

EffectBundle: check nb channels to write speaker angles am: e5a54485 am:...

EffectBundle: check nb channels to write speaker angles am: e5a54485 am: b0896dfc am: b9e070af am: e5c0e7e1 am: 3ffe48ed am: 3db88c0f am: 9169ca1b am: 654e9f92 am: 8e86da47 am: 7ea75976 am: 5c9fcda3 am: 8987fbb0
am: dbedfa05

Change-Id: I17f774c35abbae99de2b3cfcae548c8863c036a8
parents 319c6e98 dbedfa05
Loading
Loading
Loading
Loading
+16 −8
Original line number Original line Diff line number Diff line
@@ -1463,11 +1463,18 @@ int VirtualizerForceVirtualizationMode(EffectContext *pContext, audio_devices_t
//                            horizontal plane, +90 is directly above the user, -90 below
//                            horizontal plane, +90 is directly above the user, -90 below
//
//
//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
void VirtualizerGetSpeakerAngles(audio_channel_mask_t channelMask __unused,
void VirtualizerGetSpeakerAngles(audio_channel_mask_t channelMask,
        audio_devices_t deviceType __unused, int32_t *pSpeakerAngles) {
        audio_devices_t deviceType __unused, int32_t *pSpeakerAngles) {
    // the channel count is guaranteed to be 1 or 2
    // the channel count is guaranteed to be 1 or 2
    // the device is guaranteed to be of type headphone
    // the device is guaranteed to be of type headphone
    // this virtualizer is always 2in with speakers at -90 and 90deg of azimuth, 0deg of elevation
    // this virtualizer is always using 2 virtual speakers at -90 and 90deg of azimuth, 0deg of
    // elevation but the return information is sized for nbChannels * 3, so we have to consider
    // the (false here) case of a single channel, and return only 3 fields.
    if (audio_channel_count_from_out_mask(channelMask) == 1) {
        *pSpeakerAngles++ = (int32_t) AUDIO_CHANNEL_OUT_MONO; // same as FRONT_LEFT
        *pSpeakerAngles++ = 0; // azimuth
        *pSpeakerAngles = 0; // elevation
    } else {
        *pSpeakerAngles++ = (int32_t) AUDIO_CHANNEL_OUT_FRONT_LEFT;
        *pSpeakerAngles++ = (int32_t) AUDIO_CHANNEL_OUT_FRONT_LEFT;
        *pSpeakerAngles++ = -90; // azimuth
        *pSpeakerAngles++ = -90; // azimuth
        *pSpeakerAngles++ = 0;   // elevation
        *pSpeakerAngles++ = 0;   // elevation
@@ -1475,6 +1482,7 @@ void VirtualizerGetSpeakerAngles(audio_channel_mask_t channelMask __unused,
        *pSpeakerAngles++ = 90;  // azimuth
        *pSpeakerAngles++ = 90;  // azimuth
        *pSpeakerAngles   = 0;   // elevation
        *pSpeakerAngles   = 0;   // elevation
    }
    }
}


//----------------------------------------------------------------------------
//----------------------------------------------------------------------------
// VirtualizerGetVirtualizationMode()
// VirtualizerGetVirtualizationMode()