mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-12-04 19:45:41 +00:00
48 lines
1 KiB
C++
48 lines
1 KiB
C++
// SPDX-FileCopyrightText: 2019-2022 Connor McLaughlin <stenzek@gmail.com>
|
|
// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0)
|
|
|
|
#pragma once
|
|
#include "types.h"
|
|
#include <memory>
|
|
#include <string>
|
|
#include <tuple>
|
|
|
|
class CDImage;
|
|
class StateWrapper;
|
|
|
|
namespace CDROM {
|
|
|
|
void Initialize();
|
|
void Shutdown();
|
|
void Reset();
|
|
bool DoState(StateWrapper& sw);
|
|
|
|
bool HasMedia();
|
|
const std::string& GetMediaFileName();
|
|
const CDImage* GetMedia();
|
|
DiscRegion GetDiscRegion();
|
|
bool IsMediaPS1Disc();
|
|
bool IsMediaAudioCD();
|
|
bool DoesMediaRegionMatchConsole();
|
|
|
|
void InsertMedia(std::unique_ptr<CDImage> media, DiscRegion region);
|
|
std::unique_ptr<CDImage> RemoveMedia(bool for_disc_swap);
|
|
bool PrecacheMedia();
|
|
|
|
void CPUClockChanged();
|
|
|
|
// I/O
|
|
u8 ReadRegister(u32 offset);
|
|
void WriteRegister(u32 offset, u8 value);
|
|
void DMARead(u32* words, u32 word_count);
|
|
|
|
// Render statistics debug window.
|
|
void DrawDebugWindow();
|
|
|
|
void SetReadaheadSectors(u32 readahead_sectors);
|
|
|
|
/// Reads a frame from the audio FIFO, used by the SPU.
|
|
std::tuple<s16, s16> GetAudioFrame();
|
|
|
|
} // namespace CDROM
|