AM Daemon ライブラリリファレンス
UsbIORotaryInput.h
[詳解]
1 /// @file
2 /// @brief USB I/O のロータリ入力情報を提供するクラス UsbIORotaryInput のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_USBIOROTARYINPUT_H
7 #define AMDAEMON_USBIOROTARYINPUT_H
8 
9 #include "amdaemon/env.h"
11 
12 #include <vector>
13 #include <cstdint>
14 #include <cstddef>
15 
16 namespace amdaemon
17 {
18 /// @addtogroup g_usbio
19 /// @{
20 
21  // 内部クラスの前方宣言
22  class InnerIndexHolder;
23 
24  /// @brief USB I/O のロータリ入力情報を提供するクラス。
25  /// @see UsbIO, UsbIONode
26  ///
27  /// このクラスのインスタンスをアプリ側で直接生成することはできない。
28  /// UsbIONode クラスのメンバ関数 UsbIONode#getAnalogInput から取得すること。
30  {
31  public:
32  /// @brief コンストラクタ。
33  /// @note アプリ側からは利用できない。
34  explicit UsbIORotaryInput(InnerIndexHolder);
35 
36  // 下記は暗黙の定義を用いる。
37  //‾UsbIORotaryInput() = default;
38 
39  /// @brief チャンネル数を取得する。
40  /// @return チャンネル数。
41  std::size_t getChannelCount() const;
42 
43  /// @brief 指定チャンネルのロータリ入力値を取得する。
44  /// @param[in] channelIndex チャンネルインデックス。
45  /// @return ロータリ入力値。
46  ///
47  /// @exception Exception
48  /// 引数 channelIndex にチャンネル数以上の値を指定した場合。
49  /// チャンネル数はメンバ関数 #getChannelCount で取得できる。
50  ///
51  /// この値そのものにはあまり意味が無く、前フレームとの差分値が重要となる。
52  std::uint16_t getValue(std::size_t channelIndex) const;
53 
54  /// @brief ロータリ入力値配列を取得する。
55  /// @return ロータリ入力値配列。
56  ///
57  /// 範囲for文や各種アルゴリズム関数に渡すことを想定している。
58  ///
59  /// - チャンネル数を知りたいだけならばメンバ関数 #getChannelCount を用いること。
60  /// - 特定チャンネルのロータリ入力値を取得したいだけならばメンバ関数
61  /// #getValue を用いること。
62  std::vector<std::uint16_t> getValues() const
63  {
64  return
65  ::amdaemon::util::toContainer<decltype(getValues())>(
67  [this](std::size_t i) { return getValue(i); });
68  }
69 
70  private:
71  std::size_t _nodeIndex; ///< ノードインデックス。
72 
73  private:
74  // コピー禁止
75  UsbIORotaryInput(const UsbIORotaryInput&); // 宣言のみ
76  UsbIORotaryInput& operator=(const UsbIORotaryInput&); // 宣言のみ
77  };
78 
79 /// @}
80 } // namespace amdaemon
81 
82 #endif // AMDAEMON_USBIOROTARYINPUT_H
USB I/O のロータリ入力情報を提供するクラス。
Definition: UsbIORotaryInput.h:29
Daemonライブラリの環境定義を行うヘッダ。
std::uint16_t getValue(std::size_t channelIndex) const
指定チャンネルのロータリ入力値を取得する。
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
コンテナクラス関連の便利処理を提供するヘッダ。
std::vector< std::uint16_t > getValues() const
ロータリ入力値配列を取得する。
Definition: UsbIORotaryInput.h:62
UsbIORotaryInput(InnerIndexHolder)
コンストラクタ。
std::size_t getChannelCount() const
チャンネル数を取得する。