SPC music playback tools for real snes apu

Dependencies:   mbed

gpio.h

Committer:
akkera102
Date:
2017-01-09
Revision:
0:5bd52e196edb
Child:
2:62e6e22f8be2

File content as of revision 0:5bd52e196edb:

/**
 * @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;
}