- if(event_cdda_delay_play >= 0) cancel_event(this, event_cdda_delay_play);
- register_event(this, EVENT_CDDA_DELAY_PLAY, 10.0, false, &event_cdda_delay_play);
- //set_cdda_status(CDDA_PLAYING);
- }
+ if((command[1] & 3) != 0) {
+// cdda_play_mode = ((command[1] & 3) == 2) ? MODE_INTERRUPT : (((command[1] & 3) == 1) ? MODE_NO_REPEAT : MODE_NO_REPEAT);
+// cdda_repeat = ((command[1] & 3) == 1);
+// cdda_interrupt = ((command[1] & 3) == 2);
+ cdda_end_frame = min(cdda_end_frame, max_logical_block);
+ cdda_play_mode = command[1] & 3;
+ if(cdda_play_mode != 0) {
+ if(event_cdda_delay_play >= 0) cancel_event(this, event_cdda_delay_play);
+ register_event(this, EVENT_CDDA_DELAY_PLAY, 10.0, false, &event_cdda_delay_play);
+ } else {
+ set_cdda_status(CDDA_OFF);
+ }
+ }/* else {
+ cdda_end_frame = toc_table[min(get_track(cdda_start_frame) + 1, track_num)].index0; // end of this track
+ set_cdda_status(CDDA_PAUSED);
+ cdda_play_mode = MODE_NO_REPEAT;
+ }*/
+ if(__SCSI_DEBUG_LOG) {
+ uint32_t s_msf = lba_to_msf(cdda_start_frame);
+ uint32_t e_msf = lba_to_msf(cdda_end_frame);
+ this->out_debug_log(_T("[SCSI_DEV:ID=%d] Start=%02x:%02x:%02x End=%02x:%02x:%02x Mode=%d\n"), scsi_id,
+ (s_msf >> 16) & 0xff, (s_msf >> 8) & 0xff, s_msf & 0xff,
+ (e_msf >> 16) & 0xff, (e_msf >> 8) & 0xff, e_msf & 0xff, cdda_play_mode);
+ }