akkera 102
/
apuplay
SPC music playback tools for real snes apu
Diff: gpio.h
- 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; +}