comparison Plugins/Input/console/Audacious_Driver.cpp @ 497:dfba4ac44dd8 trunk

[svn] New output driver which makes use of Output objects ability to flush buffers. (seek for output timing, basically)
author nenolod
date Wed, 25 Jan 2006 09:31:04 -0800
parents e52d8e22e718
children 626c86bda311
comparison
equal deleted inserted replaced
496:e52d8e22e718 497:dfba4ac44dd8
516 516
517 // handle pending seek 517 // handle pending seek
518 long s = pending_seek; 518 long s = pending_seek;
519 pending_seek = -1; // to do: use atomic swap 519 pending_seek = -1; // to do: use atomic swap
520 if ( s >= 0 ) 520 if ( s >= 0 )
521 {
522 console_ip.output->flush( s * 1000 );
521 track_emu.seek( s * 1000 ); 523 track_emu.seek( s * 1000 );
522 524 }
525
523 // fill buffer 526 // fill buffer
524 if ( track_emu.play( buf_size, buf ) ) 527 if ( track_emu.play( buf_size, buf ) )
525 console_ip_is_going = false; 528 console_ip_is_going = false;
526 produce_audio( track_emu.tell(), FMT_S16_NE, 1, sizeof buf, buf, NULL ); 529 produce_audio( console_ip.output->written_time(),
530 FMT_S16_NE, 1, sizeof buf, buf, NULL );
527 } 531 }
528 532
529 // stop playing 533 // stop playing
530 unload_file(); 534 unload_file();
531 console_ip.output->close_audio(); 535 console_ip.output->close_audio();
635 console_ip.output->pause(p); 639 console_ip.output->pause(p);
636 } 640 }
637 641
638 static int get_time(void) 642 static int get_time(void)
639 { 643 {
640 return console_ip_is_going ? (track_emu.tell() - 3000 >= 0 ? track_emu.tell() - 3000 : 0) : -1; 644 return console_ip_is_going ? console_ip.output->output_time() : -1;
641 } 645 }
642 646
643 // Setup 647 // Setup
644 648
645 static void console_init(void) 649 static void console_init(void)