annotate decoder.h @ 6:5f319e02e333 src

Some cleaning up. changed exit(1) to assert(0) so they actually get seen by the user so that it helps developers more.
author jcdutton
date Sat, 06 Apr 2002 18:31:50 +0000
parents 3ddf0eaece51
children 6f0fb88d1463
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
1 /*
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
2 * Copyright (C) 2000, 2001 Martin Norbäck, Håkan Hjort
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
3 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
4 * This file is part of libdvdnav, a DVD navigation library. It is modified
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
5 * from a file originally part of the Ogle DVD player.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
6 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
7 * libdvdnav is free software; you can redistribute it and/or modify
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
10 * (at your option) any later version.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
11 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
12 * libdvdnav is distributed in the hope that it will be useful,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
15 * GNU General Public License for more details.
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
16 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
20 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
21 * $Id$
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
22 *
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
23 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
24
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
25 #ifndef DECODER_H_INCLUDED
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
26 #define DECODER_H_INCLUDED
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
27
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
28 #include "config.h"
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
29 #include <inttypes.h>
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
30 #include <dvdread/ifo_types.h> /* vm_cmd_t */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
31
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
32 /* Uncomment for tracing */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
33 #define TRACE
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
34
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
35 typedef enum {
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
36 LinkNoLink = 0,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
37
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
38 LinkTopC = 1,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
39 LinkNextC = 2,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
40 LinkPrevC = 3,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
41
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
42 LinkTopPG = 5,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
43 LinkNextPG = 6,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
44 LinkPrevPG = 7,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
45
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
46 LinkTopPGC = 9,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
47 LinkNextPGC = 10,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
48 LinkPrevPGC = 11,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
49 LinkGoUpPGC = 12,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
50 LinkTailPGC = 13,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
51
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
52 LinkRSM = 16,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
53
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
54 LinkPGCN,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
55 LinkPTTN,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
56 LinkPGN,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
57 LinkCN,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
58
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
59 Exit,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
60
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
61 JumpTT, /* 22 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
62 JumpVTS_TT,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
63 JumpVTS_PTT,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
64
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
65 JumpSS_FP,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
66 JumpSS_VMGM_MENU,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
67 JumpSS_VTSM,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
68 JumpSS_VMGM_PGC,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
69
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
70 CallSS_FP, /* 29 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
71 CallSS_VMGM_MENU,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
72 CallSS_VTSM,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
73 CallSS_VMGM_PGC,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
74
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
75 PlayThis
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
76 } link_cmd_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
77
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
78 typedef struct {
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
79 link_cmd_t command;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
80 uint16_t data1;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
81 uint16_t data2;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
82 uint16_t data3;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
83 } link_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
84
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
85 typedef struct {
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
86 uint16_t SPRM[24];
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
87 uint16_t GPRM[16];
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
88 /* Need to have some thing to indicate normal/counter mode for every GPRM */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
89 /* int GPRM_mode[16]; */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
90 } registers_t;
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
91
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
92 int vmEval_CMD(vm_cmd_t commands[], int num_commands,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
93 registers_t *registers, link_t *return_values);
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
94
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
95 void vmPrint_LINK(link_t value);
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
96
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
97 #endif /* DECODER_H_INCLUDED */