/* $Id$ * $URL$ * * plugin handler for the Evaluator * * Copyright (C) 2003 Michael Reinelt * Copyright (C) 2004 The LCD4Linux Team * * This file is part of LCD4Linux. * * LCD4Linux is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * LCD4Linux 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 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 (void) * initializes the expression evaluator * adds some handy constants and functions * */ #include "config.h" #include "plugin.h" #include #include #include #include "debug.h" char *Plugins[] = { "cfg", "math", "string", "test", "time", #ifdef PLUGIN_APM "apm", #endif #ifdef PLUGIN_ASTERISK "asterisk", #endif #ifdef PLUGIN_BUTTON_EXEC "button_exec", #endif #ifdef PLUGIN_CPUINFO "cpuinfo", #endif #ifdef PLUGIN_DBUS "dbus", #endif #ifdef PLUGIN_DISKSTATS "diskstats", #endif #ifdef PLUGIN_DVB "dvb", #endif #ifdef PLUGIN_EXEC "exec", #endif #ifdef PLUGIN_EVENT "event", #endif #ifdef PLUGIN_FIFO "fifo", #endif #ifdef PLUGIN_FILE "file", #endif #ifdef PLUGIN_GPS "gps", #endif #ifdef PLUGIN_HDDTEMP "hddtemp", #endif #ifdef PLUGIN_HUAWEI "huawei", #endif #ifdef PLUGIN_I2C_SENSORS "i2c_sensors", #endif #ifdef PLUGIN_ICONV "iconv", #endif #ifdef PLUGIN_IMON "imon", #endif #ifdef PLUGIN_ISDN "isdn", #endif #ifdef PLUGIN_KVV "kvv", #endif #ifdef PLUGIN_LOADAVG "loadavg", #endif #ifdef PLUGIN_MEMINFO "meminfo", #endif #ifdef PLUGIN_MPD "mpd", #endif #ifdef PLUGIN_MPRIS_DBUS "mpris_dbus", #endif #ifdef PLUGIN_MYSQL "mysql", #endif #ifdef PLUGIN_NETDEV "netdev", #endif #ifdef PLUGIN_NETINFO "netinfo", #endif #ifdef PLUGIN_POP3 "pop3", #endif #ifdef PLUGIN_PPP "ppp", #endif #ifdef PLUGIN_PROC_STAT "proc_stat", #endif #ifdef PLUGIN_PYTHON "python", #endif #ifdef PLUGIN_SAMPLE "sample", #endif #ifdef PLUGIN_SETI "seti", #endif #ifdef PLUGIN_STATFS "statfs", #endif #ifdef PLUGIN_UNAME "uname", #endif #ifdef PLUGIN_UPTIME "uptime", #endif #ifdef PLUGIN_W1RETAP "w1retap", #endif #ifdef PLUGIN_WIRELESS "wireless", #endif #ifdef PLUGIN_XMMS "xmms", #endif NULL, }; /* Prototypes */ int plugin_init_cfg(void); void plugin_exit_cfg(void); int plugin_init_math(void); void plugin_exit_math(void); int plugin_init_string(void); void plugin_exit_string(void); int plugin_init_test(void); void plugin_exit_test(void); int plugin_init_time(void); void plugin_exit_time(void); int plugin_init_apm(void); void plugin_exit_apm(void); int plugin_init_asterisk(void); void plugin_exit_asterisk(void); int plugin_init_button_exec(void); void plugin_exit_button_exec(void); int plugin_init_cpuinfo(void); void plugin_exit_cpuinfo(void); int plugin_init_dbus(void); void plugin_exit_dbus(void); int plugin_init_diskstats(void); void plugin_exit_diskstats(void); int plugin_init_dvb(void); void plugin_exit_dvb(void); int plugin_init_exec(void); void plugin_exit_exec(void); int plugin_init_event(void); void plugin_exit_event(void); int plugin_init_fifo(void); void plugin_exit_fifo(void); int plugin_init_file(void); void plugin_exit_file(void); int plugin_init_gps(void); void plugin_exit_gps(void); int plugin_init_hddtemp(void); void plugin_exit_hddtemp(void); int plugin_init_huawei(void); void plugin_exit_huawei(void); int plugin_init_i2c_sensors(void); void plugin_exit_i2c_sensors(void); int plugin_init_imon(void); void plugin_exit_imon(void); int plugin_init_iconv(void); void plugin_exit_iconv(void); int plugin_init_isdn(void); void plugin_exit_isdn(void); int plugin_init_kvv(void); void plugin_exit_kvv(void); int plugin_init_loadavg(void); void plugin_exit_loadavg(void); int plugin_init_meminfo(void); void plugin_exit_meminfo(void); int plugin_init_mpd(void); void plugin_exit_mpd(void); int plugin_init_mpris_dbus(void); void plugin_exit_mpris_dbus(void); int plugin_init_mysql(void); void plugin_exit_mysql(void); int plugin_init_netdev(void); void plugin_exit_netdev(void); int plugin_init_netinfo(void); void plugin_exit_netinfo(void); int plugin_init_pop3(void); void plugin_exit_pop3(void); int plugin_init_ppp(void); void plugin_exit_ppp(void); int plugin_init_proc_stat(void); void plugin_exit_proc_stat(void); int plugin_init_python(void); void plugin_exit_python(void); int plugin_init_sample(void); void plugin_exit_sample(void); int plugin_init_seti(void); void plugin_exit_seti(void); int plugin_init_statfs(void); void plugin_exit_statfs(void); int plugin_init_uname(void); void plugin_exit_uname(void); int plugin_init_uptime(void); void plugin_exit_uptime(void); int plugin_init_w1retap(void); void plugin_exit_w1retap(void); int plugin_init_wireless(void); void plugin_exit_wireless(void); int plugin_init_xmms(void); void plugin_exit_xmms(void); int plugin_list(void) { int i; printf("available plugins:\n "); for (i = 0; Plugins[i]; i++) { printf("%s", Plugins[i]); if (Plugins[i + 1]) printf(", "); } printf("\n"); return 0; } int plugin_init(void) { plugin_init_cfg(); plugin_init_math(); plugin_init_string(); plugin_init_test(); plugin_init_time(); #ifdef PLUGIN_APM plugin_init_apm(); #endif #ifdef PLUGIN_ASTERISK plugin_init_asterisk(); #endif #ifdef PLUGIN_BUTTON_EXEC plugin_init_button_exec(); #endif #ifdef PLUGIN_CPUINFO plugin_init_cpuinfo(); #endif #ifdef PLUGIN_DBUS plugin_init_dbus(); #endif #ifdef PLUGIN_DISKSTATS plugin_init_diskstats(); #endif #ifdef PLUGIN_DVB plugin_init_dvb(); #endif #ifdef PLUGIN_EXEC plugin_init_exec(); #endif #ifdef PLUGIN_EVENT plugin_init_event(); #endif #ifdef PLUGIN_FIFO plugin_init_fifo(); #endif #ifdef PLUGIN_FILE plugin_init_file(); #endif #ifdef PLUGIN_GPS plugin_init_gps(); #endif #ifdef PLUGIN_HDDTEMP plugin_init_hddtemp(); #endif #ifdef PLUGIN_HUAWEI plugin_init_huawei(); #endif #ifdef PLUGIN_I2C_SENSORS plugin_init_i2c_sensors(); #endif #ifdef PLUGIN_ICONV plugin_init_iconv(); #endif #ifdef PLUGIN_IMON plugin_init_imon(); #endif #ifdef PLUGIN_ISDN plugin_init_isdn(); #endif #ifdef PLUGIN_KVV plugin_init_kvv(); #endif #ifdef PLUGIN_LOADAVG plugin_init_loadavg(); #endif #ifdef PLUGIN_MEMINFO plugin_init_meminfo(); #endif #ifdef PLUGIN_MPD plugin_init_mpd(); #endif #ifdef PLUGIN_MPRIS_DBUS plugin_init_mpris_dbus(); #endif #ifdef PLUGIN_MYSQL plugin_init_mysql(); #endif #ifdef PLUGIN_NETDEV plugin_init_netdev(); #endif #ifdef PLUGIN_NETINFO plugin_init_netinfo(); #endif #ifdef PLUGIN_POP3 plugin_init_pop3(); #endif #ifdef PLUGIN_PPP plugin_init_ppp(); #endif #ifdef PLUGIN_PROC_STAT plugin_init_proc_stat(); #endif #ifdef PLUGIN_PYTHON plugin_init_python(); #endif #ifdef PLUGIN_SAMPLE plugin_init_sample(); #endif #ifdef PLUGIN_SETI plugin_init_seti(); #endif #ifdef PLUGIN_STATFS plugin_init_statfs(); #endif #ifdef PLUGIN_UNAME plugin_init_uname(); #endif #ifdef PLUGIN_UPTIME plugin_init_uptime(); #endif #ifdef PLUGIN_W1RETAP plugin_init_w1retap(); #endif #ifdef PLUGIN_WIRELESS plugin_init_wireless(); #endif #ifdef PLUGIN_XMMS plugin_init_xmms(); #endif return 0; } void plugin_exit(void) { #ifdef PLUGIN_APM plugin_exit_apm(); #endif #ifdef PLUGIN_ASTERISK plugin_exit_asterisk(); #endif #ifdef PLUGIN_BUTTON_EXEC plugin_exit_button_exec(); #endif #ifdef PLUGIN_CPUINFO plugin_exit_cpuinfo(); #endif #ifdef PLUGIN_DBUS plugin_exit_dbus(); #endif #ifdef PLUGIN_DISKSTATS plugin_exit_diskstats(); #endif #ifdef PLUGIN_DVB plugin_exit_dvb(); #endif #ifdef PLUGIN_EXEC plugin_exit_exec(); #endif #ifdef PLUGIN_EVENT plugin_exit_event(); #endif #ifdef PLUGIN_FIFO plugin_exit_fifo(); #endif #ifdef PLUGIN_FILE plugin_exit_file(); #endif #ifdef PLUGIN_GPS plugin_exit_gps(); #endif #ifdef PLUGIN_HUAWEI plugin_exit_huawei(); #endif #ifdef PLUGIN_I2C_SENSORS plugin_exit_i2c_sensors(); #endif #ifdef PLUGIN_ICONV plugin_exit_iconv(); #endif #ifdef PLUGIN_IMON plugin_exit_imon(); #endif #ifdef PLUGIN_ISDN plugin_exit_isdn(); #endif #ifdef PLUGIN_KVV plugin_exit_kvv(); #endif #ifdef PLUGIN_LOADAVG plugin_exit_loadavg(); #endif #ifdef PLUGIN_MEMINFO plugin_exit_meminfo(); #endif #ifdef PLUGIN_MPD plugin_exit_mpd(); #endif #ifdef PLUGIN_MPRIS_DBUS plugin_exit_mpris_dbus(); #endif #ifdef PLUGIN_MYSQL plugin_exit_mysql(); #endif #ifdef PLUGIN_NETDEV plugin_exit_netdev(); #endif #ifdef PLUGIN_NETINFO plugin_exit_netinfo(); #endif #ifdef PLUGIN_POP3 plugin_exit_pop3(); #endif #ifdef PLUGIN_PPP plugin_exit_ppp(); #endif #ifdef PLUGIN_PROC_STAT plugin_exit_proc_stat(); #endif #ifdef PLUGIN_PYTHON plugin_exit_python(); #endif #ifdef PLUGIN_SAMPLE plugin_exit_sample(); #endif #ifdef PLUGIN_SETI plugin_exit_seti(); #endif #ifdef PLUGIN_STATFS plugin_exit_statfs(); #endif #ifdef PLUGIN_UNAME plugin_exit_uname(); #endif #ifdef PLUGIN_UPTIME plugin_exit_uptime(); #endif #ifdef PLUGIN_W1RETAP plugin_exit_w1retap(); #endif #ifdef PLUGIN_WIRELESS plugin_exit_wireless(); #endif #ifdef PLUGIN_XMMS plugin_exit_xmms(); #endif plugin_exit_cfg(); plugin_exit_math(); plugin_exit_string(); plugin_exit_test(); plugin_exit_time(); DeleteFunctions(); DeleteVariables(); } ic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .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 Ibiporã - PR - Brazil
# Source: http://portalbsd.com.br/novo/terrestres_channels.php?channels=338

# Physical channel 23
[TV Cidade/PR]
	DELIVERY_SYSTEM = ISDBT
	BANDWIDTH_HZ = 6000000
	FREQUENCY = 527142857
	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
[TV Tarobá]
	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
[RPC]
	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 47
[CNT Londrina]
	DELIVERY_SYSTEM = ISDBT
	BANDWIDTH_HZ = 6000000
	FREQUENCY = 671142857
	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 49
[RIC]
	DELIVERY_SYSTEM = ISDBT
	BANDWIDTH_HZ = 6000000
	FREQUENCY = 683142857
	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