diff options
author | Liam <[email protected]> | 2024-01-03 01:16:27 -0500 |
---|---|---|
committer | Liam <[email protected]> | 2024-01-29 20:17:33 -0500 |
commit | 8a146469c0639ff402e77da8843072ce1f2bce0c (patch) | |
tree | c5dbc016c8ff1affaa06d9bfe7b580b468fed1ba /src/core/hle/service/am/applet.h | |
parent | b1c2f791af08b3eaba53c1ce1673fe0729fc5d26 (diff) | |
download | yuzu-android-8a146469c0639ff402e77da8843072ce1f2bce0c.tar.gz yuzu-android-8a146469c0639ff402e77da8843072ce1f2bce0c.zip |
am: return AppletDataBroker and use for frontend applets
Diffstat (limited to 'src/core/hle/service/am/applet.h')
-rw-r--r-- | src/core/hle/service/am/applet.h | 36 |
1 files changed, 1 insertions, 35 deletions
diff --git a/src/core/hle/service/am/applet.h b/src/core/hle/service/am/applet.h index 9650a2615..65bfbc250 100644 --- a/src/core/hle/service/am/applet.h +++ b/src/core/hle/service/am/applet.h @@ -21,41 +21,8 @@ #include "core/hle/service/am/storage.h" #include "core/hle/service/am/system_buffer_manager.h" -namespace Service::Nvnflinger { -class FbShareBufferManager; -class Nvnflinger; -} // namespace Service::Nvnflinger - namespace Service::AM { -class AppletStorageChannel { -public: - explicit AppletStorageChannel(KernelHelpers::ServiceContext& ctx); - ~AppletStorageChannel(); - - void PushData(std::shared_ptr<IStorage> storage); - Result PopData(std::shared_ptr<IStorage>* out_storage); - Kernel::KReadableEvent* GetEvent(); - -private: - std::mutex m_lock{}; - std::deque<std::shared_ptr<IStorage>> m_data{}; - Event m_event; -}; - -struct AppletStorageHolder { - explicit AppletStorageHolder(Core::System& system); - ~AppletStorageHolder(); - - KernelHelpers::ServiceContext context; - - AppletStorageChannel in_data; - AppletStorageChannel interactive_in_data; - AppletStorageChannel out_data; - AppletStorageChannel interactive_out_data; - Event state_changed_event; -}; - struct Applet { explicit Applet(Core::System& system, std::unique_ptr<Process> process_); ~Applet(); @@ -126,8 +93,7 @@ struct Applet { // Caller applet std::weak_ptr<Applet> caller_applet{}; - std::shared_ptr<AppletStorageHolder> caller_applet_storage{}; - bool is_completed{}; + std::shared_ptr<AppletDataBroker> caller_applet_broker{}; // Self state bool exit_locked{}; |