aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/applets/applet.h
diff options
context:
space:
mode:
authorGravatar Subv <subv2112@gmail.com>2015-05-26 11:00:26 -0500
committerGravatar Subv <subv2112@gmail.com>2015-07-11 21:47:23 -0500
commit621ee10eae0546d4ec3f9e911e113aa9ee609c22 (patch)
treeadfdc1cf9ae7e9ac9a5cf9950a91bbcfeb6cd552 /src/core/hle/applets/applet.h
parent2a6ebadf66051362cdcf07d722f7e2d3cee14c82 (diff)
Applets: Add infrastructure to allow custom drawing and input handling in Applets.
Diffstat (limited to 'src/core/hle/applets/applet.h')
-rw-r--r--src/core/hle/applets/applet.h43
1 files changed, 30 insertions, 13 deletions
diff --git a/src/core/hle/applets/applet.h b/src/core/hle/applets/applet.h
index 221348d9..f50f7d60 100644
--- a/src/core/hle/applets/applet.h
+++ b/src/core/hle/applets/applet.h
@@ -12,42 +12,59 @@
namespace HLE {
namespace Applets {
-class Applet {
+class Applet : public std::enable_shared_from_this<Applet> {
public:
virtual ~Applet() {};
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.
* and stores it in a global map.
- * @param id Id of the applet to create
- * @returns ResultCode Whether the operation was successful or not
+ * @param id Id of the applet to create.
+ * @returns ResultCode Whether the operation was successful or not.
*/
static ResultCode Create(Service::APT::AppletId id);
/**
- * Retrieves the Applet instance identified by the specified id
- * @param id Id of the Applet to retrieve
- * @returns Requested Applet or nullptr if not found
+ * Retrieves the Applet instance identified by the specified id.
+ * @param id Id of the Applet to retrieve.
+ * @returns Requested Applet or nullptr if not found.
*/
static std::shared_ptr<Applet> Get(Service::APT::AppletId id);
/**
- * Handles a parameter from the application
- * @param parameter Parameter data to handle
- * @returns ResultCode Whether the operation was successful or not
+ * Handles a parameter from the application.
+ * @param parameter Parameter data to handle.
+ * @returns ResultCode Whether the operation was successful or not.
*/
virtual ResultCode ReceiveParameter(Service::APT::MessageParameter const& parameter) = 0;
/**
- * Handles the Applet start event, triggered from the application
- * @param parameter Parameter data to handle
- * @returns ResultCode Whether the operation was successful or not
+ * Handles the Applet start event, triggered from the application.
+ * @param parameter Parameter data to handle.
+ * @returns ResultCode Whether the operation was successful or not.
*/
virtual ResultCode Start(Service::APT::AppletStartupParameter const& parameter) = 0;
+ /**
+ * Whether the applet is currently executing instead of the host application or not.
+ */
+ virtual bool IsRunning() = 0;
+
+ /**
+ * Handles an update tick for the Applet, lets it update the screen, send commands, etc.
+ */
+ virtual void Update() = 0;
+
Service::APT::AppletId id; ///< Id of this Applet
};
+/// Initializes the HLE applets
+void Init();
+
+/// Shuts down the HLE applets
+void Shutdown();
+
+extern std::shared_ptr<Applet> g_current_applet; ///< Applet that is currently executing
}
} // namespace