| 577 | } |
| 578 | |
| 579 | static void next_cd_audio_buffer_callback(int bufnum, void *params) |
| 580 | { |
| 581 | struct cdunit *cdu = (struct cdunit*)params; |
| 582 | uae_sem_wait(&play_sem); |
| 583 | if (bufnum >= 0) { |
| 584 | cdu->cda_bufon[bufnum] = 0; |
| 585 | bufnum = 1 - bufnum; |
| 586 | if (cdu->cda_bufon[bufnum]) |
| 587 | audio_cda_new_buffer(&cdu->cas, (uae_s16*)cdu->cda->buffers[bufnum], CDDA_BUFFERS * 2352 / 4, bufnum, next_cd_audio_buffer_callback, cdu); |
| 588 | else |
| 589 | bufnum = -1; |
| 590 | } |
| 591 | if (bufnum < 0) { |
| 592 | audio_cda_new_buffer(&cdu->cas, NULL, -1, 0, NULL, cdu); |
| 593 | } |
| 594 | uae_sem_post(&play_sem); |
| 595 | } |
| 596 | |
| 597 | static bool cdda_play_func2 (struct cdunit *cdu, int *outpos) |
| 598 | { |
no test coverage detected