1141cc406Sopenharmony_ci/* sane - Scanner Access Now Easy. 2141cc406Sopenharmony_ci 3141cc406Sopenharmony_ci Copyright (C) 2019 Povilas Kanapickas <povilas@radix.lt> 4141cc406Sopenharmony_ci 5141cc406Sopenharmony_ci This file is part of the SANE package. 6141cc406Sopenharmony_ci 7141cc406Sopenharmony_ci This program is free software; you can redistribute it and/or 8141cc406Sopenharmony_ci modify it under the terms of the GNU General Public License as 9141cc406Sopenharmony_ci published by the Free Software Foundation; either version 2 of the 10141cc406Sopenharmony_ci License, or (at your option) any later version. 11141cc406Sopenharmony_ci 12141cc406Sopenharmony_ci This program is distributed in the hope that it will be useful, but 13141cc406Sopenharmony_ci WITHOUT ANY WARRANTY; without even the implied warranty of 14141cc406Sopenharmony_ci MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15141cc406Sopenharmony_ci General Public License for more details. 16141cc406Sopenharmony_ci 17141cc406Sopenharmony_ci You should have received a copy of the GNU General Public License 18141cc406Sopenharmony_ci along with this program. If not, see <https://www.gnu.org/licenses/>. 19141cc406Sopenharmony_ci*/ 20141cc406Sopenharmony_ci 21141cc406Sopenharmony_ci#define DEBUG_DECLARE_ONLY 22141cc406Sopenharmony_ci 23141cc406Sopenharmony_ci#include "test_settings.h" 24141cc406Sopenharmony_ci 25141cc406Sopenharmony_cinamespace genesys { 26141cc406Sopenharmony_ci 27141cc406Sopenharmony_cinamespace { 28141cc406Sopenharmony_ci 29141cc406Sopenharmony_cibool s_testing_mode = false; 30141cc406Sopenharmony_cistd::uint16_t s_vendor_id = 0; 31141cc406Sopenharmony_cistd::uint16_t s_product_id = 0; 32141cc406Sopenharmony_cistd::uint16_t s_bcd_device = 0; 33141cc406Sopenharmony_ciTestCheckpointCallback s_checkpoint_callback; 34141cc406Sopenharmony_ci 35141cc406Sopenharmony_ci} // namespace 36141cc406Sopenharmony_ci 37141cc406Sopenharmony_cibool is_testing_mode() 38141cc406Sopenharmony_ci{ 39141cc406Sopenharmony_ci return s_testing_mode; 40141cc406Sopenharmony_ci} 41141cc406Sopenharmony_ci 42141cc406Sopenharmony_civoid disable_testing_mode() 43141cc406Sopenharmony_ci{ 44141cc406Sopenharmony_ci s_testing_mode = false; 45141cc406Sopenharmony_ci s_vendor_id = 0; 46141cc406Sopenharmony_ci s_product_id = 0; 47141cc406Sopenharmony_ci s_bcd_device = 0; 48141cc406Sopenharmony_ci} 49141cc406Sopenharmony_ci 50141cc406Sopenharmony_civoid enable_testing_mode(std::uint16_t vendor_id, std::uint16_t product_id, 51141cc406Sopenharmony_ci std::uint16_t bcd_device, 52141cc406Sopenharmony_ci TestCheckpointCallback checkpoint_callback) 53141cc406Sopenharmony_ci{ 54141cc406Sopenharmony_ci s_testing_mode = true; 55141cc406Sopenharmony_ci s_vendor_id = vendor_id; 56141cc406Sopenharmony_ci s_product_id = product_id; 57141cc406Sopenharmony_ci s_bcd_device = bcd_device; 58141cc406Sopenharmony_ci s_checkpoint_callback = checkpoint_callback; 59141cc406Sopenharmony_ci} 60141cc406Sopenharmony_ci 61141cc406Sopenharmony_cistd::uint16_t get_testing_vendor_id() 62141cc406Sopenharmony_ci{ 63141cc406Sopenharmony_ci return s_vendor_id; 64141cc406Sopenharmony_ci} 65141cc406Sopenharmony_ci 66141cc406Sopenharmony_cistd::uint16_t get_testing_product_id() 67141cc406Sopenharmony_ci{ 68141cc406Sopenharmony_ci return s_product_id; 69141cc406Sopenharmony_ci} 70141cc406Sopenharmony_ci 71141cc406Sopenharmony_cistd::uint16_t get_testing_bcd_device() 72141cc406Sopenharmony_ci{ 73141cc406Sopenharmony_ci return s_bcd_device; 74141cc406Sopenharmony_ci} 75141cc406Sopenharmony_ci 76141cc406Sopenharmony_cistd::string get_testing_device_name() 77141cc406Sopenharmony_ci{ 78141cc406Sopenharmony_ci std::string name; 79141cc406Sopenharmony_ci unsigned max_size = 50; 80141cc406Sopenharmony_ci name.resize(max_size); 81141cc406Sopenharmony_ci name.resize(std::snprintf(&name.front(), max_size, "test device:0x%04x:0x%04x", 82141cc406Sopenharmony_ci s_vendor_id, s_product_id)); 83141cc406Sopenharmony_ci return name; 84141cc406Sopenharmony_ci} 85141cc406Sopenharmony_ci 86141cc406Sopenharmony_ciTestCheckpointCallback get_testing_checkpoint_callback() 87141cc406Sopenharmony_ci{ 88141cc406Sopenharmony_ci return s_checkpoint_callback; 89141cc406Sopenharmony_ci} 90141cc406Sopenharmony_ci 91141cc406Sopenharmony_ci} // namespace genesys 92