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

Commit 6c32677d authored by Wu-cheng Li's avatar Wu-cheng Li Committed by Android Git Automerger
Browse files

am caaf7fe3: am 271c1bfd: Merge "Handle the camera open failure better." into gingerbread

Merge commit 'caaf7fe3'

* commit 'caaf7fe3':
  Handle the camera open failure better.
parents a931e9a1 caaf7fe3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -221,6 +221,7 @@ public:
 */
extern "C" int HAL_getNumberOfCameras();
extern "C" void HAL_getCameraInfo(int cameraId, struct CameraInfo* cameraInfo);
/* HAL should return NULL if it fails to open camera hardware. */
extern "C" sp<CameraHardwareInterface> HAL_openCameraHardware(int cameraId);

};  // namespace android
+10 −4
Original line number Diff line number Diff line
@@ -145,7 +145,12 @@ sp<ICamera> CameraService::connect(
        return NULL;
    }

    client = new Client(this, cameraClient, cameraId, callingPid);
    sp<CameraHardwareInterface> hardware = HAL_openCameraHardware(cameraId);
    if (hardware == NULL) {
        LOGE("Fail to open camera hardware (id=%d)", cameraId);
        return NULL;
    }
    client = new Client(this, cameraClient, hardware, cameraId, callingPid);
    mClient[cameraId] = client;
    LOG1("CameraService::connect X");
    return client;
@@ -285,16 +290,17 @@ void CameraService::playSound(sound_kind kind) {
// ----------------------------------------------------------------------------

CameraService::Client::Client(const sp<CameraService>& cameraService,
        const sp<ICameraClient>& cameraClient, int cameraId, int clientPid) {
        const sp<ICameraClient>& cameraClient,
        const sp<CameraHardwareInterface>& hardware,
        int cameraId, int clientPid) {
    int callingPid = getCallingPid();
    LOG1("Client::Client E (pid %d)", callingPid);

    mCameraService = cameraService;
    mCameraClient = cameraClient;
    mHardware = hardware;
    mCameraId = cameraId;
    mClientPid = clientPid;

    mHardware = HAL_openCameraHardware(cameraId);
    mUseOverlay = mHardware->useOverlay();
    mMsgEnabled = 0;

+1 −0
Original line number Diff line number Diff line
@@ -106,6 +106,7 @@ private:
        friend class CameraService;
                                Client(const sp<CameraService>& cameraService,
                                       const sp<ICameraClient>& cameraClient,
                                       const sp<CameraHardwareInterface>& hardware,
                                       int cameraId,
                                       int clientPid);
                                ~Client();