early-access version 1369
This commit is contained in:
parent
ab51cd958f
commit
7b95157e26
7 changed files with 81 additions and 9 deletions
|
@ -1,7 +1,7 @@
|
||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 1368.
|
This is the source code for early-access 1369.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,14 @@ void Stream::Stop() {
|
||||||
UNIMPLEMENTED();
|
UNIMPLEMENTED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Stream::Flush() {
|
||||||
|
const bool had_buffers = !queued_buffers.empty();
|
||||||
|
while (!queued_buffers.empty()) {
|
||||||
|
queued_buffers.pop();
|
||||||
|
}
|
||||||
|
return had_buffers;
|
||||||
|
}
|
||||||
|
|
||||||
void Stream::SetVolume(float volume) {
|
void Stream::SetVolume(float volume) {
|
||||||
game_volume = volume;
|
game_volume = volume;
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,6 +56,9 @@ public:
|
||||||
/// Queues a buffer into the audio stream, returns true on success
|
/// Queues a buffer into the audio stream, returns true on success
|
||||||
bool QueueBuffer(BufferPtr&& buffer);
|
bool QueueBuffer(BufferPtr&& buffer);
|
||||||
|
|
||||||
|
/// Flush audio buffers
|
||||||
|
bool Flush();
|
||||||
|
|
||||||
/// Returns true if the audio stream contains a buffer with the specified tag
|
/// Returns true if the audio stream contains a buffer with the specified tag
|
||||||
[[nodiscard]] bool ContainsBuffer(Buffer::Tag tag) const;
|
[[nodiscard]] bool ContainsBuffer(Buffer::Tag tag) const;
|
||||||
|
|
||||||
|
|
|
@ -635,7 +635,7 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system_,
|
||||||
{50, &ICommonStateGetter::IsVrModeEnabled, "IsVrModeEnabled"},
|
{50, &ICommonStateGetter::IsVrModeEnabled, "IsVrModeEnabled"},
|
||||||
{51, &ICommonStateGetter::SetVrModeEnabled, "SetVrModeEnabled"},
|
{51, &ICommonStateGetter::SetVrModeEnabled, "SetVrModeEnabled"},
|
||||||
{52, &ICommonStateGetter::SetLcdBacklighOffEnabled, "SetLcdBacklighOffEnabled"},
|
{52, &ICommonStateGetter::SetLcdBacklighOffEnabled, "SetLcdBacklighOffEnabled"},
|
||||||
{53, nullptr, "BeginVrModeEx"},
|
{53, &ICommonStateGetter::BeginVrModeEx, "BeginVrModeEx"},
|
||||||
{54, &ICommonStateGetter::EndVrModeEx, "EndVrModeEx"},
|
{54, &ICommonStateGetter::EndVrModeEx, "EndVrModeEx"},
|
||||||
{55, nullptr, "IsInControllerFirmwareUpdateSection"},
|
{55, nullptr, "IsInControllerFirmwareUpdateSection"},
|
||||||
{60, &ICommonStateGetter::GetDefaultDisplayResolution, "GetDefaultDisplayResolution"},
|
{60, &ICommonStateGetter::GetDefaultDisplayResolution, "GetDefaultDisplayResolution"},
|
||||||
|
@ -732,6 +732,13 @@ void ICommonStateGetter::SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ICommonStateGetter::BeginVrModeEx(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
void ICommonStateGetter::EndVrModeEx(Kernel::HLERequestContext& ctx) {
|
void ICommonStateGetter::EndVrModeEx(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_AM, "(STUBBED) called");
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
|
|
@ -189,6 +189,7 @@ private:
|
||||||
void IsVrModeEnabled(Kernel::HLERequestContext& ctx);
|
void IsVrModeEnabled(Kernel::HLERequestContext& ctx);
|
||||||
void SetVrModeEnabled(Kernel::HLERequestContext& ctx);
|
void SetVrModeEnabled(Kernel::HLERequestContext& ctx);
|
||||||
void SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx);
|
void SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx);
|
||||||
|
void BeginVrModeEx(Kernel::HLERequestContext& ctx);
|
||||||
void EndVrModeEx(Kernel::HLERequestContext& ctx);
|
void EndVrModeEx(Kernel::HLERequestContext& ctx);
|
||||||
void GetDefaultDisplayResolution(Kernel::HLERequestContext& ctx);
|
void GetDefaultDisplayResolution(Kernel::HLERequestContext& ctx);
|
||||||
void SetCpuBoostMode(Kernel::HLERequestContext& ctx);
|
void SetCpuBoostMode(Kernel::HLERequestContext& ctx);
|
||||||
|
|
|
@ -58,7 +58,7 @@ public:
|
||||||
{8, &IAudioOut::GetReleasedAudioOutBufferImpl, "GetReleasedAudioOutBufferAuto"},
|
{8, &IAudioOut::GetReleasedAudioOutBufferImpl, "GetReleasedAudioOutBufferAuto"},
|
||||||
{9, &IAudioOut::GetAudioOutBufferCount, "GetAudioOutBufferCount"},
|
{9, &IAudioOut::GetAudioOutBufferCount, "GetAudioOutBufferCount"},
|
||||||
{10, nullptr, "GetAudioOutPlayedSampleCount"},
|
{10, nullptr, "GetAudioOutPlayedSampleCount"},
|
||||||
{11, nullptr, "FlushAudioOutBuffers"},
|
{11, &IAudioOut::FlushAudioOutBuffers, "FlushAudioOutBuffers"},
|
||||||
{12, &IAudioOut::SetAudioOutVolume, "SetAudioOutVolume"},
|
{12, &IAudioOut::SetAudioOutVolume, "SetAudioOutVolume"},
|
||||||
{13, &IAudioOut::GetAudioOutVolume, "GetAudioOutVolume"},
|
{13, &IAudioOut::GetAudioOutVolume, "GetAudioOutVolume"},
|
||||||
};
|
};
|
||||||
|
@ -185,6 +185,14 @@ private:
|
||||||
rb.Push(static_cast<u32>(stream->GetQueueSize()));
|
rb.Push(static_cast<u32>(stream->GetQueueSize()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FlushAudioOutBuffers(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_DEBUG(Service_Audio, "called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
rb.Push(stream->Flush());
|
||||||
|
}
|
||||||
|
|
||||||
void SetAudioOutVolume(Kernel::HLERequestContext& ctx) {
|
void SetAudioOutVolume(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const float volume = rp.Pop<float>();
|
const float volume = rp.Pop<float>();
|
||||||
|
|
|
@ -50,11 +50,11 @@ public:
|
||||||
{1046, nullptr, "DisableFeaturesForReset"},
|
{1046, nullptr, "DisableFeaturesForReset"},
|
||||||
{1047, nullptr, "NotifyApplicationDownloadStarted"},
|
{1047, nullptr, "NotifyApplicationDownloadStarted"},
|
||||||
{1048, nullptr, "NotifyNetworkProfileCreated"},
|
{1048, nullptr, "NotifyNetworkProfileCreated"},
|
||||||
{1061, nullptr, "ConfirmStereoVisionRestrictionConfigurable"},
|
{1061, &IParentalControlService::ConfirmStereoVisionRestrictionConfigurable, "ConfirmStereoVisionRestrictionConfigurable"},
|
||||||
{1062, nullptr, "GetStereoVisionRestriction"},
|
{1062, &IParentalControlService::GetStereoVisionRestriction, "GetStereoVisionRestriction"},
|
||||||
{1063, nullptr, "SetStereoVisionRestriction"},
|
{1063, &IParentalControlService::SetStereoVisionRestriction, "SetStereoVisionRestriction"},
|
||||||
{1064, nullptr, "ResetConfirmedStereoVisionPermission"},
|
{1064, &IParentalControlService::ResetConfirmedStereoVisionPermission, "ResetConfirmedStereoVisionPermission"},
|
||||||
{1065, nullptr, "IsStereoVisionPermitted"},
|
{1065, &IParentalControlService::IsStereoVisionPermitted, "IsStereoVisionPermitted"},
|
||||||
{1201, nullptr, "UnlockRestrictionTemporarily"},
|
{1201, nullptr, "UnlockRestrictionTemporarily"},
|
||||||
{1202, nullptr, "UnlockSystemSettingsRestriction"},
|
{1202, nullptr, "UnlockSystemSettingsRestriction"},
|
||||||
{1203, nullptr, "SetPinCode"},
|
{1203, nullptr, "SetPinCode"},
|
||||||
|
@ -114,6 +114,7 @@ public:
|
||||||
{2015, nullptr, "FinishSynchronizeParentalControlSettingsWithLastUpdated"},
|
{2015, nullptr, "FinishSynchronizeParentalControlSettingsWithLastUpdated"},
|
||||||
{2016, nullptr, "RequestUpdateExemptionListAsync"},
|
{2016, nullptr, "RequestUpdateExemptionListAsync"},
|
||||||
};
|
};
|
||||||
|
// clang-format on
|
||||||
RegisterHandlers(functions);
|
RegisterHandlers(functions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,6 +132,49 @@ private:
|
||||||
IPC::ResponseBuilder rb{ctx, 2};
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ConfirmStereoVisionRestrictionConfigurable(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_PCTL, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IsStereoVisionPermitted(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_PCTL, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
rb.Push(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetStereoVisionRestriction(Kernel::HLERequestContext& ctx) {
|
||||||
|
IPC::RequestParser rp{ctx};
|
||||||
|
const auto can_use = rp.Pop<bool>();
|
||||||
|
LOG_WARNING(Service_PCTL, "(STUBBED) called, can_use={}", can_use);
|
||||||
|
|
||||||
|
can_use_stereo_vision = can_use;
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GetStereoVisionRestriction(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_PCTL, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
rb.Push(can_use_stereo_vision);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResetConfirmedStereoVisionPermission(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_PCTL, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool can_use_stereo_vision = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
void Module::Interface::CreateService(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::CreateService(Kernel::HLERequestContext& ctx) {
|
||||||
|
@ -149,7 +193,8 @@ void Module::Interface::CreateServiceWithoutInitialize(Kernel::HLERequestContext
|
||||||
rb.PushIpcInterface<IParentalControlService>(system);
|
rb.PushIpcInterface<IParentalControlService>(system);
|
||||||
}
|
}
|
||||||
|
|
||||||
Module::Interface::Interface(Core::System& system_, std::shared_ptr<Module> module_, const char* name)
|
Module::Interface::Interface(Core::System& system_, std::shared_ptr<Module> module_,
|
||||||
|
const char* name)
|
||||||
: ServiceFramework{system_, name}, module{std::move(module_)} {}
|
: ServiceFramework{system_, name}, module{std::move(module_)} {}
|
||||||
|
|
||||||
Module::Interface::~Interface() = default;
|
Module::Interface::~Interface() = default;
|
||||||
|
|
Loading…
Reference in a new issue