The LIRC remote control now connects to the socket even if it doesn't yet exist whe VDR is started

This commit is contained in:
Klaus Schmidinger 2013-10-29 16:03:43 +01:00
parent 589f5519d7
commit 26fbb921f5
3 changed files with 14 additions and 11 deletions

View File

@ -2858,6 +2858,8 @@ Lars Hanisch <dvb@flensrocker.de>
for reporting an invalid line in channels.conf.terr for reporting an invalid line in channels.conf.terr
for fixing handling '/' and '~' in recording file names in case DirectoryEncoding is for fixing handling '/' and '~' in recording file names in case DirectoryEncoding is
used used
for making the LIRC remote control connect to the socket even if it doesn't yet exist
when VDR is started
Alex Lasnier <alex@fepg.org> Alex Lasnier <alex@fepg.org>
for adding tuning support for ATSC devices for adding tuning support for ATSC devices

View File

@ -8032,7 +8032,7 @@ Video Disk Recorder Revision History
the last replayed recording (if any) by pressing Ok repeatedly in the Recordings the last replayed recording (if any) by pressing Ok repeatedly in the Recordings
menu. menu.
2013-10-21: Version 2.1.3 2013-10-29: Version 2.1.3
- Changed the return value of cPositioner::HorizonLongitude() to 0 in case the - Changed the return value of cPositioner::HorizonLongitude() to 0 in case the
latitude of the antenna location is beyond +/-81 degrees. latitude of the antenna location is beyond +/-81 degrees.
@ -8044,3 +8044,5 @@ Video Disk Recorder Revision History
user is prompted for confirmation to overwrite it (suggested by Rolf Ahrenberg). user is prompted for confirmation to overwrite it (suggested by Rolf Ahrenberg).
- Revoked "Added maximum signal strength value for TechniSat SkyStar 2 DVB-S rev 2.3P" - Revoked "Added maximum signal strength value for TechniSat SkyStar 2 DVB-S rev 2.3P"
because it broke things for the "TechniSat AirStar 2" DVB-T card. because it broke things for the "TechniSat AirStar 2" DVB-T card.
- The LIRC remote control now connects to the socket even if it doesn't yet exist when
VDR is started (thanks to Lars Hanisch).

19
lirc.c
View File

@ -6,7 +6,7 @@
* *
* LIRC support added by Carsten Koch <Carsten.Koch@icem.de> 2000-06-16. * LIRC support added by Carsten Koch <Carsten.Koch@icem.de> 2000-06-16.
* *
* $Id: lirc.c 3.1 2013/08/22 09:22:14 kls Exp $ * $Id: lirc.c 3.2 2013/10/29 12:32:12 kls Exp $
*/ */
#include "lirc.h" #include "lirc.h"
@ -21,11 +21,9 @@ cLircRemote::cLircRemote(const char *DeviceName)
{ {
addr.sun_family = AF_UNIX; addr.sun_family = AF_UNIX;
strcpy(addr.sun_path, DeviceName); strcpy(addr.sun_path, DeviceName);
if (Connect()) { if (!Connect())
Start(); f = -1;
return; Start();
}
f = -1;
} }
cLircRemote::~cLircRemote() cLircRemote::~cLircRemote()
@ -67,14 +65,15 @@ void cLircRemote::Action(void)
bool repeat = false; bool repeat = false;
int timeout = -1; int timeout = -1;
while (Running() && f >= 0) { while (Running()) {
bool ready = cFile::FileReady(f, timeout); bool ready = f >= 0 && cFile::FileReady(f, timeout);
int ret = ready ? safe_read(f, buf, sizeof(buf)) : -1; int ret = ready ? safe_read(f, buf, sizeof(buf)) : -1;
if (ready && ret <= 0 ) { if (f < 0 || ready && ret <= 0) {
esyslog("ERROR: lircd connection broken, trying to reconnect every %.1f seconds", float(RECONNECTDELAY) / 1000); esyslog("ERROR: lircd connection broken, trying to reconnect every %.1f seconds", float(RECONNECTDELAY) / 1000);
close(f); if (f >= 0)
close(f);
f = -1; f = -1;
while (Running() && f < 0) { while (Running() && f < 0) {
cCondWait::SleepMs(RECONNECTDELAY); cCondWait::SleepMs(RECONNECTDELAY);