controlapi: fix key translation for hd51; small code alignments

Origin commit data
------------------
Branch: ni/coolstream
Commit: 94f64ff3d7
Author: vanhofen <vanhofen@gmx.de>
Date: 2018-01-22 (Mon, 22 Jan 2018)

Origin message was:
------------------
- controlapi: fix key translation for hd51; small code alignments

------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
vanhofen
2018-01-22 23:17:34 +01:00
parent 5308e07337
commit d1c253352f
2 changed files with 27 additions and 22 deletions

View File

@@ -894,15 +894,18 @@ unsigned int revert_translate(unsigned int code)
{ {
switch(code) switch(code)
{ {
case RC_play:
return KEY_PLAYPAUSE;
case RC_page_up: case RC_page_up:
return KEY_CHANNELUP; return KEY_CHANNELUP;
case RC_page_down: case RC_page_down:
return KEY_CHANNELDOWN; return KEY_CHANNELDOWN;
#ifdef HAVE_ARM_HARDWARE #ifdef HAVE_ARM_HARDWARE
case RC_play:
case RC_pause:
return KEY_PLAYPAUSE;
case RC_favorites: case RC_favorites:
return KEY_VIDEO; return KEY_VIDEO;
case RC_forward:
return KEY_FASTFORWARD;
#endif #endif
#ifdef HAVE_AZBOX_HARDWARE #ifdef HAVE_AZBOX_HARDWARE
case RC_favorites: case RC_favorites:
@@ -918,26 +921,27 @@ unsigned int revert_translate(unsigned int code)
break; break;
} }
return code; return code;
} }
void dev_uinput_sync(int fd) { void CControlAPI::rc_sync(int fd)
struct input_event ev;
gettimeofday(&ev.time, NULL);
ev.type = EV_SYN;
ev.code = SYN_REPORT;
ev.value = 0;
write(fd, &ev, sizeof(ev));
}
int CControlAPI::rc_send(int ev, unsigned int code, unsigned int value)
{ {
struct input_event iev; struct input_event ev;
iev.type=EV_KEY;
iev.code=code; gettimeofday(&ev.time, NULL);
iev.value=value; ev.type = EV_SYN;
return write(ev,&iev,sizeof(iev)); ev.code = SYN_REPORT;
ev.value = 0;
write(fd, &ev, sizeof(ev));
}
int CControlAPI::rc_send(int fd, unsigned int code, unsigned int value)
{
struct input_event ev;
ev.type = EV_KEY;
ev.code = code;
ev.value = value;
return write(fd, &ev, sizeof(ev));
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -985,14 +989,14 @@ void CControlAPI::RCEmCGI(CyhookHandler *hh)
close(evd); close(evd);
return; return;
} }
dev_uinput_sync(evd); rc_sync(evd);
if (rc_send(evd, sendcode, KEY_RELEASED) < 0) { if (rc_send(evd, sendcode, KEY_RELEASED) < 0) {
perror("writing 'KEY_RELEASED' event failed"); perror("writing 'KEY_RELEASED' event failed");
hh->SendError(); hh->SendError();
close(evd); close(evd);
return; return;
} }
dev_uinput_sync(evd); rc_sync(evd);
close(evd); close(evd);
#else #else
/* 0 == KEY_PRESSED in rcinput.cpp */ /* 0 == KEY_PRESSED in rcinput.cpp */

View File

@@ -41,7 +41,8 @@ private:
} }
} fsort; } fsort;
int rc_send(int ev, unsigned int code, unsigned int value); void rc_sync(int fd);
int rc_send(int fd, unsigned int code, unsigned int value);
// send functions for ExecuteCGI (controld api) // send functions for ExecuteCGI (controld api)
void SendEventList(CyhookHandler *hh,t_channel_id channel_id); void SendEventList(CyhookHandler *hh,t_channel_id channel_id);