diff options
author | etobi <git@e-tobi.net> | 2013-09-03 09:48:41 +0200 |
---|---|---|
committer | etobi <git@e-tobi.net> | 2013-09-03 09:48:41 +0200 |
commit | ab959d7b4194715870128e616b8e29d4a101e488 (patch) | |
tree | 61a746231d30817be73416a7d67763fd677a1042 /lib/libdvbmisc | |
parent | 6b350466c4902c5b137e0efaf1d189128a7f18f5 (diff) | |
download | linux-dvb-apps-upstream/1.1.1+rev1207.tar.gz |
Imported Upstream version 1.1.1+rev1207upstream/1.1.1+rev1207
Diffstat (limited to 'lib/libdvbmisc')
-rw-r--r-- | lib/libdvbmisc/dvbmisc.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/libdvbmisc/dvbmisc.h b/lib/libdvbmisc/dvbmisc.h new file mode 100644 index 0000000..8ac6eee --- /dev/null +++ b/lib/libdvbmisc/dvbmisc.h @@ -0,0 +1,72 @@ +/* + libdvbmisc - DVB miscellaneous library + + Copyright (C) 2005 Manu Abraham <abraham.manu@gmail.com> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +*/ + +#ifndef DVB_MISC_H +#define DVB_MISC_H + +#include <stdarg.h> +#include <stdint.h> +#include <stdio.h> +#include <sys/time.h> + +#define ERROR 0 +#define NOTICE 1 +#define INFO 2 +#define DEBUG 3 + +#define print(x, y, z, fmt, arg...) do { \ + if (z) { \ + if ((x > ERROR) && (x > y)) \ + vprint("%s: " fmt "\n", __func__ , ##arg); \ + else if ((x > NOTICE) && (x > y)) \ + vprint("%s: " fmt "\n",__func__ , ##arg); \ + else if ((x > INFO) && (x > y)) \ + vprint("%s: " fmt "\n", __func__ , ##arg); \ + else if ((x > DEBUG) && (x > y)) \ + vprint("%s: " fmt "\n", __func__ , ##arg); \ + } else { \ + if (x > y) \ + vprint(fmt, ##arg); \ + } \ +} while(0) + +static inline void vprint(char *fmt, ...) +{ + va_list args; + + va_start(args, fmt); + vfprintf(stderr, fmt, args); + va_end(args); +} + +static inline int time_after(struct timeval oldtime, uint32_t delta_ms) +{ + // calculate the oldtime + add on the delta + uint64_t oldtime_ms = (oldtime.tv_sec * 1000) + (oldtime.tv_usec / 1000); + oldtime_ms += delta_ms; + + // calculate the nowtime + struct timeval nowtime; + gettimeofday(&nowtime, 0); + uint64_t nowtime_ms = (nowtime.tv_sec * 1000) + (nowtime.tv_usec / 1000); + + // check + return nowtime_ms > oldtime_ms; +} + +#endif |