forked from eden-emu/eden
Service: am: enhance UnpopInData, GetHdcpAuthenticationState and GetHdcpAuthenticationStateChangeEvent
Thanks to Sudachi and Torzu for some help and referance.
This commit is contained in:
parent
905e7d9a68
commit
2cb1f12c33
6 changed files with 32 additions and 4 deletions
|
@ -9,7 +9,7 @@ namespace Service::AM {
|
|||
LifecycleManager::LifecycleManager(Core::System& system, KernelHelpers::ServiceContext& context,
|
||||
bool is_application)
|
||||
: m_system_event(context), m_operation_mode_changed_system_event(context),
|
||||
m_is_application(is_application) {}
|
||||
m_hdcp_state_changed_event(context), m_is_application(is_application) {}
|
||||
|
||||
LifecycleManager::~LifecycleManager() = default;
|
||||
|
||||
|
@ -21,6 +21,10 @@ Event& LifecycleManager::GetOperationModeChangedSystemEvent() {
|
|||
return m_operation_mode_changed_system_event;
|
||||
}
|
||||
|
||||
Event& LifecycleManager::GetHDCPStateChangedEvent() {
|
||||
return m_hdcp_state_changed_event;
|
||||
}
|
||||
|
||||
void LifecycleManager::PushUnorderedMessage(AppletMessage message) {
|
||||
m_unordered_messages.push_back(message);
|
||||
this->SignalSystemEventIfNeeded();
|
||||
|
|
|
@ -42,6 +42,7 @@ public:
|
|||
public:
|
||||
Event& GetSystemEvent();
|
||||
Event& GetOperationModeChangedSystemEvent();
|
||||
Event& GetHDCPStateChangedEvent();
|
||||
|
||||
public:
|
||||
bool IsApplication() {
|
||||
|
@ -145,12 +146,14 @@ private:
|
|||
private:
|
||||
Event m_system_event;
|
||||
Event m_operation_mode_changed_system_event;
|
||||
Event m_hdcp_state_changed_event;
|
||||
|
||||
std::list<AppletMessage> m_unordered_messages{};
|
||||
|
||||
bool m_is_application{};
|
||||
bool m_focus_state_changed_notification_enabled{true};
|
||||
bool m_operation_mode_changed_notification_enabled{true};
|
||||
bool m_hdcp_state_changed_notification_enabled{true};
|
||||
bool m_performance_mode_changed_notification_enabled{true};
|
||||
bool m_resume_notification_enabled{};
|
||||
|
||||
|
|
|
@ -48,8 +48,8 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system_, std::shared_ptr<Ap
|
|||
{59, nullptr, "SetVrPositionForDebug"},
|
||||
{60, D<&ICommonStateGetter::GetDefaultDisplayResolution>, "GetDefaultDisplayResolution"},
|
||||
{61, D<&ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent>, "GetDefaultDisplayResolutionChangeEvent"},
|
||||
{62, nullptr, "GetHdcpAuthenticationState"},
|
||||
{63, nullptr, "GetHdcpAuthenticationStateChangeEvent"},
|
||||
{62, D<&ICommonStateGetter::GetHdcpAuthenticationState>, "GetHdcpAuthenticationState"},
|
||||
{63, D<&ICommonStateGetter::GetHdcpAuthenticationStateChangeEvent>, "GetHdcpAuthenticationStateChangeEvent"},
|
||||
{64, nullptr, "SetTvPowerStateMatchingMode"},
|
||||
{65, nullptr, "GetApplicationIdByContentActionName"},
|
||||
{66, &ICommonStateGetter::SetCpuBoostMode, "SetCpuBoostMode"},
|
||||
|
@ -140,6 +140,19 @@ Result ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent(
|
|||
R_SUCCEED();
|
||||
}
|
||||
|
||||
Result ICommonStateGetter::GetHdcpAuthenticationState(Out<s32> out_state) {
|
||||
LOG_DEBUG(Service_AM, "called");
|
||||
*out_state = 1;
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
Result ICommonStateGetter::GetHdcpAuthenticationStateChangeEvent(
|
||||
OutCopyHandle<Kernel::KReadableEvent> out_event) {
|
||||
LOG_DEBUG(Service_AM, "called");
|
||||
*out_event = m_applet->lifecycle_manager.GetHDCPStateChangedEvent().GetHandle();
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
Result ICommonStateGetter::GetOperationMode(Out<OperationMode> out_operation_mode) {
|
||||
const bool use_docked_mode{Settings::IsDockedMode()};
|
||||
LOG_DEBUG(Service_AM, "called, use_docked_mode={}", use_docked_mode);
|
||||
|
|
|
@ -35,6 +35,8 @@ private:
|
|||
Result GetWriterLockAccessorEx(Out<SharedPointer<ILockAccessor>> out_lock_accessor,
|
||||
u32 button_type);
|
||||
Result GetDefaultDisplayResolutionChangeEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
|
||||
Result GetHdcpAuthenticationState(Out<s32> out_state);
|
||||
Result GetHdcpAuthenticationStateChangeEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
|
||||
Result GetOperationMode(Out<OperationMode> out_operation_mode);
|
||||
Result GetPerformanceMode(Out<APM::PerformanceMode> out_performance_mode);
|
||||
Result GetCradleFwVersion(OutArray<uint32_t, 4> out_version);
|
||||
|
|
|
@ -63,7 +63,7 @@ ILibraryAppletSelfAccessor::ILibraryAppletSelfAccessor(Core::System& system_,
|
|||
{19, D<&ILibraryAppletSelfAccessor::GetDesirableKeyboardLayout>, "GetDesirableKeyboardLayout"},
|
||||
{20, nullptr, "PopExtraStorage"},
|
||||
{25, nullptr, "GetPopExtraStorageEvent"},
|
||||
{30, nullptr, "UnpopInData"},
|
||||
{30, D<&ILibraryAppletSelfAccessor::UnpopInData>, "UnpopInData"},
|
||||
{31, nullptr, "UnpopExtraStorage"},
|
||||
{40, nullptr, "GetIndirectLayerProducerHandle"},
|
||||
{50, D<&ILibraryAppletSelfAccessor::ReportVisibleError>, "ReportVisibleError"},
|
||||
|
@ -223,6 +223,11 @@ Result ILibraryAppletSelfAccessor::ReportVisibleErrorWithErrorContext(
|
|||
R_SUCCEED();
|
||||
}
|
||||
|
||||
Result ILibraryAppletSelfAccessor::UnpopInData() {
|
||||
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
Result ILibraryAppletSelfAccessor::GetMainAppletApplicationDesiredLanguage(
|
||||
Out<u64> out_desired_language) {
|
||||
// FIXME: this is copied from IApplicationFunctions::GetDesiredLanguage
|
||||
|
|
|
@ -69,6 +69,7 @@ private:
|
|||
Result ReportVisibleError(ErrorCode error_code);
|
||||
Result ReportVisibleErrorWithErrorContext(
|
||||
ErrorCode error_code, InLargeData<ErrorContext, BufferAttr_HipcMapAlias> error_context);
|
||||
Result UnpopInData();
|
||||
Result GetMainAppletApplicationDesiredLanguage(Out<u64> out_desired_language);
|
||||
Result GetCurrentApplicationId(Out<u64> out_application_id);
|
||||
Result GetMainAppletAvailableUsers(Out<bool> out_can_select_any_user, Out<s32> out_users_count,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue