summaryrefslogtreecommitdiffstats
path: root/dvb-t/ch-Geneva
blob: a64cc945a5ff20189131a6866c7595c0305d56ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Switzerland, Geneva region
# Updated by tkernen@deckpoint.ch on 2010/12/03
#------------------------------------------------------------------------------
[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 570166000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = NONE
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/32
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 578000000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 5/6
	CODE_RATE_LP = NONE
	MODULATION = QAM/16
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/4
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 658166000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 3/4
	CODE_RATE_LP = NONE
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/8
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 666166000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 2/3
	CODE_RATE_LP = NONE
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/32
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 682166000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 3/4
	CODE_RATE_LP = NONE
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/8
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 706000000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 1/2
	CODE_RATE_LP = NONE
	MODULATION = QAM/16
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/4
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 746166000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 3/4
	CODE_RATE_LP = NONE
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/8
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 762000000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 1/2
	CODE_RATE_LP = NONE
	MODULATION = QPSK
	TRANSMISSION_MODE = 2K
	GUARD_INTERVAL = 1/32
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 770166000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 3/4
	CODE_RATE_LP = NONE
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/8
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 794166000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 3/4
	CODE_RATE_LP = NONE
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/8
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 818166000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 3/4
	CODE_RATE_LP = NONE
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/8
	HIERARCHY = NONE
	INVERSION = AUTO

[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 850166000
	BANDWIDTH_HZ = 8000000
	CODE_RATE_HP = 3/4
	CODE_RATE_LP = NONE
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/8
	HIERARCHY = NONE
	INVERSION = AUTO
without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */ /* * exported functions: * * int plugin_init_uptime (void) * adds functions for uptime * */ #include "config.h" #include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/time.h> #include <fcntl.h> #include "debug.h" #include "plugin.h" static int fd = -2; static char *itoa(char *buffer, const size_t size, unsigned int value) { char *p; /* sanity checks */ if (buffer == NULL || size < 2) return (NULL); /* p points to last char */ p = buffer + size - 1; /* set terminating zero */ *p = '\0'; do { *--p = value % 10 + '0'; value = value / 10; } while (value != 0 && p > buffer); return p; } char *struptime(const unsigned int uptime, const char *format) { static char string[256]; const char *src; char *dst; int len, size; src = format; dst = string; len = 0; /* leave room for terminating zero */ size = sizeof(string) - 1; while (len < size) { if (*src == '%') { src++; if (strchr("sSmMhHd", *src) != NULL) { char buffer[12], *s; unsigned int value = 0; int leading_zero = 0; switch (*src++) { case 's': value = uptime; break; case 'S': value = uptime % 60; leading_zero = 1; break; case 'm': value = uptime / 60; break; case 'M': value = (uptime / 60) % 60; leading_zero = 1; break; case 'h': value = uptime / 60 / 60; break; case 'H': value = (uptime / 60 / 60) % 24; leading_zero = 1; break; case 'd': value = uptime / 60 / 60 / 24; break; } if (leading_zero && value < 10) { len++; *dst++ = '0'; } s = itoa(buffer, sizeof(buffer), value); while (len < size && *s != '\0') { len++; *dst++ = *s++; } } else if (*src == '%') { len++; *dst++ = '%'; } else { len += 2; *dst++ = '%'; *dst++ = *src++; } } else { len++; *dst++ = *src; if (*src++ == '\0') break; } } /* enforce terminating zero */ if (len >= size && *(dst - 1) != '\0') { len++; *dst = '\0'; } return string; } double getuptime(void) { char buffer[36]; int i; if (fd == -2) fd = open("/proc/uptime", O_RDONLY); if (fd < 0) return -1; lseek(fd, 0, SEEK_SET); i = read(fd, buffer, sizeof(buffer) - 1); if (i < 0) return -1; buffer[i - 1] = '\0'; /* ignore the 2nd value from /proc/uptime */ return strtod(buffer, NULL); } static void my_uptime(RESULT * result, const int argc, RESULT * argv[]) { int age; static double uptime = 0.0; static struct timeval last_value; struct timeval now; if (argc > 1) { error("uptime(): wrong number of parameters"); SetResult(&result, R_STRING, ""); return; } gettimeofday(&now, NULL); age = (now.tv_sec - last_value.tv_sec) * 1000 + (now.tv_usec - last_value.tv_usec) / 1000; /* reread every 100 msec only */ if (fd == -2 || age == 0 || age > 100) { uptime = getuptime(); if (uptime < 0.0) { error("parse(/proc/uptime) failed!"); SetResult(&result, R_STRING, ""); return; } last_value = now; } if (argc == 0) { SetResult(&result, R_NUMBER, &uptime); } else { SetResult(&result, R_STRING, struptime(uptime, R2S(argv[0]))); } return; } int plugin_init_uptime(void) { AddFunction("uptime", -1, my_uptime); return 0; } void plugin_exit_uptime(void) { if (fd > 0) close(fd); fd = -2; }