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

Commit bec9be8b authored by Eino-Ville Talvala's avatar Eino-Ville Talvala Committed by android-build-team Robot
Browse files

CameraServiceProxy: Notify audio service of camera facing

When a camera is opened, notify the audio service which way the camera
faces.  This can be used by the audio system to select microphone
tuning for the CAMCORDER option that's dependent on camera direction.

External facing is treated the same as front-facing.

Bug: 118022272
Test: Manual
Change-Id: I0a89d82a015f371580d335b232013ece80bfa4d3
(cherry picked from commit 06075ee6)
parent 4056014c
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.hardware.ICameraService;
import android.hardware.ICameraServiceProxy;
import android.media.AudioManager;
import android.metrics.LogMaker;
import android.nfc.INfcAdapter;
import android.os.Binder;
@@ -393,6 +394,19 @@ public class CameraServiceProxy extends SystemService
            boolean wasEmpty = mActiveCameraUsage.isEmpty();
            switch (newCameraState) {
                case ICameraServiceProxy.CAMERA_STATE_OPEN:
                    // Notify the audio subsystem about the facing of the most-recently opened
                    // camera This can be used to select the best audio tuning in case video
                    // recording with that camera will happen.  Since only open events are used, if
                    // multiple cameras are opened at once, the one opened last will be used to
                    // select audio tuning.
                    AudioManager audioManager = getContext().getSystemService(AudioManager.class);
                    if (audioManager != null) {
                        // Map external to front for audio tuning purposes
                        String facingStr = (facing == ICameraServiceProxy.CAMERA_FACING_BACK) ?
                                "back" : "front";
                        String facingParameter = "cameraFacing=" + facingStr;
                        audioManager.setParameters(facingParameter);
                    }
                    break;
                case ICameraServiceProxy.CAMERA_STATE_ACTIVE:
                    CameraUsageEvent newEvent = new CameraUsageEvent(facing, clientName, apiLevel);