Mercurial > libdvdnav.hg
comparison vm/vm.c @ 397:a70f79850e5f src
implement and export dvdnav_get_serial_string(); patch by Matthew Wire devel - mrwire - co - uk. Fixed by Erik
| author | nicodvb |
|---|---|
| date | Mon, 02 Feb 2009 22:55:58 +0000 |
| parents | 9c5aef10d165 |
| children | 61edd6fa781b |
comparison
equal
deleted
inserted
replaced
| 396:6616c485ece0 | 397:a70f79850e5f |
|---|---|
| 154 | 154 |
| 155 return ( int )hfile; | 155 return ( int )hfile; |
| 156 } | 156 } |
| 157 #endif | 157 #endif |
| 158 | 158 |
| 159 static void dvd_read_name(char *name, const char *device) { | 159 static void dvd_read_name(char *name, char *serial, const char *device) { |
| 160 /* Because we are compiling with _FILE_OFFSET_BITS=64 | 160 /* Because we are compiling with _FILE_OFFSET_BITS=64 |
| 161 * all off_t are 64bit. | 161 * all off_t are 64bit. |
| 162 */ | 162 */ |
| 163 off_t off; | 163 off_t off; |
| 164 int fd, i; | 164 int fd, i; |
| 190 fprintf(MSG_OUT, "%c", data[i]); | 190 fprintf(MSG_OUT, "%c", data[i]); |
| 191 } else { | 191 } else { |
| 192 fprintf(MSG_OUT, " "); | 192 fprintf(MSG_OUT, " "); |
| 193 } | 193 } |
| 194 } | 194 } |
| 195 strncpy(serial, (char*) &data[73], (i-73)); | |
| 196 serial[14] = 0; | |
| 195 fprintf(MSG_OUT, "\nlibdvdnav: DVD Title (Alternative): "); | 197 fprintf(MSG_OUT, "\nlibdvdnav: DVD Title (Alternative): "); |
| 196 for(i=89; i < 128; i++ ) { | 198 for(i=89; i < 128; i++ ) { |
| 197 if((data[i] == 0)) break; | 199 if((data[i] == 0)) break; |
| 198 if((data[i] > 32) && (data[i] < 127)) { | 200 if((data[i] > 32) && (data[i] < 127)) { |
| 199 fprintf(MSG_OUT, "%c", data[i]); | 201 fprintf(MSG_OUT, "%c", data[i]); |
| 350 vm->dvd = DVDOpen(dvdroot); | 352 vm->dvd = DVDOpen(dvdroot); |
| 351 if(!vm->dvd) { | 353 if(!vm->dvd) { |
| 352 fprintf(MSG_OUT, "libdvdnav: vm: failed to open/read the DVD\n"); | 354 fprintf(MSG_OUT, "libdvdnav: vm: failed to open/read the DVD\n"); |
| 353 return 0; | 355 return 0; |
| 354 } | 356 } |
| 355 dvd_read_name(vm->dvd_name, dvdroot); | 357 dvd_read_name(vm->dvd_name, vm->dvd_serial, dvdroot); |
| 356 vm->map = remap_loadmap(vm->dvd_name); | 358 vm->map = remap_loadmap(vm->dvd_name); |
| 357 vm->vmgi = ifoOpenVMGI(vm->dvd); | 359 vm->vmgi = ifoOpenVMGI(vm->dvd); |
| 358 if(!vm->vmgi) { | 360 if(!vm->vmgi) { |
| 359 fprintf(MSG_OUT, "libdvdnav: vm: failed to read VIDEO_TS.IFO\n"); | 361 fprintf(MSG_OUT, "libdvdnav: vm: failed to read VIDEO_TS.IFO\n"); |
| 360 return 0; | 362 return 0; |
