mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-28 07:51:11 +02:00
rcinput: apply ev.time adjustment to all events
This fixes detection of keys that are allowed to be long-pressed if
"long keypress" feature is enabled.
No idea why this was applied only to key press events before :-)
Origin commit data
------------------
Branch: ni/coolstream
Commit: df4987ad84
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2017-02-25 (Sat, 25 Feb 2017)
------------------
This commit was generated by Migit
This commit is contained in:
@@ -1322,21 +1322,19 @@ void CRCInput::getMsg_us(neutrino_msg_t * msg, neutrino_msg_data_t * data, uint6
|
||||
}
|
||||
if (ev.type == EV_SYN)
|
||||
continue; /* ignore... */
|
||||
if (ev.value) {
|
||||
/* try to compensate for possible changes in wall clock
|
||||
* kernel ev.time default uses CLOCK_REALTIME, as does gettimeofday().
|
||||
* so subtract gettimeofday() from ev.time and then add
|
||||
* CLOCK_MONOTONIC, which is supposed to not change with settimeofday.
|
||||
* Everything would be much easier if we could use the post-kernel 3.4
|
||||
* EVIOCSCLOCKID ioctl :-) */
|
||||
struct timespec t1;
|
||||
now_pressed = ev.time.tv_usec + ev.time.tv_sec * 1000000ULL;
|
||||
if (!clock_gettime(CLOCK_MONOTONIC, &t1)) {
|
||||
struct timeval t2;
|
||||
gettimeofday(&t2, NULL);
|
||||
now_pressed += t1.tv_sec * 1000000ULL + t1.tv_nsec / 1000;
|
||||
now_pressed -= (t2.tv_usec + t2.tv_sec * 1000000ULL);
|
||||
}
|
||||
/* try to compensate for possible changes in wall clock
|
||||
* kernel ev.time default uses CLOCK_REALTIME, as does gettimeofday().
|
||||
* so subtract gettimeofday() from ev.time and then add
|
||||
* CLOCK_MONOTONIC, which is supposed to not change with settimeofday.
|
||||
* Everything would be much easier if we could use the post-kernel 3.4
|
||||
* EVIOCSCLOCKID ioctl :-) */
|
||||
struct timespec t1;
|
||||
now_pressed = ev.time.tv_usec + ev.time.tv_sec * 1000000ULL;
|
||||
if (!clock_gettime(CLOCK_MONOTONIC, &t1)) {
|
||||
struct timeval t2;
|
||||
gettimeofday(&t2, NULL);
|
||||
now_pressed += t1.tv_sec * 1000000ULL + t1.tv_nsec / 1000;
|
||||
now_pressed -= (t2.tv_usec + t2.tv_sec * 1000000ULL);
|
||||
}
|
||||
SHTDCNT::getInstance()->resetSleepTimer();
|
||||
if (ev.value && firstKey) {
|
||||
|
Reference in New Issue
Block a user