AM Daemon ライブラリリファレンス
UsbDevice.h
[詳解]
1 /// @file
2 /// @brief USBデバイス関連処理を提供するMonostateクラス UsbDevice のヘッダ。
3 ///
4 /// Copyright(C)SEGA
5 
6 #ifndef AMDAEMON_USBDEVICE_H
7 #define AMDAEMON_USBDEVICE_H
8 
9 #include "amdaemon/env.h"
11 
12 #include <cstdint>
13 
14 namespace amdaemon
15 {
16 /// @addtogroup g_usbdevice
17 /// @{
18 
19  /// @brief USBデバイス関連処理を提供するMonostateクラス。
20  ///
21  /// Core クラスのメンバ関数 Core#execute 呼び出しによって内容が更新される。
22  ///
23  /// このクラスはUSBデバイス全般に対する処理を行う。
24  /// セガ標準 USB I/O ボードへの入出力処理については、このクラスではなく
25  /// UsbIO クラスやその関連クラスを用いること。
26  ///
27  /// @ingroup g_common
28  class UsbDevice
29  {
30  public:
31  // 下記は暗黙の定義を用いる。
32  //UsbDevice() = default;
33  //‾UsbDevice() = default;
34  //UsbDevice(const UsbDevice&) = default;
35  //UsbDevice& operator=(const UsbDevice&) = default;
36 
37  /// @brief USBデバイスの再検出処理を開始する。
38  /// @param[in] vendorId 対象デバイスのベンダーID。
39  /// @param[in] productId 対象デバイスのプロダクトID。
40  /// @retval true 処理の開始に成功した場合。
41  /// @retval false 処理の開始に失敗したか、既に処理中である場合。
42  /// @see #isReconnectBusy, #getLastReconnectResult
43  ///
44  /// この関数は再検出処理の開始のみを行う。
45  /// この関数の呼び出し後にメンバ関数 #isReconnectBusy を用いて
46  /// 再検出処理中であるか否かを定期的に確認し、処理完了後にメンバ関数
47  /// #getLastReconnectResult を用いて処理結果を確認すること。
48  ///
49  /// 再検出処理には最長で 50 秒程度掛かる場合がある。
50  ///
51  /// メンバ関数 #isReconnectBusy が true を返す状態でこの関数を呼び出すと、
52  /// 何も行わずに false を返す。
53  ///
54  /// Daemonプロセスが処理完了するまで呼び出し元スレッドをブロックする。
55  bool startReconnect(std::uint16_t vendorId, std::uint16_t productId);
56 
57  /// @brief USBデバイスの再検出処理中であるか否かを取得する。
58  /// @retval true 再検出処理中である場合。
59  /// @retval false 再検出処理中ではない場合。
60  /// @see #startReconnect, #getLastReconnectResult
61  ///
62  /// メンバ関数 #startReconnect の呼び出しに成功すると true を返すようになる。
63  ///
64  /// 再検出処理が完了すると false を返すようになり、同時にメンバ関数
65  /// #getLastReconnectResult で処理結果を取得できるようになる。
66  bool isReconnectBusy() const;
67 
68  /// @brief 直近のUSBデバイス再検出処理結果を取得する。
69  /// @return
70  /// 直近のUSBデバイス再検出処理結果。
71  /// まだ一度も処理完了していない場合は UsbDeviceReconnectResult::None 。
72  /// @see #startReconnect, #isReconnectBusy
73  ///
74  /// メンバ関数 #isReconnectBusy の戻り値が
75  /// true から false に変化したタイミングで、この関数の戻り値も更新される。
77  };
78 
79 /// @}
80 } // namespace amdaemon
81 
82 #endif // AMDAEMON_USBDEVICE_H
Daemonライブラリの環境定義を行うヘッダ。
USBデバイス関連処理を提供するMonostateクラス。
Definition: UsbDevice.h:28
UsbDeviceReconnectResult
USBデバイス再検出処理結果を表す列挙。
Definition: UsbDeviceReconnectResult.h:17
AM Daemon ライブラリクラス群の基底名前空間。
Definition: Log.h:13
bool isReconnectBusy() const
USBデバイスの再検出処理中であるか否かを取得する。
bool startReconnect(std::uint16_t vendorId, std::uint16_t productId)
USBデバイスの再検出処理を開始する。
UsbDeviceReconnectResult getLastReconnectResult() const
直近のUSBデバイス再検出処理結果を取得する。
USBデバイス再検出処理結果を表す列挙 UsbDeviceReconnectResult のヘッダ。