Merge pull request #2281 from lioncash/applet
applet: minor interface changes
This commit is contained in:
		| @@ -101,6 +101,10 @@ ResultCode Applet::Start(const Service::APT::AppletStartupParameter& parameter) | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| bool Applet::IsRunning() const { | ||||
|     return is_running; | ||||
| } | ||||
|  | ||||
| bool IsLibraryAppletRunning() { | ||||
|     // Check the applets map for instances of any applet | ||||
|     for (auto itr = applets.begin(); itr != applets.end(); ++itr) | ||||
|   | ||||
| @@ -13,8 +13,7 @@ namespace Applets { | ||||
|  | ||||
| class Applet { | ||||
| public: | ||||
|     virtual ~Applet() {} | ||||
|     Applet(Service::APT::AppletId id) : id(id) {} | ||||
|     virtual ~Applet() = default; | ||||
|  | ||||
|     /** | ||||
|      * Creates an instance of the Applet subclass identified by the parameter. | ||||
| @@ -48,7 +47,7 @@ public: | ||||
|     /** | ||||
|      * Whether the applet is currently executing instead of the host application or not. | ||||
|      */ | ||||
|     virtual bool IsRunning() const = 0; | ||||
|     bool IsRunning() const; | ||||
|  | ||||
|     /** | ||||
|      * Handles an update tick for the Applet, lets it update the screen, send commands, etc. | ||||
| @@ -56,6 +55,8 @@ public: | ||||
|     virtual void Update() = 0; | ||||
|  | ||||
| protected: | ||||
|     explicit Applet(Service::APT::AppletId id) : id(id) {} | ||||
|  | ||||
|     /** | ||||
|      * Handles the Applet start event, triggered from the application. | ||||
|      * @param parameter Parameter data to handle. | ||||
| @@ -65,6 +66,9 @@ protected: | ||||
|  | ||||
|     Service::APT::AppletId id;                    ///< Id of this Applet | ||||
|     std::shared_ptr<std::vector<u8>> heap_memory; ///< Heap memory for this Applet | ||||
|  | ||||
|     /// Whether this applet is currently running instead of the host application or not. | ||||
|     bool is_running = false; | ||||
| }; | ||||
|  | ||||
| /// Returns whether a library applet is currently running | ||||
|   | ||||
| @@ -47,7 +47,7 @@ ResultCode ErrEula::ReceiveParameter(const Service::APT::MessageParameter& param | ||||
| } | ||||
|  | ||||
| ResultCode ErrEula::StartImpl(const Service::APT::AppletStartupParameter& parameter) { | ||||
|     started = true; | ||||
|     is_running = true; | ||||
|  | ||||
|     // TODO(Subv): Set the expected fields in the response buffer before resending it to the | ||||
|     // application. | ||||
| @@ -62,7 +62,7 @@ ResultCode ErrEula::StartImpl(const Service::APT::AppletStartupParameter& parame | ||||
|     message.sender_id = static_cast<u32>(id); | ||||
|     Service::APT::SendParameter(message); | ||||
|  | ||||
|     started = false; | ||||
|     is_running = false; | ||||
|     return RESULT_SUCCESS; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -17,18 +17,12 @@ public: | ||||
|     ResultCode ReceiveParameter(const Service::APT::MessageParameter& parameter) override; | ||||
|     ResultCode StartImpl(const Service::APT::AppletStartupParameter& parameter) override; | ||||
|     void Update() override; | ||||
|     bool IsRunning() const override { | ||||
|         return started; | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     /// This SharedMemory will be created when we receive the LibAppJustStarted message. | ||||
|     /// It holds the framebuffer info retrieved by the application with | ||||
|     /// GSPGPU::ImportDisplayCaptureInfo | ||||
|     Kernel::SharedPtr<Kernel::SharedMemory> framebuffer_memory; | ||||
|  | ||||
| private: | ||||
|     /// Whether this applet is currently running instead of the host application or not. | ||||
|     bool started = false; | ||||
| }; | ||||
|  | ||||
| } // namespace Applets | ||||
|   | ||||
| @@ -55,7 +55,7 @@ ResultCode MiiSelector::ReceiveParameter(const Service::APT::MessageParameter& p | ||||
| } | ||||
|  | ||||
| ResultCode MiiSelector::StartImpl(const Service::APT::AppletStartupParameter& parameter) { | ||||
|     started = true; | ||||
|     is_running = true; | ||||
|  | ||||
|     // TODO(Subv): Set the expected fields in the response buffer before resending it to the | ||||
|     // application. | ||||
| @@ -78,7 +78,7 @@ ResultCode MiiSelector::StartImpl(const Service::APT::AppletStartupParameter& pa | ||||
|     message.sender_id = static_cast<u32>(id); | ||||
|     Service::APT::SendParameter(message); | ||||
|  | ||||
|     started = false; | ||||
|     is_running = false; | ||||
|     return RESULT_SUCCESS; | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -65,23 +65,18 @@ ASSERT_REG_POSITION(unk_6C, 0x6C); | ||||
|  | ||||
| class MiiSelector final : public Applet { | ||||
| public: | ||||
|     MiiSelector(Service::APT::AppletId id) : Applet(id), started(false) {} | ||||
|     MiiSelector(Service::APT::AppletId id) : Applet(id) {} | ||||
|  | ||||
|     ResultCode ReceiveParameter(const Service::APT::MessageParameter& parameter) override; | ||||
|     ResultCode StartImpl(const Service::APT::AppletStartupParameter& parameter) override; | ||||
|     void Update() override; | ||||
|     bool IsRunning() const override { | ||||
|         return started; | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     /// This SharedMemory will be created when we receive the LibAppJustStarted message. | ||||
|     /// It holds the framebuffer info retrieved by the application with | ||||
|     /// GSPGPU::ImportDisplayCaptureInfo | ||||
|     Kernel::SharedPtr<Kernel::SharedMemory> framebuffer_memory; | ||||
|  | ||||
|     /// Whether this applet is currently running instead of the host application or not. | ||||
|     bool started; | ||||
|  | ||||
|     MiiConfig config; | ||||
| }; | ||||
| } | ||||
|   | ||||
| @@ -70,7 +70,7 @@ ResultCode SoftwareKeyboard::StartImpl(Service::APT::AppletStartupParameter cons | ||||
|  | ||||
|     DrawScreenKeyboard(); | ||||
|  | ||||
|     started = true; | ||||
|     is_running = true; | ||||
|     return RESULT_SUCCESS; | ||||
| } | ||||
|  | ||||
| @@ -113,7 +113,7 @@ void SoftwareKeyboard::Finalize() { | ||||
|     message.sender_id = static_cast<u32>(id); | ||||
|     Service::APT::SendParameter(message); | ||||
|  | ||||
|     started = false; | ||||
|     is_running = false; | ||||
| } | ||||
| } | ||||
| } // namespace | ||||
|   | ||||
| @@ -52,14 +52,11 @@ static_assert(sizeof(SoftwareKeyboardConfig) == 0x400, "Software Keyboard Config | ||||
|  | ||||
| class SoftwareKeyboard final : public Applet { | ||||
| public: | ||||
|     SoftwareKeyboard(Service::APT::AppletId id) : Applet(id), started(false) {} | ||||
|     SoftwareKeyboard(Service::APT::AppletId id) : Applet(id) {} | ||||
|  | ||||
|     ResultCode ReceiveParameter(const Service::APT::MessageParameter& parameter) override; | ||||
|     ResultCode StartImpl(const Service::APT::AppletStartupParameter& parameter) override; | ||||
|     void Update() override; | ||||
|     bool IsRunning() const override { | ||||
|         return started; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Draws a keyboard to the current bottom screen framebuffer. | ||||
| @@ -72,6 +69,7 @@ public: | ||||
|      */ | ||||
|     void Finalize(); | ||||
|  | ||||
| private: | ||||
|     /// This SharedMemory will be created when we receive the LibAppJustStarted message. | ||||
|     /// It holds the framebuffer info retrieved by the application with | ||||
|     /// GSPGPU::ImportDisplayCaptureInfo | ||||
| @@ -82,9 +80,6 @@ public: | ||||
|  | ||||
|     /// Configuration of this instance of the SoftwareKeyboard, as received from the application | ||||
|     SoftwareKeyboardConfig config; | ||||
|  | ||||
|     /// Whether this applet is currently running instead of the host application or not. | ||||
|     bool started; | ||||
| }; | ||||
| } | ||||
| } // namespace | ||||
|   | ||||
		Reference in New Issue
	
	Block a user