diff options
| author | a1xd <[email protected]> | 2021-04-08 02:30:01 -0400 |
|---|---|---|
| committer | a1xd <[email protected]> | 2021-04-08 02:30:01 -0400 |
| commit | c55d1bfd01147fa014ac07d4b03ef3cad8427ae6 (patch) | |
| tree | 39ffa4a79bc6b019443521f10203f787c4b98698 /driver/driver.cpp | |
| parent | unmark fill as const (diff) | |
| download | rawaccel-c55d1bfd01147fa014ac07d4b03ef3cad8427ae6.tar.xz rawaccel-c55d1bfd01147fa014ac07d4b03ef3cad8427ae6.zip | |
optimize a bit/refactor modify
Diffstat (limited to 'driver/driver.cpp')
| -rw-r--r-- | driver/driver.cpp | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/driver/driver.cpp b/driver/driver.cpp index fa2415d..feace77 100644 --- a/driver/driver.cpp +++ b/driver/driver.cpp @@ -23,6 +23,7 @@ struct { extern "C" PULONG InitSafeBootMode; +__declspec(guard(ignore)) VOID RawaccelCallback( IN PDEVICE_OBJECT DeviceObject, @@ -56,26 +57,18 @@ Arguments: auto num_packets = InputDataEnd - InputDataStart; - bool any = num_packets > 0; - bool rel_move = !(InputDataStart->Flags & MOUSE_MOVE_ABSOLUTE); - bool dev_match = global.args.device_id[0] == 0 || - global.args.ignore == - bool(wcsncmp(devExt->dev_id, global.args.device_id, ra::MAX_DEV_ID_LEN)); - - if (any && rel_move && dev_match) { - milliseconds time; - - if (global.args.time_min == global.args.time_max) { - time = global.args.time_min; - } - else { - counter_t now = KeQueryPerformanceCounter(NULL).QuadPart; - counter_t ticks = now - devExt->counter; - devExt->counter = now; - milliseconds t = ticks * global.tick_interval / num_packets; - time = ra::clampsd(t, global.args.time_min, global.args.time_max); - } - + if (num_packets > 0 && + !(InputDataStart->Flags & MOUSE_MOVE_ABSOLUTE) && + (global.args.device_id[0] == 0 || + bool(wcsncmp(devExt->dev_id, global.args.device_id, ra::MAX_DEV_ID_LEN)) == + global.args.ignore)) { + counter_t now = KeQueryPerformanceCounter(NULL).QuadPart; + counter_t ticks = now - devExt->counter; + devExt->counter = now; + milliseconds raw_elapsed = ticks * global.tick_interval; + milliseconds time = ra::clampsd(raw_elapsed / num_packets, + global.args.time_min, + global.args.time_max); auto it = InputDataStart; do { if (it->LastX || it->LastY) { |