2002-05-17 12:22:24 +00:00
|
|
|
/***************************************************************************
|
|
|
|
* __________ __ ___.
|
|
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
|
|
* \/ \/ \/ \/ \/
|
|
|
|
* $Id$
|
|
|
|
*
|
|
|
|
* Copyright (C) 2002 Robert E. Hak
|
|
|
|
*
|
|
|
|
* All files in this archive are subject to the GNU General Public License.
|
|
|
|
* See the file COPYING in the source tree root for full license agreement.
|
|
|
|
*
|
|
|
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
* KIND, either express or implied.
|
|
|
|
*
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
#ifndef __MENU_H__
|
|
|
|
#define __MENU_H__
|
|
|
|
|
2002-06-14 10:39:11 +00:00
|
|
|
#include <stdbool.h>
|
|
|
|
|
2004-09-19 21:58:37 +00:00
|
|
|
/* button definitions */
|
2005-06-29 12:47:24 +00:00
|
|
|
#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \
|
|
|
|
(CONFIG_KEYPAD == IRIVER_H300_PAD)
|
2005-06-23 10:11:10 +00:00
|
|
|
#define MENU_EXIT BUTTON_LEFT
|
|
|
|
#define MENU_EXIT2 BUTTON_OFF
|
|
|
|
#define MENU_EXIT_MENU BUTTON_MODE
|
|
|
|
#define MENU_ENTER BUTTON_RIGHT
|
|
|
|
#define MENU_ENTER2 BUTTON_SELECT
|
|
|
|
|
2005-10-31 18:38:48 +00:00
|
|
|
#define MENU_RC_EXIT BUTTON_RC_STOP
|
|
|
|
#define MENU_RC_EXIT_MENU BUTTON_RC_MODE
|
|
|
|
#define MENU_RC_ENTER BUTTON_RC_ON
|
|
|
|
#define MENU_RC_ENTER2 BUTTON_RC_MENU
|
|
|
|
|
2005-06-12 16:10:17 +00:00
|
|
|
|
2004-11-19 10:54:59 +00:00
|
|
|
#elif CONFIG_KEYPAD == RECORDER_PAD
|
2005-10-30 22:34:51 +00:00
|
|
|
|
2005-06-23 10:11:10 +00:00
|
|
|
#define MENU_EXIT BUTTON_LEFT
|
|
|
|
#define MENU_EXIT2 BUTTON_OFF
|
|
|
|
#define MENU_EXIT_MENU BUTTON_F1
|
|
|
|
#define MENU_ENTER BUTTON_RIGHT
|
|
|
|
#define MENU_ENTER2 BUTTON_PLAY
|
|
|
|
|
|
|
|
#define MENU_RC_EXIT BUTTON_RC_STOP
|
|
|
|
#define MENU_RC_ENTER BUTTON_RC_PLAY
|
2005-06-12 16:10:17 +00:00
|
|
|
|
2004-09-28 22:13:26 +00:00
|
|
|
#elif CONFIG_KEYPAD == PLAYER_PAD
|
2005-06-23 10:11:10 +00:00
|
|
|
#define MENU_EXIT BUTTON_STOP
|
|
|
|
#define MENU_EXIT_MENU BUTTON_MENU
|
|
|
|
#define MENU_ENTER BUTTON_PLAY
|
2004-09-19 21:58:37 +00:00
|
|
|
|
2005-06-23 10:11:10 +00:00
|
|
|
#define MENU_RC_EXIT BUTTON_RC_STOP
|
|
|
|
#define MENU_RC_ENTER BUTTON_RC_PLAY
|
2005-06-12 16:10:17 +00:00
|
|
|
|
2004-09-28 22:13:26 +00:00
|
|
|
#elif CONFIG_KEYPAD == ONDIO_PAD
|
2005-06-23 10:11:10 +00:00
|
|
|
#define MENU_EXIT BUTTON_LEFT
|
|
|
|
#define MENU_EXIT_MENU BUTTON_MENU
|
|
|
|
#define MENU_ENTER BUTTON_RIGHT
|
2004-09-19 21:58:37 +00:00
|
|
|
|
2005-01-23 01:01:14 +00:00
|
|
|
#elif CONFIG_KEYPAD == GMINI100_PAD
|
2005-06-23 10:11:10 +00:00
|
|
|
#define MENU_EXIT BUTTON_LEFT
|
|
|
|
#define MENU_EXIT2 BUTTON_OFF
|
|
|
|
#define MENU_EXIT_MENU BUTTON_MENU
|
|
|
|
#define MENU_ENTER BUTTON_RIGHT
|
|
|
|
#define MENU_ENTER2 BUTTON_PLAY
|
2005-01-23 01:01:14 +00:00
|
|
|
|
2006-02-05 21:18:19 +00:00
|
|
|
#elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD)
|
2005-11-12 16:07:17 +00:00
|
|
|
|
|
|
|
/* TODO: Check menu button assignments */
|
|
|
|
|
|
|
|
#define MENU_NEXT BUTTON_DOWN
|
|
|
|
#define MENU_PREV BUTTON_UP
|
|
|
|
#define MENU_EXIT BUTTON_LEFT
|
|
|
|
#define MENU_EXIT_MENU BUTTON_MENU
|
|
|
|
#define MENU_ENTER BUTTON_RIGHT
|
2006-02-02 12:14:23 +00:00
|
|
|
#define MENU_ENTER2 BUTTON_SELECT
|
2005-11-12 16:07:17 +00:00
|
|
|
|
2006-01-12 00:35:50 +00:00
|
|
|
#elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD
|
|
|
|
|
|
|
|
#define MENU_NEXT BUTTON_DOWN
|
|
|
|
#define MENU_PREV BUTTON_UP
|
|
|
|
#define MENU_EXIT BUTTON_LEFT
|
|
|
|
#define MENU_EXIT_MENU BUTTON_PLAY
|
|
|
|
#define MENU_ENTER BUTTON_RIGHT
|
|
|
|
|
2006-01-18 11:09:06 +00:00
|
|
|
#elif CONFIG_KEYPAD == IAUDIO_X5_PAD
|
|
|
|
|
|
|
|
#define MENU_NEXT BUTTON_DOWN
|
|
|
|
#define MENU_PREV BUTTON_UP
|
|
|
|
#define MENU_EXIT BUTTON_LEFT
|
2006-02-24 15:06:25 +00:00
|
|
|
#define MENU_EXIT_MENU BUTTON_REC
|
2006-01-18 11:09:06 +00:00
|
|
|
#define MENU_ENTER BUTTON_RIGHT
|
2006-05-17 06:41:26 +00:00
|
|
|
#define MENU_ENTER2 BUTTON_SELECT
|
2006-01-18 11:09:06 +00:00
|
|
|
|
2006-02-24 15:42:52 +00:00
|
|
|
#elif CONFIG_KEYPAD == GIGABEAT_PAD
|
|
|
|
|
|
|
|
#define MENU_EXIT BUTTON_LEFT
|
|
|
|
#define MENU_EXIT2 BUTTON_A
|
|
|
|
#define MENU_EXIT_MENU BUTTON_MENU
|
|
|
|
#define MENU_ENTER BUTTON_RIGHT
|
|
|
|
#define MENU_ENTER2 BUTTON_SELECT
|
|
|
|
#define MENU_NEXT BUTTON_DOWN
|
|
|
|
#define MENU_PREV BUTTON_UP
|
|
|
|
|
2004-09-19 21:58:37 +00:00
|
|
|
#endif
|
|
|
|
|
2004-03-16 13:44:56 +00:00
|
|
|
struct menu_item {
|
2004-07-23 23:01:20 +00:00
|
|
|
unsigned char *desc; /* string or ID */
|
2002-09-24 17:22:12 +00:00
|
|
|
bool (*function) (void); /* return true if USB was connected */
|
2002-05-17 12:22:24 +00:00
|
|
|
};
|
|
|
|
|
2004-07-23 23:01:20 +00:00
|
|
|
int menu_init(const struct menu_item* mitems, int count, int (*callback)(int, int),
|
2004-08-18 01:09:31 +00:00
|
|
|
const char *button1, const char *button2, const char *button3);
|
2002-05-26 17:03:17 +00:00
|
|
|
void menu_exit(int menu);
|
2002-05-17 12:22:24 +00:00
|
|
|
|
2002-06-14 10:39:11 +00:00
|
|
|
void put_cursorxy(int x, int y, bool on);
|
|
|
|
|
2003-01-29 08:26:11 +00:00
|
|
|
/* Returns below define, or number of selected menu item*/
|
|
|
|
int menu_show(int m);
|
|
|
|
#define MENU_ATTACHED_USB -1
|
|
|
|
#define MENU_SELECTED_EXIT -2
|
|
|
|
|
2002-09-24 17:22:12 +00:00
|
|
|
bool menu_run(int menu);
|
2004-03-12 10:20:33 +00:00
|
|
|
int menu_cursor(int menu);
|
|
|
|
char* menu_description(int menu, int position);
|
|
|
|
void menu_delete(int menu, int position);
|
|
|
|
int menu_count(int menu);
|
|
|
|
bool menu_moveup(int menu);
|
|
|
|
bool menu_movedown(int menu);
|
|
|
|
void menu_draw(int menu);
|
2004-07-23 23:01:20 +00:00
|
|
|
void menu_insert(int menu, int position, char *desc, bool (*function) (void));
|
2005-04-10 17:36:55 +00:00
|
|
|
void menu_set_cursor(int menu, int position);
|
2005-11-03 11:56:21 +00:00
|
|
|
void menu_talk_selected(int m);
|
2002-08-23 12:32:52 +00:00
|
|
|
|
2002-05-17 12:22:24 +00:00
|
|
|
#endif /* End __MENU_H__ */
|