Просмотр исходного кода

Merge pull request #4457 from ogniK5377/SetScreenShotPermission

am: Unstub SetScreenShotPermission
bunnei 6 лет назад
Родитель
Сommit
929fc849e9
2 измененных файлов с 12 добавлено и 1 удалено
  1. 5 1
      src/core/hle/service/am/am.cpp
  2. 7 0
      src/core/hle/service/am/am.h

+ 5 - 1
src/core/hle/service/am/am.cpp

@@ -378,7 +378,11 @@ void ISelfController::GetLibraryAppletLaunchableEvent(Kernel::HLERequestContext&
 }
 }
 
 
 void ISelfController::SetScreenShotPermission(Kernel::HLERequestContext& ctx) {
 void ISelfController::SetScreenShotPermission(Kernel::HLERequestContext& ctx) {
-    LOG_WARNING(Service_AM, "(STUBBED) called");
+    IPC::RequestParser rp{ctx};
+    const auto permission = rp.PopEnum<ScreenshotPermission>();
+    LOG_DEBUG(Service_AM, "called, permission={}", permission);
+
+    screenshot_permission = permission;
 
 
     IPC::ResponseBuilder rb{ctx, 2};
     IPC::ResponseBuilder rb{ctx, 2};
     rb.Push(RESULT_SUCCESS);
     rb.Push(RESULT_SUCCESS);

+ 7 - 0
src/core/hle/service/am/am.h

@@ -149,6 +149,12 @@ private:
     void GetAccumulatedSuspendedTickValue(Kernel::HLERequestContext& ctx);
     void GetAccumulatedSuspendedTickValue(Kernel::HLERequestContext& ctx);
     void GetAccumulatedSuspendedTickChangedEvent(Kernel::HLERequestContext& ctx);
     void GetAccumulatedSuspendedTickChangedEvent(Kernel::HLERequestContext& ctx);
 
 
+    enum class ScreenshotPermission : u32 {
+        Inherit = 0,
+        Enable = 1,
+        Disable = 2,
+    };
+
     Core::System& system;
     Core::System& system;
     std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
     std::shared_ptr<NVFlinger::NVFlinger> nvflinger;
     Kernel::EventPair launchable_event;
     Kernel::EventPair launchable_event;
@@ -157,6 +163,7 @@ private:
     u32 idle_time_detection_extension = 0;
     u32 idle_time_detection_extension = 0;
     u64 num_fatal_sections_entered = 0;
     u64 num_fatal_sections_entered = 0;
     bool is_auto_sleep_disabled = false;
     bool is_auto_sleep_disabled = false;
+    ScreenshotPermission screenshot_permission = ScreenshotPermission::Inherit;
 };
 };
 
 
 class ICommonStateGetter final : public ServiceFramework<ICommonStateGetter> {
 class ICommonStateGetter final : public ServiceFramework<ICommonStateGetter> {