| 2463 | } |
| 2464 | |
| 2465 | uae_u8 *save_cd (int num, size_t *len) |
| 2466 | { |
| 2467 | struct blkdevstate *st = &state[num]; |
| 2468 | uae_u8 *dstbak, *dst; |
| 2469 | |
| 2470 | memset(st->play_qcode, 0, SUBQ_SIZE); |
| 2471 | if (!currprefs.cdslots[num].inuse || num >= MAX_TOTAL_SCSI_DEVICES) |
| 2472 | return NULL; |
| 2473 | if (!currprefs.cs_cd32cd && !currprefs.cs_cdtvcd && !currprefs.scsi) |
| 2474 | return NULL; |
| 2475 | dstbak = dst = xmalloc (uae_u8, 4 + MAX_DPATH + 4 + 4 + 4 + SUBQ_SIZE + 2 * MAX_DPATH); |
| 2476 | save_u32 (4 | 8 | 16); |
| 2477 | save_path (currprefs.cdslots[num].name, SAVESTATE_PATH_CD); |
| 2478 | save_u32 (currprefs.cdslots[num].type); |
| 2479 | save_u32 (0); |
| 2480 | save_u32 (0); |
| 2481 | sys_command_cd_qcode (num, st->play_qcode, -1, false); |
| 2482 | for (int i = 0; i < SUBQ_SIZE; i++) |
| 2483 | save_u8 (st->play_qcode[i]); |
| 2484 | save_u32 (st->play_end_pos); |
| 2485 | save_path_full(currprefs.cdslots[num].name, SAVESTATE_PATH_CD); |
| 2486 | *len = dst - dstbak; |
| 2487 | return dstbak; |
| 2488 | } |
| 2489 | |
| 2490 | uae_u8 *restore_cd (int num, uae_u8 *src) |
| 2491 | { |
no test coverage detected