CameraService::CameraService()
	:mSoundRef(0)
	{
		LOGI("CameraService started (pid=%d)", getpid());
		
		mNumberOfCameras = HAL_getNumberOfCameras();
		if (mNumberOfCameras > MAX_CAMERAS) {
			LOGE("Number of cameras(%d) > MAX_CAMERAS(%d).",
				 mNumberOfCameras, MAX_CAMERAS);
			mNumberOfCameras = MAX_CAMERAS;
		}
		
		for (int i = 0; i < mNumberOfCameras; i++) {
			setCameraFree(i);
		}
		
		gCameraService = this;
	}
void CameraService::onFirstRef()
{
    BnCameraService::onFirstRef();

    if (hw_get_module(CAMERA_HARDWARE_MODULE_ID,
                (const hw_module_t **)&mModule) < 0) {
        LOGE("Could not load camera HAL module");
        mNumberOfCameras = 0;
    }
    else {
        mNumberOfCameras = mModule->get_number_of_cameras();
        if (mNumberOfCameras > MAX_CAMERAS) {
            LOGE("Number of cameras(%d) > MAX_CAMERAS(%d).",
                    mNumberOfCameras, MAX_CAMERAS);
            mNumberOfCameras = MAX_CAMERAS;
        }
        for (int i = 0; i < mNumberOfCameras; i++) {
            setCameraFree(i);
        }
    }
}