Mercurial > audlegacy
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) |
