forked from len0rd/rockbox
Add support for the NWZ-A860
Change-Id: Ibf0c5168ac31d4ba2aeaa86cbeca37a1011b75fa
This commit is contained in:
parent
f22ccabac3
commit
ac57f96838
10 changed files with 419 additions and 10 deletions
|
|
@ -18,7 +18,7 @@
|
|||
*
|
||||
****************************************************************************/
|
||||
#include "button.h"
|
||||
#define LOGF_ENABLE
|
||||
//#define LOGF_ENABLE
|
||||
#include "logf.h"
|
||||
#include "panic.h"
|
||||
#include "backlight.h"
|
||||
|
|
@ -192,6 +192,19 @@ static void open_input_device(const char *path)
|
|||
poll_nfds++;
|
||||
}
|
||||
|
||||
#if defined(SONY_NWZA860)
|
||||
/* keycode -> rockbox button mapping */
|
||||
static int button_map[NWZ_KEY_MASK + 1] =
|
||||
{
|
||||
[0 ... NWZ_KEY_MASK] = 0,
|
||||
[NWZ_KEY_PLAY] = BUTTON_PLAY,
|
||||
[NWZ_KEY_RIGHT] = BUTTON_FF,
|
||||
[NWZ_KEY_LEFT] = BUTTON_REW,
|
||||
[NWZ_KEY_VOL_DOWN] = BUTTON_VOL_DOWN,
|
||||
[NWZ_KEY_VOL_UP] = BUTTON_VOL_UP,
|
||||
[NWZ_KEY_BACK] = BUTTON_BACK,
|
||||
};
|
||||
#else /* SONY_NWZA860 */
|
||||
/* keycode -> rockbox button mapping */
|
||||
static int button_map[NWZ_KEY_MASK + 1] =
|
||||
{
|
||||
|
|
@ -214,6 +227,7 @@ static int button_map[NWZ_KEY_MASK + 1] =
|
|||
[NWZ_KEY_AD1_6] = 0,
|
||||
[NWZ_KEY_AD1_7] = 0,
|
||||
};
|
||||
#endif /* SONY_NWZA860 */
|
||||
|
||||
static void handle_key(struct input_event evt)
|
||||
{
|
||||
|
|
@ -296,11 +310,16 @@ int button_read_device(
|
|||
#endif
|
||||
}
|
||||
}
|
||||
int btns = button_bitmap;
|
||||
#ifdef HAVE_TOUCHSCREEN
|
||||
/* WARNING we must call touchscreen_to_pixels even if there is no touch,
|
||||
* otherwsise *data is not filled with the last position and it breaks
|
||||
* everything */
|
||||
int touch_bitmap = touchscreen_to_pixels(touch_x, touch_y, data);
|
||||
if(touch_detect)
|
||||
button_bitmap |= touchscreen_to_pixels(touch_x, touch_y, data);
|
||||
btns |= touch_bitmap;
|
||||
#endif
|
||||
return hold_status ? 0 : button_bitmap;
|
||||
return hold_status ? 0 : btns;
|
||||
}
|
||||
|
||||
void nwz_button_reload_after_suspend(void)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,40 @@
|
|||
#include <stdbool.h>
|
||||
#include "config.h"
|
||||
|
||||
/* The NWZ-A860 is completely different, it has a touchscreen and some but not
|
||||
* all keys of the other others */
|
||||
#if defined(SONY_NWZA860)
|
||||
|
||||
/* Main unit's buttons */
|
||||
#define BUTTON_BACK 0x00000001 /* HOME */
|
||||
#define BUTTON_PLAY 0x00000002
|
||||
#define BUTTON_REW 0x00000004
|
||||
#define BUTTON_FF 0x00000008
|
||||
#define BUTTON_VOL_DOWN 0x00000010
|
||||
#define BUTTON_VOL_UP 0x00000020
|
||||
/* For compatibility */
|
||||
#define BUTTON_LEFT BUTTON_MIDLEFT
|
||||
#define BUTTON_RIGHT BUTTON_MIDRIGHT
|
||||
#define BUTTON_UP BUTTON_TOPMIDDLE
|
||||
#define BUTTON_DOWN BUTTON_BOTTOMMIDDLE
|
||||
|
||||
/* Touch Screen Area Buttons */
|
||||
#define BUTTON_TOPLEFT 0x00000040
|
||||
#define BUTTON_TOPMIDDLE 0x00000080
|
||||
#define BUTTON_TOPRIGHT 0x00000100
|
||||
#define BUTTON_MIDLEFT 0x00000200
|
||||
#define BUTTON_CENTER 0x00000400
|
||||
#define BUTTON_MIDRIGHT 0x00000800
|
||||
#define BUTTON_BOTTOMLEFT 0x00001000
|
||||
#define BUTTON_BOTTOMMIDDLE 0x00002000
|
||||
#define BUTTON_BOTTOMRIGHT 0x00004000
|
||||
|
||||
#define BUTTON_MAIN 0x7fff
|
||||
|
||||
#define POWEROFF_BUTTON BUTTON_BACK
|
||||
|
||||
#else /* SONY_NWZA860 */
|
||||
|
||||
/* Main unit's buttons */
|
||||
#define BUTTON_POWER 0x00000001
|
||||
#define BUTTON_BACK 0x00000002
|
||||
|
|
@ -37,8 +71,11 @@
|
|||
|
||||
#define BUTTON_MAIN 0x000001ff
|
||||
|
||||
#define POWEROFF_BUTTON BUTTON_POWER
|
||||
|
||||
#endif /* SONY_NWZA860 */
|
||||
|
||||
/* Software power-off */
|
||||
#define POWEROFF_BUTTON BUTTON_POWER
|
||||
#define POWEROFF_COUNT 10
|
||||
|
||||
/* force driver to reload button state (useful after suspend) */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue