aboutsummaryrefslogtreecommitdiff
path: root/include/device.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/device.h')
-rw-r--r--include/device.h80
1 files changed, 44 insertions, 36 deletions
diff --git a/include/device.h b/include/device.h
index b2d83b5..dc7832d 100644
--- a/include/device.h
+++ b/include/device.h
@@ -8,58 +8,66 @@
// TODO !! SEMAPHORE
+namespace nitrokey {
namespace device {
-enum class CommError
-{
- ERR_NO_ERROR = 0,
- ERR_NOT_CONNECTED = -1,
- ERR_WRONG_RESPONSE_CRC = -2,
- ERR_SENDING = -3,
- ERR_STATUS_NOT_OK = -4
+
+enum class CommError {
+ ERR_NO_ERROR = 0,
+ ERR_NOT_CONNECTED = -1,
+ ERR_WRONG_RESPONSE_CRC = -2,
+ ERR_SENDING = -3,
+ ERR_STATUS_NOT_OK = -4
};
class Device {
-public:
- Device();
+ public:
+ Device();
+
+ // lack of device is not actually an error,
+ // so it doesn't throw
+ virtual bool connect();
+ virtual bool disconnect();
- // lack of device is not actually an error,
- // so it doesn't throw
- virtual bool connect();
+ /*
+ * Sends packet of HID_REPORT_SIZE.
+ */
+ virtual CommError send(const void *packet);
- /*
- * Sends packet of HID_REPORT_SIZE.
- */
- virtual CommError send(const void *packet);
+ /*
+ * Gets packet of HID_REPORT_SIZE.
+ * Can sleep. See below.
+ */
+ virtual CommError recv(void *packet);
- /*
- * Gets packet of HID_REPORT_SIZE.
- * Can sleep. See below.
- */
- virtual CommError recv(void *packet);
+ int get_retry_count() { return m_retry_count; }
+ const;
+ std::chrono::milliseconds get_retry_timeout() { return m_retry_timeout; }
+ const;
-protected:
- uint16_t m_vid;
- uint16_t m_pid;
+ protected:
+ uint16_t m_vid;
+ uint16_t m_pid;
- /*
- * While the project uses Signal11 portable HIDAPI
- * library, there's no way of doing it asynchronously,
- * hence polling.
- */
- int m_retry_count;
- std::chrono::milliseconds m_retry_timeout;
+ /*
+ * While the project uses Signal11 portable HIDAPI
+ * library, there's no way of doing it asynchronously,
+ * hence polling.
+ */
+ int m_retry_count;
+ std::chrono::milliseconds m_retry_timeout;
- hid_device *mp_devhandle;
+ hid_device *mp_devhandle;
};
class Stick10 : public Device {
-public:
- Stick10();
+ public:
+ Stick10();
};
class Stick20 : public Device {
-public:
- Stick20();
+ public:
+ Stick20();
};
}
+}
#endif