DVDInterface: Call SetDiscInside when setting volume
SetDiscInside is an implementation detail that callers shouldn't have to call on their own.
This commit is contained in:
parent
489d90b6f3
commit
0abf875a3f
|
@ -267,7 +267,6 @@ bool CBoot::BootUp()
|
||||||
case SConfig::BOOT_ISO:
|
case SConfig::BOOT_ISO:
|
||||||
{
|
{
|
||||||
DVDInterface::SetVolumeName(_StartupPara.m_strFilename);
|
DVDInterface::SetVolumeName(_StartupPara.m_strFilename);
|
||||||
DVDInterface::SetDiscInside(DVDInterface::VolumeIsValid());
|
|
||||||
if (!DVDInterface::VolumeIsValid())
|
if (!DVDInterface::VolumeIsValid())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -353,8 +352,6 @@ bool CBoot::BootUp()
|
||||||
BS2Success = EmulatedBS2(dolWii);
|
BS2Success = EmulatedBS2(dolWii);
|
||||||
}
|
}
|
||||||
|
|
||||||
DVDInterface::SetDiscInside(DVDInterface::VolumeIsValid());
|
|
||||||
|
|
||||||
if (!BS2Success)
|
if (!BS2Success)
|
||||||
{
|
{
|
||||||
// Set up MSR and the BAT SPR registers.
|
// Set up MSR and the BAT SPR registers.
|
||||||
|
@ -414,8 +411,6 @@ bool CBoot::BootUp()
|
||||||
DVDInterface::SetVolumeDirectory(_StartupPara.m_strFilename, _StartupPara.bWii);
|
DVDInterface::SetVolumeDirectory(_StartupPara.m_strFilename, _StartupPara.bWii);
|
||||||
}
|
}
|
||||||
|
|
||||||
DVDInterface::SetDiscInside(DVDInterface::VolumeIsValid());
|
|
||||||
|
|
||||||
// Poor man's bootup
|
// Poor man's bootup
|
||||||
if (_StartupPara.bWii)
|
if (_StartupPara.bWii)
|
||||||
{
|
{
|
||||||
|
@ -450,13 +445,11 @@ bool CBoot::BootUp()
|
||||||
else if (!_StartupPara.m_strDefaultISO.empty())
|
else if (!_StartupPara.m_strDefaultISO.empty())
|
||||||
DVDInterface::SetVolumeName(_StartupPara.m_strDefaultISO);
|
DVDInterface::SetVolumeName(_StartupPara.m_strDefaultISO);
|
||||||
|
|
||||||
DVDInterface::SetDiscInside(DVDInterface::VolumeIsValid());
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Bootstrap 2 (AKA: Initial Program Loader, "BIOS")
|
// Bootstrap 2 (AKA: Initial Program Loader, "BIOS")
|
||||||
case SConfig::BOOT_BS2:
|
case SConfig::BOOT_BS2:
|
||||||
{
|
{
|
||||||
DVDInterface::SetDiscInside(DVDInterface::VolumeIsValid());
|
|
||||||
if (Load_BS2(_StartupPara.m_strBootROM))
|
if (Load_BS2(_StartupPara.m_strBootROM))
|
||||||
{
|
{
|
||||||
if (LoadMapFromFilename())
|
if (LoadMapFromFilename())
|
||||||
|
|
|
@ -264,7 +264,8 @@ static void EjectDiscCallback(u64 userdata, s64 cyclesLate);
|
||||||
static void InsertDiscCallback(u64 userdata, s64 cyclesLate);
|
static void InsertDiscCallback(u64 userdata, s64 cyclesLate);
|
||||||
static void FinishExecutingCommandCallback(u64 userdata, s64 cycles_late);
|
static void FinishExecutingCommandCallback(u64 userdata, s64 cycles_late);
|
||||||
|
|
||||||
void SetLidOpen(bool _bOpen);
|
void SetDiscInside(bool disc_inside);
|
||||||
|
void SetLidOpen(bool open);
|
||||||
|
|
||||||
void UpdateInterrupts();
|
void UpdateInterrupts();
|
||||||
void GenerateDIInterrupt(DIInterruptType _DVDInterrupt);
|
void GenerateDIInterrupt(DIInterruptType _DVDInterrupt);
|
||||||
|
@ -418,6 +419,8 @@ static void DTKStreamingCallback(const std::vector<u8>& audio_data, s64 cycles_l
|
||||||
|
|
||||||
void Init()
|
void Init()
|
||||||
{
|
{
|
||||||
|
_assert_(!VolumeIsValid());
|
||||||
|
|
||||||
DVDThread::Start();
|
DVDThread::Start();
|
||||||
|
|
||||||
Reset();
|
Reset();
|
||||||
|
@ -483,6 +486,7 @@ bool SetVolumeName(const std::string& disc_path)
|
||||||
{
|
{
|
||||||
DVDThread::WaitUntilIdle();
|
DVDThread::WaitUntilIdle();
|
||||||
s_inserted_volume = DiscIO::CreateVolumeFromFilename(disc_path);
|
s_inserted_volume = DiscIO::CreateVolumeFromFilename(disc_path);
|
||||||
|
SetDiscInside(VolumeIsValid());
|
||||||
return VolumeIsValid();
|
return VolumeIsValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -492,6 +496,7 @@ bool SetVolumeDirectory(const std::string& full_path, bool is_wii,
|
||||||
DVDThread::WaitUntilIdle();
|
DVDThread::WaitUntilIdle();
|
||||||
s_inserted_volume =
|
s_inserted_volume =
|
||||||
DiscIO::CreateVolumeFromDirectory(full_path, is_wii, apploader_path, DOL_path);
|
DiscIO::CreateVolumeFromDirectory(full_path, is_wii, apploader_path, DOL_path);
|
||||||
|
SetDiscInside(VolumeIsValid());
|
||||||
return VolumeIsValid();
|
return VolumeIsValid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -534,7 +539,6 @@ static void InsertDiscCallback(u64 userdata, s64 cyclesLate)
|
||||||
SetVolumeName(old_path);
|
SetVolumeName(old_path);
|
||||||
PanicAlertT("The disc that was about to be inserted couldn't be found.");
|
PanicAlertT("The disc that was about to be inserted couldn't be found.");
|
||||||
}
|
}
|
||||||
SetDiscInside(VolumeIsValid());
|
|
||||||
|
|
||||||
s_disc_path_to_insert.clear();
|
s_disc_path_to_insert.clear();
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,23 +108,23 @@ void DoState(PointerWrap& p);
|
||||||
|
|
||||||
void RegisterMMIO(MMIO::Mapping* mmio, u32 base);
|
void RegisterMMIO(MMIO::Mapping* mmio, u32 base);
|
||||||
|
|
||||||
// Direct disc access
|
// Disc access (don't call GetVolume unless you know that VolumeIsValid() == true)
|
||||||
const DiscIO::IVolume& GetVolume();
|
const DiscIO::IVolume& GetVolume();
|
||||||
bool SetVolumeName(const std::string& disc_path);
|
bool SetVolumeName(const std::string& disc_path);
|
||||||
bool SetVolumeDirectory(const std::string& disc_path, bool is_wii,
|
bool SetVolumeDirectory(const std::string& disc_path, bool is_wii,
|
||||||
const std::string& apploader_path = "", const std::string& DOL_path = "");
|
const std::string& apploader_path = "", const std::string& DOL_path = "");
|
||||||
bool VolumeIsValid();
|
bool VolumeIsValid();
|
||||||
|
|
||||||
// Disc detection and swapping
|
|
||||||
void SetDiscInside(bool _DiscInside);
|
|
||||||
bool IsDiscInside();
|
bool IsDiscInside();
|
||||||
void ChangeDiscAsHost(const std::string& new_path); // Can only be called by the host thread
|
void ChangeDiscAsHost(const std::string& new_path); // Can only be called by the host thread
|
||||||
void ChangeDiscAsCPU(const std::string& new_path); // Can only be called by the CPU thread
|
void ChangeDiscAsCPU(const std::string& new_path); // Can only be called by the CPU thread
|
||||||
|
|
||||||
// DVD Access Functions
|
// Direct access to DI for IOS HLE (simpler to implement than how real IOS accesses DI,
|
||||||
|
// and lets us skip encrypting/decrypting in some cases)
|
||||||
bool ChangePartition(u64 offset);
|
bool ChangePartition(u64 offset);
|
||||||
void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_address,
|
void ExecuteCommand(u32 command_0, u32 command_1, u32 command_2, u32 output_address,
|
||||||
u32 output_length, bool reply_to_ios);
|
u32 output_length, bool reply_to_ios);
|
||||||
|
|
||||||
|
// Used by DVDThread
|
||||||
void FinishExecutingCommand(ReplyType reply_type, DIInterruptType interrupt_type, s64 cycles_late,
|
void FinishExecutingCommand(ReplyType reply_type, DIInterruptType interrupt_type, s64 cycles_late,
|
||||||
const std::vector<u8>& data = std::vector<u8>());
|
const std::vector<u8>& data = std::vector<u8>());
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue