Code drop from //branches/cupcake/...@124589
diff --git a/led/Android.mk b/led/Android.mk
index 3ecaff8..2b6ac0b 100644
--- a/led/Android.mk
+++ b/led/Android.mk
@@ -1,12 +1,15 @@
# Copyright 2006 The Android Open Source Project
-ifeq ($(TARGET_PRODUCT),sooner)
+ifeq ($(TARGET_DEVICE),sooner)
LOCAL_SRC_FILES += led/led_sardine.c
-else
-ifeq ($(TARGET_PRODUCT),dream)
+LOCAL_CFLAGS += -DCONFIG_LED_SARDINE
+endif
+ifeq ($(TARGET_DEVICE),dream)
LOCAL_SRC_FILES += led/led_trout.c
-else
+LOCAL_CFLAGS += -DCONFIG_LED_TROUT
+endif
+ifeq ($(QEMU_HARDWARE),true)
+LOCAL_CFLAGS += -DCONFIG_LED_QEMU
+endif
LOCAL_SRC_FILES += led/led_stub.c
-endif
-endif
diff --git a/led/led_qemu.c b/led/led_qemu.c
new file mode 100644
index 0000000..c98402b
--- /dev/null
+++ b/led/led_qemu.c
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2008 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 "qemu.h"
+
+int
+qemu_set_led_state(unsigned color, int on, int off)
+{
+ qemu_control_command( "set_led_state:%08x:%d:%d", color, on, off );
+ return 0;
+}
diff --git a/led/led_sardine.c b/led/led_sardine.c
index a53729f..a5e6fad 100644
--- a/led/led_sardine.c
+++ b/led/led_sardine.c
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2008 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 <hardware/led.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -27,7 +42,7 @@
return amt >= 0 ? 0 : errno;
}
-int set_led_state(unsigned colorARGB, int onMS, int offMS)
+int sardine_set_led_state(unsigned colorARGB, int onMS, int offMS)
{
int len;
char buf[30];
diff --git a/led/led_stub.c b/led/led_stub.c
index 644efe3..1deac2f 100644
--- a/led/led_stub.c
+++ b/led/led_stub.c
@@ -1,7 +1,51 @@
+/*
+ * Copyright (C) 2008 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 <hardware/led.h>
+typedef int (*LedFunc)(unsigned, int, int);
+
+#ifdef CONFIG_LED_SARDINE
+extern int sardine_set_led_state(unsigned, int, int);
+# define HW_LED_FUNC sardine_set_led_state
+#endif
+
+#ifdef CONFIG_LED_TROUT
+extern int trout_set_led_state(unsigned, int, int);
+# define HW_LED_FUNC trout_set_led_state
+#endif
+
+#ifdef CONFIG_LED_QEMU
+#include "qemu.h"
+static int
+qemu_set_led_state(unsigned color, int on, int off)
+{
+ qemu_control_command( "set_led_state:%08x:%d:%d", color, on, off );
+ return 0;
+}
+#endif
+
int
set_led_state(unsigned color, int on, int off)
{
+#ifdef CONFIG_LED_QEMU
+ QEMU_FALLBACK(set_led_state(color,on,off));
+#endif
+#ifdef HW_LED_FUNC
+ return HW_LED_FUNC(color, on, off);
+#else
return 0;
+#endif
}
diff --git a/led/led_trout.c b/led/led_trout.c
index 847b6bc..99d6bb0 100644
--- a/led/led_trout.c
+++ b/led/led_trout.c
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2008 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 <hardware/led.h>
#include <sys/types.h>
#include <sys/stat.h>
@@ -38,7 +53,7 @@
return amt >= 0 ? 0 : errno;
}
-int set_led_state(unsigned colorARGB, int onMS, int offMS)
+int trout_set_led_state(unsigned colorARGB, int onMS, int offMS)
{
int len;
char buf[30];