Mercurial > libdvdnav.hg
comparison vm.c @ 4:99bed5d6db2f src
Added reset patch from Kees Cook <kees@outflux.net>
author | richwareham |
---|---|
date | Tue, 02 Apr 2002 18:22:27 +0000 |
parents | 328eadb3f37e |
children | 5f319e02e333 |
comparison
equal
deleted
inserted
replaced
3:328eadb3f37e | 4:99bed5d6db2f |
---|---|
113 if(!self) | 113 if(!self) |
114 return; | 114 return; |
115 | 115 |
116 if(self->vmgi) { | 116 if(self->vmgi) { |
117 ifoClose(self->vmgi); | 117 ifoClose(self->vmgi); |
118 self->vmgi=NULL; | |
118 } | 119 } |
119 | 120 |
120 if(self->vtsi) { | 121 if(self->vtsi) { |
121 ifoClose(self->vtsi); | 122 ifoClose(self->vtsi); |
123 self->vmgi=NULL; | |
122 } | 124 } |
123 | 125 |
124 if(self->dvd) { | 126 if(self->dvd) { |
125 DVDClose(self->dvd); | 127 DVDClose(self->dvd); |
128 self->dvd=NULL; | |
126 } | 129 } |
127 } | 130 } |
128 | 131 |
129 void vm_free_vm(vm_t *self) { | 132 void vm_free_vm(vm_t *self) { |
130 if(self) { | 133 if(self) { |
191 (self->state).rsm_cellN = 0; | 194 (self->state).rsm_cellN = 0; |
192 (self->state).rsm_blockN = 0; | 195 (self->state).rsm_blockN = 0; |
193 | 196 |
194 (self->state).vtsN = -1; | 197 (self->state).vtsN = -1; |
195 | 198 |
196 self->dvd = DVDOpen(dvdroot); | 199 if (self->dvd && dvdroot) { |
197 if(!self->dvd) { | 200 // a new dvd device has been requested |
198 fprintf(stderr, "vm: faild to open/read the DVD\n"); | 201 vm_stop(self); |
199 return -1; | 202 } |
200 } | 203 if (!self->dvd) { |
201 | 204 self->dvd = DVDOpen(dvdroot); |
202 self->vmgi = ifoOpenVMGI(self->dvd); | 205 if(!self->dvd) { |
203 if(!self->vmgi) { | 206 fprintf(stderr, "vm: faild to open/read the DVD\n"); |
204 fprintf(stderr, "vm: faild to read VIDEO_TS.IFO\n"); | 207 return -1; |
205 return -1; | 208 } |
206 } | 209 |
207 if(!ifoRead_FP_PGC(self->vmgi)) { | 210 self->vmgi = ifoOpenVMGI(self->dvd); |
208 fprintf(stderr, "vm: ifoRead_FP_PGC failed\n"); | 211 if(!self->vmgi) { |
209 return -1; | 212 fprintf(stderr, "vm: faild to read VIDEO_TS.IFO\n"); |
210 } | 213 return -1; |
211 if(!ifoRead_TT_SRPT(self->vmgi)) { | 214 } |
212 fprintf(stderr, "vm: ifoRead_TT_SRPT failed\n"); | 215 if(!ifoRead_FP_PGC(self->vmgi)) { |
213 return -1; | 216 fprintf(stderr, "vm: ifoRead_FP_PGC failed\n"); |
214 } | 217 return -1; |
215 if(!ifoRead_PGCI_UT(self->vmgi)) { | 218 } |
216 fprintf(stderr, "vm: ifoRead_PGCI_UT failed\n"); | 219 if(!ifoRead_TT_SRPT(self->vmgi)) { |
217 return -1; | 220 fprintf(stderr, "vm: ifoRead_TT_SRPT failed\n"); |
218 } | 221 return -1; |
219 if(!ifoRead_PTL_MAIT(self->vmgi)) { | 222 } |
220 fprintf(stderr, "vm: ifoRead_PTL_MAIT failed\n"); | 223 if(!ifoRead_PGCI_UT(self->vmgi)) { |
221 ; /* return -1; Not really used for now.. */ | 224 fprintf(stderr, "vm: ifoRead_PGCI_UT failed\n"); |
222 } | 225 return -1; |
223 if(!ifoRead_VTS_ATRT(self->vmgi)) { | 226 } |
224 fprintf(stderr, "vm: ifoRead_VTS_ATRT failed\n"); | 227 if(!ifoRead_PTL_MAIT(self->vmgi)) { |
225 ; /* return -1; Not really used for now.. */ | 228 fprintf(stderr, "vm: ifoRead_PTL_MAIT failed\n"); |
226 } | 229 ; /* return -1; Not really used for now.. */ |
227 if(!ifoRead_VOBU_ADMAP(self->vmgi)) { | 230 } |
228 fprintf(stderr, "vm: ifoRead_VOBU_ADMAP vgmi failed\n"); | 231 if(!ifoRead_VTS_ATRT(self->vmgi)) { |
229 ; /* return -1; Not really used for now.. */ | 232 fprintf(stderr, "vm: ifoRead_VTS_ATRT failed\n"); |
230 } | 233 ; /* return -1; Not really used for now.. */ |
231 /* ifoRead_TXTDT_MGI(vmgi); Not implemented yet */ | 234 } |
235 if(!ifoRead_VOBU_ADMAP(self->vmgi)) { | |
236 fprintf(stderr, "vm: ifoRead_VOBU_ADMAP vgmi failed\n"); | |
237 ; /* return -1; Not really used for now.. */ | |
238 } | |
239 /* ifoRead_TXTDT_MGI(vmgi); Not implemented yet */ | |
240 } | |
241 else fprintf(stderr, "vm: reset\n"); | |
232 | 242 |
233 return 0; | 243 return 0; |
234 } | 244 } |
235 | 245 |
236 /* FIXME TODO XXX $$$ Handle error condition too... */ | 246 /* FIXME TODO XXX $$$ Handle error condition too... */ |
1520 return pgcit; | 1530 return pgcit; |
1521 } | 1531 } |
1522 | 1532 |
1523 /* | 1533 /* |
1524 * $Log$ | 1534 * $Log$ |
1535 * Revision 1.3 2002/04/02 18:22:27 richwareham | |
1536 * Added reset patch from Kees Cook <kees@outflux.net> | |
1537 * | |
1525 * Revision 1.2 2002/04/01 18:56:28 richwareham | 1538 * Revision 1.2 2002/04/01 18:56:28 richwareham |
1526 * Added initial example programs directory and make sure all debug/error output goes to stderr. | 1539 * Added initial example programs directory and make sure all debug/error output goes to stderr. |
1527 * | 1540 * |
1528 * Revision 1.1.1.1 2002/03/12 19:45:55 richwareham | 1541 * Revision 1.1.1.1 2002/03/12 19:45:55 richwareham |
1529 * Initial import | 1542 * Initial import |