diff --git a/camera/libcameraservice/Android.mk b/camera/libcameraservice/Android.mk index be78a6285..ecaebffc2 100644 --- a/camera/libcameraservice/Android.mk +++ b/camera/libcameraservice/Android.mk @@ -25,6 +25,10 @@ LOCAL_SRC_FILES:= \ LOCAL_MODULE:= libcamerastub +ifeq ($(TARGET_SIMULATOR),true) +LOCAL_CFLAGS += -DSINGLE_PROCESS +endif + LOCAL_SHARED_LIBRARIES:= libui include $(BUILD_STATIC_LIBRARY) @@ -48,7 +52,11 @@ LOCAL_SHARED_LIBRARIES:= \ LOCAL_MODULE:= libcameraservice -LOCAL_CFLAGS+=-DLOG_TAG=\"CameraService\" +LOCAL_CFLAGS += -DLOG_TAG=\"CameraService\" + +ifeq ($(TARGET_SIMULATOR),true) +LOCAL_CFLAGS += -DSINGLE_PROCESS +endif ifeq ($(USE_CAMERA_STUB), true) LOCAL_STATIC_LIBRARIES += libcamerastub diff --git a/camera/libcameraservice/CameraHardwareStub.h b/camera/libcameraservice/CameraHardwareStub.h index efae935d0..dd3c706bc 100644 --- a/camera/libcameraservice/CameraHardwareStub.h +++ b/camera/libcameraservice/CameraHardwareStub.h @@ -67,8 +67,15 @@ private: class PreviewThread : public Thread { CameraHardwareStub* mHardware; public: - PreviewThread(CameraHardwareStub* hw) - : Thread(false), mHardware(hw) { } + PreviewThread(CameraHardwareStub* hw) : +#ifdef SINGLE_PROCESS + // In single process mode this thread needs to be a java thread, + // since we won't be calling through the binder. + Thread(true), +#else + Thread(false), +#endif + mHardware(hw) { } virtual void onFirstRef() { run("CameraPreviewThread", PRIORITY_URGENT_DISPLAY); }