diff options
Diffstat (limited to 'common.c')
-rw-r--r-- | common.c | 110 |
1 files changed, 56 insertions, 54 deletions
@@ -1,6 +1,7 @@ #include "common.h" -void log(int level, const char * fmt, ...) { +void log(int level, const char *fmt, ...) +{ char tmpstr[BUFSIZ]; char timestr[16]; va_list ap; @@ -8,27 +9,28 @@ void log(int level, const char * fmt, ...) { struct tm local; if (PvrSetup.LogLevel >= level) { - va_start(ap, fmt); - time(&now); - localtime_r(&now, &local); - vsnprintf(tmpstr, sizeof(tmpstr), fmt, ap); - strftime(timestr, sizeof(timestr), "%H:%M:%S", &local); - printf("pvrinput: %s %s\n", timestr, tmpstr); - switch (level) { - case pvrERROR: - esyslog("%s",tmpstr); - break; - case pvrINFO: - isyslog("%s",tmpstr); - break; - case pvrDEBUG1: - case pvrDEBUG2: - default: - dsyslog("%s",tmpstr); - break; - } - va_end(ap); - } + va_start(ap, fmt); + time(&now); + localtime_r(&now, &local); + vsnprintf(tmpstr, sizeof(tmpstr), fmt, ap); + strftime(timestr, sizeof(timestr), "%H:%M:%S", &local); + printf("pvrinput: %s %s\n", timestr, tmpstr); + switch (level) { + case pvrERROR: + esyslog("%s",tmpstr); + break; + case pvrINFO: + isyslog("%s",tmpstr); + break; + case pvrDEBUG1: + case pvrDEBUG2: + case pvrDEBUG3: + default: + dsyslog("%s",tmpstr); + break; + } + va_end(ap); + } } /* @@ -36,23 +38,24 @@ function IOCTL retries the ioctl given six times before giving up, improves stability if device/driver is actually busy */ -int IOCTL(int fd, int cmd, void *data) { - if (fd <0) { - log(pvrERROR, "Error IOCTL %s: %s is not open", cmd, fd); - return (-1); - } +int IOCTL(int fd, int cmd, void *data) +{ + if (fd < 0) { + log(pvrERROR, "Error IOCTL %s: %s is not open", cmd, fd); + return -1; + } for (int retry = 5; retry >= 0; ) { - if (ioctl(fd, cmd, data) != 0) { - if (retry){ - usleep(20000); /* 20msec */ - retry--; - continue; - } - return -1; + if (ioctl(fd, cmd, data) != 0) { + if (retry) { + usleep(20000); /* 20msec */ + retry--; + continue; + } + return -1; + } + else + return 0; /* all went okay :) */ } - else - return 0; /* all went okay :) */ - } return 0; /* should never reach this */ } @@ -62,14 +65,14 @@ and returns it as rounded 0..100% integer value -wirbel- */ -int IntVal2Percent(int NumVal, int MinVal, int MaxVal){ - double t=0; - log(pvrDEBUG1, "IntVal2Percent(NumVal=%d, MinVal=%d, MaxVal=%d)\n", - NumVal, MinVal, MaxVal); - t=(double) (MaxVal - MinVal); - t=(NumVal-MinVal)/t; - t=100.0*t + 0.5; /* rounding to nearest int) */ - return (int) t; +int IntVal2Percent(int NumVal, int MinVal, int MaxVal) +{ + double t = 0; + log(pvrDEBUG1, "IntVal2Percent(NumVal=%d, MinVal=%d, MaxVal=%d)", NumVal, MinVal, MaxVal); + t = (double)(MaxVal - MinVal); + t = (NumVal - MinVal) / t; + t = 100.0 * t + 0.5; /* rounding to nearest int) */ + return (int)t; } /* @@ -77,13 +80,12 @@ This function takes a 0..100% integer value and returns it as rounded ivtv V4L2 integer value -wirbel- */ - -int Percent2IntVal(int Percent, int MinVal, int MaxVal){ - double t=0; - log(pvrDEBUG1, "Percent2IntVal(Percent=%d, MinVal=%d, MaxVal=%d)\n", - Percent, MinVal, MaxVal); - t=Percent/100.0; - t=0.5 + t*(MaxVal-MinVal); /* +0.5 is rounding to int */ - t=MinVal+t; - return (int) t; +int Percent2IntVal(int Percent, int MinVal, int MaxVal) +{ + double t = 0; + log(pvrDEBUG1, "Percent2IntVal(Percent=%d, MinVal=%d, MaxVal=%d)", Percent, MinVal, MaxVal); + t = Percent / 100.0; + t = 0.5 + t * (MaxVal - MinVal); /* +0.5 is rounding to int */ + t = MinVal + t; + return (int)t; } |