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;