Dropped dynamic repeat function

This commit is contained in:
Klaus Schmidinger 2000-04-16 13:54:16 +02:00
parent 735093b8fa
commit e3fe42608d
4 changed files with 17 additions and 14 deletions

4
osm.c
View File

@ -22,7 +22,7 @@
* *
* The project's page is at http://www.cadsoft.de/people/kls/vdr * The project's page is at http://www.cadsoft.de/people/kls/vdr
* *
* $Id: osm.c 1.3 2000/04/15 14:04:21 kls Exp $ * $Id: osm.c 1.4 2000/04/16 13:54:10 kls Exp $
*/ */
#include <signal.h> #include <signal.h>
@ -144,7 +144,7 @@ int main(int argc, char *argv[])
DvbApi.StopRecord(); DvbApi.StopRecord();
DvbApi.StopReplay(); DvbApi.StopReplay();
//TODO kill any remaining sub-processes! //TODO kill any remaining sub-processes!
isyslog(LOG_INFO, "exiting", Interrupted); isyslog(LOG_INFO, "exiting");
closelog(); closelog();
return 0; return 0;
} }

View File

@ -4,7 +4,7 @@
* See the main source file 'osm.c' for copyright information and * See the main source file 'osm.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: remote.c 1.2 2000/04/15 16:00:51 kls Exp $ * $Id: remote.c 1.3 2000/04/16 13:54:16 kls Exp $
*/ */
#include "remote.h" #include "remote.h"
@ -17,6 +17,9 @@
#include <unistd.h> #include <unistd.h>
#include "tools.h" #include "tools.h"
#define REPEATLIMIT 100 // ms
#define REPEATDELAY 250 // ms
cRcIo::cRcIo(char *DeviceName) cRcIo::cRcIo(char *DeviceName)
{ {
dp = 0; dp = 0;
@ -25,7 +28,6 @@ cRcIo::cRcIo(char *DeviceName)
address = 0xFFFF; address = 0xFFFF;
t = 0; t = 0;
firstTime = lastTime = 0; firstTime = lastTime = 0;
minDelta = 0;
lastCommand = 0; lastCommand = 0;
if ((f = open(DeviceName, O_RDWR | O_NONBLOCK)) >= 0) { if ((f = open(DeviceName, O_RDWR | O_NONBLOCK)) >= 0) {
struct termios t; struct termios t;
@ -35,8 +37,11 @@ cRcIo::cRcIo(char *DeviceName)
if (tcsetattr(f, TCSAFLUSH, &t) == 0) if (tcsetattr(f, TCSAFLUSH, &t) == 0)
return; return;
} }
LOG_ERROR_STR(DeviceName);
close(f); close(f);
} }
else
LOG_ERROR_STR(DeviceName);
f = -1; f = -1;
} }
@ -48,7 +53,7 @@ cRcIo::~cRcIo()
int cRcIo::ReceiveByte(bool Wait) int cRcIo::ReceiveByte(bool Wait)
{ {
// Returns the byte if one was received within 1 second, -1 otherwise // Returns the byte if one was received within a timeout, -1 otherwise
if (f >= 0) { if (f >= 0) {
fd_set set; fd_set set;
struct timeval timeout; struct timeval timeout;
@ -112,7 +117,6 @@ bool cRcIo::SetCode(unsigned char Code, unsigned short Address)
{ {
code = Code; code = Code;
address = Address; address = Address;
minDelta = 200;
return SendCommand(code); return SendCommand(code);
} }
@ -157,12 +161,10 @@ bool cRcIo::GetCommand(unsigned int *Command, unsigned short *Address)
// let's have a timeout to avoid getting overrun by commands // let's have a timeout to avoid getting overrun by commands
int now = time_ms(); int now = time_ms();
int delta = now - lastTime; int delta = now - lastTime;
if (delta < minDelta)
minDelta = delta; // dynamically adjust to the smallest delta
lastTime = now; lastTime = now;
if (delta < minDelta * 1.3) { // if commands come in rapidly... if (delta < REPEATLIMIT) { // if commands come in rapidly...
if (now - firstTime < 250) if (now - firstTime < REPEATDELAY)
return false; // ...repeat function kicks in after 250ms return false; // ...repeat function kicks in after a short delay
return true; return true;
} }
} }

View File

@ -4,7 +4,7 @@
* See the main source file 'osm.c' for copyright information and * See the main source file 'osm.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: remote.h 1.1 2000/02/19 13:36:48 kls Exp $ * $Id: remote.h 1.2 2000/04/16 13:53:50 kls Exp $
*/ */
#ifndef __REMOTE_H #ifndef __REMOTE_H
@ -19,7 +19,7 @@ private:
unsigned char dp, code, mode; unsigned char dp, code, mode;
unsigned short address; unsigned short address;
time_t t; time_t t;
int firstTime, lastTime, minDelta; int firstTime, lastTime;
unsigned int lastCommand; unsigned int lastCommand;
bool SendCommand(unsigned char Cmd); bool SendCommand(unsigned char Cmd);
int ReceiveByte(bool Wait = true); int ReceiveByte(bool Wait = true);

View File

@ -4,12 +4,13 @@
* See the main source file 'osm.c' for copyright information and * See the main source file 'osm.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: tools.h 1.3 2000/04/15 15:09:47 kls Exp $ * $Id: tools.h 1.4 2000/04/16 13:54:04 kls Exp $
*/ */
#ifndef __TOOLS_H #ifndef __TOOLS_H
#define __TOOLS_H #define __TOOLS_H
#include <errno.h>
#include <stdio.h> #include <stdio.h>
#include <syslog.h> #include <syslog.h>