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