diff options
author | Enrico Turri <enricoturri@seznam.cz> | 2019-11-25 12:34:42 +0300 |
---|---|---|
committer | Enrico Turri <enricoturri@seznam.cz> | 2019-11-25 12:34:42 +0300 |
commit | ab00f501f1363802282986ea9ab86d2e305bc24d (patch) | |
tree | afb1a151f3c51f13d36e7f647d1b0cad725d09e4 /src/slic3r/GUI/Mouse3DController.cpp | |
parent | b1047d2e265405eeee59382da2ad2edf7c329f54 (diff) |
#3230 - Detection of 3Dconnexion devices every 2 seconds
Diffstat (limited to 'src/slic3r/GUI/Mouse3DController.cpp')
-rw-r--r-- | src/slic3r/GUI/Mouse3DController.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/slic3r/GUI/Mouse3DController.cpp b/src/slic3r/GUI/Mouse3DController.cpp index 44bc0fd34..39542e652 100644 --- a/src/slic3r/GUI/Mouse3DController.cpp +++ b/src/slic3r/GUI/Mouse3DController.cpp @@ -186,6 +186,7 @@ Mouse3DController::Mouse3DController() , m_running(false) , m_settings_dialog(false) { + m_last_time = std::chrono::high_resolution_clock::now(); } void Mouse3DController::init() @@ -332,9 +333,18 @@ void Mouse3DController::render_settings_dialog(unsigned int canvas_width, unsign bool Mouse3DController::connect_device() { + static const long long DETECTION_TIME = 2; // seconds + if (is_device_connected()) return false; + // check time since last detection took place + auto now = std::chrono::high_resolution_clock::now(); + if (std::chrono::duration_cast<std::chrono::seconds>(now - m_last_time).count() < DETECTION_TIME) + return false; + + m_last_time = now; + // Enumerates devices hid_device_info* devices = hid_enumerate(0, 0); if (devices == nullptr) |