summaryrefslogtreecommitdiff
path: root/src/in_lirc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/in_lirc.c')
-rw-r--r--src/in_lirc.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/in_lirc.c b/src/in_lirc.c
index 287d4d2..bc46c53 100644
--- a/src/in_lirc.c
+++ b/src/in_lirc.c
@@ -23,7 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "in_public.h"
#include "cl_public.h"
#include "sys_public.h"
-#include "io_sleep.h"
#include "in_lirc.h"
#include <sys/types.h>
@@ -88,7 +87,7 @@ void Lirc_Shutdown(void)
return;
}
lirc_freeconfig(lirc.config);
- IO_Remove(lirc.fd);
+ NET_RemoveFd(lirc.fd);
lirc_deinit();
memset(&lirc, 0, sizeof(lirc));
}
@@ -101,6 +100,8 @@ static void lirc_param_changed(cvar_t *self)
qboolean Lirc_Init(void)
{
+ int ret;
+
lirc_enable = Cvar_Get("lirc_enable", "0", 0);
lirc_enable->changed = lirc_param_changed;
lirc_config = Cvar_Get("lirc_config", "", CVAR_NOSET);
@@ -125,8 +126,12 @@ qboolean Lirc_Init(void)
return qfalse;
}
- fcntl(lirc.fd, F_SETFL, fcntl(lirc.fd, F_GETFL, 0) | FNDELAY);
- lirc.io = IO_Add(lirc.fd);
+ // change it to non-blocking
+ ret = fcntl(lirc.fd, F_GETFL, 0);
+ if (!(ret & O_NONBLOCK))
+ fcntl(lirc.fd, F_SETFL, ret | O_NONBLOCK);
+
+ lirc.io = NET_AddFd(lirc.fd);
lirc.io->wantread = qtrue;
Com_Printf("LIRC interface initialized.\n");