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

Commit b7c8c887 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes Ic7fd2787,If97579fd

* changes:
  Camera: notify AE trigger ID change
  Camera: fix camera ID in flashlight control
parents b4af9b8f 0fd28115
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -120,20 +120,15 @@ status_t CameraFlashlight::setTorchMode(const String8& cameraId, bool enabled) {
    return res;
}

int CameraFlashlight::getNumberOfCameras() {
    size_t len = mProviderManager->getAPI1CompatibleCameraDeviceIds().size();
    return static_cast<int>(len);
}

status_t CameraFlashlight::findFlashUnits() {
    Mutex::Autolock l(mLock);
    status_t res;

    std::vector<String8> cameraIds;
    int numberOfCameras = getNumberOfCameras();
    std::vector<std::string> ids = mProviderManager->getAPI1CompatibleCameraDeviceIds();
    int numberOfCameras = static_cast<int>(ids.size());
    cameraIds.resize(numberOfCameras);
    // No module, must be provider
    std::vector<std::string> ids = mProviderManager->getAPI1CompatibleCameraDeviceIds();
    for (size_t i = 0; i < cameraIds.size(); i++) {
        cameraIds[i] = String8(ids[i].c_str());
    }
@@ -187,7 +182,8 @@ bool CameraFlashlight::hasFlashUnitLocked(const String8& cameraId) {

    ssize_t index = mHasFlashlightMap.indexOfKey(cameraId);
    if (index == NAME_NOT_FOUND) {
        ALOGE("%s: camera %s not present when findFlashUnits() was called",
        // Might be external camera
        ALOGW("%s: camera %s not present when findFlashUnits() was called",
                __FUNCTION__, cameraId.string());
        return false;
    }
@@ -221,11 +217,13 @@ status_t CameraFlashlight::prepareDeviceOpen(const String8& cameraId) {

        if (mOpenedCameraIds.size() == 0) {
            // notify torch unavailable for all cameras with a flash
            int numCameras = getNumberOfCameras();
            std::vector<std::string> ids = mProviderManager->getAPI1CompatibleCameraDeviceIds();
            int numCameras = static_cast<int>(ids.size());
            for (int i = 0; i < numCameras; i++) {
                if (hasFlashUnitLocked(String8::format("%d", i))) {
                String8 id8(ids[i].c_str());
                if (hasFlashUnitLocked(id8)) {
                    mCallbacks->onTorchStatusChanged(
                            String8::format("%d", i), TorchModeStatus::NOT_AVAILABLE);
                            id8, TorchModeStatus::NOT_AVAILABLE);
                }
            }
        }
@@ -265,11 +263,13 @@ status_t CameraFlashlight::deviceClosed(const String8& cameraId) {

    if (isBackwardCompatibleMode(cameraId)) {
        // notify torch available for all cameras with a flash
        int numCameras = getNumberOfCameras();
        std::vector<std::string> ids = mProviderManager->getAPI1CompatibleCameraDeviceIds();
        int numCameras = static_cast<int>(ids.size());
        for (int i = 0; i < numCameras; i++) {
            if (hasFlashUnitLocked(String8::format("%d", i))) {
            String8 id8(ids[i].c_str());
            if (hasFlashUnitLocked(id8)) {
                mCallbacks->onTorchStatusChanged(
                        String8::format("%d", i), TorchModeStatus::AVAILABLE_OFF);
                        id8, TorchModeStatus::AVAILABLE_OFF);
            }
        }
    }
+0 −2
Original line number Diff line number Diff line
@@ -92,8 +92,6 @@ class CameraFlashlight : public virtual VirtualLightRefBase {
        // opening cameras)
        bool isBackwardCompatibleMode(const String8& cameraId);

        int getNumberOfCameras();

        sp<FlashControlBase> mFlashControl;

        sp<CameraProviderManager> mProviderManager;
+2 −1
Original line number Diff line number Diff line
@@ -292,7 +292,8 @@ status_t FrameProcessor::process3aState(const CaptureResult &frame,
    }

    // Once all 3A states are received, notify the client about 3A changes.
    if (pendingState.aeState != m3aState.aeState) {
    if (pendingState.aeState != m3aState.aeState ||
            pendingState.aeTriggerId > m3aState.aeTriggerId) {
        ALOGV("%s: Camera %d: AE state %d->%d",
                __FUNCTION__, cameraId,
                m3aState.aeState, pendingState.aeState);