EmulatedCameraFactory::EmulatedCameraFactory() : mQemuClient(), mEmulatedCameras(NULL), mEmulatedCameraNum(0), mFakeCameraID(-1), mConstructedOK(false) { /* Connect to the factory service in the emulator, and create Qemu cameras. */ if (mQemuClient.connectClient(NULL) == NO_ERROR) { /* Connection has succeeded. Create emulated cameras for each camera * device, reported by the service. */ createQemuCameras(); } if (isFakeCameraEmulationOn()) { /* ID fake camera with the number of created 'qemud' cameras. */ mFakeCameraID = mEmulatedCameraNum; mEmulatedCameraNum++; /* Make sure that array is allocated (in case there were no 'qemu' * cameras created. */ if (mEmulatedCameras == NULL) { mEmulatedCameras = new EmulatedCamera*[mEmulatedCameraNum]; if (mEmulatedCameras == NULL) { LOGE("%s: Unable to allocate emulated camera array for %d entries", __FUNCTION__, mEmulatedCameraNum); return; } memset(mEmulatedCameras, 0, mEmulatedCameraNum * sizeof(EmulatedCamera*)); } /* Create, and initialize the fake camera */ mEmulatedCameras[mFakeCameraID] = new EmulatedFakeCamera(mFakeCameraID, &HAL_MODULE_INFO_SYM.common); if (mEmulatedCameras[mFakeCameraID] != NULL) { if (mEmulatedCameras[mFakeCameraID]->Initialize() != NO_ERROR) { delete mEmulatedCameras[mFakeCameraID]; mEmulatedCameras--; mFakeCameraID = -1; } } else { mEmulatedCameras--; mFakeCameraID = -1; LOGE("%s: Unable to instantiate fake camera class", __FUNCTION__); } } else { LOGD("Fake camera emulation is disabled."); } LOGV("%d cameras are being emulated. Fake camera ID is %d", mEmulatedCameraNum, mFakeCameraID); mConstructedOK = true; }
EmulatedCameraFactory::EmulatedCameraFactory() : mQemuClient(), mEmulatedCameras(NULL), mEmulatedCameraNum(0), mFakeCameraID(-1), mConstructedOK(false) { if (isFakeCameraEmulationOn()) { /* ID fake camera with the number of created 'qemud' cameras. */ mFakeCameraID = mEmulatedCameraNum; mEmulatedCameraNum++; /* Make sure that array is allocated (in case there were no 'qemu' * cameras created. */ if (mEmulatedCameras == NULL) { mEmulatedCameras = new EmulatedCamera*[mEmulatedCameraNum + 1]; if (mEmulatedCameras == NULL) { LOGE("%s: Unable to allocate emulated camera array for %d entries", __FUNCTION__, mEmulatedCameraNum); return; } memset(mEmulatedCameras, 0, (mEmulatedCameraNum + 1) * sizeof(EmulatedCamera*)); } /* Create, and initialize the fake camera */ mEmulatedCameras[mFakeCameraID] = new EmulatedFakeCamera(mFakeCameraID, &HAL_MODULE_INFO_SYM.common); if (mEmulatedCameras[mFakeCameraID] != NULL) { if (mEmulatedCameras[mFakeCameraID]->Initialize() != NO_ERROR) { delete mEmulatedCameras[mFakeCameraID]; mEmulatedCameras--; mFakeCameraID = -1; } } else { mEmulatedCameras--; mFakeCameraID = -1; LOGE("%s: Unable to instantiate fake camera class", __FUNCTION__); } } else { LOGD("Fake camera emulation is disabled."); } LOGV("%d cameras are being emulated. Fake camera ID is %d", mEmulatedCameraNum, mFakeCameraID); //we have not supported real double camera yet,change condition to false //if (true) { if (false) { /* ID fake camera with the number of created 'qemud' cameras. */ mFakeCameraID = mEmulatedCameraNum; mEmulatedCameraNum++; /* Make sure that array is allocated (in case there were no 'qemu' * cameras created. */ if (mEmulatedCameras == NULL) { mEmulatedCameras = new EmulatedCamera*[mEmulatedCameraNum]; if (mEmulatedCameras == NULL) { LOGE("%s: Unable to allocate emulated camera array for %d entries", __FUNCTION__, mEmulatedCameraNum); return; } memset(mEmulatedCameras, 0, mEmulatedCameraNum * sizeof(EmulatedCamera*)); } /* Create, and initialize the fake camera */ mEmulatedCameras[mFakeCameraID] = new EmulatedQemuCamera(mFakeCameraID, &HAL_MODULE_INFO_SYM.common); if (mEmulatedCameras[mFakeCameraID] != NULL) { if (mEmulatedCameras[mFakeCameraID]->Initialize() != NO_ERROR) { delete mEmulatedCameras[mFakeCameraID]; mEmulatedCameras--; mFakeCameraID = -1; } } else { mEmulatedCameras--; mFakeCameraID = -1; LOGE("%s: Unable to instantiate qemu camera class", __FUNCTION__); } LOGV("%d cameras are being emulated. Qemu camera ID is %d", mEmulatedCameraNum, mFakeCameraID); } else { LOGD("Qemu camera emulation is disabled."); } mConstructedOK = true; }