aboutsummaryrefslogtreecommitdiffstats
path: root/dvb-t/au-Sydney
blob: 19e7be3b412e9898ca095895784a7b4a031c179c (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
# Australia / Sydney (transmitters at Artarmon/Gore Hill/Willoughby)
#
# ## Service - Channel - Network owner
#
## ABC - CH12 - ABC
[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 226500000
	BANDWIDTH_HZ = 7000000
	CODE_RATE_HP = AUTO
	CODE_RATE_LP = AUTO
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/16
	HIERARCHY = NONE
	INVERSION = AUTO

## ATN - CH6 - Seven Network
[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 177500000
	BANDWIDTH_HZ = 7000000
	CODE_RATE_HP = AUTO
	CODE_RATE_LP = AUTO
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/16
	HIERARCHY = NONE
	INVERSION = AUTO

## TCN - CH8 - Nine Network
[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 191625000
	BANDWIDTH_HZ = 7000000
	CODE_RATE_HP = AUTO
	CODE_RATE_LP = AUTO
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/16
	HIERARCHY = NONE
	INVERSION = AUTO

## TEN - CH11 - Network Ten
[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 219500000
	BANDWIDTH_HZ = 7000000
	CODE_RATE_HP = AUTO
	CODE_RATE_LP = AUTO
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/16
	HIERARCHY = NONE
	INVERSION = AUTO

## SBS - CH7 - SBS
[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 184500000
	BANDWIDTH_HZ = 7000000
	CODE_RATE_HP = AUTO
	CODE_RATE_LP = AUTO
	MODULATION = QAM/64
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/8
	HIERARCHY = NONE
	INVERSION = AUTO

## TSN - CH29 - Community Television
[CHANNEL]
	DELIVERY_SYSTEM = DVBT
	FREQUENCY = 536625000
	BANDWIDTH_HZ = 7000000
	CODE_RATE_HP = AUTO
	CODE_RATE_LP = AUTO
	MODULATION = QPSK
	TRANSMISSION_MODE = 8K
	GUARD_INTERVAL = 1/8
	HIERARCHY = NONE
	INVERSION = AUTO
.ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# Channel table for Barra Velha - SC - Brazil
# Source: http://www.portalbsd.com.br/terrestres_channels.php?channels=721

# Physical channel 16
[Rede Vida]
	DELIVERY_SYSTEM = ISDBT
	BANDWIDTH_HZ = 6000000
	FREQUENCY = 485142857
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	ISDBT_LAYER_ENABLED = 7
	ISDBT_SOUND_BROADCASTING = 0
	ISDBT_SB_SUBCHANNEL_ID = 0
	ISDBT_SB_SEGMENT_IDX = 0
	ISDBT_SB_SEGMENT_COUNT = 0
	ISDBT_LAYERA_FEC = AUTO
	ISDBT_LAYERA_MODULATION = QAM/AUTO
	ISDBT_LAYERA_SEGMENT_COUNT = 0
	ISDBT_LAYERA_TIME_INTERLEAVING = 0
	ISDBT_LAYERB_FEC = AUTO
	ISDBT_LAYERB_MODULATION = QAM/AUTO
	ISDBT_LAYERB_SEGMENT_COUNT = 0
	ISDBT_LAYERB_TIME_INTERLEAVING = 0
	ISDBT_LAYERC_FEC = AUTO
	ISDBT_LAYERC_MODULATION = QAM/AUTO
	ISDBT_LAYERC_SEGMENT_COUNT = 0
	ISDBT_LAYERC_TIME_INTERLEAVING = 0

# Physical channel 30
[RICTV Florianópolis]
	DELIVERY_SYSTEM = ISDBT
	BANDWIDTH_HZ = 6000000
	FREQUENCY = 569142857
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	ISDBT_LAYER_ENABLED = 7
	ISDBT_SOUND_BROADCASTING = 0
	ISDBT_SB_SUBCHANNEL_ID = 0
	ISDBT_SB_SEGMENT_IDX = 0
	ISDBT_SB_SEGMENT_COUNT = 0
	ISDBT_LAYERA_FEC = AUTO
	ISDBT_LAYERA_MODULATION = QAM/AUTO
	ISDBT_LAYERA_SEGMENT_COUNT = 0
	ISDBT_LAYERA_TIME_INTERLEAVING = 0
	ISDBT_LAYERB_FEC = AUTO
	ISDBT_LAYERB_MODULATION = QAM/AUTO
	ISDBT_LAYERB_SEGMENT_COUNT = 0
	ISDBT_LAYERB_TIME_INTERLEAVING = 0
	ISDBT_LAYERC_FEC = AUTO
	ISDBT_LAYERC_MODULATION = QAM/AUTO
	ISDBT_LAYERC_SEGMENT_COUNT = 0
	ISDBT_LAYERC_TIME_INTERLEAVING = 0

# Physical channel 42
[NSC Joinville]
	DELIVERY_SYSTEM = ISDBT
	BANDWIDTH_HZ = 6000000
	FREQUENCY = 641142857
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	ISDBT_LAYER_ENABLED = 7
	ISDBT_SOUND_BROADCASTING = 0
	ISDBT_SB_SUBCHANNEL_ID = 0
	ISDBT_SB_SEGMENT_IDX = 0
	ISDBT_SB_SEGMENT_COUNT = 0
	ISDBT_LAYERA_FEC = AUTO
	ISDBT_LAYERA_MODULATION = QAM/AUTO
	ISDBT_LAYERA_SEGMENT_COUNT = 0
	ISDBT_LAYERA_TIME_INTERLEAVING = 0
	ISDBT_LAYERB_FEC = AUTO
	ISDBT_LAYERB_MODULATION = QAM/AUTO
	ISDBT_LAYERB_SEGMENT_COUNT = 0
	ISDBT_LAYERB_TIME_INTERLEAVING = 0
	ISDBT_LAYERC_FEC = AUTO
	ISDBT_LAYERC_MODULATION = QAM/AUTO
	ISDBT_LAYERC_SEGMENT_COUNT = 0
	ISDBT_LAYERC_TIME_INTERLEAVING = 0

# Physical channel 44
[RICTV Florianópolis]
	DELIVERY_SYSTEM = ISDBT
	BANDWIDTH_HZ = 6000000
	FREQUENCY = 653142857
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	ISDBT_LAYER_ENABLED = 7
	ISDBT_SOUND_BROADCASTING = 0
	ISDBT_SB_SUBCHANNEL_ID = 0
	ISDBT_SB_SEGMENT_IDX = 0
	ISDBT_SB_SEGMENT_COUNT = 0
	ISDBT_LAYERA_FEC = AUTO
	ISDBT_LAYERA_MODULATION = QAM/AUTO
	ISDBT_LAYERA_SEGMENT_COUNT = 0
	ISDBT_LAYERA_TIME_INTERLEAVING = 0
	ISDBT_LAYERB_FEC = AUTO
	ISDBT_LAYERB_MODULATION = QAM/AUTO
	ISDBT_LAYERB_SEGMENT_COUNT = 0
	ISDBT_LAYERB_TIME_INTERLEAVING = 0
	ISDBT_LAYERC_FEC = AUTO
	ISDBT_LAYERC_MODULATION = QAM/AUTO
	ISDBT_LAYERC_SEGMENT_COUNT = 0
	ISDBT_LAYERC_TIME_INTERLEAVING = 0

# Physical channel 46
[SBT SC]
	DELIVERY_SYSTEM = ISDBT
	BANDWIDTH_HZ = 6000000
	FREQUENCY = 665142857
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	INVERSION = AUTO
	GUARD_INTERVAL = AUTO
	TRANSMISSION_MODE = AUTO
	ISDBT_LAYER_ENABLED = 7
	ISDBT_SOUND_BROADCASTING = 0
	ISDBT_SB_SUBCHANNEL_ID = 0
	ISDBT_SB_SEGMENT_IDX = 0
	ISDBT_SB_SEGMENT_COUNT = 0
	ISDBT_LAYERA_FEC = AUTO
	ISDBT_LAYERA_MODULATION = QAM/AUTO
	ISDBT_LAYERA_SEGMENT_COUNT = 0
	ISDBT_LAYERA_TIME_INTERLEAVING = 0
	ISDBT_LAYERB_FEC = AUTO
	ISDBT_LAYERB_MODULATION = QAM/AUTO
	ISDBT_LAYERB_SEGMENT_COUNT = 0
	ISDBT_LAYERB_TIME_INTERLEAVING = 0
	ISDBT_LAYERC_FEC = AUTO
	ISDBT_LAYERC_MODULATION = QAM/AUTO
	ISDBT_LAYERC_SEGMENT_COUNT = 0
	ISDBT_LAYERC_TIME_INTERLEAVING = 0
* DOC: * To compile the plugin remember to add -lmysqlclient option into Makefile. I.E: CC = gcc -lmysqlclient * or run: * $ gcc -I/usr/include/mysql -L/usr/lib/mysql plugin_mysql.c -lmysqlclient -o plugin_mysql.o * * exported functions: * * int plugin_init_mysql (void) * * adds various functions: * MySQLquery(query) * Returns the number of rows in query. * MySQLstatus() * Returns the current server status: * Uptime in seconds and the number of running threads, * questions, reloads, and open tables. * */ #include "config.h" #include <stdlib.h> #include <string.h> #include <ctype.h> #include "debug.h" #include "plugin.h" #include "cfg.h" #ifdef HAVE_MYSQL_MYSQL_H #include <mysql/mysql.h> #else #warning mysql/mysql.h not found: plugin deactivated #endif #ifdef WITH_DMALLOC #include <dmalloc.h> #endif #ifdef HAVE_MYSQL_MYSQL_H static MYSQL conex; static char Section[] = "Plugin:MySQL"; static int configure_mysql(void) { static int configured = 0; char server[256]; int port; char user[128]; char password[256]; char database[256]; char *s; if (configured != 0) return configured; s = cfg_get(Section, "server", "localhost"); if (*s == '\0') { info("[MySQL] empty '%s.server' entry from %s, assuming 'localhost'", Section, cfg_source()); strcpy(server, "localhost"); } else strcpy(server, s); free(s); if (cfg_number(Section, "port", 0, 1, 65536, &port) < 1) { /* using 0 as default port because mysql_real_connect() will convert it to real default one */ info("[MySQL] no '%s.port' entry from %s using MySQL's default", Section, cfg_source()); } s = cfg_get(Section, "user", ""); if (*s == '\0') { /* If user is NULL or the empty string "", the lcd4linux Unix user is assumed. */ info("[MySQL] empty '%s.user' entry from %s, assuming lcd4linux owner", Section, cfg_source()); strcpy(user, ""); } else strcpy(user, s); free(s); s = cfg_get(Section, "password", ""); /* Do not encrypt the password because encryption is handled automatically by the MySQL client API. */ if (*s == '\0') { info("[MySQL] empty '%s.password' entry in %s, assuming none", Section, cfg_source()); strcpy(password, ""); } else strcpy(password, s); free(s); s = cfg_get(Section, "database", ""); if (*s == '\0') { error("[MySQL] no '%s:database' entry from %s, specify one", Section, cfg_source()); free(s); configured = -1; return configured; } strcpy(database, s); free(s); mysql_init(&conex); if (!mysql_real_connect(&conex, server, user, password, database, port, NULL, 0)) { error("[MySQL] conection error: %s", mysql_error(&conex)); configured = -1; return configured; } configured = 1; return configured; } static void my_MySQLcount(RESULT * result, RESULT * query) { char *q; double value; MYSQL_RES *res; if (configure_mysql() < 0) { value = -1; SetResult(&result, R_NUMBER, &value); return; } q = R2S(query); /* mysql_ping(MYSQL *mysql) checks whether the connection to the server is working. */ /* If it has gone down, an automatic reconnection is attempted. */ mysql_ping(&conex); if (mysql_real_query(&conex, q, (unsigned int) strlen(q))) { error("[MySQL] query error: %s", mysql_error(&conex)); value = -1; } else { /* We don't use res=mysql_use_result(); because mysql_num_rows() will not */ /* return the correct value until all the rows in the result set have been retrieved */ /* with mysql_fetch_row(), so we use res=mysql_store_result(); instead */ res = mysql_store_result(&conex); value = (double) mysql_num_rows(res); mysql_free_result(res); } SetResult(&result, R_NUMBER, &value); } static void my_MySQLquery(RESULT * result, RESULT * query) { char *q; double value; MYSQL_RES *res; MYSQL_ROW row = NULL; if (configure_mysql() < 0) { value = -1; SetResult(&result, R_NUMBER, &value); return; } q = R2S(query); /* mysql_ping(MYSQL *mysql) checks whether the connection to the server is working. */ /* If it has gone down, an automatic reconnection is attempted. */ mysql_ping(&conex); if (mysql_real_query(&conex, q, (unsigned int) strlen(q))) { error("[MySQL] query error: %s", mysql_error(&conex)); value = -1; } else { /* We don't use res=mysql_use_result(); because mysql_num_rows() will not */ /* return the correct value until all the rows in the result set have been retrieved */ /* with mysql_fetch_row(), so we use res=mysql_store_result(); instead */ res = mysql_store_result(&conex); row = mysql_fetch_row(res); mysql_free_result(res); } SetResult(&result, R_STRING, row[0]); } static void my_MySQLstatus(RESULT * result) { const char *value = ""; const char *status; if (configure_mysql() > 0) { mysql_ping(&conex); status = mysql_stat(&conex); if (!status) { error("[MySQL] status error: %s", mysql_error(&conex)); value = "error"; } else { value = status; } } SetResult(&result, R_STRING, value); } #endif int plugin_init_mysql(void) { #ifdef HAVE_MYSQL_MYSQL_H AddFunction("MySQL::count", 1, my_MySQLcount); AddFunction("MySQL::query", 1, my_MySQLquery); AddFunction("MySQL::status", 0, my_MySQLstatus); #endif return 0; } void plugin_exit_mysql(void) { #ifdef HAVE_MYSQL_MYSQL_H mysql_close(&conex); #endif }