annotate highlight.c @ 400:3daa43270d2c src

Cosmetic change only - os2_open os2_open() doesn't look like the rest of the code. And since we just updated it, it probably should look like the rest of the code.
author erik
date Sun, 06 Sep 2009 15:26:43 +0000
parents 9c5aef10d165
children 47c4e70d43ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
1 /*
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
2 * Copyright (C) 2000 Rich Wareham <richwareham@users.sourceforge.net>
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
3 *
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
4 * This file is part of libdvdnav, a DVD navigation library.
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
5 *
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
6 * libdvdnav is free software; you can redistribute it and/or modify
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
9 * (at your option) any later version.
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
10 *
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
11 * libdvdnav is distributed in the hope that it will be useful,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
14 * GNU General Public License for more details.
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
15 *
389
d3c273ced49c Use consistent license headers everywhere: Fix wrong FSF address.
diego
parents: 388
diff changeset
16 * You should have received a copy of the GNU General Public License along
d3c273ced49c Use consistent license headers everywhere: Fix wrong FSF address.
diego
parents: 388
diff changeset
17 * with libdvdnav; if not, write to the Free Software Foundation, Inc.,
d3c273ced49c Use consistent license headers everywhere: Fix wrong FSF address.
diego
parents: 388
diff changeset
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
19 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
20
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
21 #ifdef HAVE_CONFIG_H
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
22 #include "config.h"
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
23 #endif
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
24
22
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
25 #include <assert.h>
278
ef3b33441db5 include inttypes.h wherever necessary
nicodvb
parents: 273
diff changeset
26 #include <inttypes.h>
288
ce4230602517 moved away from dvdnav_internal.h inclusion of various system headers
nicodvb
parents: 285
diff changeset
27 #include <stdlib.h>
ce4230602517 moved away from dvdnav_internal.h inclusion of various system headers
nicodvb
parents: 285
diff changeset
28 #include <stdio.h>
294
2146ff691bcd include limits.h; it was included in the previous dvdnav_internal.h and without it players segfault
nicodvb
parents: 290
diff changeset
29 #include <limits.h>
288
ce4230602517 moved away from dvdnav_internal.h inclusion of various system headers
nicodvb
parents: 285
diff changeset
30 #include <string.h>
290
54b6a000f6da decoder.h needs inclusion of sys/time.h
nicodvb
parents: 288
diff changeset
31 #include <sys/time.h>
386
579a3538d284 Sync with current libdvdread header location.
rathann
parents: 378
diff changeset
32 #include <dvdread/nav_types.h>
395
9c5aef10d165 Move dvd_types.h, dvdnav_events.h and dvdnav.h into a dvdnav directory.
reimar
parents: 392
diff changeset
33 #include "dvdnav/dvdnav.h"
285
52877d182e96 moved all header inclusions from .h to .c files; my word, I've never seen such a horrible entanglement as in this mess
nicodvb
parents: 278
diff changeset
34 #include "remap.h"
52877d182e96 moved all header inclusions from .h to .c files; my word, I've never seen such a horrible entanglement as in this mess
nicodvb
parents: 278
diff changeset
35 #include "vm/decoder.h"
52877d182e96 moved all header inclusions from .h to .c files; my word, I've never seen such a horrible entanglement as in this mess
nicodvb
parents: 278
diff changeset
36 #include "vm/vm.h"
52877d182e96 moved all header inclusions from .h to .c files; my word, I've never seen such a horrible entanglement as in this mess
nicodvb
parents: 278
diff changeset
37 #include "vm/vmcmd.h"
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
38 #include "dvdnav_internal.h"
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
39
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
40 /*
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
41 #define BUTTON_TESTING
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
42 */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
43
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
44 #ifdef BUTTON_TESTING
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
45
169
90b1f6f0520e Modified libdvdnav to do without libdvdread.
jcdutton
parents: 166
diff changeset
46 #include "nav_print.h"
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
47
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
48 static void print_time(dvd_time_t *dtime) {
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
49 const char *rate;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
50
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
51 assert((dtime->hour>>4) < 0xa && (dtime->hour&0xf) < 0xa);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
52 assert((dtime->minute>>4) < 0x7 && (dtime->minute&0xf) < 0xa);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
53 assert((dtime->second>>4) < 0x7 && (dtime->second&0xf) < 0xa);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
54 assert((dtime->frame_u&0xf) < 0xa);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
55
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
56 fprintf(MSG_OUT,"%02x:%02x:%02x.%02x",
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
57 dtime->hour,
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
58 dtime->minute,
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
59 dtime->second,
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
60 dtime->frame_u & 0x3f);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
61 switch((dtime->frame_u & 0xc0) >> 6) {
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
62 case 1:
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
63 rate = "25.00";
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
64 break;
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
65 case 3:
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
66 rate = "29.97";
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
67 break;
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
68 default:
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
69 rate = "(please send a bug report)";
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
70 break;
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
71 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
72 fprintf(MSG_OUT," @ %s fps", rate);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
73 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
74
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
75 static void nav_print_PCI_GI(pci_gi_t *pci_gi) {
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
76 int32_t i;
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
77
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
78 fprintf(MSG_OUT,"libdvdnav: pci_gi:\n");
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
79 fprintf(MSG_OUT,"libdvdnav: nv_pck_lbn 0x%08x\n", pci_gi->nv_pck_lbn);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
80 fprintf(MSG_OUT,"libdvdnav: vobu_cat 0x%04x\n", pci_gi->vobu_cat);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
81 fprintf(MSG_OUT,"libdvdnav: vobu_uop_ctl 0x%08x\n", *(uint32_t*)&pci_gi->vobu_uop_ctl);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
82 fprintf(MSG_OUT,"libdvdnav: vobu_s_ptm 0x%08x\n", pci_gi->vobu_s_ptm);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
83 fprintf(MSG_OUT,"libdvdnav: vobu_e_ptm 0x%08x\n", pci_gi->vobu_e_ptm);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
84 fprintf(MSG_OUT,"libdvdnav: vobu_se_e_ptm 0x%08x\n", pci_gi->vobu_se_e_ptm);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
85 fprintf(MSG_OUT,"libdvdnav: e_eltm ");
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
86 print_time(&pci_gi->e_eltm);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
87 fprintf(MSG_OUT,"\n");
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
88
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
89 fprintf(MSG_OUT,"libdvdnav: vobu_isrc \"");
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
90 for(i = 0; i < 32; i++) {
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
91 char c = pci_gi->vobu_isrc[i];
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
92 if((c >= ' ') && (c <= '~'))
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
93 fprintf(MSG_OUT,"%c", c);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
94 else
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
95 fprintf(MSG_OUT,".");
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
96 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
97 fprintf(MSG_OUT,"\"\n");
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
98 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
99
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
100 static void nav_print_NSML_AGLI(nsml_agli_t *nsml_agli) {
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
101 int32_t i, j = 0;
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
102
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
103 for(i = 0; i < 9; i++)
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
104 j |= nsml_agli->nsml_agl_dsta[i];
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
105 if(j == 0)
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
106 return;
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
107
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
108 fprintf(MSG_OUT,"libdvdnav: nsml_agli:\n");
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
109 for(i = 0; i < 9; i++)
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
110 if(nsml_agli->nsml_agl_dsta[i])
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
111 fprintf(MSG_OUT,"libdvdnav: nsml_agl_c%d_dsta 0x%08x\n", i + 1,
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
112 nsml_agli->nsml_agl_dsta[i]);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
113 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
114
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
115 static void nav_print_HL_GI(hl_gi_t *hl_gi, int32_t *btngr_ns, int32_t *btn_ns) {
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
116
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
117 if((hl_gi->hli_ss & 0x03) == 0)
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
118 return;
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
119
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
120 fprintf(MSG_OUT,"libdvdnav: hl_gi:\n");
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
121 fprintf(MSG_OUT,"libdvdnav: hli_ss 0x%01x\n", hl_gi->hli_ss & 0x03);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
122 fprintf(MSG_OUT,"libdvdnav: hli_s_ptm 0x%08x\n", hl_gi->hli_s_ptm);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
123 fprintf(MSG_OUT,"libdvdnav: hli_e_ptm 0x%08x\n", hl_gi->hli_e_ptm);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
124 fprintf(MSG_OUT,"libdvdnav: btn_se_e_ptm 0x%08x\n", hl_gi->btn_se_e_ptm);
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
125
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
126 *btngr_ns = hl_gi->btngr_ns;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
127 fprintf(MSG_OUT,"libdvdnav: btngr_ns %d\n", hl_gi->btngr_ns);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
128 fprintf(MSG_OUT,"libdvdnav: btngr%d_dsp_ty 0x%02x\n", 1, hl_gi->btngr1_dsp_ty);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
129 fprintf(MSG_OUT,"libdvdnav: btngr%d_dsp_ty 0x%02x\n", 2, hl_gi->btngr2_dsp_ty);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
130 fprintf(MSG_OUT,"libdvdnav: btngr%d_dsp_ty 0x%02x\n", 3, hl_gi->btngr3_dsp_ty);
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
131
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
132 fprintf(MSG_OUT,"libdvdnav: btn_ofn %d\n", hl_gi->btn_ofn);
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
133 *btn_ns = hl_gi->btn_ns;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
134 fprintf(MSG_OUT,"libdvdnav: btn_ns %d\n", hl_gi->btn_ns);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
135 fprintf(MSG_OUT,"libdvdnav: nsl_btn_ns %d\n", hl_gi->nsl_btn_ns);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
136 fprintf(MSG_OUT,"libdvdnav: fosl_btnn %d\n", hl_gi->fosl_btnn);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
137 fprintf(MSG_OUT,"libdvdnav: foac_btnn %d\n", hl_gi->foac_btnn);
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
138 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
139
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
140 static void nav_print_BTN_COLIT(btn_colit_t *btn_colit) {
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
141 int32_t i, j;
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
142
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
143 j = 0;
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
144 for(i = 0; i < 6; i++)
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
145 j |= btn_colit->btn_coli[i/2][i&1];
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
146 if(j == 0)
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
147 return;
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
148
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
149 fprintf(MSG_OUT,"libdvdnav: btn_colit:\n");
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
150 for(i = 0; i < 3; i++)
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
151 for(j = 0; j < 2; j++)
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
152 fprintf(MSG_OUT,"libdvdnav: btn_cqoli %d %s_coli: %08x\n",
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
153 i, (j == 0) ? "sl" : "ac",
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
154 btn_colit->btn_coli[i][j]);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
155 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
156
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
157 static void nav_print_BTNIT(btni_t *btni_table, int32_t btngr_ns, int32_t btn_ns) {
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
158 int32_t i, j, k;
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
159
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
160 fprintf(MSG_OUT,"libdvdnav: btnit:\n");
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
161 fprintf(MSG_OUT,"libdvdnav: btngr_ns: %i\n", btngr_ns);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
162 fprintf(MSG_OUT,"libdvdnav: btn_ns: %i\n", btn_ns);
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
163
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
164 if(btngr_ns == 0)
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
165 return;
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
166
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
167 for(i = 0; i < btngr_ns; i++) {
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
168 for(j = 0; j < (36 / btngr_ns); j++) {
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
169 if(j < btn_ns) {
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
170 btni_t *btni = &btni_table[(36 / btngr_ns) * i + j];
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
171
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
172 fprintf(MSG_OUT,"libdvdnav: group %d btni %d: ", i+1, j+1);
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
173 fprintf(MSG_OUT,"btn_coln %d, auto_action_mode %d\n",
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
174 btni->btn_coln, btni->auto_action_mode);
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
175 fprintf(MSG_OUT,"libdvdnav: coords (%d, %d) .. (%d, %d)\n",
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
176 btni->x_start, btni->y_start, btni->x_end, btni->y_end);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
177
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
178 fprintf(MSG_OUT,"libdvdnav: up %d, ", btni->up);
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
179 fprintf(MSG_OUT,"down %d, ", btni->down);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
180 fprintf(MSG_OUT,"left %d, ", btni->left);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
181 fprintf(MSG_OUT,"right %d\n", btni->right);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
182 for(k = 0; k < 8; k++) {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
183 fprintf(MSG_OUT, "libdvdnav: %02x ", btni->cmd.bytes[k]);
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
184 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
185 fprintf(MSG_OUT, "| ");
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
186 #ifdef TRACE
153
175d5fef21e4 Minor changes.
jcdutton
parents: 136
diff changeset
187 vm_print_mnemonic(&btni->cmd);
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
188 #endif
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
189 fprintf(MSG_OUT, "\n");
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
190 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
191 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
192 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
193 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
194
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
195 static void nav_print_HLI(hli_t *hli) {
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
196 int32_t btngr_ns = 0, btn_ns = 0;
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
197
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
198 fprintf(MSG_OUT,"libdvdnav: hli:\n");
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
199 nav_print_HL_GI(&hli->hl_gi, & btngr_ns, & btn_ns);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
200 nav_print_BTN_COLIT(&hli->btn_colit);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
201 nav_print_BTNIT(hli->btnit, btngr_ns, btn_ns);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
202 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
203
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
204 void nav_print_PCI(pci_t *pci) {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
205 fprintf(MSG_OUT,"libdvdnav: pci packet:\n");
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
206 nav_print_PCI_GI(&pci->pci_gi);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
207 nav_print_NSML_AGLI(&pci->nsml_agli);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
208 nav_print_HLI(&pci->hli);
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
209 }
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
210
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
211 #endif
86
129ac4af16a4 Improve debugging output to help with debugging button activations.
jcdutton
parents: 76
diff changeset
212
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
213
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
214 /* Highlighting API calls */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
215
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
216 dvdnav_status_t dvdnav_get_current_highlight(dvdnav_t *this, int32_t *button) {
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
217 /* Simply return the appropriate value based on the SPRM */
205
ba43bdbb07e8 Update to allow events sent to the gui to tell it whether we are in a button or not.
jcdutton
parents: 197
diff changeset
218 if(((*button) = this->position_current.button) == -1)
ba43bdbb07e8 Update to allow events sent to the gui to tell it whether we are in a button or not.
jcdutton
parents: 197
diff changeset
219 (*button) = this->vm->state.HL_BTNN_REG >> 10;
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
220
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
221 return DVDNAV_STATUS_OK;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
222 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
223
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
224 static btni_t *get_current_button(dvdnav_t *this, pci_t *pci) {
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
225 int32_t button = 0;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
226
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
227 if(!pci->hli.hl_gi.hli_ss) {
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
228 printerr("Not in a menu.");
197
a20a5976a207 last_cmd_nav_lbn has to be initialized with an invalid value, so that the first
mroi
parents: 196
diff changeset
229 return NULL;
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
230 }
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
231 if(this->last_cmd_nav_lbn == pci->pci_gi.nv_pck_lbn) {
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
232 printerr("This NAV has already been left.");
197
a20a5976a207 last_cmd_nav_lbn has to be initialized with an invalid value, so that the first
mroi
parents: 196
diff changeset
233 return NULL;
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
234 }
117
816d82ff7eed return the correct current hightlight
mroi
parents: 116
diff changeset
235
816d82ff7eed return the correct current hightlight
mroi
parents: 116
diff changeset
236 button = this->vm->state.HL_BTNN_REG >> 10;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
237 #ifdef BUTTON_TESTING
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
238 nav_print_PCI(pci);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
239 #endif
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
240
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
241 return &(pci->hli.btnit[button-1]);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
242 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
243
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
244 static dvdnav_status_t button_auto_action(dvdnav_t *this, pci_t *pci) {
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
245 if (get_current_button(this, pci)->auto_action_mode)
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
246 return dvdnav_button_activate(this, pci);
197
a20a5976a207 last_cmd_nav_lbn has to be initialized with an invalid value, so that the first
mroi
parents: 196
diff changeset
247 return DVDNAV_STATUS_OK;
29
c3c8b98d7e95 Enable auto action buttons.
jcdutton
parents: 26
diff changeset
248 }
c3c8b98d7e95 Enable auto action buttons.
jcdutton
parents: 26
diff changeset
249
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
250 dvdnav_status_t dvdnav_upper_button_select(dvdnav_t *this, pci_t *pci) {
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
251 btni_t *button_ptr;
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
252
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
253 if(!(button_ptr = get_current_button(this, pci)))
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
254 return DVDNAV_STATUS_ERR;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
255
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
256 dvdnav_button_select(this, pci, button_ptr->up);
197
a20a5976a207 last_cmd_nav_lbn has to be initialized with an invalid value, so that the first
mroi
parents: 196
diff changeset
257 return button_auto_action(this, pci);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
258 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
259
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
260 dvdnav_status_t dvdnav_lower_button_select(dvdnav_t *this, pci_t *pci) {
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
261 btni_t *button_ptr;
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
262
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
263 if(!(button_ptr = get_current_button(this, pci)))
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
264 return DVDNAV_STATUS_ERR;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
265
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
266 dvdnav_button_select(this, pci, button_ptr->down);
197
a20a5976a207 last_cmd_nav_lbn has to be initialized with an invalid value, so that the first
mroi
parents: 196
diff changeset
267 return button_auto_action(this, pci);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
268 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
269
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
270 dvdnav_status_t dvdnav_right_button_select(dvdnav_t *this, pci_t *pci) {
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
271 btni_t *button_ptr;
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
272
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
273 if(!(button_ptr = get_current_button(this, pci)))
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
274 return DVDNAV_STATUS_ERR;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
275
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
276 dvdnav_button_select(this, pci, button_ptr->right);
197
a20a5976a207 last_cmd_nav_lbn has to be initialized with an invalid value, so that the first
mroi
parents: 196
diff changeset
277 return button_auto_action(this, pci);
22
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
278 }
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
279
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
280 dvdnav_status_t dvdnav_left_button_select(dvdnav_t *this, pci_t *pci) {
22
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
281 btni_t *button_ptr;
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
282
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
283 if(!(button_ptr = get_current_button(this, pci)))
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
284 return DVDNAV_STATUS_ERR;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
285
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
286 dvdnav_button_select(this, pci, button_ptr->left);
197
a20a5976a207 last_cmd_nav_lbn has to be initialized with an invalid value, so that the first
mroi
parents: 196
diff changeset
287 return button_auto_action(this, pci);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
288 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
289
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
290 dvdnav_status_t dvdnav_get_highlight_area(pci_t *nav_pci , int32_t button, int32_t mode,
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
291 dvdnav_highlight_area_t *highlight) {
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
292 btni_t *button_ptr;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
293
31
8b08ee66cbff Quiet please!!!
jcdutton
parents: 30
diff changeset
294 #ifdef BUTTON_TESTING
76
0e2abe7083de more consistent console output
mroi
parents: 69
diff changeset
295 fprintf(MSG_OUT, "libdvdnav: Button get_highlight_area %i\n", button);
31
8b08ee66cbff Quiet please!!!
jcdutton
parents: 30
diff changeset
296 #endif
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
297
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
298 if(!nav_pci->hli.hl_gi.hli_ss)
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
299 return DVDNAV_STATUS_ERR;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
300 if((button <= 0) || (button > nav_pci->hli.hl_gi.btn_ns))
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
301 return DVDNAV_STATUS_ERR;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
302
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
303
22
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
304 button_ptr = &nav_pci->hli.btnit[button-1];
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
305
22
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
306 highlight->sx = button_ptr->x_start;
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
307 highlight->sy = button_ptr->y_start;
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
308 highlight->ex = button_ptr->x_end;
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
309 highlight->ey = button_ptr->y_end;
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
310 if(button_ptr->btn_coln != 0) {
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
311 highlight->palette = nav_pci->hli.btn_colit.btn_coli[button_ptr->btn_coln-1][mode];
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
312 } else {
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
313 highlight->palette = 0;
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
314 }
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
315 highlight->pts = nav_pci->hli.hl_gi.hli_s_ptm;
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
316 highlight->buttonN = button;
31
8b08ee66cbff Quiet please!!!
jcdutton
parents: 30
diff changeset
317 #ifdef BUTTON_TESTING
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
318 fprintf(MSG_OUT, "libdvdnav: highlight: Highlight area is (%u,%u)-(%u,%u), display = %i, button = %u\n",
22
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
319 button_ptr->x_start, button_ptr->y_start,
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
320 button_ptr->x_end, button_ptr->y_end,
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
321 1,
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
322 button);
31
8b08ee66cbff Quiet please!!!
jcdutton
parents: 30
diff changeset
323 #endif
22
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
324
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
325 return DVDNAV_STATUS_OK;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
326 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
327
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
328 dvdnav_status_t dvdnav_button_activate(dvdnav_t *this, pci_t *pci) {
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
329 int32_t button;
26
794d2e16a4d4 Removed un-needed variables.
jcdutton
parents: 22
diff changeset
330 btni_t *button_ptr = NULL;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
331
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
332 if(!pci->hli.hl_gi.hli_ss) {
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
333 printerr("Not in a menu.");
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
334 return DVDNAV_STATUS_ERR;
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
335 }
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
336 if(this->last_cmd_nav_lbn == pci->pci_gi.nv_pck_lbn) {
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
337 printerr("This NAV has already been left.");
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
338 return DVDNAV_STATUS_ERR;
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
339 }
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
340 pthread_mutex_lock(&this->vm_lock);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
341
117
816d82ff7eed return the correct current hightlight
mroi
parents: 116
diff changeset
342 button = this->vm->state.HL_BTNN_REG >> 10;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
343
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
344 if((button <= 0) || (button > pci->hli.hl_gi.btn_ns)) {
57
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
345 /* Special code to handle still menus with no buttons.
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
346 * The navigation is expected to report to the application that a STILL is
57
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
347 * underway. In turn, the application is supposed to report to the user
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
348 * that the playback is paused. The user is then expected to undo the pause,
57
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
349 * ie: hit play. At that point, the navigation should release the still and
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
350 * go to the next Cell.
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
351 * Explanation by Mathieu Lacage <mathieu_lacage@realmagic.fr>
57
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
352 * Code added by jcdutton.
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
353 */
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
354 if (this->position_current.still != 0) {
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
355 /* In still, but no buttons. */
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
356 vm_get_next_cell(this->vm);
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
357 this->position_current.still = 0;
116
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
358 this->sync_wait = 0;
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
359 this->last_cmd_nav_lbn = pci->pci_gi.nv_pck_lbn;
57
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
360 pthread_mutex_unlock(&this->vm_lock);
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
361 /* clear error message */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
362 printerr("");
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
363 return DVDNAV_STATUS_OK;
57
e1505b603eb8 Fix problem with Still menus that have NO BUTTONS.
jcdutton
parents: 42
diff changeset
364 }
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
365 pthread_mutex_unlock(&this->vm_lock);
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
366 return DVDNAV_STATUS_ERR;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
367 }
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
368
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
369 button_ptr = get_current_button(this, pci);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
370 /* Finally, make the VM execute the appropriate code and probably
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
371 * scedule a jump */
31
8b08ee66cbff Quiet please!!!
jcdutton
parents: 30
diff changeset
372 #ifdef BUTTON_TESTING
76
0e2abe7083de more consistent console output
mroi
parents: 69
diff changeset
373 fprintf(MSG_OUT, "libdvdnav: Evaluating Button Activation commands.\n");
31
8b08ee66cbff Quiet please!!!
jcdutton
parents: 30
diff changeset
374 #endif
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
375 if(vm_exec_cmd(this->vm, &(button_ptr->cmd)) == 1) {
26
794d2e16a4d4 Removed un-needed variables.
jcdutton
parents: 22
diff changeset
376 /* Command caused a jump */
794d2e16a4d4 Removed un-needed variables.
jcdutton
parents: 22
diff changeset
377 this->vm->hop_channel++;
794d2e16a4d4 Removed un-needed variables.
jcdutton
parents: 22
diff changeset
378 this->position_current.still = 0;
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
379 this->last_cmd_nav_lbn = pci->pci_gi.nv_pck_lbn;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
380 }
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
381
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
382 pthread_mutex_unlock(&this->vm_lock);
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
383 return DVDNAV_STATUS_OK;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
384 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
385
91
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
386 dvdnav_status_t dvdnav_button_activate_cmd(dvdnav_t *this, int32_t button, vm_cmd_t *cmd)
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
387 {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
388 pthread_mutex_lock(&this->vm_lock);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
389 /* make the VM execute the appropriate code and probably
91
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
390 * schedule a jump */
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
391 #ifdef BUTTON_TESTING
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
392 fprintf(MSG_OUT, "libdvdnav: dvdnav_button_activate_cmd: Evaluating Button Activation commands.\n");
91
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
393 #endif
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
394 if(button > 0) {
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
395 this->vm->state.HL_BTNN_REG = (button << 10);
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
396 if(vm_exec_cmd(this->vm, cmd) == 1) {
91
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
397 /* Command caused a jump */
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
398 this->vm->hop_channel++;
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
399 }
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
400 }
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
401 /* Always remove still, because some still menus have no buttons. */
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
402 this->position_current.still = 0;
116
4d711d0518e9 new event DVDNAV_WAIT
mroi
parents: 114
diff changeset
403 this->sync_wait = 0;
91
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
404 pthread_mutex_unlock(&this->vm_lock);
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
405 return DVDNAV_STATUS_OK;
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
406 }
91
df9712507b30 Add a new API function, to allow for more flexible menu button control.
jcdutton
parents: 86
diff changeset
407
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
408 dvdnav_status_t dvdnav_button_select(dvdnav_t *this, pci_t *pci, int32_t button) {
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
409 if(!pci->hli.hl_gi.hli_ss) {
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
410 printerr("Not in a menu.");
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
411 return DVDNAV_STATUS_ERR;
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
412 }
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
413 if(this->last_cmd_nav_lbn == pci->pci_gi.nv_pck_lbn) {
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
414 printerr("This NAV has already been left.");
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
415 return DVDNAV_STATUS_ERR;
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
416 }
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
417
31
8b08ee66cbff Quiet please!!!
jcdutton
parents: 30
diff changeset
418 #ifdef BUTTON_TESTING
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
419 fprintf(MSG_OUT, "libdvdnav: Button select %i\n", button);
31
8b08ee66cbff Quiet please!!!
jcdutton
parents: 30
diff changeset
420 #endif
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
421
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
422 if((button <= 0) || (button > pci->hli.hl_gi.btn_ns)) {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
423 printerr("Button does not exist.");
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
424 return DVDNAV_STATUS_ERR;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
425 }
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
426
22
3c1df0cb3aee Start of rewrite of libdvdnav. Still need to re-implement seeking.
jcdutton
parents: 10
diff changeset
427 this->vm->state.HL_BTNN_REG = (button << 10);
64
2759605b41f6 We need to update the button info when moving around in menus.
mroi
parents: 57
diff changeset
428 this->position_current.button = -1; /* Force Highligh change */
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
429
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
430 return DVDNAV_STATUS_OK;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
431 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
432
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
433 dvdnav_status_t dvdnav_button_select_and_activate(dvdnav_t *this, pci_t *pci,
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
434 int32_t button) {
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
435 /* A trivial function */
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
436 if(dvdnav_button_select(this, pci, button) != DVDNAV_STATUS_ERR)
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
437 return dvdnav_button_activate(this, pci);
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
438 return DVDNAV_STATUS_ERR;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
439 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
440
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
441 dvdnav_status_t dvdnav_mouse_select(dvdnav_t *this, pci_t *pci, int32_t x, int32_t y) {
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
442 int32_t button, cur_button;
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
443 int32_t best,dist,d;
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
444 int32_t mx,my,dx,dy;
69
940b438a9c9f Modified version of button selection patch from
richwareham
parents: 67
diff changeset
445
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
446 if(!pci->hli.hl_gi.hli_ss) {
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
447 printerr("Not in a menu.");
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
448 return DVDNAV_STATUS_ERR;
166
3bfaec0c1288 * fix warnings with gcc 3.3
mroi
parents: 153
diff changeset
449 }
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
450 if(this->last_cmd_nav_lbn == pci->pci_gi.nv_pck_lbn) {
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
451 printerr("This NAV has already been left.");
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
452 return DVDNAV_STATUS_ERR;
191
dbea22936623 when a command has been issued to leave a menu, filter all further commands
mroi
parents: 169
diff changeset
453 }
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
454
117
816d82ff7eed return the correct current hightlight
mroi
parents: 116
diff changeset
455 cur_button = this->vm->state.HL_BTNN_REG >> 10;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
456
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
457 best = 0;
69
940b438a9c9f Modified version of button selection patch from
richwareham
parents: 67
diff changeset
458 dist = 0x08000000; /* >> than (720*720)+(567*567); */
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 386
diff changeset
459
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
460 /* Loop through all buttons */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
461 for(button = 1; button <= pci->hli.hl_gi.btn_ns; button++) {
227
10af49ee5118 Fix a bug. We pass pci_t as a function param, so why bother looking at an
jcdutton
parents: 205
diff changeset
462 btni_t *button_ptr = &(pci->hli.btnit[button-1]);
10af49ee5118 Fix a bug. We pass pci_t as a function param, so why bother looking at an
jcdutton
parents: 205
diff changeset
463
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
464 if((x >= button_ptr->x_start) && (x <= button_ptr->x_end) &&
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
465 (y >= button_ptr->y_start) && (y <= button_ptr->y_end)) {
69
940b438a9c9f Modified version of button selection patch from
richwareham
parents: 67
diff changeset
466 mx = (button_ptr->x_start + button_ptr->x_end)/2;
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
467 my = (button_ptr->y_start + button_ptr->y_end)/2;
69
940b438a9c9f Modified version of button selection patch from
richwareham
parents: 67
diff changeset
468 dx = mx - x;
940b438a9c9f Modified version of button selection patch from
richwareham
parents: 67
diff changeset
469 dy = my - y;
940b438a9c9f Modified version of button selection patch from
richwareham
parents: 67
diff changeset
470 d = (dx*dx) + (dy*dy);
940b438a9c9f Modified version of button selection patch from
richwareham
parents: 67
diff changeset
471 /* If the mouse is within the button and the mouse is closer
940b438a9c9f Modified version of button selection patch from
richwareham
parents: 67
diff changeset
472 * to the center of this button then it is the best choice. */
940b438a9c9f Modified version of button selection patch from
richwareham
parents: 67
diff changeset
473 if(d < dist) {
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
474 dist = d;
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
475 best = button;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
476 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
477 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
478 }
114
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
479 /* As an efficiency measure, only re-select the button
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
480 * if it is different to the previously selected one. */
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
481 if (best != 0 && best != cur_button)
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
482 dvdnav_button_select(this, pci, best);
b6834e6359cf big libdvdnav cleanup, quoting the ChangeLog:
mroi
parents: 98
diff changeset
483
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
484 /* return DVDNAV_STATUS_OK only if we actually found a matching button */
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
485 return best ? DVDNAV_STATUS_OK : DVDNAV_STATUS_ERR;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
486 }
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
487
196
b751f0790ac6 Fix failure of some DVDs to activate buttons.
jcdutton
parents: 193
diff changeset
488 dvdnav_status_t dvdnav_mouse_activate(dvdnav_t *this, pci_t *pci, int32_t x, int32_t y) {
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
489 /* A trivial function */
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
490 if(dvdnav_mouse_select(this, pci, x,y) != DVDNAV_STATUS_ERR)
98
457f35f43ba6 Improved DVD menu selection.
jcdutton
parents: 91
diff changeset
491 return dvdnav_button_activate(this, pci);
193
b80dff4bef76 Remove all references to S_OK and S_ERR.
jcdutton
parents: 191
diff changeset
492 return DVDNAV_STATUS_ERR;
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
493 }