AM Daemon ライブラリリファレンス
公開メンバ関数 | 静的公開変数類 | 全メンバ一覧
amdaemon::JvsSwitchInput クラス

JVSスイッチ入力情報を提供するクラス。 [詳解]

#include <JvsSwitchInput.h>

公開メンバ関数

 JvsSwitchInput (InnerIndexHolder)
 コンストラクタ。 [詳解]
 
std::uint16_t getSystemBits () const
 システムスイッチの入力状態ビット列を取得する。 [詳解]
 
bool isSystemOn (std::size_t bitIndex) const
 システムスイッチの入力状態を取得する。 [詳解]
 
std::size_t getPlayerCount () const
 プレイヤー数を取得する。 [詳解]
 
std::uint64_t getPlayerBits (std::size_t playerIndex) const
 プレイヤー単位スイッチの入力状態ビット列を取得する。 [詳解]
 
bool isPlayerOn (std::size_t playerIndex, std::size_t bitIndex) const
 プレイヤー単位スイッチの入力状態を取得する。 [詳解]
 
std::vector< std::uint64_t > getPlayersBits () const
 プレイヤー単位スイッチの入力状態ビット列配列を取得する。 [詳解]
 

静的公開変数類

static const std::size_t MaxSystemBitCount
 システムスイッチ入力の最大数。 [詳解]
 
static const std::size_t MaxPlayerBitCount
 プレイヤー単位スイッチ入力の最大数。 [詳解]
 

詳解

JVSスイッチ入力情報を提供するクラス。

参照
Jvs, JvsNode

このクラスのインスタンスをアプリ側で直接生成することはできない。 JvsNode クラスのメンバ関数 JvsNode::getSwitchInput から取得すること。

構築子と解体子

amdaemon::JvsSwitchInput::JvsSwitchInput ( InnerIndexHolder  )
explicit

コンストラクタ。

覚え書き
アプリ側からは利用できない。

関数詳解

std::uint16_t amdaemon::JvsSwitchInput::getSystemBits ( ) const

システムスイッチの入力状態ビット列を取得する。

戻り値
システムスイッチの入力状態ビット列。

スイッチ入力がON状態の場合、対応するビットは 1 になる。 それ以外の場合、対応するビットは 0 となる。 各ビットがどのボタンに対応しているかはデバイス依存である。

iostream との親和性のために戻り値の型を std::uint16_t としているが、 実際に値が入るのは最大でも下位 MaxSystemBitCount ビットまでとなる。

ビット演算を行いたくない場合、メンバ関数 isSystemOn で各ビットの 状態を個別に取得するか、 std::bitset クラスで戻り値をラップするとよい。

// メンバ関数 getSystemBits の戻り値を bitset に変換
// std::bitset<sizeof(std::uint16_t) * 8> 型の値が返る
auto bits =
bool amdaemon::JvsSwitchInput::isSystemOn ( std::size_t  bitIndex) const

システムスイッチの入力状態を取得する。

引数
[in]bitIndexビットインデックス。
戻り値
trueスイッチ入力がON状態である場合。
falseスイッチ入力がOFF状態である場合。
例外
Exception引数 bitIndex に MaxSystemBitCount 以上の値を指定した場合。
std::size_t amdaemon::JvsSwitchInput::getPlayerCount ( ) const

プレイヤー数を取得する。

戻り値
プレイヤー数。

このプレイヤー数はJVS規格のスイッチ入力におけるプレイヤー数であり、 Core::getPlayerCount で取得できるプレイヤー数とは異なる。

std::uint64_t amdaemon::JvsSwitchInput::getPlayerBits ( std::size_t  playerIndex) const

プレイヤー単位スイッチの入力状態ビット列を取得する。

引数
[in]playerIndexプレイヤーインデックス。
戻り値
プレイヤー単位スイッチの入力状態ビット列。
例外
Exception引数 playerIndex にプレイヤー数以上の値を指定した場合。 プレイヤー数はメンバ関数 getPlayerCount で取得できる。

スイッチ入力がON状態の場合、対応するビットは 1 になる。 それ以外の場合、対応するビットは 0 となる。 各ビットがどのボタンに対応しているかはデバイス依存である。

ビット演算を行いたくない場合、メンバ関数 isPlayerOn で各ビットの 状態を個別に取得するか、 std::bitset クラスで戻り値をラップするとよい。

// メンバ関数 getPlayerBits の戻り値を bitset に変換
// std::bitset<sizeof(std::uint64_t) * 8> 型の値が返る
auto bits =
bool amdaemon::JvsSwitchInput::isPlayerOn ( std::size_t  playerIndex,
std::size_t  bitIndex 
) const

プレイヤー単位スイッチの入力状態を取得する。

引数
[in]playerIndexプレイヤーインデックス。
[in]bitIndexビットインデックス。
戻り値
trueスイッチ入力がON状態である場合。
falseスイッチ入力がOFF状態である場合。
例外
Exception
  • 引数 playerIndex にプレイヤー数以上の値を指定した。 プレイヤー数はメンバ関数 getPlayerCount で取得できる。
  • 引数 bitIndex に MaxPlayerBitCount 以上の値を指定した。
std::vector<std::uint64_t> amdaemon::JvsSwitchInput::getPlayersBits ( ) const
inline

プレイヤー単位スイッチの入力状態ビット列配列を取得する。

戻り値
プレイヤー単位スイッチの入力状態ビット列配列。

範囲for文や各種アルゴリズム関数に渡すことを想定している。

  • プレイヤー数を知りたいだけならばメンバ関数 getPlayerCount を用いること。
  • 特定プレイヤーのスイッチ入力状態ビット列を取得したいだけならばメンバ関数 getPlayerBits を用いること。

メンバ詳解

const std::size_t amdaemon::JvsSwitchInput::MaxSystemBitCount
static

システムスイッチ入力の最大数。

const std::size_t amdaemon::JvsSwitchInput::MaxPlayerBitCount
static

プレイヤー単位スイッチ入力の最大数。


このクラス詳解は次のファイルから抽出されました: