aboutsummaryrefslogtreecommitdiffstats
path: root/dvb-t/auto-Normal
diff options
context:
space:
mode:
Diffstat (limited to 'dvb-t/auto-Normal')
-rw-r--r--dvb-t/auto-Normal65
1 files changed, 0 insertions, 65 deletions
diff --git a/dvb-t/auto-Normal b/dvb-t/auto-Normal
deleted file mode 100644
index 5aedde93..00000000
--- a/dvb-t/auto-Normal
+++ /dev/null
@@ -1,65 +0,0 @@
-# for ($freq = 177500000; $freq <= 226500000; $freq += 7000000) {
-# print "T $freq 7MHz AUTO NONE AUTO AUTO AUTO NONE\n";
-# }
-# for ($freq = 474000000; $freq <= 858000000; $freq += 8000000) {
-# print "T $freq 8MHz AUTO NONE AUTO AUTO AUTO NONE\n";
-# }
-#
-# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 177500000 7MHz AUTO NONE AUTO AUTO AUTO NONE
-T 184500000 7MHz AUTO NONE AUTO AUTO AUTO NONE
-T 191500000 7MHz AUTO NONE AUTO AUTO AUTO NONE
-T 198500000 7MHz AUTO NONE AUTO AUTO AUTO NONE
-T 205500000 7MHz AUTO NONE AUTO AUTO AUTO NONE
-T 212500000 7MHz AUTO NONE AUTO AUTO AUTO NONE
-T 219500000 7MHz AUTO NONE AUTO AUTO AUTO NONE
-T 226500000 7MHz AUTO NONE AUTO AUTO AUTO NONE
-T 474000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 482000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 490000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 498000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 506000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 514000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 522000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 530000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 538000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 546000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 554000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 562000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 570000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 578000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 586000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 594000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 602000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 610000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 618000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 626000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 634000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 642000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 650000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 658000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 666000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 674000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 682000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 690000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 698000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 706000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 714000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 722000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 730000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 738000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 746000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 754000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 762000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 770000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 778000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 786000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 794000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 802000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 810000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 818000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 826000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 834000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 842000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 850000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
-T 858000000 8MHz AUTO NONE AUTO AUTO AUTO NONE
.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.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 */
/* $Id$
 * $URL$
 *
 * plugin for APM (battery status)
 *
 * Copyright (C) 2003 Michael Reinelt <michael@reinelt.co.at>
 * Copyright (C) 2004 The LCD4Linux Team <lcd4linux-devel@users.sourceforge.net>
 *
 * based on the old 'battery.c' which is 
 * Copyright (C) 2001 Leopold T�tsch <lt@toetsch.at>
 * 
 * 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_apm (void)
 *  adds apm() function
 *
 */

#include "config.h"

#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <asm/types.h>

#include "debug.h"
#include "plugin.h"
#include "hash.h"

static int fd = -2;
static HASH APM;

/* from /usr/src/linux/arch/i386/kernel/apm.c:
 *
 * Arguments, with symbols from linux/apm_bios.h.  Information is
 * from the Get Power Status (0x0a) call unless otherwise noted.
 *
 * 0) Linux driver version (this will change if format changes)
 * 1) APM BIOS Version.  Usually 1.0, 1.1 or 1.2.
 * 2) APM flags from APM Installation Check (0x00):
 *    bit 0: APM_16_BIT_SUPPORT
 *    bit 1: APM_32_BIT_SUPPORT
 *    bit 2: APM_IDLE_SLOWS_CLOCK
 *    bit 3: APM_BIOS_DISABLED
 *    bit 4: APM_BIOS_DISENGAGED
 * 3) AC line status
 *    0x00: Off-line
 *    0x01: On-line
 *    0x02: On backup power (BIOS >= 1.1 only)
 *    0xff: Unknown
 * 4) Battery status
 *    0x00: High
 *    0x01: Low
 *    0x02: Critical
 *    0x03: Charging
 *    0x04: Selected battery not present (BIOS >= 1.2 only)
 *    0xff: Unknown
 * 5) Battery flag
 *    bit 0: High
 *    bit 1: Low
 *    bit 2: Critical
 *    bit 3: Charging
 *    bit 7: No system battery
 *    0xff: Unknown
 * 6) Remaining battery life (percentage of charge):
 *    0-100: valid
 *    -1: Unknown
 * 7) Remaining battery life (time units):
 *    Number of remaining minutes or seconds
 *    -1: Unknown
 * 8) min = minutes; sec = seconds
 *
 * p+= sprintf(p, "%s %d.%d 0x%02x 0x%02x 0x%02x 0x%02x %d%% %d %s\n",
 *             driver_version,
 *             (apm_info.bios.version >> 8) & 0xff,
 *             apm_info.bios.version & 0xff,
 *             apm_info.bios.flags,
 *             ac_line_status,
 *             battery_status,
 *             battery_flag,
 *             percentage,
 *             time_units,
 *             units);
 */


static int parse_proc_apm(void)
{
    char *key[] = { "driver_version",
	"bios_version",
	"bios_flags",
	"line_status",
	"battery_status",
	"battery_flag",
	"battery_percent",
	"battery_remaining",
	"time_units"
    };

    char buffer[128], *beg, *end;
    int age, i;

    /* reread every 10 msec only */
    age = hash_age(&APM, NULL);
    if (age > 0 && age <= 10)
	return 0;

    if (fd == -2) {
	fd = open("/proc/apm", O_RDONLY | O_NDELAY);
	if (fd == -1) {
	    error("open(/proc/apm) failed: %s", strerror(errno));
	    return -1;
	}
    }

    if (lseek(fd, 0L, SEEK_SET) != 0) {
	error("lseek(/proc/apm) failed: %s", strerror(errno));
	fd = -1;
	return -1;
    }

    if (read(fd, &buffer, sizeof(buffer) - 1) == -1) {
	error("read(/proc/apm) failed: %s", strerror(errno));
	fd = -1;
	return -1;
    }

    beg = buffer;
    for (i = 0; i < 9 && beg != NULL; i++) {
	while (*beg == ' ')
	    beg++;
	if ((end = strpbrk(beg, " \n")))
	    *end = '\0';
	hash_put(&APM, key[i], beg);
	beg = end ? end + 1 : NULL;
    }

    return 0;
}


static void my_apm(RESULT * result, RESULT * arg1)
{
    char *val;

    if (parse_proc_apm() < 0) {
	SetResult(&result, R_STRING, "");
	return;
    }

    val = hash_get(&APM, R2S(arg1), NULL);
    if (val == NULL)
	val = "";

    SetResult(&result, R_STRING, val);
}

int plugin_init_apm(void)
{
    hash_create(&APM);

    AddFunction("apm", 1, my_apm);

    return 0;
}

void plugin_exit_apm(void)
{
    if (fd > -1) {
	close(fd);
    }
    fd = -2;

    hash_destroy(&APM);
}