comparison vm.c @ 135:5204d4e4cd3b src

I should get a brain and learn how to handle BCD... also fixing a possible mis-jump with angled cells
author mroi
date Wed, 26 Mar 2003 14:37:23 +0000
parents d09a81cf65ce
children 5897ff629f7c
comparison
equal deleted inserted replaced
134:d9d75a22a061 135:5204d4e4cd3b
442 ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].last_sector - 442 ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].last_sector -
443 (vm->state).pgc->cell_playback[(vm->state).cellN - 1].first_sector < 1024)) { 443 (vm->state).pgc->cell_playback[(vm->state).cellN - 1].first_sector < 1024)) {
444 int time; 444 int time;
445 int size = (vm->state).pgc->cell_playback[(vm->state).cellN - 1].last_sector - 445 int size = (vm->state).pgc->cell_playback[(vm->state).cellN - 1].last_sector -
446 (vm->state).pgc->cell_playback[(vm->state).cellN - 1].first_sector; 446 (vm->state).pgc->cell_playback[(vm->state).cellN - 1].first_sector;
447 time = ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.hour & 0xf0) * 36000; 447 time = ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.hour >> 4 ) * 36000;
448 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.hour & 0x0f) * 3600; 448 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.hour & 0x0f) * 3600;
449 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.minute & 0xf0) * 600; 449 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.minute >> 4 ) * 600;
450 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.minute & 0x0f) * 60; 450 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.minute & 0x0f) * 60;
451 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.second & 0xf0) * 10; 451 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.second >> 4 ) * 10;
452 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.second & 0x0f) * 1; 452 time += ((vm->state).pgc->cell_playback[(vm->state).cellN - 1].playback_time.second & 0x0f) * 1;
453 if (size / time > 30) 453 if (size / time > 30)
454 /* datarate is too high, it might be a very short, but regular cell */ 454 /* datarate is too high, it might be a very short, but regular cell */
455 return; 455 return;
456 if (time > 0xff) time = 0xff; 456 if (time > 0xff) time = 0xff;
472 } 472 }
473 473
474 int vm_jump_cell_block(vm_t *vm, int cell, int block) { 474 int vm_jump_cell_block(vm_t *vm, int cell, int block) {
475 (vm->state).cellN = cell; 475 (vm->state).cellN = cell;
476 process_command(vm, play_Cell(vm)); 476 process_command(vm, play_Cell(vm));
477 (vm->state).blockN = block; 477 /* play_Cell can jump to a different cell in case of angles */
478 if ((vm->state).cellN == cell)
479 (vm->state).blockN = block;
478 return 1; 480 return 1;
479 } 481 }
480 482
481 int vm_jump_title_part(vm_t *vm, int title, int part) { 483 int vm_jump_title_part(vm_t *vm, int title, int part) {
482 int vtsN; 484 int vtsN;
1803 #endif 1805 #endif
1804 1806
1805 1807
1806 /* 1808 /*
1807 * $Log$ 1809 * $Log$
1810 * Revision 1.48 2003/03/26 14:37:23 mroi
1811 * I should get a brain and learn how to handle BCD...
1812 * also fixing a possible mis-jump with angled cells
1813 *
1808 * Revision 1.47 2003/03/24 16:42:59 mroi 1814 * Revision 1.47 2003/03/24 16:42:59 mroi
1809 * determine correct PG and PTT numbers when seeking across PG boundaries 1815 * determine correct PG and PTT numbers when seeking across PG boundaries
1810 * 1816 *
1811 * Revision 1.46 2003/03/15 20:21:44 mroi 1817 * Revision 1.46 2003/03/15 20:21:44 mroi
1812 * - do not rely on 1:1 mappings between PTTs and PGs 1818 * - do not rely on 1:1 mappings between PTTs and PGs