Launcher, based on PickleLauncher
[mupen64plus-pandora.git] / source / mupen64launcher / src / csystem.h
diff --git a/source/mupen64launcher/src/csystem.h b/source/mupen64launcher/src/csystem.h
new file mode 100644 (file)
index 0000000..f33dd93
--- /dev/null
@@ -0,0 +1,81 @@
+/**
+ *  @section LICENSE
+ *
+ *  PickleLauncher
+ *  Copyright (C) 2010-2011 Scott Smith
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ *  @section LOCATION
+ */
+
+#ifndef CSYSTEM_H
+#define CSYSTEM_H
+
+#include "cbase.h"
+
+using namespace std;
+
+#if defined(PANDORA)
+#define CPU_CLOCK_DEF       600
+#define CPU_CLOCK_MAX      1200
+
+#elif defined(WIZ) || defined(CAANOO)
+#define CPU_CLOCK_DEF       300
+#define CPU_CLOCK_MAX       600
+#define MMAP_ADDRESS        0x10000
+#define SYS_CLK_FREQ        27
+#define PLLSETREG0          (memregl[0xF004>>2])
+#define PWRMODE             (memregl[0xF07C>>2])
+
+#elif defined(GP2X)
+#define CPU_CLOCK_DEF       150
+#define CPU_CLOCK_MAX       300
+#define MMAP_ADDRESS        0x20000
+#define SYS_CLK_FREQ        7372800
+
+#elif defined(GP2X)
+#define CPU_CLOCK_DEF       1000
+#define CPU_CLOCK_MAX       2000
+
+#else
+#define CPU_CLOCK_DEF       1
+#define CPU_CLOCK_MAX       1
+#endif
+
+/** @brief This class controls resources, logic for gui, interaction with the user.
+ */
+class CSystem : public CBase
+{
+    public:
+        /** Constructor. */
+        CSystem();
+        /** Destructor. */
+        virtual ~CSystem();
+
+        /** @brief Set the CPU clock of the system.
+         * @param clock : number of arguments.
+         * @return 0 if passed 1 if failed.
+         */
+        void SetCPUClock( uint16_t& mhz );
+
+    private:
+
+#if defined(GP2X) || defined(WIZ) || defined(CAANOO)
+        uint32_t memdev;
+        volatile uint32_t *memregs;
+#endif
+};
+
+#endif // CSYSTEM_H