Print CIDs on device connect

This commit is contained in:
pixl 2020-07-15 00:26:12 -04:00
parent 018bdb83ad
commit 56d10898fb
No known key found for this signature in database
GPG Key ID: 1866C148CD593B6E
4 changed files with 29 additions and 2 deletions

View File

@ -92,6 +92,12 @@ void ReprogControls::initCidMap()
_cids_initialized = true;
}
const std::map<uint16_t, ReprogControls::ControlInfo>&
ReprogControls::getControls() const
{
return _cids;
}
ReprogControls::ControlInfo ReprogControls::getControlIdInfo(uint16_t cid)
{
if(!_cids_initialized)

View File

@ -97,6 +97,8 @@ namespace hidpp20
virtual void initCidMap();
const std::map<uint16_t, ControlInfo>& getControls() const;
// Onlu controlId and flags will be set
virtual ControlInfo getControlReporting(uint16_t cid);

View File

@ -311,7 +311,7 @@ std::vector<uint8_t> RawDevice::_respondToReport
int RawDevice::_sendReport(const std::vector<uint8_t>& report)
{
std::lock_guard<std::mutex> lock(_dev_io);
if(logid::global_loglevel == LogLevel::RAWREPORT) {
if(logid::global_loglevel <= LogLevel::RAWREPORT) {
printf("[RAWREPORT] %s OUT: ", _path.c_str());
for(auto &i : report)
printf("%02x ", i);
@ -389,7 +389,7 @@ int RawDevice::_readReport(std::vector<uint8_t> &report,
if(0 == ret)
throw backend::TimeoutError();
if(logid::global_loglevel == LogLevel::RAWREPORT) {
if(logid::global_loglevel <= LogLevel::RAWREPORT) {
printf("[RAWREPORT] %s IN: ", _path.c_str());
for(auto &i : report)
printf("%02x ", i);

View File

@ -33,6 +33,25 @@ RemapButton::RemapButton(Device *dev): DeviceFeature(dev), _config (dev),
_reprog_controls (hidpp20::ReprogControls::autoVersion(&dev->hidpp20()))
{
_reprog_controls->initCidMap();
if(global_loglevel <= DEBUG) {
#define FLAG(x) control.second.flags & hidpp20::ReprogControls::x ? \
"YES" : ""
#define ADDITIONAL_FLAG(x) control.second.additionalFlags & \
hidpp20::ReprogControls::x ? "YES" : ""
// Print CIDs, originally by zv0n
logPrintf(DEBUG, "%s:%d remappable buttons:",
dev->hidpp20().devicePath().c_str(),
dev->hidpp20().deviceIndex());
logPrintf(DEBUG, "CID | reprog? | fn key? | mouse key? | "
"gesture support?");
for(const auto & control : _reprog_controls->getControls())
logPrintf(DEBUG, "0x%02x | %-7s | %-7s | %-10s | %s",
control.first, FLAG(TemporaryDivertable), FLAG(FKey),
FLAG(MouseButton), ADDITIONAL_FLAG(RawXY));
#undef FLAG
}
}
RemapButton::~RemapButton()