From 0aaeaebe2dd78a3d0294e081745597d489c9d363 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com>
Date: Sat, 8 Oct 2022 19:45:21 +0100
Subject: [PATCH] feat: new interface for emulator

---
 examples/web/index.ts      | 24 ++++++++++++------------
 examples/web/react/app.tsx | 15 +++++++++------
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/examples/web/index.ts b/examples/web/index.ts
index 6839cae2..ab76459c 100644
--- a/examples/web/index.ts
+++ b/examples/web/index.ts
@@ -946,6 +946,18 @@ class GameboyEmulator implements Emulator {
         //Component.get<KeyValue>("diag:framerate").value = `${value} FPS`;
     }
 
+    getName() {
+        return "Boytacean";
+    }
+
+    getVersion() {
+        return info.version;
+    }
+
+    getVersionUrl() {
+        return "https://gitlab.stage.hive.pt/joamag/boytacean/-/blob/master/CHANGELOG.md"";
+    }
+
     toggleRunning() {
         if (this.paused) {
             this.resume();
@@ -983,18 +995,6 @@ class GameboyEmulator implements Emulator {
         this.start({ engine: null });
     }
 
-    name() {
-        return "Boytacean";
-    }
-
-    version() {
-        return info.version;
-    }
-
-    versionUrl() {
-        return "https://gitlab.stage.hive.pt/joamag/boytacean/-/blob/master/CHANGELOG.md"";
-    }
-
     toggleWindow() {
         this.maximize();
     }
diff --git a/examples/web/react/app.tsx b/examples/web/react/app.tsx
index 5cf547a1..0245b67b 100644
--- a/examples/web/react/app.tsx
+++ b/examples/web/react/app.tsx
@@ -19,10 +19,13 @@ import {
 import "./app.css";
 
 export interface Emulator {
+    getName(): string;
+    getVersion(): string;
+    getVersionUrl(): string;
+    toggleRunning(): void;
+    pause(): void;
+    resume(): void;
     reset(): void;
-    name(): string;
-    version(): string;
-    versionUrl(): string;
 }
 
 type AppProps = {
@@ -55,9 +58,9 @@ export const App: FC<AppProps> = ({ emulator, backgrounds = ["264653"] }) => {
             </Footer>
             <PanelSplit left={<div>This is the left panel</div>}>
                 <Title
-                    text={emulator.name()}
-                    version={emulator.version()}
-                    versionUrl={emulator.versionUrl()}
+                    text={emulator.getName()}
+                    version={emulator.getVersion()}
+                    versionUrl={emulator.getVersionUrl()}
                     iconSrc={require("../res/thunder.png")}
                 ></Title>
                 <Section>
-- 
GitLab