-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdump-zap.c
126 lines (111 loc) · 2.78 KB
/
dump-zap.c
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
#include <stdio.h>
#include "dump-zap.h"
static const char *inv_name [] = {
"INVERSION_OFF",
"INVERSION_ON",
"INVERSION_AUTO"
};
static const char *fec_name [] = {
"FEC_NONE",
"FEC_1_2",
"FEC_2_3",
"FEC_3_4",
"FEC_4_5",
"FEC_5_6",
"FEC_6_7",
"FEC_7_8",
"FEC_8_9",
"FEC_AUTO"
};
static const char *qam_name [] = {
"QPSK",
"QAM_16",
"QAM_32",
"QAM_64",
"QAM_128",
"QAM_256",
"QAM_AUTO",
"8VSB",
"16VSB",
};
static const char *bw_name [] = {
"BANDWIDTH_8_MHZ",
"BANDWIDTH_7_MHZ",
"BANDWIDTH_6_MHZ",
"BANDWIDTH_AUTO"
};
static const char *mode_name [] = {
"TRANSMISSION_MODE_2K",
"TRANSMISSION_MODE_8K",
"TRANSMISSION_MODE_AUTO"
};
static const char *guard_name [] = {
"GUARD_INTERVAL_1_32",
"GUARD_INTERVAL_1_16",
"GUARD_INTERVAL_1_8",
"GUARD_INTERVAL_1_4",
"GUARD_INTERVAL_AUTO"
};
static const char *hierarchy_name [] = {
"HIERARCHY_NONE",
"HIERARCHY_1",
"HIERARCHY_2",
"HIERARCHY_4",
"HIERARCHY_AUTO"
};
static char sat_polarisation(transponder_t *t)
{
switch (t->polarisation) {
case POLARISATION_VERTICAL: return 'V';
case POLARISATION_HORIZONTAL: return 'H';
case POLARISATION_CIRCULAR_RIGHT: return 'R';
case POLARISATION_CIRCULAR_LEFT: return 'L';
default: return 'U';
}
}
void zap_dump_dvb_parameters (FILE *f, transponder_t *t, int sat_number)
{
switch (t->delivery_system) {
case SYS_DVBS:
case SYS_DVBS2:
fprintf (f, "%i:", t->frequency / 1000); /* channels.conf wants MHz */
fprintf (f, "%c:", sat_polarisation(t));
fprintf (f, "%d:", sat_number);
fprintf (f, "%i", t->symbol_rate / 1000); /* channels.conf wants kBaud */
/* fprintf (f, "%s", fec_name[t->fec]); */
break;
case SYS_DVBC_ANNEX_AC:
case SYS_DVBC_ANNEX_B:
fprintf (f, "%i:", t->frequency);
fprintf (f, "%s:", inv_name[t->inversion]);
fprintf (f, "%i:", t->symbol_rate);
fprintf (f, "%s:", fec_name[t->fec]);
fprintf (f, "%s", qam_name[t->modulation]);
break;
case SYS_DVBT:
fprintf (f, "%i:", t->frequency);
fprintf (f, "%s:", inv_name[t->inversion]);
fprintf (f, "%s:", bw_name[t->bandwidth]);
fprintf (f, "%s:", fec_name[t->fecHP]);
fprintf (f, "%s:", fec_name[t->fecLP]);
fprintf (f, "%s:", qam_name[t->modulation]);
fprintf (f, "%s:", mode_name[t->transmission_mode]);
fprintf (f, "%s:", guard_name[t->guard_interval]);
fprintf (f, "%s", hierarchy_name[t->hierarchy]);
break;
case SYS_ATSC:
fprintf (f, "%i:", t->frequency);
fprintf (f, "%s", qam_name[t->modulation]);
break;
default:
break;
}
}
void zap_dump_service_parameter_set (FILE *f, service_t *s, transponder_t *t, int sat_number)
{
fprintf (f, "%s:", s->service_name);
zap_dump_dvb_parameters (f, t, sat_number);
fprintf (f, ":%i:%i:%i", s->video_pid, s->audio_pid[0], s->service_id);
fprintf (f, ":%i", t->delivery_system);
fprintf (f, "\n");
}