61
59
const char *countrycodes;
64
/* AU antenna channels. Channels {0, 1, 2, 6, 7, 8, 9, 9A} are numbered {2, 3, 4, 5, 6, 7, 8, 9} by the HDHomeRun. */
62
/* AU antenna channels. Channels {6, 7, 8, 9, 9A} are numbered {5, 6, 7, 8, 9} by the HDHomeRun. */
65
63
static const struct hdhomerun_channelmap_range_t hdhomerun_channelmap_range_au_bcast[] = {
66
{ 2, 2, 48500000, 7000000},
67
{ 3, 4, 59500000, 7000000},
68
64
{ 5, 12, 177500000, 7000000},
69
{ 28, 69, 529500000, 7000000},
73
/* AU cable channels. TBD. */
74
static const struct hdhomerun_channelmap_range_t hdhomerun_channelmap_range_au_cable[] = {
65
{ 21, 69, 480500000, 7000000},
78
69
/* EU antenna channels. */
79
70
static const struct hdhomerun_channelmap_range_t hdhomerun_channelmap_range_eu_bcast[] = {
80
{ 2, 4, 50500000, 7000000},
81
71
{ 5, 12, 177500000, 7000000},
82
72
{ 21, 69, 474000000, 8000000},
86
/* EU cable channels. Channels do not have simple numbers - the HDHomeRun uses its own numbering scheme (subject to change). */
76
/* EU cable channels. No common standard - use frequency in MHz for channel number. */
87
77
static const struct hdhomerun_channelmap_range_t hdhomerun_channelmap_range_eu_cable[] = {
88
{ 6, 7, 113000000, 8000000},
89
{ 9, 100, 138000000, 8000000},
78
{ 50, 998, 50000000, 1000000},
107
96
{ 14, 22, 123000000, 6000000},
108
97
{ 23, 94, 219000000, 6000000},
109
98
{ 95, 99, 93000000, 6000000},
110
{100, 135, 651000000, 6000000},
99
{100, 158, 651000000, 6000000},
119
108
{ 14, 22, 121756000, 6000300},
120
109
{ 23, 94, 217760800, 6000300},
121
110
{ 95, 99, 91754500, 6000300},
122
{100, 135, 649782400, 6000300},
111
{100, 158, 649782400, 6000300},
134
123
{ 43, 94, 339012500, 6000000},
135
124
{ 95, 97, 93012500, 6000000},
136
125
{ 98, 99, 111025000, 6000000},
137
{100, 135, 651012500, 6000000},
126
{100, 158, 651012500, 6000000},
141
130
static const struct hdhomerun_channelmap_record_t hdhomerun_channelmap_table[] = {
142
131
{"au-bcast", hdhomerun_channelmap_range_au_bcast, "au-bcast", "AU"},
143
{"au-cable", hdhomerun_channelmap_range_au_cable, "au-cable", "AU"},
132
{"au-cable", hdhomerun_channelmap_range_eu_cable, "au-cable", "AU"},
144
133
{"eu-bcast", hdhomerun_channelmap_range_eu_bcast, "eu-bcast", "EU PA"},
145
134
{"eu-cable", hdhomerun_channelmap_range_eu_cable, "eu-cable", "EU"},
146
135
{"tw-bcast", hdhomerun_channelmap_range_us_bcast, "tw-bcast", "TW"},
262
uint32_t hdhomerun_channel_frequency_truncate(uint32_t frequency)
264
return (frequency / FREQUENCY_RESOLUTION) * FREQUENCY_RESOLUTION;
267
uint32_t hdhomerun_channel_number_to_frequency(struct hdhomerun_channel_list_t *channel_list, uint8_t channel_number)
251
uint32_t hdhomerun_channel_frequency_round(uint32_t frequency, uint32_t resolution)
253
frequency += resolution / 2;
254
return (frequency / resolution) * resolution;
257
uint32_t hdhomerun_channel_frequency_round_normal(uint32_t frequency)
259
return hdhomerun_channel_frequency_round(frequency, 125000);
262
uint32_t hdhomerun_channel_number_to_frequency(struct hdhomerun_channel_list_t *channel_list, uint16_t channel_number)
269
264
struct hdhomerun_channel_entry_t *entry = hdhomerun_channel_list_first(channel_list);
339
334
entry->channel_number = channel_number;
340
335
entry->frequency = range->frequency + ((uint32_t)(channel_number - range->channel_range_start) * range->spacing);
341
entry->frequency = hdhomerun_channel_frequency_truncate(entry->frequency);
336
entry->frequency = hdhomerun_channel_frequency_round_normal(entry->frequency);
342
337
sprintf(entry->name, "%s:%u", channelmap, entry->channel_number);
344
339
hdhomerun_channel_list_build_insert(channel_list, entry);