summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/Makefile2
-rw-r--r--apps/codecs/lib/Makefile2
-rw-r--r--apps/plugins/Makefile2
-rw-r--r--apps/plugins/chessbox/Makefile2
-rw-r--r--apps/plugins/databox/Makefile2
-rw-r--r--apps/plugins/doom/Makefile7
-rw-r--r--apps/plugins/lib/Makefile2
-rw-r--r--apps/plugins/pacbox/Makefile2
-rw-r--r--apps/plugins/rockboy/Makefile2
-rw-r--r--apps/plugins/searchengine/Makefile2
-rw-r--r--apps/plugins/sudoku/Makefile2
-rw-r--r--firmware/SOURCES1
-rw-r--r--firmware/drivers/button.c118
-rw-r--r--firmware/export/button.h47
-rwxr-xr-xfirmware/target/coldfire/iaudio/x5/button-target.h70
-rwxr-xr-xfirmware/target/coldfire/iaudio/x5/button-x5.c131
-rw-r--r--uisimulator/common/Makefile2
-rw-r--r--uisimulator/sdl/Makefile2
18 files changed, 241 insertions, 157 deletions
diff --git a/apps/Makefile b/apps/Makefile
index 0fd52bb135..53a0d373bb 100644
--- a/apps/Makefile
+++ b/apps/Makefile
@@ -7,7 +7,7 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10INCLUDES= -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I. -I$(BUILDDIR) \ 10INCLUDES= $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I. -I$(BUILDDIR) \
11 -I$(BUILDDIR)/bitmaps -I$(OBJDIR) 11 -I$(BUILDDIR)/bitmaps -I$(OBJDIR)
12 12
13DEPFILE = $(OBJDIR)/dep-apps 13DEPFILE = $(OBJDIR)/dep-apps
diff --git a/apps/codecs/lib/Makefile b/apps/codecs/lib/Makefile
index 18f478c474..865e3b5e53 100644
--- a/apps/codecs/lib/Makefile
+++ b/apps/codecs/lib/Makefile
@@ -10,7 +10,7 @@
10# ../.. for the codec.h in the apps dir 10# ../.. for the codec.h in the apps dir
11# .. for stuff in the codecs dir 11# .. for stuff in the codecs dir
12# . for stuff in the codeclib dir 12# . for stuff in the codeclib dir
13INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ 13INCLUDES=-I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
14 -I$(FIRMDIR)/common -I$(BUILDDIR) 14 -I$(FIRMDIR)/common -I$(BUILDDIR)
15 15
16ifdef APPEXTRA 16ifdef APPEXTRA
diff --git a/apps/plugins/Makefile b/apps/plugins/Makefile
index 2dd8ab2e8d..0b2974f565 100644
--- a/apps/plugins/Makefile
+++ b/apps/plugins/Makefile
@@ -7,7 +7,7 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10INCLUDES = -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \ 10INCLUDES = $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export -I$(FIRMDIR)/common \
11 -I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib -I$(BUILDDIR) \ 11 -I$(FIRMDIR)/drivers -I$(APPSDIR) -Ilib -I$(BUILDDIR) \
12 -I$(BUILDDIR)/pluginbitmaps 12 -I$(BUILDDIR)/pluginbitmaps
13CFLAGS = $(INCLUDES) $(GCCOPTS) $(TARGET) $(EXTRA_DEFINES) \ 13CFLAGS = $(INCLUDES) $(GCCOPTS) $(TARGET) $(EXTRA_DEFINES) \
diff --git a/apps/plugins/chessbox/Makefile b/apps/plugins/chessbox/Makefile
index eb2df44e11..66381bea12 100644
--- a/apps/plugins/chessbox/Makefile
+++ b/apps/plugins/chessbox/Makefile
@@ -7,7 +7,7 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ 10INCLUDES = -I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR) 11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
12CFLAGS = $(GCCOPTS) -O2 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \ 12CFLAGS = $(GCCOPTS) -O2 $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN 13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
diff --git a/apps/plugins/databox/Makefile b/apps/plugins/databox/Makefile
index 1205234d38..507a861f9b 100644
--- a/apps/plugins/databox/Makefile
+++ b/apps/plugins/databox/Makefile
@@ -7,7 +7,7 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ 10INCLUDES = -I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR) 11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
12CFLAGS = $(INCLUDES) $(GCCOPTS) -O3 $(TARGET) $(EXTRA_DEFINES) \ 12CFLAGS = $(INCLUDES) $(GCCOPTS) -O3 $(TARGET) $(EXTRA_DEFINES) \
13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN 13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
diff --git a/apps/plugins/doom/Makefile b/apps/plugins/doom/Makefile
index 0eef697292..b79f5be7b0 100644
--- a/apps/plugins/doom/Makefile
+++ b/apps/plugins/doom/Makefile
@@ -3,7 +3,10 @@
3# $Id$ 3# $Id$
4# 4#
5# $Log$ 5# $Log$
6# Revision 1.3 2006/04/14 21:07:56 kkurbjun 6# Revision 1.4 2006/07/27 13:27:19 linus
7# Moved the X5 button driver to the target tree
8#
9# Revision 1.3 2006-04-14 21:07:56 kkurbjun
7# Start of profiling support for doom. 10# Start of profiling support for doom.
8# 11#
9# Revision 1.2 2006-03-29 21:16:45 kkurbjun 12# Revision 1.2 2006-03-29 21:16:45 kkurbjun
@@ -14,7 +17,7 @@
14# 17#
15# 18#
16 19
17INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ 20INCLUDES = -I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
18 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR) 21 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
19CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \ 22CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
20 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN \ 23 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN \
diff --git a/apps/plugins/lib/Makefile b/apps/plugins/lib/Makefile
index 916c63203d..8482b1f1dd 100644
--- a/apps/plugins/lib/Makefile
+++ b/apps/plugins/lib/Makefile
@@ -10,7 +10,7 @@
10# ../.. for the plugin.h in the apps dir 10# ../.. for the plugin.h in the apps dir
11# .. for stuff in the plugins dir 11# .. for stuff in the plugins dir
12# . for stuff in the pluginlib dir 12# . for stuff in the pluginlib dir
13INCLUDES=-I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ 13INCLUDES=-I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
14 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(BUILDDIR) 14 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(BUILDDIR)
15 15
16ifdef APPEXTRA 16ifdef APPEXTRA
diff --git a/apps/plugins/pacbox/Makefile b/apps/plugins/pacbox/Makefile
index 0b7f4b9e15..4a5442c25f 100644
--- a/apps/plugins/pacbox/Makefile
+++ b/apps/plugins/pacbox/Makefile
@@ -7,7 +7,7 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ 10INCLUDES = -I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR) 11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
12CFLAGS = $(INCLUDES) $(GCCOPTS) -O2 $(TARGET) $(EXTRA_DEFINES) \ 12CFLAGS = $(INCLUDES) $(GCCOPTS) -O2 $(TARGET) $(EXTRA_DEFINES) \
13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN 13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
diff --git a/apps/plugins/rockboy/Makefile b/apps/plugins/rockboy/Makefile
index 694dcde251..39e684e143 100644
--- a/apps/plugins/rockboy/Makefile
+++ b/apps/plugins/rockboy/Makefile
@@ -7,7 +7,7 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ 10INCLUDES = -I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR) 11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
12CFLAGS = $(INCLUDES) $(GCCOPTS) -O2 $(TARGET) $(EXTRA_DEFINES) \ 12CFLAGS = $(INCLUDES) $(GCCOPTS) -O2 $(TARGET) $(EXTRA_DEFINES) \
13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN -finline-functions 13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN -finline-functions
diff --git a/apps/plugins/searchengine/Makefile b/apps/plugins/searchengine/Makefile
index 21b53cbefe..92e9f03991 100644
--- a/apps/plugins/searchengine/Makefile
+++ b/apps/plugins/searchengine/Makefile
@@ -7,7 +7,7 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ 10INCLUDES = -I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR) 11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
12CFLAGS = $(INCLUDES) $(GCCOPTS) -O3 $(TARGET) $(EXTRA_DEFINES) \ 12CFLAGS = $(INCLUDES) $(GCCOPTS) -O3 $(TARGET) $(EXTRA_DEFINES) \
13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN 13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
diff --git a/apps/plugins/sudoku/Makefile b/apps/plugins/sudoku/Makefile
index 9b9c1c6b2e..eef05124f9 100644
--- a/apps/plugins/sudoku/Makefile
+++ b/apps/plugins/sudoku/Makefile
@@ -7,7 +7,7 @@
7# $Id$ 7# $Id$
8# 8#
9 9
10INCLUDES = -I$(APPSDIR) -I.. -I. -I$(FIRMDIR)/include -I$(FIRMDIR)/export \ 10INCLUDES = -I$(APPSDIR) -I.. -I. $(TARGET_INC) -I$(FIRMDIR)/include -I$(FIRMDIR)/export \
11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR) 11 -I$(FIRMDIR)/common -I$(FIRMDIR)/drivers -I$(OUTDIR) -I$(BUILDDIR)
12CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \ 12CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) \
13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN 13 -DTARGET_ID=$(TARGET_ID) -DMEM=${MEMORYSIZE} -DPLUGIN
diff --git a/firmware/SOURCES b/firmware/SOURCES
index bef54c0319..70a4c4ad25 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -217,6 +217,7 @@ drivers/m5636.c
217target/coldfire/iaudio/x5/power-x5.c 217target/coldfire/iaudio/x5/power-x5.c
218#ifndef SIMULATOR 218#ifndef SIMULATOR
219drivers/generic_i2c.c 219drivers/generic_i2c.c
220target/coldfire/iaudio/x5/button-x5.c
220target/coldfire/iaudio/x5/lcd-x5.c 221target/coldfire/iaudio/x5/lcd-x5.c
221target/coldfire/iaudio/x5/pcf50606-x5.c 222target/coldfire/iaudio/x5/pcf50606-x5.c
222target/coldfire/iaudio/x5/adc-x5.c 223target/coldfire/iaudio/x5/adc-x5.c
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c
index 216c51ea15..d9f9ae2a6d 100644
--- a/firmware/drivers/button.c
+++ b/firmware/drivers/button.c
@@ -44,6 +44,10 @@
44#include "lcd-remote.h" 44#include "lcd-remote.h"
45#endif 45#endif
46 46
47#ifdef TARGET_TREE
48#include "button-target.h"
49#endif
50
47struct event_queue button_queue; 51struct event_queue button_queue;
48 52
49static long lastbtn; /* Last valid button status */ 53static long lastbtn; /* Last valid button status */
@@ -72,10 +76,7 @@ static bool remote_filter_first_keypress;
72 (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD) 76 (CONFIG_KEYPAD == IRIVER_IFP7XX_PAD)
73#define POWEROFF_BUTTON BUTTON_PLAY 77#define POWEROFF_BUTTON BUTTON_PLAY
74#define POWEROFF_COUNT 40 78#define POWEROFF_COUNT 40
75#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD) 79#elif !defined(TARGET_TREE)
76#define POWEROFF_BUTTON BUTTON_POWER
77#define POWEROFF_COUNT 10
78#else
79#define POWEROFF_BUTTON BUTTON_OFF 80#define POWEROFF_BUTTON BUTTON_OFF
80#define POWEROFF_COUNT 10 81#define POWEROFF_COUNT 10
81#endif 82#endif
@@ -603,7 +604,10 @@ long button_get_w_tmo(int ticks)
603void button_init(void) 604void button_init(void)
604{ 605{
605 /* hardware inits */ 606 /* hardware inits */
606#if CONFIG_KEYPAD == IRIVER_H100_PAD 607#ifdef TARGET_TREE
608 button_init_device();
609
610#elif CONFIG_KEYPAD == IRIVER_H100_PAD
607 /* Set GPIO33, GPIO37, GPIO38 and GPIO52 as general purpose inputs */ 611 /* Set GPIO33, GPIO37, GPIO38 and GPIO52 as general purpose inputs */
608 GPIO1_FUNCTION |= 0x00100062; 612 GPIO1_FUNCTION |= 0x00100062;
609 GPIO1_ENABLE &= ~0x00100060; 613 GPIO1_ENABLE &= ~0x00100060;
@@ -614,11 +618,6 @@ void button_init(void)
614 /* Set GPIO33, GPIO37, GPIO38 and GPIO52 as general purpose inputs */ 618 /* Set GPIO33, GPIO37, GPIO38 and GPIO52 as general purpose inputs */
615 GPIO1_ENABLE &= ~0x00100060; 619 GPIO1_ENABLE &= ~0x00100060;
616 GPIO1_FUNCTION |= 0x00100062; 620 GPIO1_FUNCTION |= 0x00100062;
617#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
618 /* Power, Remote Play & Hold switch */
619 GPIO_FUNCTION |= 0x0e000000;
620 GPIO_ENABLE &= ~0x0e000000;
621
622#elif CONFIG_KEYPAD == RECORDER_PAD 621#elif CONFIG_KEYPAD == RECORDER_PAD
623 /* Set PB4 and PB8 as input pins */ 622 /* Set PB4 and PB8 as input pins */
624 PBCR1 &= 0xfffc; /* PB8MD = 00 */ 623 PBCR1 &= 0xfffc; /* PB8MD = 00 */
@@ -833,9 +832,14 @@ static int button_read(void)
833{ 832{
834 int btn = BUTTON_NONE; 833 int btn = BUTTON_NONE;
835 int retval; 834 int retval;
835#ifndef TARGET_TREE
836 int data; 836 int data;
837#endif
837 838
838#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD) 839#ifdef TARGET_TREE
840 btn = button_read_device();
841
842#elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || (CONFIG_KEYPAD == IRIVER_H300_PAD)
839 static bool hold_button = false; 843 static bool hold_button = false;
840 static bool remote_hold_button = false; 844 static bool remote_hold_button = false;
841 static int prev_data = 0xff; 845 static int prev_data = 0xff;
@@ -1238,86 +1242,6 @@ static int button_read(void)
1238 (void)data; 1242 (void)data;
1239 btn = ipod_3g_button_read(); 1243 btn = ipod_3g_button_read();
1240 1244
1241#elif (CONFIG_KEYPAD == IAUDIO_X5_PAD)
1242 static bool hold_button = false;
1243 static bool remote_hold_button = false;
1244
1245 /* light handling */
1246 if (hold_button && !button_hold())
1247 {
1248 backlight_on();
1249 }
1250 /* TODO: add light handling for the remote */
1251
1252 hold_button = button_hold();
1253 remote_hold_button = remote_button_hold();
1254
1255 /* normal buttons */
1256 if (!hold_button)
1257 {
1258 data = adc_scan(ADC_BUTTONS);
1259 if (data < 0xf0)
1260 {
1261 if(data < 0x7c)
1262 if(data < 0x42)
1263 btn = BUTTON_LEFT;
1264 else
1265 if(data < 0x62)
1266 btn = BUTTON_RIGHT;
1267 else
1268 btn = BUTTON_SELECT;
1269 else
1270 if(data < 0xb6)
1271 if(data < 0x98)
1272 btn = BUTTON_REC;
1273 else
1274 btn = BUTTON_PLAY;
1275 else
1276 if(data < 0xd3)
1277 btn = BUTTON_DOWN;
1278 else
1279 btn = BUTTON_UP;
1280 }
1281 }
1282
1283 /* remote buttons */
1284 data = adc_scan(ADC_REMOTE);
1285 if(data < 0x17)
1286 remote_hold_button = true;
1287
1288 if(!remote_hold_button)
1289 {
1290 if (data < 0xee)
1291 {
1292 if(data < 0x7a)
1293 if(data < 0x41)
1294 btn |= BUTTON_RC_REW;
1295 else
1296 if(data < 0x61)
1297 btn |= BUTTON_RC_FF;
1298 else
1299 btn |= BUTTON_RC_MODE;
1300 else
1301 if(data < 0xb4)
1302 if(data < 0x96)
1303 btn |= BUTTON_RC_REC;
1304 else
1305 btn |= BUTTON_RC_MENU;
1306 else
1307 if(data < 0xd1)
1308 btn |= BUTTON_RC_VOL_UP;
1309 else
1310 btn |= BUTTON_RC_VOL_DOWN;
1311 }
1312 }
1313
1314 data = GPIO_READ;
1315 if (!(data & 0x04000000))
1316 btn |= BUTTON_POWER;
1317
1318 if (!(data & 0x02000000))
1319 btn |= BUTTON_RC_PLAY;
1320
1321#endif /* CONFIG_KEYPAD */ 1245#endif /* CONFIG_KEYPAD */
1322 1246
1323#ifdef HAVE_LCD_BITMAP 1247#ifdef HAVE_LCD_BITMAP
@@ -1375,18 +1299,6 @@ bool button_hold(void)
1375} 1299}
1376#endif 1300#endif
1377 1301
1378#if (CONFIG_KEYPAD == IAUDIO_X5_PAD)
1379bool button_hold(void)
1380{
1381 return (GPIO_READ & 0x08000000)?false:true;
1382}
1383
1384bool remote_button_hold(void)
1385{
1386 return false; /* TODO X5 */
1387}
1388#endif
1389
1390int button_status(void) 1302int button_status(void)
1391{ 1303{
1392 return lastbtn; 1304 return lastbtn;
diff --git a/firmware/export/button.h b/firmware/export/button.h
index 93e6443645..92c9415372 100644
--- a/firmware/export/button.h
+++ b/firmware/export/button.h
@@ -23,8 +23,7 @@
23#include <stdbool.h> 23#include <stdbool.h>
24#include "config.h" 24#include "config.h"
25#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ 25#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
26 (CONFIG_KEYPAD == IRIVER_H300_PAD) || \ 26 (CONFIG_KEYPAD == IRIVER_H300_PAD)
27 (CONFIG_KEYPAD == IAUDIO_X5_PAD)
28#define HAS_BUTTON_HOLD 27#define HAS_BUTTON_HOLD
29#define HAS_REMOTE_BUTTON_HOLD 28#define HAS_REMOTE_BUTTON_HOLD
30#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 29#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
@@ -64,6 +63,10 @@ bool remote_button_hold(void);
64#define BUTTON_REPEAT 0x04000000 63#define BUTTON_REPEAT 0x04000000
65 64
66 65
66#ifdef TARGET_TREE
67#include "button-target.h"
68#else
69
67 /* Target specific button codes */ 70 /* Target specific button codes */
68 71
69#if (CONFIG_KEYPAD == IRIVER_H100_PAD)\ 72#if (CONFIG_KEYPAD == IRIVER_H100_PAD)\
@@ -258,44 +261,6 @@ bool remote_button_hold(void);
258 261
259#define BUTTON_REMOTE 0 262#define BUTTON_REMOTE 0
260 263
261#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
262
263/* iaudio X5 specific button codes */
264
265 /* Main unit's buttons */
266#define BUTTON_POWER 0x00000001
267#define BUTTON_REC 0x00000002
268
269#define BUTTON_LEFT 0x00000004
270#define BUTTON_RIGHT 0x00000008
271#define BUTTON_UP 0x00000010
272#define BUTTON_DOWN 0x00000020
273
274#define BUTTON_PLAY 0x00000040
275#define BUTTON_SELECT 0x00000080
276
277#define BUTTON_MAIN (BUTTON_POWER|BUTTON_PLAY|BUTTON_LEFT|BUTTON_RIGHT\
278 |BUTTON_UP|BUTTON_DOWN|BUTTON_REC|BUTTON_SELECT)
279
280 /* Remote control's buttons */
281#define BUTTON_RC_PLAY 0x00100000
282
283#define BUTTON_RC_REW 0x00080000
284#define BUTTON_RC_FF 0x00040000
285#define BUTTON_RC_VOL_UP 0x00020000
286#define BUTTON_RC_VOL_DOWN 0x00010000
287
288#define BUTTON_RC_REC 0x00008000
289#define BUTTON_RC_MENU 0x00004000
290
291#define BUTTON_RC_MODE 0x00002000
292
293#define BUTTON_REMOTE (BUTTON_RC_PLAY|BUTTON_RC_VOL_UP|BUTTON_RC_VOL_DOWN\
294 |BUTTON_RC_REW|BUTTON_RC_FF\
295 |BUTTON_RC_REC|BUTTON_RC_MENU|BUTTON_RC_MODE)
296
297
298
299#elif CONFIG_KEYPAD == GIGABEAT_PAD 264#elif CONFIG_KEYPAD == GIGABEAT_PAD
300/* Toshiba Gigabeat specific button codes */ 265/* Toshiba Gigabeat specific button codes */
301 266
@@ -337,5 +302,7 @@ bool remote_button_hold(void);
337 302
338#endif /* RECORDER/PLAYER/ONDIO/GMINI KEYPAD */ 303#endif /* RECORDER/PLAYER/ONDIO/GMINI KEYPAD */
339 304
305#endif /* TARGET_TREE */
306
340#endif /* _BUTTON_H_ */ 307#endif /* _BUTTON_H_ */
341 308
diff --git a/firmware/target/coldfire/iaudio/x5/button-target.h b/firmware/target/coldfire/iaudio/x5/button-target.h
new file mode 100755
index 0000000000..998522fe15
--- /dev/null
+++ b/firmware/target/coldfire/iaudio/x5/button-target.h
@@ -0,0 +1,70 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2006 by Linus Nielsen Feltzing
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19#ifndef _BUTTON_TARGET_H_
20#define _BUTTON_TARGET_H_
21
22#include <stdbool.h>
23#include "config.h"
24
25#define HAS_BUTTON_HOLD
26#define HAS_REMOTE_BUTTON_HOLD
27
28bool button_hold(void);
29bool remote_button_hold(void);
30void button_init_device(void);
31int button_read_device(void);
32
33/* iaudio X5 specific button codes */
34
35 /* Main unit's buttons */
36#define BUTTON_POWER 0x00000001
37#define BUTTON_REC 0x00000002
38
39#define BUTTON_LEFT 0x00000004
40#define BUTTON_RIGHT 0x00000008
41#define BUTTON_UP 0x00000010
42#define BUTTON_DOWN 0x00000020
43
44#define BUTTON_PLAY 0x00000040
45#define BUTTON_SELECT 0x00000080
46
47#define BUTTON_MAIN (BUTTON_POWER|BUTTON_PLAY|BUTTON_LEFT|BUTTON_RIGHT\
48 |BUTTON_UP|BUTTON_DOWN|BUTTON_REC|BUTTON_SELECT)
49
50 /* Remote control's buttons */
51#define BUTTON_RC_PLAY 0x00100000
52
53#define BUTTON_RC_REW 0x00080000
54#define BUTTON_RC_FF 0x00040000
55#define BUTTON_RC_VOL_UP 0x00020000
56#define BUTTON_RC_VOL_DOWN 0x00010000
57
58#define BUTTON_RC_REC 0x00008000
59#define BUTTON_RC_MENU 0x00004000
60
61#define BUTTON_RC_MODE 0x00002000
62
63#define BUTTON_REMOTE (BUTTON_RC_PLAY|BUTTON_RC_VOL_UP|BUTTON_RC_VOL_DOWN\
64 |BUTTON_RC_REW|BUTTON_RC_FF\
65 |BUTTON_RC_REC|BUTTON_RC_MENU|BUTTON_RC_MODE)
66
67#define POWEROFF_BUTTON BUTTON_POWER
68#define POWEROFF_COUNT 10
69
70#endif /* _BUTTON_TARGET_H_ */
diff --git a/firmware/target/coldfire/iaudio/x5/button-x5.c b/firmware/target/coldfire/iaudio/x5/button-x5.c
new file mode 100755
index 0000000000..07bc7bf3f7
--- /dev/null
+++ b/firmware/target/coldfire/iaudio/x5/button-x5.c
@@ -0,0 +1,131 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2006 by Linus Nielsen Feltzing
11 *
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
14 *
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
17 *
18 ****************************************************************************/
19
20#include <stdlib.h>
21#include "config.h"
22#include "cpu.h"
23#include "system.h"
24#include "button.h"
25#include "kernel.h"
26#include "backlight.h"
27#include "adc.h"
28#include "system.h"
29
30void button_init_device(void)
31{
32 /* Power, Remote Play & Hold switch */
33 GPIO_FUNCTION |= 0x0e000000;
34 GPIO_ENABLE &= ~0x0e000000;
35}
36
37bool button_hold(void)
38{
39 return (GPIO_READ & 0x08000000)?false:true;
40}
41
42bool remote_button_hold(void)
43{
44 return false; /* TODO X5 */
45}
46
47int button_read_device(void)
48{
49 int data;
50 int btn = BUTTON_NONE;
51 static bool hold_button = false;
52 static bool remote_hold_button = false;
53
54 /* backlight handling */
55 if (hold_button && !button_hold())
56 {
57 backlight_on();
58 }
59 /* TODO: add light handling for the remote */
60
61 hold_button = button_hold();
62 remote_hold_button = remote_button_hold();
63
64 /* normal buttons */
65 if (!hold_button)
66 {
67 data = adc_scan(ADC_BUTTONS);
68 if (data < 0xf0)
69 {
70 if(data < 0x7c)
71 if(data < 0x42)
72 btn = BUTTON_LEFT;
73 else
74 if(data < 0x62)
75 btn = BUTTON_RIGHT;
76 else
77 btn = BUTTON_SELECT;
78 else
79 if(data < 0xb6)
80 if(data < 0x98)
81 btn = BUTTON_REC;
82 else
83 btn = BUTTON_PLAY;
84 else
85 if(data < 0xd3)
86 btn = BUTTON_DOWN;
87 else
88 btn = BUTTON_UP;
89 }
90 }
91
92 /* remote buttons */
93 data = adc_scan(ADC_REMOTE);
94 if(data < 0x17)
95 remote_hold_button = true;
96
97 if(!remote_hold_button)
98 {
99 if (data < 0xee)
100 {
101 if(data < 0x7a)
102 if(data < 0x41)
103 btn |= BUTTON_RC_REW;
104 else
105 if(data < 0x61)
106 btn |= BUTTON_RC_FF;
107 else
108 btn |= BUTTON_RC_MODE;
109 else
110 if(data < 0xb4)
111 if(data < 0x96)
112 btn |= BUTTON_RC_REC;
113 else
114 btn |= BUTTON_RC_MENU;
115 else
116 if(data < 0xd1)
117 btn |= BUTTON_RC_VOL_UP;
118 else
119 btn |= BUTTON_RC_VOL_DOWN;
120 }
121 }
122
123 data = GPIO_READ;
124 if (!(data & 0x04000000))
125 btn |= BUTTON_POWER;
126
127 if (!(data & 0x02000000))
128 btn |= BUTTON_RC_PLAY;
129
130 return btn;
131}
diff --git a/uisimulator/common/Makefile b/uisimulator/common/Makefile
index e4f3dd93c2..1024349f71 100644
--- a/uisimulator/common/Makefile
+++ b/uisimulator/common/Makefile
@@ -23,7 +23,7 @@ RM = rm -f
23DEBUG = -g 23DEBUG = -g
24 24
25# Use this for simulator-only files 25# Use this for simulator-only files
26INCLUDES = -I. -I$(OBJDIR) -I$(FIRMDIR)/export -I$(APPSDIR) \ 26INCLUDES = -I. -I$(OBJDIR) $(TARGET_INC) -I$(FIRMDIR)/export -I$(APPSDIR) \
27-I$(ROOTDIR)/uisimulator/$(SIMVER) -I$(BUILDDIR) 27-I$(ROOTDIR)/uisimulator/$(SIMVER) -I$(BUILDDIR)
28 28
29# This sets up 'SRC' based on the files mentioned in SOURCES 29# This sets up 'SRC' based on the files mentioned in SOURCES
diff --git a/uisimulator/sdl/Makefile b/uisimulator/sdl/Makefile
index 5c5693e98c..0ebf103f0b 100644
--- a/uisimulator/sdl/Makefile
+++ b/uisimulator/sdl/Makefile
@@ -25,7 +25,7 @@ RM = rm -f
25DEBUG = -g 25DEBUG = -g
26 26
27# Use this for simulator-only files 27# Use this for simulator-only files
28INCLUDES = -I. -I$(SIMCOMMON) -I$(OBJDIR) -I$(FIRMDIR)/export -I$(APPSDIR) \ 28INCLUDES = -I. -I$(SIMCOMMON) -I$(OBJDIR) $(TARGET_INC) -I$(FIRMDIR)/export -I$(APPSDIR) \
29 -I$(BUILDDIR) 29 -I$(BUILDDIR)
30 30
31# This sets up 'SRC' based on the files mentioned in SOURCES 31# This sets up 'SRC' based on the files mentioned in SOURCES