diff options
-rw-r--r-- | audio/Android.mk | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | camera/Android.mk | 4 | ||||
-rwxr-xr-x | camera/EmulatedFakeCameraDevice.cpp | 7 | ||||
-rw-r--r-- | gps/Android.mk | 2 | ||||
-rw-r--r-- | init.goldfish.rc | 4 | ||||
-rw-r--r-- | lights/Android.mk | 2 | ||||
-rw-r--r-- | opengl/common.mk | 6 | ||||
-rw-r--r-- | opengl/system/GLESv1/Android.mk | 2 | ||||
-rw-r--r-- | opengl/system/GLESv2/Android.mk | 2 | ||||
-rw-r--r-- | opengl/system/egl/Android.mk | 2 | ||||
-rw-r--r-- | power/Android.mk | 2 | ||||
-rw-r--r-- | sensors/Android.mk | 2 | ||||
-rw-r--r-- | vibrator/Android.mk | 29 | ||||
-rw-r--r-- | vibrator/vibrator_qemu.c | 91 |
14 files changed, 139 insertions, 18 deletions
diff --git a/audio/Android.mk b/audio/Android.mk index 188fa21..8e21fe8 100644 --- a/audio/Android.mk +++ b/audio/Android.mk @@ -18,7 +18,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := audio.primary.goldfish -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw +LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_MODULE_TAGS := optional LOCAL_SHARED_LIBRARIES := libcutils liblog diff --git a/camera/Android.mk b/camera/Android.mk index 7aa5856..d852e7f 100755..100644 --- a/camera/Android.mk +++ b/camera/Android.mk @@ -17,7 +17,7 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw +LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_CFLAGS += -fno-short-enums -DQEMU_HARDWARE LOCAL_SHARED_LIBRARIES:= \ libbinder \ @@ -76,7 +76,7 @@ ifneq ($(TARGET_BUILD_PDK),true) include $(CLEAR_VARS) -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw +LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_CFLAGS += -fno-short-enums -DQEMU_HARDWARE LOCAL_SHARED_LIBRARIES:= \ libcutils \ diff --git a/camera/EmulatedFakeCameraDevice.cpp b/camera/EmulatedFakeCameraDevice.cpp index 0bc4c54..4afadc1 100755 --- a/camera/EmulatedFakeCameraDevice.cpp +++ b/camera/EmulatedFakeCameraDevice.cpp @@ -243,6 +243,13 @@ void EmulatedFakeCameraDevice::drawCheckerboard() const int size = mFrameWidth / 10; bool black = true; + if (size == 0) { + // When this happens, it happens at a very high rate, + // so don't log any messages and just return. + return; + } + + if((mCheckX / size) & 1) black = false; if((mCheckY / size) & 1) diff --git a/gps/Android.mk b/gps/Android.mk index 6840f84..65b637c 100644 --- a/gps/Android.mk +++ b/gps/Android.mk @@ -24,7 +24,7 @@ LOCAL_PATH := $(call my-dir) # hw/<GPS_HARDWARE_MODULE_ID>.<ro.hardware>.so include $(CLEAR_VARS) -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw +LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_CFLAGS += -DQEMU_HARDWARE LOCAL_SHARED_LIBRARIES := liblog libcutils libhardware LOCAL_SRC_FILES := gps_qemu.c diff --git a/init.goldfish.rc b/init.goldfish.rc index 9c08c6e..ead468d 100644 --- a/init.goldfish.rc +++ b/init.goldfish.rc @@ -14,10 +14,6 @@ on init symlink /storage/sdcard /mnt/sdcard on boot - setsebool in_qemu 1 - restorecon /sys/qemu_trace/process_name - restorecon /sys/qemu_trace/state - restorecon /sys/qemu_trace/symbol setprop ARGH ARGH setprop net.eth0.gw 10.0.2.2 setprop net.eth0.dns1 10.0.2.3 diff --git a/lights/Android.mk b/lights/Android.mk index 3fa04ed..49f2d76 100644 --- a/lights/Android.mk +++ b/lights/Android.mk @@ -18,7 +18,7 @@ LOCAL_PATH := $(call my-dir) # hw/<LIGHTS_HARDWARE_MODULE_ID>.<ro.hardware>.so include $(CLEAR_VARS) LOCAL_PRELINK_MODULE := false -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw +LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_SHARED_LIBRARIES := liblog libcutils LOCAL_SRC_FILES := lights_qemu.c LOCAL_MODULE := lights.goldfish diff --git a/opengl/common.mk b/opengl/common.mk index 6dd503e..a4ea7d7 100644 --- a/opengl/common.mk +++ b/opengl/common.mk @@ -234,7 +234,5 @@ endef # $1: library sub-path,relative to /system/lib # For example: $(call emugl-set-shared-library-subpath,egl) emugl-set-shared-library-subpath = \ - $(eval LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/$1)\ - $(eval LOCAL_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$1)\ - $(eval _emugl.$(LOCAL_MODULE).moved := true)\ - $(call emugl-export-outer,ADDITIONAL_DEPENDENCIES,$(LOCAL_MODULE_PATH)/$(LOCAL_MODULE)$(TARGET_SHLIB_SUFFIX)) + $(eval LOCAL_MODULE_RELATIVE_PATH := $1)\ + $(eval _emugl.$(LOCAL_MODULE).moved := true) diff --git a/opengl/system/GLESv1/Android.mk b/opengl/system/GLESv1/Android.mk index 97356b7..8762c11 100644 --- a/opengl/system/GLESv1/Android.mk +++ b/opengl/system/GLESv1/Android.mk @@ -7,6 +7,6 @@ $(call emugl-import,libOpenglSystemCommon libGLESv1_enc lib_renderControl_enc) LOCAL_CFLAGS += -DLOG_TAG=\"GLES_emulation\" -DGL_GLEXT_PROTOTYPES LOCAL_SRC_FILES := gl.cpp -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl +LOCAL_MODULE_RELATIVE_PATH := egl $(call emugl-end-module) diff --git a/opengl/system/GLESv2/Android.mk b/opengl/system/GLESv2/Android.mk index c299522..5a23424 100644 --- a/opengl/system/GLESv2/Android.mk +++ b/opengl/system/GLESv2/Android.mk @@ -7,6 +7,6 @@ $(call emugl-import,libOpenglSystemCommon libGLESv2_enc lib_renderControl_enc) LOCAL_CFLAGS += -DLOG_TAG=\"GLESv2_emulation\" -DGL_GLEXT_PROTOTYPES LOCAL_SRC_FILES := gl2.cpp -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/egl +LOCAL_MODULE_RELATIVE_PATH := egl $(call emugl-end-module) diff --git a/opengl/system/egl/Android.mk b/opengl/system/egl/Android.mk index a979089..241cefe 100644 --- a/opengl/system/egl/Android.mk +++ b/opengl/system/egl/Android.mk @@ -26,7 +26,7 @@ $(call emugl-end-module) # Other builds are device-specific and will provide their own # version of this file to point to the appropriate HW EGL libraries. # -ifneq (,$(filter full full_x86 full_mips sdk sdk_x86 sdk_mips google_sdk google_sdk_x86 google_sdk_mips,$(TARGET_PRODUCT))) +ifneq (,$(filter aosp_arm aosp_x86 aosp_mips full full_x86 full_mips sdk sdk_x86 sdk_mips google_sdk google_sdk_x86 google_sdk_mips,$(TARGET_PRODUCT))) include $(CLEAR_VARS) LOCAL_MODULE := egl.cfg diff --git a/power/Android.mk b/power/Android.mk index 30d21a3..0273f04 100644 --- a/power/Android.mk +++ b/power/Android.mk @@ -19,7 +19,7 @@ LOCAL_PATH := $(call my-dir) # hw/<POWERS_HARDWARE_MODULE_ID>.<ro.hardware>.so include $(CLEAR_VARS) -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw +LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_CFLAGS += -DQEMU_HARDWARE LOCAL_SHARED_LIBRARIES := liblog libcutils LOCAL_SRC_FILES := power_qemu.c diff --git a/sensors/Android.mk b/sensors/Android.mk index a1b8967..214ead6 100644 --- a/sensors/Android.mk +++ b/sensors/Android.mk @@ -19,7 +19,7 @@ LOCAL_PATH := $(call my-dir) # hw/<SENSORS_HARDWARE_MODULE_ID>.<ro.hardware>.so include $(CLEAR_VARS) -LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw +LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_SHARED_LIBRARIES := liblog libcutils LOCAL_SRC_FILES := sensors_qemu.c ifeq ($(TARGET_PRODUCT),vbox_x86) diff --git a/vibrator/Android.mk b/vibrator/Android.mk new file mode 100644 index 0000000..6ab9c38 --- /dev/null +++ b/vibrator/Android.mk @@ -0,0 +1,29 @@ +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := vibrator.goldfish + +# HAL module implemenation stored in +# hw/<VIBRATOR_HARDWARE_MODULE_ID>.goldfish.so +LOCAL_MODULE_RELATIVE_PATH := hw +LOCAL_C_INCLUDES := hardware/libhardware hardware/libhardware_legacy +LOCAL_SRC_FILES := vibrator_qemu.c +LOCAL_SHARED_LIBRARIES := liblog libhardware libhardware_legacy +LOCAL_MODULE_TAGS := optional + +include $(BUILD_SHARED_LIBRARY) diff --git a/vibrator/vibrator_qemu.c b/vibrator/vibrator_qemu.c new file mode 100644 index 0000000..1c1ffe0 --- /dev/null +++ b/vibrator/vibrator_qemu.c @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <stdlib.h> + +#include <cutils/log.h> + +#include <qemu.h> +#include <hardware/hardware.h> +#include <hardware/vibrator.h> + +static int sendit(unsigned int timeout_ms) +{ + if (qemu_check()) { + if (qemu_control_command("vibrator:%u", timeout_ms) < 0) { + return -errno; + } + return 0; + } + + return -ENOSYS; +} + +static int qemu_vibra_on(vibrator_device_t* vibradev __unused, unsigned int timeout_ms) +{ + return sendit(timeout_ms); +} + +static int qemu_vibra_off(vibrator_device_t* vibradev __unused) +{ + return sendit(0); +} + +static int qemu_vibra_close(hw_device_t *device) +{ + free(device); + return 0; +} + +static int qemu_vibra_open(const hw_module_t* module, const char* id __unused, + hw_device_t** device) { + vibrator_device_t *vibradev = calloc(1, sizeof(vibrator_device_t)); + + if (!vibradev) { + ALOGE("No memory available to create Goldfish vibrator device!"); + return -ENOMEM; + } + + vibradev->common.tag = HARDWARE_DEVICE_TAG; + vibradev->common.module = (hw_module_t *) module; + vibradev->common.version = HARDWARE_DEVICE_API_VERSION(1,0); + vibradev->common.close = qemu_vibra_close; + + vibradev->vibrator_on = qemu_vibra_on; + vibradev->vibrator_off = qemu_vibra_off; + + *device = (hw_device_t *) vibradev; + + return 0; +} + +/*===========================*/ +/* Emulator vibrator module */ +/*===========================*/ + +static struct hw_module_methods_t qemu_vibrator_module_methods = { + .open = qemu_vibra_open, +}; + +struct hw_module_t HAL_MODULE_INFO_SYM = { + .tag = HARDWARE_MODULE_TAG, + .module_api_version = VIBRATOR_API_VERSION, + .hal_api_version = HARDWARE_HAL_API_VERSION, + .id = VIBRATOR_HARDWARE_MODULE_ID, + .name = "Goldfish vibrator module", + .author = "The Android Open Source Project", + .methods = &qemu_vibrator_module_methods, +}; |