rcinput/neutrino: avoid the use of EVT_TIMESET

sectionsd's EVT_TIMESET was only used to fix time calculations
for input repeat detection. I doubt this reliably worked anyway.
Just calculate an absolute input timestamp from CLOCK_MONOTONIC
and use that. Even better solution would be to use a newer
kernel with EVIOCSCLOCKID ioctl, leave that for later :-)
This commit is contained in:
Stefan Seyfried
2016-01-10 16:14:10 +01:00
committed by svenhoefer
parent 98afb08c5d
commit d2408d1ade

View File

@@ -5,7 +5,7 @@
and some other guys and some other guys
Homepage: http://dbox.cyberphoria.org/ Homepage: http://dbox.cyberphoria.org/
Copyright (C) 2006-2014 Stefan Seyfried Copyright (C) 2006-2016 Stefan Seyfried
Copyright (C) 2011 CoolStream International Ltd Copyright (C) 2011 CoolStream International Ltd
@@ -1981,7 +1981,11 @@ void CNeutrinoApp::InitZapitClient()
void CNeutrinoApp::InitSectiondClient() void CNeutrinoApp::InitSectiondClient()
{ {
g_Sectionsd = new CSectionsdClient; g_Sectionsd = new CSectionsdClient;
g_Sectionsd->registerEvent(CSectionsdClient::EVT_TIMESET, 222, NEUTRINO_UDS_NAME); struct timespec t;
if (clock_gettime(CLOCK_MONOTONIC, &t)) {
dprintf(DEBUG_NORMAL, "CLOCK_MONOTONIC not supported? (%m), falling back to EVT_TIMESET\n");
g_Sectionsd->registerEvent(CSectionsdClient::EVT_TIMESET, 222, NEUTRINO_UDS_NAME);
}
g_Sectionsd->registerEvent(CSectionsdClient::EVT_GOT_CN_EPG, 222, NEUTRINO_UDS_NAME); g_Sectionsd->registerEvent(CSectionsdClient::EVT_GOT_CN_EPG, 222, NEUTRINO_UDS_NAME);
g_Sectionsd->registerEvent(CSectionsdClient::EVT_EIT_COMPLETE, 222, NEUTRINO_UDS_NAME); g_Sectionsd->registerEvent(CSectionsdClient::EVT_EIT_COMPLETE, 222, NEUTRINO_UDS_NAME);
g_Sectionsd->registerEvent(CSectionsdClient::EVT_WRITE_SI_FINISHED, 222, NEUTRINO_UDS_NAME); g_Sectionsd->registerEvent(CSectionsdClient::EVT_WRITE_SI_FINISHED, 222, NEUTRINO_UDS_NAME);