[MPlayer-dev-eng] [PATCH] Change DVDNAV command key name
- Date: Wed, 18 Jun 2008 23:09:04 +0200
- From: Benjamin Zores <ben@xxxxxxxxxxx>
- Subject: [MPlayer-dev-eng] [PATCH] Change DVDNAV command key name
Hi,
I'd like to change command key name for dvdnav options.
With this patch, instead of doing "dvdnav 1" for going up, you do
"dvdnav up" which obviously has much more sense to average joe.
Anyone opposed to this change please say so or I'd commit it within 24h.
Ben
Index: input/input.c
===================================================================
--- input/input.c (revision 27097)
+++ input/input.c (working copy)
@@ -171,7 +171,7 @@
#endif
#ifdef USE_DVDNAV
- { MP_CMD_DVDNAV, "dvdnav", 1, { {MP_CMD_ARG_INT,{0}}, {-1,{0}} } },
+ { MP_CMD_DVDNAV, "dvdnav", 1, { {MP_CMD_ARG_STRING, {0}}, {-1,{0}} } },
#endif
#ifdef HAVE_MENU
@@ -347,14 +347,14 @@
{ { MOUSE_BTN6, 0 }, "volume -1" },
#ifdef USE_DVDNAV
- { { KEY_KP8, 0 }, "dvdnav 1" }, // up
- { { KEY_KP2, 0 }, "dvdnav 2" }, // down
- { { KEY_KP4, 0 }, "dvdnav 3" }, // left
- { { KEY_KP6, 0 }, "dvdnav 4" }, // right
- { { KEY_KP5, 0 }, "dvdnav 5" }, // menu
- { { KEY_KPENTER, 0 }, "dvdnav 6" }, // select
- { { MOUSE_BTN0, 0 }, "dvdnav 8" }, //select
- { { KEY_KP7, 0 }, "dvdnav 7" }, // previous menu
+ { { KEY_KP8, 0 }, "dvdnav up" }, // up
+ { { KEY_KP2, 0 }, "dvdnav down" }, // down
+ { { KEY_KP4, 0 }, "dvdnav left" }, // left
+ { { KEY_KP6, 0 }, "dvdnav right" }, // right
+ { { KEY_KP5, 0 }, "dvdnav menu" }, // menu
+ { { KEY_KPENTER, 0 }, "dvdnav select" }, // select
+ { { MOUSE_BTN0, 0 }, "dvdnav mouse" }, //select
+ { { KEY_KP7, 0 }, "dvdnav prev" }, // previous menu
#endif
{ { KEY_RIGHT, 0 }, "seek 10" },
Index: input/input.h
===================================================================
--- input/input.h (revision 27098)
+++ input/input.h (working copy)
@@ -112,6 +112,16 @@
MP_CMD_SWITCH_TITLE,
MP_CMD_STOP,
+ /// DVDNAV commands
+ MP_CMD_DVDNAV_UP = 1000,
+ MP_CMD_DVDNAV_DOWN,
+ MP_CMD_DVDNAV_LEFT,
+ MP_CMD_DVDNAV_RIGHT,
+ MP_CMD_DVDNAV_MENU,
+ MP_CMD_DVDNAV_SELECT,
+ MP_CMD_DVDNAV_PREVMENU,
+ MP_CMD_DVDNAV_MOUSECLICK,
+
/// GUI commands
MP_CMD_GUI_EVENTS = 5000,
MP_CMD_GUI_LOADFILE,
@@ -133,15 +143,6 @@
MP_CMD_CHIDE,
} mp_command_type;
-#define MP_CMD_DVDNAV_UP 1
-#define MP_CMD_DVDNAV_DOWN 2
-#define MP_CMD_DVDNAV_LEFT 3
-#define MP_CMD_DVDNAV_RIGHT 4
-#define MP_CMD_DVDNAV_MENU 5
-#define MP_CMD_DVDNAV_SELECT 6
-#define MP_CMD_DVDNAV_PREVMENU 7
-#define MP_CMD_DVDNAV_MOUSECLICK 8
-
// The arg types
#define MP_CMD_ARG_INT 0
#define MP_CMD_ARG_FLOAT 1
Index: DOCS/tech/slave.txt
===================================================================
--- DOCS/tech/slave.txt (revision 27097)
+++ DOCS/tech/slave.txt (working copy)
@@ -66,14 +66,16 @@
dvb_set_channel <channel_number> <card_number>
Set DVB channel.
-dvdnav <button>
+dvdnav <button_name>
Press the given dvdnav button.
- 1 up
- 2 down
- 3 left
- 4 right
- 5 menu
- 6 select
+ up
+ down
+ left
+ right
+ menu
+ select
+ prev
+ mouse
edl_mark
Write the current position into the EDL file.
Index: command.c
===================================================================
--- command.c (revision 27097)
+++ command.c (working copy)
@@ -2281,6 +2281,22 @@
return 1;
}
+#ifdef USE_DVDNAV
+static const struct {
+ const char *name;
+ const mp_command_type cmd;
+} mp_dvdnav_bindings[] = {
+ { "up", MP_CMD_DVDNAV_UP },
+ { "down", MP_CMD_DVDNAV_DOWN },
+ { "left", MP_CMD_DVDNAV_LEFT },
+ { "right", MP_CMD_DVDNAV_RIGHT },
+ { "menu", MP_CMD_DVDNAV_MENU },
+ { "select", MP_CMD_DVDNAV_SELECT },
+ { "prev", MP_CMD_DVDNAV_PREVMENU },
+ { "mouse", MP_CMD_DVDNAV_MOUSECLICK },
+ { NULL, 0 }
+};
+#endif
int run_command(MPContext * mpctx, mp_cmd_t * cmd)
{
@@ -3105,10 +3121,18 @@
#ifdef USE_DVDNAV
case MP_CMD_DVDNAV:{
int button = -1;
+ int i;
+ mp_command_type command = 0;
if (mpctx->stream->type != STREAMTYPE_DVDNAV)
break;
- mp_dvdnav_handle_input(mpctx->stream,cmd->args[0].v.i,&button);
+ for (i = 0; mp_dvdnav_bindings[i].name; i++)
+ if (cmd->args[0].v.s &&
+ !strcasecmp (cmd->args[0].v.s,
+ mp_dvdnav_bindings[i].name))
+ command = mp_dvdnav_bindings[i].cmd;
+
+ mp_dvdnav_handle_input(mpctx->stream,command,&button);
if (osd_level > 1 && button > 0)
set_osd_msg(OSD_MSG_TEXT, 1, osd_duration,
"Selected button number %d", button);
Index: etc/input.conf
===================================================================
--- etc/input.conf (revision 27097)
+++ etc/input.conf (working copy)
@@ -149,20 +149,20 @@
## Requires dvdnav://
##
-UP {dvdnav} dvdnav 1 # DVDNav UP
-DOWN {dvdnav} dvdnav 2 # DVDNav DOWN
-LEFT {dvdnav} dvdnav 3 # DVDNav LEFT
-RIGHT {dvdnav} dvdnav 4 # DVDNav RIGHT
-ESC {dvdnav} dvdnav 5 # DVDNav MENU
-ENTER {dvdnav} dvdnav 6 # DVDNav SELECT (ok)
-BS {dvdnav} dvdnav 7 # DVDNav PREVIOUS menu (in the order chapter->title->root)
+UP {dvdnav} dvdnav up # DVDNav UP
+DOWN {dvdnav} dvdnav down # DVDNav DOWN
+LEFT {dvdnav} dvdnav left # DVDNav LEFT
+RIGHT {dvdnav} dvdnav right # DVDNav RIGHT
+ESC {dvdnav} dvdnav menu # DVDNav MENU
+ENTER {dvdnav} dvdnav select # DVDNav SELECT (ok)
+BS {dvdnav} dvdnav prev # DVDNav PREVIOUS menu (in the order chapter->title->root)
-AR_VUP {dvdnav} dvdnav 1 # DVDNav UP
-AR_VDOWN {dvdnav} dvdnav 2 # DVDNav DOWN
-AR_PREV {dvdnav} dvdnav 3 # DVDNav LEFT
-AR_NEXT {dvdnav} dvdnav 4 # DVDNav RIGHT
-AR_MENU {dvdnav} dvdnav 5 # DVDNav MENU
-AR_PLAY {dvdnav} dvdnav 6 # DVDNav SELECT (ok)
+AR_VUP {dvdnav} dvdnav up # DVDNav UP
+AR_VDOWN {dvdnav} dvdnav down # DVDNav DOWN
+AR_PREV {dvdnav} dvdnav left # DVDNav LEFT
+AR_NEXT {dvdnav} dvdnav right # DVDNav RIGHT
+AR_MENU {dvdnav} dvdnav menu # DVDNav MENU
+AR_PLAY {dvdnav} dvdnav select # DVDNav SELECT (ok)
#? seek_chapter -1 # skip to previous dvd chapter
#? seek_chapter +1 # next
_______________________________________________
MPlayer-dev-eng mailing list
MPlayer-dev-eng@xxxxxxxxxxxx
https://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng