SPC music playback tools for real snes apu

Dependencies:   mbed

Revision:
0:5bd52e196edb
Child:
2:62e6e22f8be2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gpio.h	Mon Jan 09 13:54:39 2017 +0000
@@ -0,0 +1,50 @@
+/**
+ * @file    gpio.h
+ * @brief   GPIO クラスの宣言およびインターフェイスの定義をします
+ */
+
+#pragma once
+
+/**
+ * @brief GPIO クラス
+ */
+class CGpio
+{
+public:
+    static CGpio* GetInstance();
+
+    static void Initialize();
+    static void PinDir(int pin, bool write);
+    static void SetPin(int pin, bool high);
+    static bool GetPin(int pin);
+
+    void WriteByte(unsigned char c);
+    unsigned char ReadByte();
+
+private:
+    /**
+     * モード
+     */
+    enum ByteDir
+    {
+        kUninitialize   = -1,   /*!< 未初期化 */
+        kRead           = 0,    /*!< リード */
+        kWrite          = 1     /*!< ライト */
+    };
+
+    static CGpio sm_instance;   /*!< 唯一のインスタンスです */
+    ByteDir m_dir;              /*!< バイト方向 */
+
+    CGpio();
+    void ByteMode(ByteDir dir);
+    static unsigned char SwapBits(unsigned char c);
+};
+
+/**
+ * インスタンスの取得
+ * @return インスタンス
+ */
+inline CGpio* CGpio::GetInstance()
+{
+    return &sm_instance;
+}