summaryrefslogtreecommitdiffstats
path: root/abs/core/tweaker
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/tweaker')
-rw-r--r--abs/core/tweaker/PKGBUILD45
-rwxr-xr-xabs/core/tweaker/bin/LocalIPCheck.pl47
-rwxr-xr-xabs/core/tweaker/bin/SQLtweaker.sh86
-rwxr-xr-xabs/core/tweaker/bin/create-linhes-sql.sh166
-rwxr-xr-xabs/core/tweaker/bin/tweaker.pl333
-rwxr-xr-xabs/core/tweaker/bin/twk_EXAMPLE.pl134
-rwxr-xr-xabs/core/tweaker/bin/twk_RAM.pl81
-rwxr-xr-xabs/core/tweaker/bin/twk_audio.pl390
-rwxr-xr-xabs/core/tweaker/bin/twk_cpu.pl163
-rwxr-xr-xabs/core/tweaker/bin/twk_dragon.pl65
-rwxr-xr-xabs/core/tweaker/bin/twk_fingerprint_hardware.sh98
-rwxr-xr-xabs/core/tweaker/bin/twk_general.pl590
-rwxr-xr-xabs/core/tweaker/bin/twk_general.pl.orig579
-rwxr-xr-xabs/core/tweaker/bin/twk_graphics.pl149
-rwxr-xr-xabs/core/tweaker/bin/twk_keymap.sh66
-rwxr-xr-xabs/core/tweaker/bin/twk_localization.pl72
-rwxr-xr-xabs/core/tweaker/bin/twk_misc.pl13
-rwxr-xr-xabs/core/tweaker/bin/twk_scrub_sql.pl96
-rwxr-xr-xabs/core/tweaker/bin/twk_tuners.pl491
-rw-r--r--abs/core/tweaker/bin/twk_tuners_notes.txt55
-rwxr-xr-xabs/core/tweaker/bin/twk_upgrade.pl190
-rwxr-xr-xabs/core/tweaker/bin/twk_what_has_changed.sh183
-rw-r--r--abs/core/tweaker/fs/etc/asound.conf15
-rw-r--r--abs/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini429
-rw-r--r--abs/core/tweaker/fs/var/lib/alsa/ALC888.asound.state354
-rw-r--r--abs/core/tweaker/fs/var/lib/alsa/AV710.asound.state567
-rw-r--r--abs/core/tweaker/lib/Tweaker/Definitions.pm66
-rw-r--r--abs/core/tweaker/lib/Tweaker/Script.pm353
-rw-r--r--abs/core/tweaker/log4perl.conf13
-rw-r--r--abs/core/tweaker/tcf/EXAMPLE.tcf38
-rw-r--r--abs/core/tweaker/tcf/focus.tcf113
-rw-r--r--abs/core/tweaker/tcf/os.tcf10
-rw-r--r--abs/core/tweaker/tcf/tcf.dtd11
-rw-r--r--abs/core/tweaker/tcf/tweaker-core.tcf47
-rw-r--r--abs/core/tweaker/tcf/userland.tcf0
-rw-r--r--abs/core/tweaker/tweaker.install39
-rw-r--r--abs/core/tweaker/tweaker.sh4
37 files changed, 0 insertions, 6151 deletions
diff --git a/abs/core/tweaker/PKGBUILD b/abs/core/tweaker/PKGBUILD
deleted file mode 100644
index 85df000..0000000
--- a/abs/core/tweaker/PKGBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-pkgname=tweaker
-pkgver=1
-pkgrel=56
-pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds"
-arch=('i686' 'x86_64')
-
-depends=('bash' 'perl' 'perl-dbi' 'perl-exception-class' 'perl-log-log4perl' 'perl-log-dispatch' 'perl-getopt-lucid' 'perl-list-member' 'perl-class-data-inheritable' 'perl-devel-stacktrace' 'perl-xml-twig')
-
-source=(tweaker.sh log4perl.conf)
-
-license=('GPL2')
-#groups=('pvr')
-
-
-install=tweaker.install
-build() {
- TWEAKER_ROOT=usr/LH/tweaker
- mkdir -p $startdir/pkg/$TWEAKER_ROOT
- mkdir -p $startdir/pkg/$TWEAKER_ROOT/{bin,fs,tcf}
- mkdir -p $startdir/pkg/etc/profile.d
- mkdir -p $startdir/pkg/usr/lib/perl5/vendor_perl/Tweaker/
-
- cd $startdir
- # executables
- install -m0777 -D bin/* $startdir/pkg/$TWEAKER_ROOT/bin
-
- # parallel root directory structure used for seeding configuration files
- # Ensure shell variables are configured at start; ensure $TWEAKER_ROOT/bin is in $PATH
- cp -rp fs $startdir/pkg/$TWEAKER_ROOT/
- chmod -R 0777 $startdir/pkg/$TWEAKER_ROOT/
-
- # Tweaker configuration files
- install -m0555 -D tcf/* $startdir/pkg/$TWEAKER_ROOT/tcf
-
- # Tweaker-centric log4perl configuration
- #install -m0755 log4perl.conf $startdir/pkg/etc/log4perl.conf
- install -m0755 log4perl.conf $startdir/pkg/$TWEAKER_ROOT
-
- install -m0755 tweaker.sh $startdir/pkg/etc/profile.d/tweaker.sh
-
- # Copy our tweaker Perl modules for general use
- install -m0555 lib/Tweaker/* $startdir/pkg/usr/lib/perl5/vendor_perl/Tweaker/
-}
-md5sums=('77fab526e866b273091e6816135ef25f'
- 'e897b87dd308f9562d0867de9fab2de0')
diff --git a/abs/core/tweaker/bin/LocalIPCheck.pl b/abs/core/tweaker/bin/LocalIPCheck.pl
deleted file mode 100755
index b744fb6..0000000
--- a/abs/core/tweaker/bin/LocalIPCheck.pl
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/perl
-
-# Valid private IP ranges
-
-my @LOCAL_IP_RANGES = ("10.0.0.0", "10.255.255.255",
- "172.16.0.0", "172.31.255.255",
- "192.168.0.0", "192.168.255.255");
-
-# input: A dotted quad IP address.
-
-# output: 0 if a public (internet) address
-# : 8 if a class A private (LAN) address
-# : 12 if a class B private (LAN) address
-# : 16 if a class C private (LAN) address
-
-sub get_IP_number () {
- my ($dotted_quad) = @_;
- my $IP_number=0;
-
- split(/\./, $dotted_quad);
-
- for (my $i=0; $i < 4; $i++) {
- $IP_number=$IP_number+@_[3-$i]*(2**(8*$i));
- }
- return $IP_number;
-}
-
-while(<>) {
- chop;
- my $IPnumber=&get_IP_number($_);
- my $class=16;
-
- while (@LOCAL_IP_RANGES) {
- my $highIPnumber = &get_IP_number(pop(@LOCAL_IP_RANGES));
- my $lowIPnumber = &get_IP_number(pop(@LOCAL_IP_RANGES));
-
- if (($lowIPnumber <= $IPnumber) && ($highIPnumber >= $IPnumber)) {
- exit($class); # PRIVATE IP
- } else {
- $class += 4;
- }
- }
-}
-
-exit(0); # PUBLIC IP
-
-
diff --git a/abs/core/tweaker/bin/SQLtweaker.sh b/abs/core/tweaker/bin/SQLtweaker.sh
deleted file mode 100755
index 5760e5d..0000000
--- a/abs/core/tweaker/bin/SQLtweaker.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-# This isn't to be run. Do not chmod it +x and try - it won't do anything.
-
-# This function will change or create entries in various tables within
-# the mythconverg database.
-# If the key value already exists in $SQL_FILENAME, then it is changed. Otherwise,
-# it will create the necessary SQL to make the entry if it does not exist.
-#
-# For the purposes of this function, a key is defined as any unique string of text
-# after which a comma and a value or values follow. E.g.:
-# in an entry like this:
-# INSERT INTO `videotypes` VALUES (6,'mpeg','',0,1);
-# we can define the key as "6" if we wanted, but that would be ambiguous. So we can instead
-# define it as "6,'mpeg'" and we gain the ability to control the values of the fields after
-# the first two. So this function call
-#
-# ChangeOrMakeEntry "6,'mpeg'" "'mplayer -fs -zoom', 0,1" "videotypes"
-#
-# would change the above SQL entry into this:
-#
-# INSERT INTO `videotypes` VALUES (6,'mpeg','mplayer -fs -zoom', 0,1);
-
-# parameters: name, value, table
-
-# Some tables have simple key, value pairs. Others have several potential keys and values.
-# The 'settings' table is a simple key, value pair table, plus the name of the system on which
-# the settings hold true, e.g.:
-# INSERT INTO `settings` VALUES ('FooHat','Peas with sauce:drizzle','MythTVhost');
-###
-function ChangeOrMakeEntry {
- NAME=$1 ; shift
- VALUE=$1 ; shift
- TABLE=$1 ; shift
-
- if [ `grep -c "$NAME" $SQL_FILENAME` == 0 ]; then
- # There is no setting for $SETTING_NAME, so we need to make it
- echo "INSERT INTO \`$TABLE\`" VALUES \($NAME,$VALUE\)\; >> $SQL_FILENAME
- else
- # There is a setting for $SETTING_NAME, so make sure it's what we want it to be.
- sed -i "s@$NAME,.*);@$NAME,$VALUE);@" $SQL_FILENAME
- fi
-}
-
-# shortcut function to ChangeOrMakeEntry for 'settings' table
-function ChangeOrMakeSetting {
- NAME=$1 ; shift
- VALUE=$1 ; shift
-
- ChangeOrMakeEntry "$NAME" "$VALUE, 'MythTVhost'" "settings"
-}
-
-# shortcut function to ChangeOrMakeEntry for 'settings' table
-function ChangeOrMakeKeybinding {
- NAME=$1 ; shift
- VALUE=$1 ; shift
-
- ChangeOrMakeEntry "$NAME" "$VALUE, 'MythTVhost'" "keybindings"
-}
-
-# This only works for North America at the moment.
-LocaleCode() { # no arguments. Obtain a zipcode or locale, either using
- # SchedulesDirect subscription info or by asking the user.
-
- mysqldump --tab=/tmp --opt mythconverg videosource
- # Get the first data direct "Video Source"
- dd_src=$(awk -F'\t' '$3 == "schedulesdirect1" {print $0; exit 0;}' </tmp/videosource.txt)
- /bin/rm -f /tmp/videosource.txt
- if [ -n "$dd_src" ]; then
- # we have a chance at getting a usable locale from the schedulesdirect data
- cd /usr/LH/
-
- SCHEDULESDIRECT_USERNAME=$(echo "$dd_src" | cut -f4)
- SCHEDULESDIRECT_PASSWORD=$(echo "$dd_src" | cut -f7)
-
- sed -i "s/<userName>.*<\/userName>/<userName>$SCHEDULESDIRECT_USERNAME<\/userName>/" xtvd.xml
- sed -i "s/<password>.*<\/password>/<password>$SCHEDULESDIRECT_PASSWORD<\/password>/" xtvd.xml
- datadirect-parse.pl &> /dev/null
-
- SQL_LocaleCode=`grep -i postalCode \`ls -1tr *xml | tail -1\` | perl -e '%zips=""; while(<>) { split(/postalCode=/); @_[1] =~ m/(\d{5})/; if ($1) { $zips{$1}=$1; } } @keys = keys %zips; if ($#keys == 1) { print values %zips,"\n"; }'`
-
- if [ "$SQL_LocaleCode" == "" ]; then # zipcode was ambiguous or was not extractable
- echo -e "\nPlease enter your US zipcode or Canadian Postal Code:"
- read SQL_LocaleCode
- fi
- echo $SQL_LocaleCode > /tmp/locale.txt # remember this just long enough to make use of it in PostSQLTweaker.sh
- fi
-}
diff --git a/abs/core/tweaker/bin/create-linhes-sql.sh b/abs/core/tweaker/bin/create-linhes-sql.sh
deleted file mode 100755
index 478eed0..0000000
--- a/abs/core/tweaker/bin/create-linhes-sql.sh
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/bin/bash
-
-# Written by Bob Igo from the MythTV Store at http://MythiC.TV
-# Email: bob@stormlogic.com
-#
-# If you run into problems with this script, please send me email
-
-# PURPOSE:
-# --------------------------
-# This script automates the creation of a new LinHES.sql based
-# on the contents of the current mythconverg database.
-
-if [ `whoami` != "root" ]; then
- echo "This script must be run as root."
- exit -1
-fi
-
-# Every file we may create, edit, or delete
-###########################################
-export LINHES_SQL_PROTOTYPE=/data/database/LinHES.sql-new
-export MYTHTV_SQL_OLD=/data/database/LinHES.sql-backup
-export TMPFILE=/tmp/LinHES.sql-tmp
-
-echo ""
-echo " ** ONLY CESMAN SHOULD EVER NEED TO RUN THIS SCRIPT **"
-echo ""
-echo " WARNING: This will archive your mythconverg database to a file,"
-echo " then delete mythconverg from MySQL. It will then launch mythbackend"
-echo " to repopulate mythconverg, with a goal of creating the smallest-possible"
-echo " mythconverg database that MythTV can load without complanining."
-echo " Every attempt will be made to restore your original database, but"
-echo " ***no guarantee is made***."
-echo ""
-echo " ** ONLY CESMAN SHOULD EVER NEED TO RUN THIS SCRIPT **"
-echo ""
-
-echo -n "Proceed? [y|N] "
-read FEAR
-
-if [ "$FEAR" != "y" ] && [ "$FEAR" != "Y" ]; then
- echo "***NO OPERATION WILL BE PERFORMED***"
- exit
-fi
-
-# Archive the current mythconverg table from the MySQL database:
-echo "DROP DATABASE IF EXISTS mythconverg; CREATE DATABASE mythconverg; USE mythconverg;" > $MYTHTV_SQL_OLD
-mysqldump mythconverg >> $MYTHTV_SQL_OLD
-
-# delete the mythconverg database from MySQL
-killall mythbackend
-mysql -e "DROP DATABASE IF EXISTS mythconverg; CREATE DATABASE mythconverg;"
-
-mythtv-setup --geometry 640x480 2>&1 > /dev/null &
-
-echo "*"
-echo "* 1) PICK ANY LANGUAGE WHEN PROMPTED."
-echo "* 2) AGREE TO THE SCHEMA UPGRADE."
-echo "* 3) PRESS ENTER HERE WHEN THE MYTHTV-SETUP MENU LAUNCHES."
-echo "*"
-read KEYPRESS
-
-mysql -e "USE mythconverg; \
-INSERT INTO settings VALUES ('SecurityPin','0000','"`hostname`"'); \
-INSERT INTO settings VALUES ('BackendServerIP','127.0.0.1','"`hostname`"'); \
-INSERT INTO storagegroup VALUES ('\N', 'Default','"`hostname`"','/');"
-
-echo "*"
-echo "* 1) EXIT MYTHTV-SETUP"
-echo "* 2) PRESS ENTER HERE WHEN READY TO CONTINUE."
-echo "*"
-read KEYPRESS
-
-# let mythbackend repopulate mythconverg from scratch
-mythbackend 2>&1 > /dev/null &
-sleep 3
-
-mythfrontend --geometry 640x480 2>&1 > /dev/null &
-echo "*"
-echo "* 1) EXIT MYTHFRONTEND"
-echo "* 2) PRESS ENTER HERE WHEN READY TO CONTINUE."
-echo "*"
-read KEYPRESS
-
-killall mythfrontend
-killall mythbackend
-
-# save off the mostly-pristine MythTV myconverg database
-# (It would be 100% pristine, but mythbackend won't run unless BackendServerIP is given a value,
-# and both mythtv-setup and the mythfrontend won't proceed until you've picked a language.)
-
-# Edit the pristine MythTV mythconverg database so that we can use it to prime
-# the database during a semi-automated LinHES installation.
-
-SQL_FILENAME=$LINHES_SQL_PROTOTYPE
-
-# load our library functions
-. /usr/LH/tweaker/bin/SQLtweaker.sh
-#
-echo "*"
-echo "* Writing $LINHES_SQL_PROTOTYPE..."
-echo "*"
-#
-echo "/*" > $LINHES_SQL_PROTOTYPE
-echo " * MythTV raw SQL creation file." >> $LINHES_SQL_PROTOTYPE
-echo " */" >> $LINHES_SQL_PROTOTYPE
-echo "" >> $LINHES_SQL_PROTOTYPE
-echo "-- #################################################################### --" >> $LINHES_SQL_PROTOTYPE
-echo "-- Drop any initial database:" >> $LINHES_SQL_PROTOTYPE
-echo "DROP DATABASE IF EXISTS mythconverg;" >> $LINHES_SQL_PROTOTYPE
-echo "" >> $LINHES_SQL_PROTOTYPE
-echo "-- #################################################################### --" >> $LINHES_SQL_PROTOTYPE
-echo "-- Create an empty new database:" >> $LINHES_SQL_PROTOTYPE
-echo "CREATE DATABASE mythconverg;" >> $LINHES_SQL_PROTOTYPE
-echo "GRANT ALL ON mythconverg.* TO mythtv@localhost IDENTIFIED BY \"mythtv\";" >> $LINHES_SQL_PROTOTYPE
-echo "FLUSH PRIVILEGES;" >> $LINHES_SQL_PROTOTYPE
-echo "GRANT CREATE TEMPORARY TABLES ON mythconverg.* TO mythtv@localhost IDENTIFIED BY \"mythtv\";" >> $LINHES_SQL_PROTOTYPE
-echo "FLUSH PRIVILEGES;" >> $LINHES_SQL_PROTOTYPE
-echo "USE mythconverg;" >> $LINHES_SQL_PROTOTYPE
-echo "" >> $LINHES_SQL_PROTOTYPE
-echo "-- #################################################################### --" >> $LINHES_SQL_PROTOTYPE
-echo "-- Create all the tables:" >> $LINHES_SQL_PROTOTYPE
-echo "" >> $LINHES_SQL_PROTOTYPE
-
-# Dump the database, removing all unneeded DB inserts - when LinHES launches mythtv-setup and mythfrontend,
-# anything undefined will be given default values by the applications, except for the INSERTs below.
-mysqldump mythconverg | sed -e "s/`hostname`/MythTVhost'/g" -e "s/AUTO_INCREMENT=[0-9]* //g" > $TMPFILE
-grep -v "INSERT INTO" $TMPFILE >> $LINHES_SQL_PROTOTYPE
-sed "s/,(/,\n(/g" $TMPFILE | grep DBSchema | sed "s/\(.*\)NULL),/INSERT INTO settings VALUES \1'MythTVhost');/g" >> $LINHES_SQL_PROTOTYPE
-echo "INSERT INTO settings VALUES ('SecurityPin','0000','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
-echo "INSERT INTO settings VALUES ('BackendServerIP','127.0.0.1','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
-echo "INSERT INTO settings VALUES ('MasterServerIP','127.0.0.1','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
-echo "INSERT INTO settings VALUES ('MasterServerPort','6543','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
-echo "INSERT INTO settings VALUES ('Theme', 'LinHES','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
-echo "INSERT INTO settings VALUES ('HostMyhostname', 'type_hostname_here','MythTVhost');" >> $LINHES_SQL_PROTOTYPE
-echo "INSERT INTO storagegroup VALUES ('\N', 'Default','MythTVhost','/');" >> $LINHES_SQL_PROTOTYPE
-
-rm $TMPFILE
-
-#
-echo "*"
-echo "...DONE"
-echo "*"
-#
-
-echo "*"
-echo "* PRESS ENTER HERE WHEN READY TO RESTORE THE OLD DATABASE"
-echo "* AND RE-LAUNCH MYTHBACKEND"
-echo "*"
-read KEYPRESS
-
-#
-echo "Restoring original database from $MYTHTV_SQL_OLD..."
-#
-# Restore the original mythconverg database
-cat $MYTHTV_SQL_OLD | mysql 2>&1 > /dev/null
-#
-echo "...DONE"
-#
-
-#
-echo "restarting mythbackend..."
-#
-mythbackend &
-#
-echo "...DONE"
-#
diff --git a/abs/core/tweaker/bin/tweaker.pl b/abs/core/tweaker/bin/tweaker.pl
deleted file mode 100755
index 28519df..0000000
--- a/abs/core/tweaker/bin/tweaker.pl
+++ /dev/null
@@ -1,333 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-package Tweaker;
-
-use strict;
-use Getopt::Lucid qw( :all );
-# see http://search.cpan.org/~dagolden/Getopt-Lucid-0.16/lib/Getopt/Lucid.pm for usage details
-use XML::Twig;
-# see http://xmltwig.com for usage details
-use Log::Log4perl qw(get_logger);
-
-# see http://search.cpan.org/~mschilli/Log-Log4perl-1.14/lib/Log/Log4perl.pm for usage details
-# http://www.perl.com/pub/a/2002/09/11/log4perl.html is highly recommended as well
-
-use Tweaker::Script;
-use Tweaker::Definitions;
-
-# To install the above modules:
-# --
-# sudo cpan install Getopt::Lucid XML::Twig Log::Log4perl List::Member
-# choose the defaults for all options, agree to install all dependencies
-# Copy TweakerDefinitions.pm to /etc/perl
-
-use vars qw($debug);
-use vars qw($interactivity);
-use vars qw($logfile);
-use vars qw($twig);
-
-my $bottom = Tweaker::Definitions::get_global_variable_value("bottom");
-my $optional = Tweaker::Definitions::get_global_variable_value("optional");
-my $minimal = Tweaker::Definitions::get_global_variable_value("minimal");
-my $null = Tweaker::Definitions::get_global_variable_value("null");
-
-# As each tweak tag is processed, this subroutine is called. Here we will
-# see if any previous tweak tag had the same name attribute. If so, we will
-# replace the previous tweak tag with this new tweak tag's contents.
-sub uniquify_tweaks {
- my ($twig, $this_tweak) = @_;
- my $tweak_name = $this_tweak->att('name');
- my $previous_tweak = $this_tweak->prev_sibling( qq{tweak[\@name="$tweak_name"]});
- my $logger = get_logger('tweaker');
-
- # If the tweak's name is found elsewhere, replace the first
- # instance with the latest one, then delete the latest one.
- if ($previous_tweak) {
- my $log_entry;
- # Requirement 6.3.1
- $log_entry = sprintf("\tReplacing\n\t\t%s\n\twith\n\t\t%s\n", $previous_tweak->sprint, $this_tweak->sprint);
- $logger->info($log_entry);
- $this_tweak->cut;
- $this_tweak->replace($previous_tweak);
- }
-}
-
-$twig = XML::Twig->new(load_DTD => 1,
- expand_external_ents => 1,
- twig_handlers => { 'tweak' => \&uniquify_tweaks }
- );
-
-# Requirement 4.2
-# Print advice on usage and invocation.
-sub help () {
- my $logger = get_logger('tweaker');
- $logger->fatal("USAGE:\n$0 --tcf file1.tcf [--tcf file2.tcf ...] [--help]");
- exit;
-}
-
-sub print_tcf {
- my(@tweaks) = @_;
- my $logger = get_logger('tweaker');
-
- $logger->debug('<?xml version="1.0"?>'); # print the XML declaration
- $logger->debug('<!DOCTYPE stats SYSTEM "tcf.dtd">');
- $logger->debug('<tcf>'); # then the root element start tag
-
- foreach my $tweak (@tweaks) { # the list of tweaks
- $logger->debug($tweak->sprint); # print the xml content of the element
- }
-
- $logger->debug("</tcf>\n"); # close the document
-}
-
-# For each tweak, invoke the option that was selected.
-# Requirement 9.1.5
-# Requirement 13
-sub invoke_selected_options {
- my @tweaks= $twig->root->children; # get the tweak list
- my $logger = get_logger('tweaker');
- my $has_selected_option;
- my $recommendationlevel = $bottom;
-
- foreach my $tweak (@tweaks) { # the list of tweaks
- if ($tweak->att('name')) {
- $has_selected_option=0;
- $logger->debug("TWEAK ", $tweak->att('name'));
- my @options = $tweak->descendants('option');
- foreach my $option (@options) {
- if ($option->first_child('selected')) {
- $has_selected_option++;
- $recommendationlevel = $option->first_child('selected')->text;
- $logger->info("\t", $tweak->att('name'), " : ", $option->att('name'), " is selected (recommendationlevel is ", $recommendationlevel, ")");
- # If the selected option is merely $optional, and we are in $minimal interactivity mode, we
- # really don't know if this option is useful for the user. Just skip it.
- if (($recommendationlevel == $optional) && ($interactivity eq $minimal)) { # UI Requirement 9.1.4
- $logger->debug("\tSKIPPING");
- next;
- } elsif (($tweak->first_child('script')->text) &&
- ($tweak->first_child('script')->text) ne $null) {
- $logger->debug("\tRUNNING");
- my $command = sprintf("%s --implement %s", $tweak->first_child('script')->text, $option->att('name'));
- $logger->info("\t\tRunning '$command' to run a tweak.");
-
- open(COMMAND, "$command|");
- while(<COMMAND>) { # should only be one line of results
- if ($_) {
- $logger->debug("script returned text: ", $_);
- } else {
- $logger->debug("no return value from script");
- }
- }
- close(COMMAND);
- } else {
- $logger->debug("\tNO SCRIPT TO RUN");
- }
- }
- }
- if ($has_selected_option == 0) {
- $logger->debug("\tNO OPTION SELECTED");
- }
- }
- }
-}
-
-
-# Parses an XML file in TCF format, loading its information into memory.
-# Rely on the DTD to mandate required tags.
-sub parse_tcf {
- my $this_tcf = shift(@_);
- my $logger = get_logger('tweaker');
-
- $logger->info("Parsing $this_tcf...");
- $twig->safe_parsefile($this_tcf) || $logger->fatal("Bad TCF $this_tcf: $@");
- if ($@) {
- return 0;
- }
- # ??? For Requirement 5.1, we need to catch parse errors here
- # $twig now has the parsed $this_tcf
- $logger->info("DONE parsing $this_tcf");
-
- my $root= $twig->root; # get the root of the twig (tcf)
- my @tweaks= $root->children; # get the tweak list
-
- print_tcf(@tweaks) if $debug;
-
- return 1; # successfully parsed $this_tcf
-}
-
-sub parse_core_tcf {
- my ($core_tcf_pathname) = @_;
- my $logger = get_logger('tweaker');
-
- $logger->debug("core TCF pathname: $core_tcf_pathname");
-
- # Requirement 5.1
- if (!(parse_tcf($core_tcf_pathname))) {
- # Part of Requirement 6.4.1
- $logger->fatal("$0 requires at least one valid .tcf file.");
- $logger->fatal("$core_tcf_pathname, or a .tcf that it includes, did not parse.");
- exit;
- }
- # $twig->root->print;
-}
-
-sub process_parameters () {
- # Accept these parameters:
- # --
- my @parameters = (
- Switch("help")->anycase, # Requirement 4.2
- Switch("debug")->anycase,
- # part of Requirement 8
- Param("interactivity")->default($minimal), # side-effect of UI Requirement 9 for v0.7
- );
-
- my $opt = Getopt::Lucid->getopt( \@parameters );
- my $help = $opt->get_help;
- $debug = $opt->get_debug;
- $interactivity = $opt->get_interactivity;
-
- if ($interactivity ne $minimal) { # side-effect of UI Requirement 9 for v0.7
- my $logger = get_logger('tweaker');
- $logger->warn("This version of Tweaker ignores requests for $interactivity interactivity and defaults to $minimal.");
- $interactivity = $minimal;
- }
-
- if ( $help > 0 ) {
- help;
- }
-}
-
-# Requirement 6.6: Tweaker shall determine Recommendation Levels and default Options
-# Requirements 6.6.1 and 6.6.2
-sub post_process_tweaks {
- my $logger = get_logger('tweaker');
-
- # Requirement 6.6.1
-
- my $root= $twig->root; # get the root of the twig (tcf)
- my @tweaks= $root->children; # get the tweak list
-
- foreach my $tweak (@tweaks) {
- $logger->debug("#######");
- my @options = $tweak->descendants('option');
-
- my $name_of_most_recommended_option="";
- my $most_recommended_option;
- my $highest_recommendationlevel=$bottom;
-
- foreach my $option (@options) {
- $logger->debug("===== OPTION");
- $logger->debug($option->sprint);
-
- my $recommendationlevel = $option->first_child('recommendationlevel');
- if ($recommendationlevel) {
- # Requirement 6.6.1.1
- $logger->debug("\t+++");
- $logger->debug("\tUsing predefined recommendation level:", $recommendationlevel->text);
- } else {
- # Requirement 6.6.1.4
- my $result="optional";
- my $explanation="";
-
- if (($tweak->first_child('script')->text) &&
- ($tweak->first_child('script')->text) ne $null) {
- # Requirement 6.6.1.2
- $logger->debug("\t---");
- $logger->debug("\tThis has no defined recommendation level.");
-
- # Get the name of the script for this tweak and invoke it with the name of the option.
- my $command = sprintf("%s --poll %s", $tweak->first_child('script')->text, $option->att('name'));
- $logger->debug("\t\tRunning '$command' to see what it should be.");
- # Create a recommendationlevel element and populate it with the script's return value.
-
- open(COMMAND, "$command|");
- while(<COMMAND>) { # should only be one line of results
- $logger->debug("Got this: ", $_);
- if ($_) {
- chop;
- my @text = split(/\|/);
- $result = $text[0];
- if ($text[1]) {
- $explanation = $text[1];
- }
- }
- }
- close(COMMAND);
- }
- # Requirement 6.6.1.3
- $option->set_field ( 'recommendationlevel', $result );
- if ($explanation) {
- $option->set_field ( 'explanation', $explanation );
- }
- #$logger->debug("*** Paste results: ", $option->sprint);
- }
- # Requirement 6.6.2 : Auto-select the Option with the highest non-negative Recommendation Level.
- # Requirement 6.6.2.1 : If there is a tie, Tweaker shall auto-select the first Option with the highest Recommendation Level.
- $recommendationlevel = $option->first_child('recommendationlevel');
- if ($recommendationlevel) {
- if ($name_of_most_recommended_option) {
- $logger->debug("comparing ", $name_of_most_recommended_option, "'s recommendationlevel ($highest_recommendationlevel) to ", $recommendationlevel->text, " (",Tweaker::Definitions::get_global_variable_value($recommendationlevel->text),")");
- } else {
- $logger->debug("considering recommendationlevel ", $recommendationlevel->text, " (",Tweaker::Definitions::get_global_variable_value($recommendationlevel->text),")");
- }
- if (($highest_recommendationlevel < Tweaker::Definitions::get_global_variable_value($recommendationlevel->text))
- && (Tweaker::Definitions::get_global_variable_value($recommendationlevel->text) >= 0)) {
- $highest_recommendationlevel = Tweaker::Definitions::get_global_variable_value($recommendationlevel->text);
- $name_of_most_recommended_option = $option->att('name');
- $most_recommended_option = $option;
- $logger->debug("now recommending: ", $name_of_most_recommended_option, " at level ", $highest_recommendationlevel);
- }
- } else {
- $logger->error("No recommendationlevel defined for ", $option->att('name'));
- }
- # Select the best option, based on recommendation level
- }
- if ($most_recommended_option) {
- $logger->debug("(1) BEST OPTION: ", $most_recommended_option->sprint);
- $most_recommended_option->set_field ( 'selected', $highest_recommendationlevel );
- }
- }
-}
-
-sub main () {
- my $tweaker_root;
-
- if (!($tweaker_root = Tweaker::Script::get_environment_variable("\$TWEAKER_ROOT"))) {
- Log::Log4perl->easy_init();
- my $logger = get_logger();
- $logger->fatal("\$TWEAKER_ROOT not defined. Exiting.");
- exit -1;
- }
- my $core_tcf_path = "$tweaker_root/tcf";
- my $core_tcf = "tweaker-core.tcf";
- my $core_tcf_pathname = "$core_tcf_path/$core_tcf";
- my $log4perl_conf = "$tweaker_root/log4perl.conf";
-
- Log::Log4perl::init_and_watch($log4perl_conf,10);
-
- process_parameters;
- parse_core_tcf($core_tcf_pathname);
- post_process_tweaks;
- # ??? need to add Requirement 11 here
- invoke_selected_options;
-}
-
-main;
-
-#my @tweaks= $twig->root->children; # get the tweak list
-#print_tcf(@tweaks) if $debug;
diff --git a/abs/core/tweaker/bin/twk_EXAMPLE.pl b/abs/core/tweaker/bin/twk_EXAMPLE.pl
deleted file mode 100755
index 7dfb075..0000000
--- a/abs/core/tweaker/bin/twk_EXAMPLE.pl
+++ /dev/null
@@ -1,134 +0,0 @@
-# This is not an executable. It provides an example of how you would implement a
-# Tweaker Script. For details on the functions provided by Tweaker::Script,
-# such as execute_shell_command, get_environment_variable, connect_to_db, etc.
-# see Tweaker/Script.pm
-#
-# See the corresponding EXAMPLE.tcf for the Tweak that would correspond to this script.
-
-#
-# BEGIN EXAMPLE
-#
-
-#!/usr/bin/perl -w
-
-# Copyright 2009 YOUR NAME HERE
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-# List all the options that this script supports. Make sure it matches what's in
-# the corresponding .tcf entry.
-set_known_options( 'option1', 'option2', 'option3' );
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- # If you need a subroutine that is specific to the task of implementing an option,
- # define it inside the above subroutine.
- sub my_subroutune {
- # ...
- }
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) { # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
- switch ($option) {
- # List all the options that this script supports. You can have as many as you like.
- case "option1" {
- # Perform the actions necessary to implement option1.
- # You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database.
- # You may want to call execute_shell_command to make changes from the shell.
- }
- case "option2" {
- # Perform the actions necessary to implement option2.
- # You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database.
- # You may want to call execute_shell_command to make changes from the shell.
- }
- case "option3" {
- # Perform the actions necessary to implement option3.
- # You may want to call do_query, change_or_make_setting, or change_or_make_entry to make changes to the MySQL database.
- # You may want to call execute_shell_command to make changes from the shell.
- }
- }
- } else { # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
- my $logger = get_logger('tweaker.script');
- $logger->error("ERROR: Unable to connect to mythconverg database");
- $logger->error("ERROR: Unable to implement option $option.");
- exit -1; # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
- } # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
- disconnect_from_db(); # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
-}
-
-# Poll the system to see what recommendationlevel the given option has on the system.
-sub poll_options {
- my($option) = @_;
-
- # If you need a subroutine that is specific to the task of implementing an option,
- # define it inside the above subroutine.
- sub my_subroutune {
- # ...
- }
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) { # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
- switch ($option) {
- # List all the options that this script supports. You can have as many as you like.
- case "option1" {
- # Perform the actions necessary to determine a recommendation level for option1.
- # You may want to call do_query to query to the MySQL database.
- # You may want to call execute_shell_command to check things in the shell.
- # When you're done, you can use the recommendation_level subroutine to return the
- # resulting recommendation level.
- }
- case "option2" {
- # Perform the actions necessary to determine a recommendation level for option2.
- # You may want to call do_query to query to the MySQL database.
- # You may want to call execute_shell_command to check things in the shell.
- # When you're done, you can use the recommendation_level subroutine to return the
- # resulting recommendation level.
- }
- case "option3" {
- # Perform the actions necessary to determine a recommendation level for option3.
- # You may want to call do_query to query to the MySQL database.
- # You may want to call execute_shell_command to check things in the shell.
- # When you're done, you can use the recommendation_level subroutine to return the
- # resulting recommendation level.
- }
- }
- } else { # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
- exit -1; # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
- } # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
- disconnect_from_db(); # You may not have to do this. It's only when you need to change MySQL settings for MythTV.
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters; # mandatory
-
-#
-# END EXAMPLE
-#
diff --git a/abs/core/tweaker/bin/twk_RAM.pl b/abs/core/tweaker/bin/twk_RAM.pl
deleted file mode 100755
index 2eea598..0000000
--- a/abs/core/tweaker/bin/twk_RAM.pl
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-set_known_options( 'low', 'medium', 'high' );
-
-# ??? Need to make this update a class variable so it only ever needs to run once.
-sub determine_RAM_size() {
- my $result = execute_shell_command("cat /proc/meminfo | grep MemTotal");
- if ($result =~ m/.*MemTotal:\s*(\d+) .*/) {
- return $1;
- }
- return 0;
-}
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- # MythTV's GUI allows setting this value in multiples of 4700kB.
- # We will arbitrarily set the HDRingbufferSize to the value that is closest to
- # 3.3% of the total RAM.
- my $RAM_size = determine_RAM_size();
- my $ringbuffer_size = int($RAM_size * 0.033 / 4700) * 4700;
- change_or_make_setting('HDRingbufferSize', $ringbuffer_size) || exit -1;
-
- # change any existing mplayer cache setting to one based on available RAM size
- # We will arbitrarily set the cache size to 1/16 of available RAM
- my $cachesize = int($RAM_size / 16);
- execute_shell_command("if [[ `grep -e cache.*=.*\$ /etc/mplayer/mplayer.conf` ]]; then sed -i 's/cache.*=.*/cache=$cachesize/g' /etc/mplayer/mplayer.conf; else echo 'cache=$cachesize' >> /etc/mplayer/mplayer.conf; fi") || exit -1;
-
- # If there's enough RAM, make mtd run by default.
- # ??? unimplemented
- } else {
- exit -1;
- }
- disconnect_from_db();
-}
-
-# Poll the system to see what recommendationlevel the given option has on the system.
-sub poll_options {
- my($option) = @_;
- my $fudge_factor = .985;
- my $low_RAM = int($fudge_factor * 512*1024); # ~512MB
- my $medium_RAM = int($fudge_factor * 1024*1024); # ~1GB
- my $high_RAM = int($fudge_factor * 2048*1024); # ~2GB
-
- threshold_test($option, determine_RAM_size(), "RAM", $low_RAM, $medium_RAM, $high_RAM);
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_audio.pl b/abs/core/tweaker/bin/twk_audio.pl
deleted file mode 100755
index 47a2415..0000000
--- a/abs/core/tweaker/bin/twk_audio.pl
+++ /dev/null
@@ -1,390 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-set_known_options( 'analogstereo', 'analogsurround', 'digital' );
-
-# Poll the system to find the digital output device.
-sub poll_for_digital_output_device {
- my $card=-1;
- my $device=-1;
- my $poll_command = "aplay -l | grep card";
-
- my @digital_matches = ( "digital", "IEC958" );
-
- my $results = execute_shell_command($poll_command);
- if ($results) {
- foreach my $digital_match (@digital_matches) {
- if ($results =~ /card (\d):.*device (\d).*$digital_match.*/i) {
- $card = $1;
- $device = $2;
- }
- }
- } else {
- recommendation_level("not available", "No audio devices detected.");
- exit(-1);
- }
- return ($card, $device);
-}
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
- use vars qw($card);
- use vars qw($device);
- ($card, $device) = poll_for_digital_output_device;
- use vars qw($asound_conf);
- $asound_conf = "/etc/asound.conf";
- use vars qw($mplayer_conf);
- $mplayer_conf = "/etc/mplayer/mplayer.conf";
- use vars qw($xine_conf);
- $xine_conf = "/home/mythtv/.xine/config";
-
- sub generate_asound_conf {
- my($option) = @_;
- my $command1;
- my $command2;
-
- switch ($option) {
- case "analogstereo" {
- # Analog stereo usually needs no asound.conf, but sometimes it needs to be there to
- # support more than one app using sound simultaneously.
- $command1 = "[ -e $asound_conf ] && /bin/cp $asound_conf $asound_conf-TWEAKERBACKUP";
- # Assumption: The proper analog device is always device 0.
- if ($card >= 0) {
- $command2 = "[ -e $asound_conf ] && sed -i 's/hw:.,./hw:$card,0/g' $asound_conf";
- } else {
- $command2 = "[ -e $asound_conf ] && sed -i 's/hw:.,./hw:0,0/g' $asound_conf";
- }
- }
- case "analogsurround" {
- # Not supported yet.
- }
- case "digital" {
- # Digital audio starts with an asound.conf that references the
- # hardware address on the sound device corresponding to digital
- # output.
- $command1 = "/bin/cp \$TWEAKER_ROOT/fs$asound_conf /etc/";
- if (($card >= 0) && ($device >= 0)) {
- $command2 = "[ -e $asound_conf ] && sed -i 's/hw:.,./hw:$card,$device/g' $asound_conf";
- } else {
- my $logger = get_logger('tweaker.script');
- $logger->error("ERROR: Unable to poll for digital sound output device.");
- exit(-1);
- }
- }
- }
- if (my $error = execute_shell_command($command1)) {
- my $logger = get_logger('tweaker.script');
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
- if (my $error = execute_shell_command($command2)) {
- my $logger = get_logger('tweaker.script');
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
- my $logger = get_logger('tweaker.script');
- $logger->info("Generated $asound_conf for $option audio.");
- }
-
- sub edit_mplayer_conf {
- my($option) = @_;
- # delete any old entries that Tweaker made, relevant to this particular edit
- my $delete_old_tweaker_edits = "[ -e $mplayer_conf ] && sed -i '/^.*a[o,c,f].*=.*#TWEAKER/d' $mplayer_conf && sed -i '/^speed.*=.*#TWEAKER/d' $mplayer_conf";
- # comment out old entries that some other process may have made
- my $comment_out_external_edits = "[ -e $mplayer_conf ] && sed -i 's/^\\(a[o,c,f].*=.*\\)/#\\1/g' $mplayer_conf && sed -i 's/^\\(speed.*=.*\\)/#\\1/g' $mplayer_conf";
- my $command1;
- my $command2="";
- ($card, $device) = poll_for_digital_output_device;
- my $logger = get_logger('tweaker.script');
-
- if (my $error = execute_shell_command("$delete_old_tweaker_edits && $comment_out_external_edits")) {
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
-
- switch($option) {
- case "analogstereo" {
- # No additional work needed; the above commands comment out ao and ac entries,
- # leaving a baseline which works with analog stereo.
- }
- case "analogsurround" {
- # Not supported yet.
- }
- case "digital" {
- $command2 = "echo -e 'ac=hwac3,hwdts, #TWEAKER\nao=alsa:device=plughw=$card.$device #TWEAKER' >> $mplayer_conf";
- if (my $error = execute_shell_command($command2)) {
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
-
- my @digital_audio_device_patterns = (
- [
- # Asus T3-M2NC51PV onboard audio
- ".*0403.*10de.*026c.*1043.*821f", "T3-M2NC51PV", "[ -e $mplayer_conf ] && sed -i 's/plughw.* #TWEAKER/spdif #TWEAKER/g' $mplayer_conf"
- ]
- );
-
- foreach my $pattern_and_workaround_command (@digital_audio_device_patterns) {
- my $pattern=@$pattern_and_workaround_command[0];
- my $name=@$pattern_and_workaround_command[1];
- my $workaround_command=@$pattern_and_workaround_command[2];
-
- if (execute_shell_command('lspci -mn | grep -e "'.$pattern.'"')) {
- $logger->info("Applying workaround for $name audio");
- execute_shell_command($workaround_command);
- last;
- }
- }
- }
- }
- # for all options
- $command2 = "echo -e 'af=scaletempo=stride=30:overlap=.50:search=10 #TWEAKER\nspeed=1.0 #TWEAKER' >> $mplayer_conf";
- if (my $error = execute_shell_command($command2)) {
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
-
- $logger->info("Edited $mplayer_conf for $option audio.");
- }
-
- sub edit_xine_conf {
- my($option)=@_;
- # delete any old entries that Tweaker made, relevant to this particular edit
- my $delete_old_tweaker_edits = "[ -e $xine_conf ] && sed -i -e '/^.*audio.output.speaker_arrangement.*#TWEAKER/d' -e '/^.*audio.synchronization.passthrough_offset.*#TWEAKER/d' $xine_conf";
- # comment out entries that some other process may have made
- my $comment_out_external_edits = "[ -e $xine_conf ] && sed -i -e 's/^\\(audio.output.speaker_arrangement.*\\)/#\\1/g' -e 's/^\\(audio.synchronization.passthrough_offset.*\\)/#\\1/g' $xine_conf";
- my $logger = get_logger('tweaker.script');
-
- if (my $error = execute_shell_command("$delete_old_tweaker_edits && $comment_out_external_edits")) {
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
-
- my $command1;
-
- switch($option) {
- case "analogstereo" {
- $command1 = "echo 'audio.output.speaker_arrangement:Stereo 2.0 #TWEAKER' >> $xine_conf";
- }
- case "analogsurround" {
- # Not supported yet.
- }
- case "digital" {
- $command1 = "echo -e 'audio.output.speaker_arrangement:Pass Through #TWEAKER\naudio.synchronization.passthrough_offset:$device #TWEAKER' >> $xine_conf";
- }
- }
- if (my $error = execute_shell_command($command1)) {
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
- $logger->info("Edited $xine_conf for $option audio.");
- }
-
- sub reload_modules {
- my($option) = @_;
- my $command = "update-modules; depmod -a; rmmod snd-pcm-oss; modprobe snd-pcm-oss";
- my $logger = get_logger('tweaker.script');
-
- if (my $error = execute_shell_command($command)) {
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
- $logger->info("Reloaded sound modules for $option audio.");
- }
-
- sub set_mixer_values {
- my($option) = @_;
- my $logger = get_logger('tweaker.script');
-
- # Some sound devices work poorly in their default state, so we will load in a known-good
- # state for them.
-
- my @digital_audio_device_patterns = (
- [
- # Chaintech AV-710
- ".*0401.*1412.*1724.*1412.*1724", "AV710"
- ],
- [
- # Realtek ALC888 High Definition onboard Audio
- ".*0403.*10de.*055c.*1565.*820c", "ALC888"
- ]
- );
-
- foreach my $pattern_and_name_pairing (@digital_audio_device_patterns) {
- my $name=@$pattern_and_name_pairing[1];
- my $pattern=@$pattern_and_name_pairing[0];
-
- if (execute_shell_command('lspci -mn | grep -e "'.$pattern.'"')) {
- $logger->info("Applying ALSA state workaround for $name audio");
- execute_shell_command("/bin/cp \$TWEAKER_ROOT/fs/var/lib/alsa/$name.asound.state /var/lib/alsa/asound.state");
- execute_shell_command("alsactl restore");
- last;
- }
- }
-
- # Now, do what works for all sound devices.
-
- my $command = "su - mythtv -c \"aumix -v 70 -m 0 -l 0 -l R -w 70\""; # ok for analog and digital
-
- if (my $error = execute_shell_command($command)) {
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
-
- if ("$option" eq "digital") {
- # Poll system for IEC958 controls, and try to turn them all 'on'
- $command = "amixer scontrols | grep IEC958";
- my @results = split('\n', execute_shell_command($command));
- foreach my $line (@results) {
- if ($line =~ /Simple mixer control (.*),.*/i) {
- $command = "su - mythtv -c \"amixer set $1 on\""; # Tries to set all IEC958 devices to 'on'
- # but some are just placeholders and can't be turned 'on', therefore don't error out if we fail
- execute_shell_command($command);
- }
- }
- }
- execute_shell_command("alsactl store"); # persist the above change(s)
- $logger->info("Reset mixer volume levels for $option audio.");
- }
-
- sub edit_mythtv_configuration {
- my($option)=@_;
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- switch ($option) {
- case "analogstereo" {
- change_or_make_setting('AC3PassThru', '0') || exit -1;
- change_or_make_setting('DTSPassThru', '0') || exit -1;
- change_or_make_setting('MTDac3Flag', '0') || exit -1;
- change_or_make_setting('MythControlsVolume', '1') || exit -1;
- }
- case "analogsurround" {
- # Not supported yet.
- }
- case "digital" {
- change_or_make_setting('AC3PassThru', '1') || exit -1;
- change_or_make_setting('DTSPassThru', '1') || exit -1;
- change_or_make_setting('MTDac3Flag', '1') || exit -1;
- change_or_make_setting('MythControlsVolume', '0') || exit -1;
- }
- }
- change_or_make_setting('AudioOutputDevice', 'ALSA:default') || exit -1;
- change_or_make_setting('MixerDevice', 'ALSA:default') || exit -1;
- change_or_make_setting('MusicAudioDevice', 'default') || exit -1;
- } else {
- exit -1;
- }
- disconnect_from_db();
- }
-
- generate_asound_conf($option);
- edit_mplayer_conf($option);
- #edit_xine_conf($option);
- #reload_modules($option);
- edit_mythtv_configuration($option);
- set_mixer_values($option);
-}
-
-# Try to get a Recommendation Level for $option.
-sub poll_options {
- my($option) = @_;
- my @digital_audio_device_patterns = (
- [
- # Pattern matches for PCI IDs of perfect devices, comma-separated within the brackets
- [ ".*0403.*8086.*284b.*8086.*2504", # Intel DG965WH onboard audio
- ".*0403.*10de.*026c.*1043.*821f", # Asus T3-M2NC51PV onboard audio
- ".*0403.*8086.*293e.*8086.*3001" # Intel AusDragon onboard audio
- ],
- "optional|Your sound device works very well in digital mode. Unless you don't have a receiver that can accept digital inputs, you should use digital mode.",
- ],
- [
- # Pattern matches for PCI IDs of suboptimal devices, comma-separated within the brackets
- [ ".*0401.*1412.*1724.*1412.*1724", # Chaintech AV-710 PCI card (regressions in R5.5)
- ],
- "inadvisable|Your sound device is known to have some problems in digital mode, but you may try it if you like, starting at low volume in your receiver.",
- ],
- [
- [ ], # Leave blank for unknown devices
- "optional|Your sound device may or may not work well in digital mode. Please tell us if it works, and how well.",
- ]
- );
-
- switch ($option) {
- case "analogstereo" {
- my ($card, $device) = poll_for_digital_output_device;
- if (($card >= 0) && ($device >= 0)) { # A digital output device was detected.
- recommendation_level("optional");
- } else {
- recommendation_level("recommended", "You seem to have no digital output option. If this is not true, please tell us.");
- }
- }
- case "analogsurround" {
- my ($card, $device) = poll_for_digital_output_device;
- recommendation_level("unsupported", "No configuration data exists yet for this option.");
- }
- case "digital" {
- my ($card, $device) = poll_for_digital_output_device;
- if (($card >= 0) && ($device >= 0)) { # A digital output device was detected.
- my $recommendation_return_string;
- foreach my $pattern_and_recommendation_pairing (@digital_audio_device_patterns) {
- $recommendation_return_string=@$pattern_and_recommendation_pairing[1];
- foreach my $patterns (@$pattern_and_recommendation_pairing[0]) {
- foreach my $pattern (@$patterns) {
- if (execute_shell_command('lspci -mn | grep -e "'.$pattern.'"')) {
- recommendation_level($recommendation_return_string);
- return;
- }
- }
- }
- }
- # Because we didn't return a recommendation level above, return a default recommendation level.
- recommendation_level($recommendation_return_string);
- return;
- } else { # No digital output device was detected.
- recommendation_level("not available");
- }
- }
- }
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_cpu.pl b/abs/core/tweaker/bin/twk_cpu.pl
deleted file mode 100755
index 8d5e563..0000000
--- a/abs/core/tweaker/bin/twk_cpu.pl
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-set_known_options( 'low', 'medium', 'high' );
-
-# These values are in BOGOMIPS. They are arbitrary and will be refined, if possible,
-# as more data is collected. Obviously, BOGOMIPS are not the best CPU benchmarking
-# tool.
-my $rrd_threshold = 1650; # bogomips at or below this mean rrdtool is too much of a strain
-#my $rrd_threshold = 3365;
-
-my $low_threshold = 2500;
-my $medium_threshold = 4050;
-my $high_threshold = 7400;
-
-# Poll the system to find the CPU type. Currently, we use bogomips (the bogosity of which
-# is in the name itself) to guess how powerful the CPU is.
-sub get_CPU_strength {
- my $bogomips=0;
- my @results = split("\n", execute_shell_command("cat /proc/cpuinfo | grep bogomips"));
- foreach my $result (@results) { # Count the bogomips for each core. Again, this is rough.
- if ($result =~ /bogomips\s*:\s*(\d+.\d+)/) {
- $bogomips+=$1;
- }
- }
- return $bogomips;
-}
-
-# ??? Need to test for storage groups and LVM
-# Specific to KnoppMyth
-sub get_HDD_size {
- my @HDD_info = split(" +", execute_shell_command("df -h /myth | grep myth"));
-
- chop($HDD_info[1]);
- return($HDD_info[1] || 0);
-}
-
-#sub disable_rrdtool {
-#
-#}
-
-# Edit mplayer.conf to tell mplayer to drop video frames when necessary. This should do no harm
-# on systems that don't need the option, and it should make video watchable on those that do.
-sub edit_mplayer_conf {
- use vars qw($mplayer_conf);
- $mplayer_conf = "/etc/mplayer/mplayer.conf";
-
- # delete any old entries that Tweaker made, relevant to this particular edit
- my $delete_old_tweaker_edits = "[ -e $mplayer_conf ] && sed -i '/^.*hardframedrop.*=.*#TWEAKER/d' $mplayer_conf";
- # comment out old entries that some other process may have made
- my $comment_out_external_edits = "[ -e $mplayer_conf ] && sed -i 's/^\\(hardframedrop.*=.*\\)/#\\1/g' $mplayer_conf";
- my $command1;
- my $command2="";
- my $logger = get_logger('tweaker.script');
-
- if (my $error = execute_shell_command("$delete_old_tweaker_edits && $comment_out_external_edits")) {
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
-
- $command2 = "echo -e 'hardframedrop=true #TWEAKER' >> $mplayer_conf";
- if (my $error = execute_shell_command($command2)) {
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
-
- $logger->info("Edited $mplayer_conf to drop video frames when CPU is overloaded.");
-}
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- # ??? This will need some work to properly integrate with MythTV 0.21's own CPU-based playback settings.
- # For now, set profile to CPU++ no matter what CPU type, and just change what CPU++ provides.
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- switch ($option) {
- case "low" {
- change_or_make_setting('AutoCommflagWhileRecording', '0') || exit -1;
- change_or_make_setting('Theme', 'Iulius') || exit -1; # Low eye candy, high performance
- #change_or_make_setting('PreferredMPEG2Decoder', 'libmpeg2') || exit -1; # Least CPU usage, lowest quality
- #change_or_make_entry("displayprofiles", [["pref_decoder", "libmpeg2"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Least CPU usage, lowest quality
- change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU--') || exit -1; # best playback defaults for weak hardware
- # Should libmpeg2/ffmpeg be triggered based on CPU type? libmpeg2 is usually
- # recommended for AMD CPUs.
- # ??? when to use xvmc?
-
- # Weak CPUs may actually be too weak to run rrdtool without causing problems.
-# if (get_CPU_strength() <= $rrd_threshold) {
-# disable_rrdtool();
-# }
- }
- case "medium" {
- change_or_make_setting('AutoCommflagWhileRecording', '1') || exit -1;
- change_or_make_setting('Theme', 'LinHES') || exit -1; # Moderate eye candy, moderate performance
- #change_or_make_setting('PreferredMPEG2Decoder', 'libmpeg2') || exit -1; # Least CPU usage, lowest quality
- #change_or_make_entry("displayprofiles", [["pref_decoder", "libmpeg2"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Least CPU usage, lowest quality
- change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU+') || exit -1; # best playback defaults for average hardware
- # ??? when to use xvmc?
- }
- case "high" {
- change_or_make_setting('AutoCommflagWhileRecording', '1') || exit -1;
- # ??? Interacts with screen aspect ratio
- change_or_make_setting('Theme', 'LinHES') || exit -1; # Moderate eye candy, moderate performance
- #change_or_make_entry("displayprofiles", [["pref_decoder", "ffmpeg"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Most CPU usage, best quality
- #change_or_make_setting('PreferredMPEG2Decoder', 'ffmpeg') || exit -1; # Most CPU usage, best quality
- change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU++') || exit -1; # best playback defaults for powerful hardware
- # ??? when to use xvmc?
- }
- }
- change_or_make_setting('UseXvMcVld', '0') || exit -1;
- #change_or_make_entry("displayprofiles", [["pref_deint0", "onefield"]], [["profilegroupid", "1"], ["profileid", "1"]]) || exit -1; # Most CPU usage, best quality
- change_or_make_setting('OSDTheme', 'blootube-osd') || exit -1;
- change_or_make_setting('PlayBoxShading', '0') || exit -1;
- change_or_make_setting('PlaybackExitPrompt', '2') || exit -1;
- #edit_mplayer_conf(); # This was found to cause temporary picture freezing when skipping forward through playback, followed by out-of-sync audio and video
- } else {
- exit -1;
- }
- disconnect_from_db();
-}
-
-# Try to get a Recommendation Level for $option.
-sub poll_options {
- my($option) = @_;
-
- threshold_test($option, get_CPU_strength(), "CPU", $low_threshold, $medium_threshold, $high_threshold);
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_dragon.pl b/abs/core/tweaker/bin/twk_dragon.pl
deleted file mode 100755
index 21a9dc7..0000000
--- a/abs/core/tweaker/bin/twk_dragon.pl
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2008-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-# List all the options that this script supports. Make sure it matches what's in
-# the corresponding .tcf entry.
-set_known_options( 'all' );
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
- my $logger = get_logger('tweaker.script');
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- # Overrides SQL changes made in twk_tuners.pl
- # WARNING: Very big harccoded hack that chooses ATSC tuning over QAM.
- do_query("UPDATE cardinput SET sourceid='10' WHERE sourceid='20'") || return -1;
-
- # Use the most beautiful theme
- change_or_make_setting('Theme', 'blootube-wide') || exit -1;
- } else {
- my $logger = get_logger('tweaker.script');
- $logger->error("ERROR: Unable to connect to mythconverg database");
- $logger->error("ERROR: Unable to implement option $option.");
- exit -1;
- }
- disconnect_from_db();
-}
-
-# Poll the system to see what recommendationlevel the given option has on the system.
-sub poll_options {
- my($option) = @_;
- recommendation_level("recommended", "These tweaks benefit all Dragon users.");
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_fingerprint_hardware.sh b/abs/core/tweaker/bin/twk_fingerprint_hardware.sh
deleted file mode 100755
index 25111dd..0000000
--- a/abs/core/tweaker/bin/twk_fingerprint_hardware.sh
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/bash
-
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-# This script will grab USB and PCI data and dump it to a file for the
-# user to post.
-
-output_file=/tmp/fingerprint.txt
-maintainer="Human"
-thread=""
-
-Usage() {
- echo "USAGE:"
- echo `basename $0` " [-a]"
- echo "-a: advanced mode"
- echo
- echo "EXAMPLE: $0"
- exit 3
-}
-
-while getopts "a" FLAG ; do
- case "$FLAG" in
- a) ADVANCED_MODE=1;;
- *) Usage;;
- esac
-done
-
-check_for_root() {
- if [ `whoami` != "root" ]; then
- echo -n `basename $0`
- echo " must be run as root. Exiting.";
- exit;
- fi
-}
-
-poll_PCI() {
- echo \
-"#####
-# lspci -vv
-#####" >> $output_file
- lspci -vv >> $output_file
- echo "" >> $output_file
-
- echo \
-"#####
-# lspci -mn
-#####" >> $output_file
- lspci -mn >> $output_file
- echo "" >> $output_file
-}
-
-poll_USB() {
- echo \
-"#####
-# /proc/bus/usb/devices
-#####" >> $output_file
-cat /proc/bus/usb/devices >> $output_file
-}
-
-instruct() {
- echo "Your hardware fingerprint is in $output_file"
- echo -n "Please PM it to $maintainer"
- if [ "$thread" != "" ]; then
- echo " or post it to"
- echo -n "$thread"
- fi
- echo "."
- echo "It should be accompanied by a list of changes that you made to the baseline
-installation in order to improve MythTV on your hardware."
-
- echo "If you feel up to the task, feel free to prune out any entries that are for
-very low-level devices like memory controllers, USB subsystems, etc. before
-sending the fingerprint."
-}
-
-main() {
- check_for_root
- > $output_file
- poll_PCI
- poll_USB
- instruct
-}
-
-main
-
diff --git a/abs/core/tweaker/bin/twk_general.pl b/abs/core/tweaker/bin/twk_general.pl
deleted file mode 100755
index f89912c..0000000
--- a/abs/core/tweaker/bin/twk_general.pl
+++ /dev/null
@@ -1,590 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-set_known_options( 'all' );
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- # KnoppMyth-centric file-level tweaks
- sub file_tweaks {
- my($option) = @_;
-
- my @commands = (
- # keymap tweaks
- "twk_keymap.sh"
- );
-
- foreach my $command (@commands) {
- if (my $error = execute_shell_command($command)) {
- my $logger = get_logger('tweaker.script');
- $logger->error("$error");
- $logger->error("Unable to implement option $option with command $command.");
- }
- }
- return 1;
- }
-
- # Enhance the default MythTV SQL
- sub SQL_tweaks {
- my($option) = @_;
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- # ??? This also exists in mkmythdir - it should be centralized
- my $SQL_DirData="/myth"; # Top level dir. of structure,
- my $SQL_DirTV="$SQL_DirData/tv"; # TV Recordings,
- my $SQL_DirMusic="$SQL_DirData/music/"; # Music storage,
- my $SQL_DirGames="$SQL_DirData/games"; # Games dir,
- my $SQL_DirPics="$SQL_DirData/gallery"; # Pictures directory.
- my $SQL_DirTmp="$SQL_DirData/tmp"; # DVD temp
- my $SQL_DirVideo="$SQL_DirData/video"; # videos
-
- # ??? Eventually, put these into a text file so that 1) people can contribute without having to code, and 2) the data
- # stays separate from the code and can be re-used by other (non-Perl) implementations
-
- #
- # keybindings
- #
- change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "Gallery"], ["action","PLAY"]]);
- change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Music"], ["action","FFWD"]]);
- change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Music"], ["action","RWND"]]);
- change_or_make_entry("keybindings", [["keylist", "PgDown,.,Z,End"]], [["context", "Music"], ["action","NEXTTTRACK"]]);
- change_or_make_entry("keybindings", [["keylist", "PgUp,Q,Home"]], [["context", "Music"], ["action","PREVTRACK"]]);
- change_or_make_entry("keybindings", [["keylist", "P,l"]], [["context", "Music"], ["action","PAUSE"]]);
-
- change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Stream"], ["action","FORWARD"]]);
- change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Stream"], ["action","REWIND"]]);
- change_or_make_entry("keybindings", [["keylist", "F"]], [["context", "Stream"], ["action","FULLSCREEN"]]);
- change_or_make_entry("keybindings", [["keylist", "|,\\,F9,Volume Mute"]], [["context", "Stream"], ["action","MUTE"]]);
- change_or_make_entry("keybindings", [["keylist", "Y"]], [["context", "Stream"], ["action","STOREMARKED"]]);
-
- change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Frontend"], ["action","PLAYBACK"]]);
-
- change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Playback"], ["action","PLAY"]]);
- change_or_make_entry("keybindings", [["keylist", "P"]], [["context", "TV Playback"], ["action","PAUSE"]]); # default, but here for completeness
-
- #
- # better awareness of different video extensions
- #
- foreach my $video_ext ("mp2", "tp", "ts", "m2p", "nuv", "mkv", "ogg", "theora") {
- change_or_make_entry("videotypes", [["playcommand", "Default"], ["f_ignore", "0"], ["use_default", "1"]], [["extension", $video_ext]]);
- }
- foreach my $non_video_ext ("jpg", "par2", "php") {
- change_or_make_entry("videotypes", [["f_ignore", "1"]], [["extension", $non_video_ext]]);
- }
-
- #
- # games, game players, and emulators
- #
- my @players = (
- [ 'SDLMAME', '/myth/games/xmame/roms', '/myth/games/xmame/screenshots', '/usr/games/mame -rp /myth/games/xmame/roms %s', 'MAME' ],
- [ 'ZSNES','/myth/games/snes/roms','/myth/games/snes/screens','/usr/bin/zsnes','SNES' ],
- [ 'FCEU','/myth/games/nes/roms','/myth/games/nes/screens','/usr/games/fceu','NES' ],
- [ 'Frozen Bubble', '', '', '/usr/games/frozen-bubble --fullscreen','PC' ]
- );
-
- foreach my $player (@players) {
- # These INSERTs will fail if the playername is already present, but we don't error out if it happens.
- do_query("INSERT INTO gameplayers (playername, rompath, screenshots, commandline, gametype) VALUES ('".join("','",@$player)."');");
- }
- # somewhat hardwired, but make sure Frozen Bubble shows up in the list of playable games.
- do_query("INSERT INTO gamemetadata (system, romname, gamename, genre, year, publisher, rompath, gametype) VALUES ('".
- join("','",($players[3][0], $players[3][3], $players[3][0], "action/puzzle", "2006", "Frozen Bubble Team", "/usr/games", $players[3][4]))."');");
-
- #
- # smart music playlists
- #
- # categoryid, name
- change_or_make_entry("music_smartplaylist_categories", [["name", "Decades"]], [["categoryid", 1]]);
- change_or_make_entry("music_smartplaylist_categories", [["name", "Favorite Tracks"]], [["categoryid", 2]]);
- change_or_make_entry("music_smartplaylist_categories", [["name", "New Tracks"]], [["categoryid", 3]]);
-
- foreach my $decade (60, 70, 80, 90, 100) {
- my $id = ($decade / 10) - 5;
- my $query = "INSERT INTO music_smartplaylist_items (smartplaylistid, field, operator, value1, value2) VALUES ($id, 'Year', 'is between'," . ($decade+1900) . "," . ($decade+1909) . ");";
- do_query($query);
- $query = "INSERT INTO music_smartplaylists (name, categoryid, matchtype, orderby, limitto) VALUES ('". ($decade+1900) . "\\'s', 1, 'All', 'Artist (A)', 0);";
- do_query($query);
- }
-
- my @other_lists = (
- [
- ( 'Rating', 'is greater than', '7', 'Favorite Tracks', 2, 'Artist (A), Album (A)', 0 ),
- ( 'Play Count', 'is greater than', '0', '100 Most Played Tracks', 2, 'Play Count (D)', 100 ),
- ( 'Play Count', 'is equal to', '0', 'Never Played Tracks', 3, 'Artist (A), Album (A)', 0 )
- ]);
-
- my $id=6;
- foreach my $other_list (@other_lists) {
- change_or_make_entry("music_smartplaylist_items", [["field", @$other_list[0]], ["operator", @$other_list[1]], ["value1", @$other_list[2]]], [["smartplaylistid", $id]]);
- change_or_make_entry("music_smartplaylists", [["name", @$other_list[3]], ["categoryid", @$other_list[4]], ["matchtype", "All"], ["orderby", @$other_list[5]], ["limitto", @$other_list[6]]], [["smartplaylistid", $id]]);
- $id++;
- }
-
- #
- # default playgroup with time-related settings
- #
- change_or_make_entry("playgroup", [["skipahead", 10], ["skipback", 5], ["timestretch", 100], ["jump", 1]], [["name", "Default"]]);
-
- #
- # useful recording profiles and transcoding options
- #
- change_or_make_entry("profilegroups", [["name", "Software Encoders (v4l based)"], ["cardtype", "V4L"], ["is_default", 1]], [["id", 1]]);
- change_or_make_entry("profilegroups", [["name", "MPEG-2 Encoders (PVR-x50, PVR-500)"], ["cardtype", "MPEG"], ["is_default", 1]], [["id", 2]]);
- change_or_make_entry("profilegroups", [["name", "Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc)"], ["cardtype", "MJPEG"], ["is_default", 1]], [["id", 3]]);
- change_or_make_entry("profilegroups", [["name", "Hardware HDTV"], ["cardtype", "HDTV"], ["is_default", 1]], [["id", 4]]);
- change_or_make_entry("profilegroups", [["name", "Hardware DVB Encoders"], ["cardtype", "DVB"], ["is_default", 1]], [["id", 5]]);
- change_or_make_entry("profilegroups", [["name", "Transcoders"], ["cardtype", "TRANSCODE"], ["is_default", 1]], [["id", 6]]);
- change_or_make_entry("profilegroups", [["name", "FireWire Input"], ["cardtype", "FIREWIRE"], ["is_default", 1]], [["id", 7]]);
- change_or_make_entry("profilegroups", [["name", "USB Mpeg-4 Encoder (Plextor ConvertX, etc)"], ["cardtype", "GO7007"], ["is_default", 1]], [["id", 8]]);
- change_or_make_entry("profilegroups", [["name", "DBOX2 Input"], ["cardtype", "DBOX2"], ["is_default", 1]], [["id", 9]]);
- change_or_make_entry("profilegroups", [["name", "Freebox Input"], ["cardtype", "Freebox"], ["is_default", 1]], [["id", 10]]);
- change_or_make_entry("profilegroups", [["name", "HDHomeRun Recorders"], ["cardtype", "HDHOMERUN"], ["is_default", 1]], [["id", 11]]);
- change_or_make_entry("profilegroups", [["name", "CRC IP Recorders"], ["cardtype", "CRC_IP"], ["is_default", 1]], [["id", 12]]);
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcodelossless', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcoderesize', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4bitrate', 2200)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4maxquality', 2)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4minquality', 15)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4qualdiff', 3)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'scalebitrate', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionvhq', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4option4mv', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionidct', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionime', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'encodingthreadcount', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2bitrate', 4500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegquality', 100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpeghdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegvdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2streamtype', 'MPEG-2 PS')");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2maxbitrate', 6000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'samplerate', 48000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'volume', 100)");
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcodelossless', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcoderesize', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4bitrate', 2200)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4maxquality', 2)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4minquality', 15)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4qualdiff', 3)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'scalebitrate', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionvhq', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4option4mv', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionidct', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionime', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'encodingthreadcount', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2bitrate', 4500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegquality', 100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpeghdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegvdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2streamtype', 'MPEG-2 PS')");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2maxbitrate', 6000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'samplerate', 48000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'volume', 100)");
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (27, 'transcodelossless', 1)");
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcodelossless', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcoderesize', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4bitrate', 2200)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4maxquality', 2)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4minquality', 15)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4qualdiff', 3)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'scalebitrate', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionvhq', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4option4mv', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionidct', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionime', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'encodingthreadcount', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2bitrate', 4500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegquality', 100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpeghdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegvdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2streamtype', 'MPEG-2 PS')");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2maxbitrate', 6000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'samplerate', 48000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'volume', 100)");
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcodelossless', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcoderesize', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4bitrate', 1500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4maxquality', 2)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4minquality', 15)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4qualdiff', 3)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'scalebitrate', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionvhq', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4option4mv', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionidct', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionime', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'encodingthreadcount', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2bitrate', 4500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegquality', 100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpeghdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegvdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2streamtype', 'MPEG-2 PS')");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2maxbitrate', 6000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'samplerate', 44100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mp3quality', 7)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'volume', 100)");
-
-
- # I don't know why we have so many of these. Only profilegroup 6 seems to matter.
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 1]], [["id", 1]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 1]], [["id", 2]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 1]], [["id", 3]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 1]], [["id", 4]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 2]], [["id", 5]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 2]], [["id", 6]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 2]], [["id", 7]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 2]], [["id", 8]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 3]], [["id", 9]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 3]], [["id", 10]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 3]], [["id", 11]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 3]], [["id", 12]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 4]], [["id", 13]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 4]], [["id", 14]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 4]], [["id", 15]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 4]], [["id", 16]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 5]], [["id", 17]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 5]], [["id", 18]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 5]], [["id", 19]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 5]], [["id", 20]]);
- change_or_make_entry("recordingprofiles", [["name", 'RTjpeg/MPEG4'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 21]]);
- change_or_make_entry("recordingprofiles", [["name", 'MPEG2'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 22]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 8]], [["id", 23]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 8]], [["id", 24]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 8]], [["id", 25]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 8]], [["id", 26]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 6]], [["id", 27]]);
- change_or_make_entry("recordingprofiles", [["name", 'Medium Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 28]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "MP3"]], [["id", 29]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 10]], [["id", 30]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 10]], [["id", 31]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 10]], [["id", 32]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 10]], [["id", 33]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 11]], [["id", 34]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 11]], [["id", 35]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 11]], [["id", 36]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 11]], [["id", 37]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 12]], [["id", 38]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 12]], [["id", 39]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 12]], [["id", 40]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 12]], [["id", 41]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 7]], [["id", 42]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 7]], [["id", 43]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 7]], [["id", 44]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 7]], [["id", 45]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 9]], [["id", 46]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 9]], [["id", 47]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 9]], [["id", 48]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 9]], [["id", 49]]);
-
- #
- # settings
- #
- change_or_make_setting('AlwaysStreamFiles', '1'); # new in R6
- change_or_make_setting('AutoCommercialSkip', '1');
- change_or_make_setting('AutoExpireWatchedPriority', '1');
- change_or_make_setting('BackendServerPort', '6543');
- change_or_make_setting('BackendStatusPort', '6544');
- change_or_make_setting('CDWriterDevice', 'ATA:1,0,0');
-# change_or_make_setting('ChannelOrdering', 'chanid');
- change_or_make_setting('CommercialSkipMethod', '255');
- change_or_make_setting('DVDBookmarkPrompt', '1');
- change_or_make_setting('DVDRipLocation', $SQL_DirTmp);
- change_or_make_setting('DefaultRipQuality', '1');
- change_or_make_setting('DefaultTranscoder', '28'); # change this number if you redefine the transcoders above
- change_or_make_setting('Deinterlace', '1');
- change_or_make_setting('DeletesFollowLinks', '1');
- change_or_make_setting('DisableFirewireReset', '0');
- change_or_make_setting('EITCrawIdleStart','60');
- change_or_make_setting('EITIgnoresSource','0');
- change_or_make_setting('EITTimeOffset','Auto');
- change_or_make_setting('EITTransportTimeout','5');
- change_or_make_setting('EPGEnableJumpToChannel','1');
- change_or_make_setting('EPGFillType','12');
- change_or_make_setting('EnableDVDBookmark','1');
- change_or_make_setting('EndOfRecordingExitPrompt','1');
- change_or_make_setting('GalleryDir', $SQL_DirPics);
- change_or_make_setting('GalleryRecursiveSlideshow', '1');
-#------------------------JM---------------------------
- change_or_make_setting('HaltCommand', 'sudo /sbin/halt');
-# change_or_make_setting('HostAudiotype','ALSA');
-# change_or_make_setting('HostMiro','1');
-# change_or_make_setting('HostXine','1');
-# change_or_make_setting('Hostpluginmythappletrailers','1');
-# change_or_make_setting('Hostpluginmytharchive','1');
-# change_or_make_setting('Hostpluginmythbrowser','1');
-# change_or_make_setting('Hostpluginmythcontrols','1');
-# change_or_make_setting('Hostpluginmythflix','1');
-# change_or_make_setting('Hostpluginmythgallery','1');
-# change_or_make_setting('Hostpluginmythgame','1');
-# change_or_make_setting('HostpluginmythgameFceu','1');
-# change_or_make_setting('HostpluginmythgameMame','1');
-# change_or_make_setting('HostpluginmythgameMame','1');
-# change_or_make_setting('HostpluginmythgameROMDB','1');
-# change_or_make_setting('HostpluginmythgameXE','1');
-# change_or_make_setting('HostpluginmythgameZsnes','1');
-# change_or_make_setting('HostpluginmythgameZsnes','1');
-# change_or_make_setting('Hostpluginmythmovietime','1');
-# change_or_make_setting('Hostpluginmythmusic','1');
-# change_or_make_setting('Hostpluginmythnews','1');
-# change_or_make_setting('Hostpluginmythphone','1');
-# change_or_make_setting('Hostpluginmythsmolt','1');
-# change_or_make_setting('Hostpluginmythstream','1');
-# change_or_make_setting('Hostpluginmythvideo','1');
-# change_or_make_setting('Hostpluginmythvideo_dvdcss','0');
-# change_or_make_setting('Hostpluginmythvideo_dvdcss','0');
-# change_or_make_setting('Hostpluginmythvodka','1');
-# change_or_make_setting('Hostpluginmythweather','1');
- change_or_make_setting('JobAllowCommFlag', '1');
- change_or_make_setting('JobAllowTranscode', '1');
- change_or_make_setting('JobAllowUserJob1', '1');
- change_or_make_setting('JobAllowUserJob2', '1');
- change_or_make_setting('JobAllowUserJob3', '1');
- change_or_make_setting('JobAllowUserJob4', '1');
- change_or_make_setting('JobQueueCPU','0');
- change_or_make_setting('JobQueueCheckFrequency','60');
- change_or_make_setting('JobQueueCommFlagCommand','mythcommflag');
- change_or_make_setting('JobQueueMaxSimultaneousJobs','1');
- change_or_make_setting('JobQueueTranscodeCommand','mythtranscode');
- change_or_make_setting('JobQueueWindowEnd','23:59');
- change_or_make_setting('JobQueueWindowStart','00:00');
- change_or_make_setting('JobsRunOnRecordHost','0');
- change_or_make_setting('LiveTVInAllPrograms','1');
- change_or_make_setting('MasterMixerVolume','100');
-# change_or_make_setting('MasterServerIP', '127.0.0.1');
-# change_or_make_setting('MasterServerPort', '6543');
- change_or_make_setting('MediaChangeEvents','1');
- change_or_make_setting('MonitorDrives', '1');
- change_or_make_setting('MusicLocation', $SQL_DirMusic);
- change_or_make_setting('MythArchivePng2yuvCmd', 'png2yuv'); # ??? still used?
- change_or_make_setting('MythArchiveShareDir','/myth/archive/');
- change_or_make_setting('MythArchiveTempDir', $SQL_DirTmp);
- change_or_make_setting('MythFillDatabaseArgs', '--quiet');
- change_or_make_setting('MythFillDatabaseLog', '/var/log/mythtv/mythfilldatabase.log');
- change_or_make_setting('MythFillDatabasePath', '/usr/bin/nice -n 19 /usr/bin/mythfilldatabase');
- change_or_make_setting('MythFillEnabled', '1');
- change_or_make_setting('MythTVtv', $SQL_DirTV);
- change_or_make_setting('NetworkControlEnabled', '1');
- change_or_make_setting('PCMMixerVolume', '50');
- change_or_make_setting('PVR350VideoDev', '/dev/video16');
- change_or_make_setting('PlayBoxShading', '0');
- change_or_make_setting('PlayMode', 'none');
- change_or_make_setting('PlaybackExitPrompt', '2');
- change_or_make_setting('PlaybackPreviewLowCPU', '1');
-# change_or_make_setting('PlaybackReturnPrompt', '1');
-# change_or_make_setting('PlaybackReturnPrompt', '2');
- change_or_make_setting('RebootCommand', 'sudo /sbin/reboot');
- change_or_make_setting('RecordFilePrefix',$SQL_DirTV);
- change_or_make_setting('SelectChangesChannel', '1');
- change_or_make_setting('ServerHaltCommand', 'sudo /sbin/halt -p');
- change_or_make_setting('ShowWholeTree', '1');
- change_or_make_setting('SmartChannelChange', '1');
- change_or_make_setting('StartupSecsBeforeRecording', '120');
- change_or_make_setting('TruncateDeletesSlowly', '1');
- change_or_make_setting('UseOutputPictureControls', '1');
- change_or_make_setting('UserJob1', 'myth2ipod \"%DIR%\" \"%FILE%\"');
- change_or_make_setting('UserJob2', 'myt2xvid3 \"%DIR%\" \"%FILE%\"');
- change_or_make_setting('UserJob3', 'myth2x264 \"%DIR%/%FILE%\" \"%TITLE% - %SUBTITLE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"');
- change_or_make_setting('UserJob4', 'removecommercials.sh \"%DIR%\" \"%FILE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"');
- change_or_make_setting('UserJobDesc1', 'Transcode for iPod');
- change_or_make_setting('UserJobDesc2', 'Transcode to xvid');
- change_or_make_setting('UserJobDesc3', 'Transcode to h264');
- change_or_make_setting('UserJobDesc4', 'Remove Commercials');
- change_or_make_setting('UseOutputPictureControls','0'); # If this is set to '1' it can swap blue for red (and vice versa) on some nVidia GPUs
- change_or_make_setting('VCDPlayerCommand', 'mplayer-wrapper.pl vcd:\/\/ -cdrom-device %d -fs -zoom');
- change_or_make_setting('VideoArtworkDir', "$SQL_DirVideo/.covers");
- change_or_make_setting('VideoBrowserNoDB', '1');
- change_or_make_setting('VideoDefaultPlayer', 'mplayer-wrapper.pl -fs -zoom %s');
- change_or_make_setting('VideoGalleryNoDB', '1');
- change_or_make_setting('VideoStartupDir', $SQL_DirVideo);
- change_or_make_setting('VideoTreeNoDB', '1');
- change_or_make_setting('VisualMode','BumpScope;Gears;Goom;MonoScope;Squares;StereoScope;Synaesthesia;LibVisual-bumpscope;LibVisual-corona;LibVisual-infinite;AlbumArt');
- change_or_make_setting('weatherbackgroundfetch', '1');
- change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser');
- change_or_make_setting('WebBrowserHideScrollbars','0');
- change_or_make_setting('WebBrowserScrollMode','1');
- change_or_make_setting('WebBrowserScrollSpeed','4');
- change_or_make_setting('WebBrowserZoomLevel','20');
- change_or_make_setting('WebcamDevice','/dev/video');
- change_or_make_setting('WOLbackendCommand','');
- change_or_make_setting('WOLbackendConnectRetry','5');
- change_or_make_setting('WOLslaveBackendsCommand','');
- change_or_make_setting('WakeupTimeFormat','hh:mm yyyy-MM-dd');
- change_or_make_setting('WatchTVGuide','0');
-# change_or_make_setting('WeatherDBSchemaVer','1000');
- change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser');
- change_or_make_setting('WebBrowserHideScrollbars','0');
- change_or_make_setting('WebBrowserScrollMode','1');
- change_or_make_setting('WebBrowserScrollSpeed','4');
- change_or_make_setting('WebBrowserZoomLevel','20');
- change_or_make_setting('XineramaScreen','0');
- change_or_make_setting('blockSDWUwithoutClient','1');
- change_or_make_setting('idleWaitForRecordingTime','15');
- change_or_make_setting('mythdvd.DVDPlayerCommand', 'Internal');
- change_or_make_setting('mythvideo.VideoTreeRemember', '1');
- change_or_make_setting('mythfilldatabaseLastRunStart','');
- change_or_make_setting('mythfilldatabaseLastRunEnd','');
- change_or_make_setting('mythfilldatabaseLastRunStatus','');
-
- #
- # customexample table
- #
- change_or_make_entry("customexample", [["fromclause", ""], ["whereclause", "program.category_type = \"movie\" AND program.airdate >= YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) AND program.stars > 0.5 "], ["search", "1"]], [["rulename", "New Flix"]]);
-
-# # As much of MythWeather as we can automate for now
- my $units = 0;
- my $metric_units = do_query("SELECT * FROM settings WHERE value='SIUnits' AND data='YES'");
- if ($metric_units) {
- $units=0;
- } else {
- $units=1;
- }
-# change_or_make_entry("weatherscreens", [["draworder", "0"], ["container", "Six Day Forecast"], ["units", $units]], [["screen_id", 1]]);
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "6dlocation"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# for (my $increment=0; $increment < 6; $increment++) {
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "date-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "high-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "icon-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "low-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# }
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "updatetime"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-#
-# change_or_make_entry("weathersourcesettings", [["sourceid", "1"], ["source_name", "BBC-Current-XML"], ["update_timeout", "7200"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbccurrentxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "cclocation,station_id,copyright,observation_time,weather,temp,relative_humidity,wind_dir,pressure,visibility,weather_icon,appt,wind_spdgst"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "2"], ["source_name", "BBC-3day-XML"], ["update_timeout", "21600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbcthreedayxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "3dlocation,station_id,copyright,weather_icon,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "3"], ["source_name", "ENVCAN"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ca_envcan/envcan.pl"], ["author", "Joe Ripley"], ["version", "0.4"], ["email", "vitaminjoe\@gmail.com"], ["types", "cclocation,station_id,copyright,observation_time,observation_time_rfc822,weather,temp,relative_humidity,wind_dir,wind_degrees,wind_speed,wind_gust,pressure,dewpoint,heat_index,windchill,visibility,weather_icon,appt,wind_spdgst,3dlocation,6dlocation,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime,date-3,icon-3,low-3,high-3,date-4,icon-4,low-4,high-4,date-5,icon-5,low-5,high-5"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "4"], ["source_name", "NDFD-6_day"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "3dlocation,6dlocation,updatetime,high-0,high-1,high-2,high-3,high-4,high-5,low-0,low-1,low-2,low-3,low-4,low-5,icon-0,icon-1,icon-2,icon-3,icon-4,icon-5,date-0,date-1,date-2,date-3,date-4,date-5"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "5"], ["source_name", "NDFD-18_hour"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd18.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "18hrlocation,updatetime,temp-0,temp-1,temp-2,temp-3,temp-4,temp-5,18icon-0,18icon-1,18icon-2,18icon-3,18icon-4,18icon-5,pop-0,pop-1,pop-2,pop-3,pop-4,pop-5,time-0,time-1,time-2,time-3,time-4,time-5"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "6"], ["source_name", "NWS-Alerts"], ["update_timeout", "600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nws-alert.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "swlocation,updatetime,alerts"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "7"], ["source_name", "NWS-XML"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nwsxml.pl"], ["author", "Lucien Dunning"], ["version", "0.2"], ["email", "ldunning\@gmail.com"], ["types", "cclocation,station_id,latitude,longitude,observation_time,observation_time_rfc822,weather,temperature_string,temp,relative_humidity,wind_string,wind_dir,wind_degrees,wind_speed,wind_gust,pressure_string,pressure,dewpoint_string,dewpoint,heat_index_string,heat_index,windchill_string,windchill,visibility,weather_icon,appt,wind_spdgst"]]);
-
- my $ipaddress = execute_shell_command("ifconfig | grep inet.addr | head -1");
- $ipaddress =~ s/.*inet addr:(\d+.\d+.\d+.\d+)\s.*/$1/g;
-
-
-
-
-
-
-#-------------------jm
-# # Change from the generic IP address to the real one.
-# do_query("UPDATE settings SET data='$ipaddress' where data='127.0.0.1'");
-# do_query("UPDATE settings SET data='$ipaddress' where data='MythTVip'"); # ??? needed?
-
- my $hostname = execute_shell_command("hostname") || "localhost";
- # one table at a time, replace hostname with our actual hostname
- # ??? can this be done all at once in MySQL?
- foreach my $table ("capturecard", "inuseprograms", "jobqueue", "jumppoints", "keybindings", "music_playlists",
- "musicplaylist", "recorded", "settings", "weatherscreens") {
- do_query("UPDATE $table SET hostname='$hostname'");
- }
-
- # Some entries in 'settings' should stay NULL: http://www.mythtv.org/wiki/index.php/Settings_table
- # There are fewer entries that stay NULL than there are that should have the hostname set, so while
- # it duplicates some effort to change them from NULL to the hostname and them back to NULL, it's
- # easier to maintain and more future-proof.
-
- foreach my $entry ("mythfilldatabaseLastRunStart", "mythfilldatabaseLastRunEnd", "mythfilldatabaseLastRunStatus",
- "DataDirectMessage", "HaveRepeats", "DBSchemaVer", "DefaultTranscoder", "MythFillSuggestedRunTime",
- "MythFillGrabberSuggestsTime", "MasterServerIP", "MasterServerPort", "TVFormat", "VbiFormat", "FreqTable",
- "TimeOffset", "MasterBackendOverride", "DeletesFollowLinks", "HDRingbufferSize", "EITTransportTimeout",
- "EITIgnoresSource", "EITCrawIdleStart", "startupCommand", "blockSDWUwithoutClient", "idleWaitForRecordingTime",
- "StartupSecsBeforeRecording", "WakeupTimeFormat", "SetWakeuptimeCommand", "ServerHaltCommand", "preSDWUCheckCommand",
- "WOLbackendConnectRetry", "WOLbackendCommand", "WOLslaveBackendsCommand", "JobsRunOnRecordHost",
- "AutoCommflagWhileRecording", "JobQueueCommFlagCommand", "JobQueueTranscodeCommand",
- "AutoTranscodeBeforeAutoCommflag", "SaveTranscoding", "UserJobDesc1", "UserJob1", "UserJobDesc2", "UserJob2",
- "UserJobDesc3", "UserJob3", "UserJobDesc4", "UserJob4", "PreviewPixmapOffset", "AllRecGroupPassword",
- "MaximumCommercialSkip", "CommSkipAllBlanks", "LastFreeCard", "LiveTVPriority", "AutoExpireMethod",
- "AutoExpireDefault", "RerecordWatched", "AutoExpireWatchedPriority", "AutoExpireLiveTVMaxAge",
- "AutoExpireDayPriority", "AutoExpireExtraSpace", "AutoExpireInsteadOfDelete", "DeletedFifoOrder",
- "CommercialSkipMethod", "AggressiveCommDetect", "AutoCommercialFlag", "AutoTranscode", "AutoRunUserJob1",
- "AutoRunUserJob2", "AutoRunUserJob3", "AutoRunUserJob4", "OverTimeCategory", "CategoryOverTime",
- "EPGEnableJumpToChannel", "LogEnabled", "MythFillEnabled", "MythFillDatabasePath", "MythFillDatabaseArgs",
- "MythFillDatabaseLog", "MythFillPeriod", "MythFillMinHour", "MythFillMaxHour", "SchedMoveHigher", "SchedOpenEnd",
- "ComplexPriority", "PrefInputPriority", "SingleRecordRecPriority", "FindOneRecordRecPriority", "ArchiveDBSchemaVer",
- "FlixDBSchemaVer", "GalleryDBSchemaVer", "GameDBSchemaVer", "MusicDBSchemaVer", "PhoneDBSchemaVer",
- "mythvideo.DBSchemaVer", "WeatherDBSchemaVer") {
- do_query("UPDATE settings SET hostname=NULL WHERE value='$entry'");
- }
-
- change_or_make_setting('MasterBackendOverride','1'); # I don't remember why, but making the hostname NULL is important here
- do_query("UPDATE settings SET hostname=NULL WHERE value='MasterBackendOverride'");
-
- # storagegroup
- change_or_make_entry("storagegroup", [["groupname", "Default"], ["hostname", $hostname], ["dirname", $SQL_DirTV]], [["id", 1]]);
-
- #
- # Websites for mythbrowser
- #
- #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmyth.net"]]);
- #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmythwiki.org"]]);
-
- disconnect_from_db();
-
- # Fix hostname for iPod feed URLs
- $command = "sed -i \"s/hostname\\//$hostname\\//g\" /usr/local/bin/myth2ipod";
- execute_shell_command($command);
-
- # Fix hostname for XViD feed URLs
- $command = "sed -i \"s/192.168.0.222\\//$hostname\\//g\" /usr/local/bin/myt2xvid3";
- execute_shell_command($command);
-
- # Customize default MythTV library.xml to reflect KnoppMyth's wider selection of
- # online stream options.
- #$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml";
- $command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml";
- execute_shell_command($command);
- } else {
- my $logger = get_logger('tweaker.script');
- $logger->error("Unable to connect to mythconverg database");
- $logger->error("Unable to implement option $option.");
- return -1;
- }
- return 1;
- }
-
- file_tweaks($option) || exit -1;
- SQL_tweaks($option) || exit -1;
-}
-
-# Try to get a Recommendation Level for $option.
-sub poll_options {
- my($option) = @_;
- recommendation_level("recommended", "These tweaks benefit all users.");
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_general.pl.orig b/abs/core/tweaker/bin/twk_general.pl.orig
deleted file mode 100755
index 0255852..0000000
--- a/abs/core/tweaker/bin/twk_general.pl.orig
+++ /dev/null
@@ -1,579 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-set_known_options( 'all' );
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- # KnoppMyth-centric file-level tweaks
- sub file_tweaks {
- my($option) = @_;
-
- my @commands = (
- # keymap tweaks
- "twk_keymap.sh"
- );
-
- foreach my $command (@commands) {
- if (my $error = execute_shell_command($command)) {
- my $logger = get_logger('tweaker.script');
- $logger->error("$error");
- $logger->error("Unable to implement option $option with command $command.");
- }
- }
- return 1;
- }
-
- # Enhance the default MythTV SQL
- sub SQL_tweaks {
- my($option) = @_;
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- # ??? This also exists in mkmythdir - it should be centralized
- my $SQL_DirData="/myth"; # Top level dir. of structure,
- my $SQL_DirTV="$SQL_DirData/tv"; # TV Recordings,
- my $SQL_DirMusic="$SQL_DirData/music/"; # Music storage,
- my $SQL_DirGames="$SQL_DirData/games"; # Games dir,
- my $SQL_DirPics="$SQL_DirData/gallery"; # Pictures directory.
- my $SQL_DirTmp="$SQL_DirData/tmp"; # DVD temp
- my $SQL_DirVideo="$SQL_DirData/video"; # videos
-
- # ??? Eventually, put these into a text file so that 1) people can contribute without having to code, and 2) the data
- # stays separate from the code and can be re-used by other (non-Perl) implementations
-
- #
- # keybindings
- #
- change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "Gallery"], ["action","PLAY"]]);
- change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Music"], ["action","FFWD"]]);
- change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Music"], ["action","RWND"]]);
- change_or_make_entry("keybindings", [["keylist", "PgDown,.,Z,End"]], [["context", "Music"], ["action","NEXTTTRACK"]]);
- change_or_make_entry("keybindings", [["keylist", "PgUp,Q,Home"]], [["context", "Music"], ["action","PREVTRACK"]]);
- change_or_make_entry("keybindings", [["keylist", "P,l"]], [["context", "Music"], ["action","PAUSE"]]);
-
- change_or_make_entry("keybindings", [["keylist", ">"]], [["context", "Stream"], ["action","FORWARD"]]);
- change_or_make_entry("keybindings", [["keylist", "<"]], [["context", "Stream"], ["action","REWIND"]]);
- change_or_make_entry("keybindings", [["keylist", "F"]], [["context", "Stream"], ["action","FULLSCREEN"]]);
- change_or_make_entry("keybindings", [["keylist", "|,\\,F9,Volume Mute"]], [["context", "Stream"], ["action","MUTE"]]);
- change_or_make_entry("keybindings", [["keylist", "Y"]], [["context", "Stream"], ["action","STOREMARKED"]]);
-
- change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Frontend"], ["action","PLAYBACK"]]);
-
- change_or_make_entry("keybindings", [["keylist", "l"]], [["context", "TV Playback"], ["action","PLAY"]]);
- change_or_make_entry("keybindings", [["keylist", "P"]], [["context", "TV Playback"], ["action","PAUSE"]]); # default, but here for completeness
-
- #
- # better awareness of different video extensions
- #
- change_or_make_entry("videotypes", [["playcommand", "mplayer-resumer.pl -fs -zoom -vc theora,fftheora, -vo xv %s"]], [["extension", "ogg"]]);
- change_or_make_entry("videotypes", [["playcommand", "mplayer-resumer.pl -fs -zoom -vc theora,fftheora, -vo xv %s"]], [["extension", "theora"]]);
- foreach my $video_ext ("mp2", "tp", "ts", "m2p", "nuv", "mkv") {
- change_or_make_entry("videotypes", [["playcommand", "Internal"], ["f_ignore", "0"], ["use_default", "1"]], [["extension", $video_ext]]);
- }
- foreach my $non_video_ext ("jpg", "par2") {
- change_or_make_entry("videotypes", [["f_ignore", "1"]], [["extension", $non_video_ext]]);
- }
-
- #
- # games, game players, and emulators
- #
- my @players = (
- [ 'SDLMAME', '/myth/games/xmame/roms', '/myth/games/xmame/screenshots', '/usr/games/mame -rp /myth/games/xmame/roms %s', 'MAME' ],
- [ 'ZSNES','/myth/games/snes/roms','/myth/games/snes/screens','/usr/bin/zsnes','SNES' ],
- [ 'FCEU','/myth/games/nes/roms','/myth/games/nes/screens','/usr/games/fceu','NES' ],
- [ 'Frozen Bubble', '', '', '/usr/games/frozen-bubble --fullscreen','PC' ]
- );
-
- foreach my $player (@players) {
- # These INSERTs will fail if the playername is already present, but we don't error out if it happens.
- do_query("INSERT INTO gameplayers (playername, rompath, screenshots, commandline, gametype) VALUES ('".join("','",@$player)."');");
- }
- # somewhat hardwired, but make sure Frozen Bubble shows up in the list of playable games.
- do_query("INSERT INTO gamemetadata (system, romname, gamename, genre, year, publisher, rompath, gametype) VALUES ('".
- join("','",($players[3][0], $players[3][3], $players[3][0], "action/puzzle", "2006", "Frozen Bubble Team", "/usr/games", $players[3][4]))."');");
-
- #
- # smart music playlists
- #
- # categoryid, name
- change_or_make_entry("music_smartplaylist_categories", [["name", "Decades"]], [["categoryid", 1]]);
- change_or_make_entry("music_smartplaylist_categories", [["name", "Favorite Tracks"]], [["categoryid", 2]]);
- change_or_make_entry("music_smartplaylist_categories", [["name", "New Tracks"]], [["categoryid", 3]]);
-
- foreach my $decade (60, 70, 80, 90, 100) {
- my $id = ($decade / 10) - 5;
- my $query = "INSERT INTO music_smartplaylist_items (smartplaylistid, field, operator, value1, value2) VALUES ($id, 'Year', 'is between'," . ($decade+1900) . "," . ($decade+1909) . ");";
- do_query($query);
- $query = "INSERT INTO music_smartplaylists (name, categoryid, matchtype, orderby, limitto) VALUES ('". ($decade+1900) . "\\'s', 1, 'All', 'Artist (A)', 0);";
- do_query($query);
- }
-
- my @other_lists = (
- [
- ( 'Rating', 'is greater than', '7', 'Favorite Tracks', 2, 'Artist (A), Album (A)', 0 ),
- ( 'Play Count', 'is greater than', '0', '100 Most Played Tracks', 2, 'Play Count (D)', 100 ),
- ( 'Play Count', 'is equal to', '0', 'Never Played Tracks', 3, 'Artist (A), Album (A)', 0 )
- ]);
-
- my $id=6;
- foreach my $other_list (@other_lists) {
- change_or_make_entry("music_smartplaylist_items", [["field", @$other_list[0]], ["operator", @$other_list[1]], ["value1", @$other_list[2]]], [["smartplaylistid", $id]]);
- change_or_make_entry("music_smartplaylists", [["name", @$other_list[3]], ["categoryid", @$other_list[4]], ["matchtype", "All"], ["orderby", @$other_list[5]], ["limitto", @$other_list[6]]], [["smartplaylistid", $id]]);
- $id++;
- }
-
- #
- # default playgroup with time-related settings
- #
- change_or_make_entry("playgroup", [["skipahead", 10], ["skipback", 5], ["timestretch", 100], ["jump", 1]], [["name", "Default"]]);
-
- #
- # useful recording profiles and transcoding options
- #
- change_or_make_entry("profilegroups", [["name", "Software Encoders (v4l based)"], ["cardtype", "V4L"], ["is_default", 1]], [["id", 1]]);
- change_or_make_entry("profilegroups", [["name", "MPEG-2 Encoders (PVR-x50, PVR-500)"], ["cardtype", "MPEG"], ["is_default", 1]], [["id", 2]]);
- change_or_make_entry("profilegroups", [["name", "Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc)"], ["cardtype", "MJPEG"], ["is_default", 1]], [["id", 3]]);
- change_or_make_entry("profilegroups", [["name", "Hardware HDTV"], ["cardtype", "HDTV"], ["is_default", 1]], [["id", 4]]);
- change_or_make_entry("profilegroups", [["name", "Hardware DVB Encoders"], ["cardtype", "DVB"], ["is_default", 1]], [["id", 5]]);
- change_or_make_entry("profilegroups", [["name", "Transcoders"], ["cardtype", "TRANSCODE"], ["is_default", 1]], [["id", 6]]);
- change_or_make_entry("profilegroups", [["name", "FireWire Input"], ["cardtype", "FIREWIRE"], ["is_default", 1]], [["id", 7]]);
- change_or_make_entry("profilegroups", [["name", "USB Mpeg-4 Encoder (Plextor ConvertX, etc)"], ["cardtype", "GO7007"], ["is_default", 1]], [["id", 8]]);
- change_or_make_entry("profilegroups", [["name", "DBOX2 Input"], ["cardtype", "DBOX2"], ["is_default", 1]], [["id", 9]]);
- change_or_make_entry("profilegroups", [["name", "Freebox Input"], ["cardtype", "Freebox"], ["is_default", 1]], [["id", 10]]);
- change_or_make_entry("profilegroups", [["name", "HDHomeRun Recorders"], ["cardtype", "HDHOMERUN"], ["is_default", 1]], [["id", 11]]);
- change_or_make_entry("profilegroups", [["name", "CRC IP Recorders"], ["cardtype", "CRC_IP"], ["is_default", 1]], [["id", 12]]);
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcodelossless', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'transcoderesize', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4bitrate', 2200)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4maxquality', 2)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4minquality', 15)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4qualdiff', 3)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'scalebitrate', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionvhq', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4option4mv', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionidct', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg4optionime', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'encodingthreadcount', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2bitrate', 4500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegquality', 100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpeghdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'hardwaremjpegvdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2streamtype', 'MPEG-2 PS')");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'mpeg2maxbitrate', 6000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'samplerate', 48000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (21, 'volume', 100)");
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcodelossless', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'transcoderesize', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4bitrate', 2200)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4maxquality', 2)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4minquality', 15)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4qualdiff', 3)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'scalebitrate', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionvhq', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4option4mv', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionidct', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg4optionime', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'encodingthreadcount', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2bitrate', 4500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegquality', 100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpeghdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'hardwaremjpegvdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2streamtype', 'MPEG-2 PS')");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'mpeg2maxbitrate', 6000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'samplerate', 48000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (22, 'volume', 100)");
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (27, 'transcodelossless', 1)");
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcodelossless', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'transcoderesize', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4bitrate', 2200)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4maxquality', 2)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4minquality', 15)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4qualdiff', 3)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'scalebitrate', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionvhq', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4option4mv', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionidct', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg4optionime', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'encodingthreadcount', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2bitrate', 4500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegquality', 100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpeghdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'hardwaremjpegvdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2streamtype', 'MPEG-2 PS')");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'mpeg2maxbitrate', 6000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'samplerate', 48000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (28, 'volume', 100)");
-
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcodelossless', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'transcoderesize', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4bitrate', 1500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4maxquality', 2)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4minquality', 15)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4qualdiff', 3)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'scalebitrate', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionvhq', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4option4mv', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionidct', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg4optionime', 0)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'encodingthreadcount', 1)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2bitrate', 4500)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegquality', 100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpeghdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'hardwaremjpegvdecimation', 4)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2streamtype', 'MPEG-2 PS')");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mpeg2maxbitrate', 6000)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'samplerate', 44100)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'mp3quality', 7)");
- do_query("INSERT INTO codecparams (profile, name, value) VALUES (29, 'volume', 100)");
-
-
- # I don't know why we have so many of these. Only profilegroup 6 seems to matter.
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 1]], [["id", 1]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 1]], [["id", 2]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 1]], [["id", 3]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 1]], [["id", 4]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 2]], [["id", 5]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 2]], [["id", 6]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 2]], [["id", 7]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 2]], [["id", 8]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 3]], [["id", 9]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 3]], [["id", 10]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 3]], [["id", 11]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 3]], [["id", 12]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 4]], [["id", 13]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 4]], [["id", 14]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 4]], [["id", 15]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 4]], [["id", 16]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 5]], [["id", 17]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 5]], [["id", 18]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 5]], [["id", 19]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 5]], [["id", 20]]);
- change_or_make_entry("recordingprofiles", [["name", 'RTjpeg/MPEG4'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 21]]);
- change_or_make_entry("recordingprofiles", [["name", 'MPEG2'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 22]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 8]], [["id", 23]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 8]], [["id", 24]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 8]], [["id", 25]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 8]], [["id", 26]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 6]], [["id", 27]]);
- change_or_make_entry("recordingprofiles", [["name", 'Medium Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "Uncompressed"]], [["id", 28]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 6], ["videocodec", "MPEG-4"], ["audiocodec", "MP3"]], [["id", 29]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 10]], [["id", 30]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 10]], [["id", 31]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 10]], [["id", 32]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 10]], [["id", 33]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 11]], [["id", 34]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 11]], [["id", 35]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 11]], [["id", 36]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 11]], [["id", 37]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 12]], [["id", 38]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 12]], [["id", 39]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 12]], [["id", 40]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 12]], [["id", 41]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 7]], [["id", 42]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 7]], [["id", 43]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 7]], [["id", 44]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 7]], [["id", 45]]);
- change_or_make_entry("recordingprofiles", [["name", 'Default'], ["profilegroup", 9]], [["id", 46]]);
- change_or_make_entry("recordingprofiles", [["name", 'Live TV'], ["profilegroup", 9]], [["id", 47]]);
- change_or_make_entry("recordingprofiles", [["name", 'High Quality'], ["profilegroup", 9]], [["id", 48]]);
- change_or_make_entry("recordingprofiles", [["name", 'Low Quality'], ["profilegroup", 9]], [["id", 49]]);
-
- #
- # settings
- #
- change_or_make_setting('AlwaysStreamFiles', '1'); # new in R6
- change_or_make_setting('AutoCommercialSkip', '1');
- change_or_make_setting('AutoExpireWatchedPriority', '1');
- change_or_make_setting('BackendServerPort', '6543');
- change_or_make_setting('BackendStatusPort', '6544');
- change_or_make_setting('CDWriterDevice', 'ATA:1,0,0');
-# change_or_make_setting('ChannelOrdering', 'chanid');
- change_or_make_setting('CommercialSkipMethod', '255');
- change_or_make_setting('DVDBookmarkPrompt', '1');
- change_or_make_setting('DVDRipLocation', $SQL_DirTmp);
- change_or_make_setting('DefaultRipQuality', '1');
- change_or_make_setting('DefaultTranscoder', '28'); # change this number if you redefine the transcoders above
- change_or_make_setting('Deinterlace', '1');
- change_or_make_setting('DeletesFollowLinks', '1');
- change_or_make_setting('DisableFirewireReset', '0');
- change_or_make_setting('EITCrawIdleStart','60');
- change_or_make_setting('EITIgnoresSource','0');
- change_or_make_setting('EITTimeOffset','Auto');
- change_or_make_setting('EITTransportTimeout','5');
- change_or_make_setting('EPGEnableJumpToChannel','1');
- change_or_make_setting('EPGFillType','12');
- change_or_make_setting('EnableDVDBookmark','1');
- change_or_make_setting('EndOfRecordingExitPrompt','1');
- change_or_make_setting('GalleryDir', $SQL_DirPics);
- change_or_make_setting('GalleryRecursiveSlideshow', '1');
- change_or_make_setting('HaltCommand', 'sudo /sbin/halt');
- change_or_make_setting('HostAudiotype','ALSA');
- change_or_make_setting('HostMiro','1');
- change_or_make_setting('HostXine','1');
- change_or_make_setting('Hostpluginmythappletrailers','1');
- change_or_make_setting('Hostpluginmytharchive','1');
- change_or_make_setting('Hostpluginmythbrowser','1');
- change_or_make_setting('Hostpluginmythcontrols','1');
- change_or_make_setting('Hostpluginmythflix','1');
- change_or_make_setting('Hostpluginmythgallery','1');
- change_or_make_setting('Hostpluginmythgame','1');
- change_or_make_setting('HostpluginmythgameFceu','1');
- change_or_make_setting('HostpluginmythgameMame','1');
- change_or_make_setting('HostpluginmythgameMame','1');
- change_or_make_setting('HostpluginmythgameROMDB','1');
- change_or_make_setting('HostpluginmythgameXE','1');
- change_or_make_setting('HostpluginmythgameZsnes','1');
- change_or_make_setting('HostpluginmythgameZsnes','1');
- change_or_make_setting('Hostpluginmythmovietime','1');
- change_or_make_setting('Hostpluginmythmusic','1');
- change_or_make_setting('Hostpluginmythnews','1');
- change_or_make_setting('Hostpluginmythphone','1');
- change_or_make_setting('Hostpluginmythsmolt','1');
- change_or_make_setting('Hostpluginmythstream','1');
- change_or_make_setting('Hostpluginmythvideo','1');
- change_or_make_setting('Hostpluginmythvideo_dvdcss','0');
- change_or_make_setting('Hostpluginmythvideo_dvdcss','0');
- change_or_make_setting('Hostpluginmythvodka','1');
- change_or_make_setting('Hostpluginmythweather','1');
- change_or_make_setting('JobAllowCommFlag', '1');
- change_or_make_setting('JobAllowTranscode', '1');
- change_or_make_setting('JobAllowUserJob1', '1');
- change_or_make_setting('JobAllowUserJob2', '2');
- change_or_make_setting('JobQueueCPU','0');
- change_or_make_setting('JobQueueCheckFrequency','60');
- change_or_make_setting('JobQueueCommFlagCommand','mythcommflag');
- change_or_make_setting('JobQueueMaxSimultaneousJobs','1');
- change_or_make_setting('JobQueueTranscodeCommand','mythtranscode');
- change_or_make_setting('JobQueueWindowEnd','23:59');
- change_or_make_setting('JobQueueWindowStart','00:00');
- change_or_make_setting('JobsRunOnRecordHost','0');
- change_or_make_setting('LiveTVInAllPrograms','1');
- change_or_make_setting('MasterMixerVolume','100');
- change_or_make_setting('MasterServerIP', '127.0.0.1');
- change_or_make_setting('MasterServerPort', '6543');
- change_or_make_setting('MediaChangeEvents','1');
- change_or_make_setting('MonitorDrives', '1');
- change_or_make_setting('MusicLocation', $SQL_DirMusic);
- change_or_make_setting('MythArchivePng2yuvCmd', 'png2yuv'); # ??? still used?
- change_or_make_setting('MythArchiveShareDir','/myth/archive/');
- change_or_make_setting('MythArchiveTempDir', $SQL_DirTmp);
- change_or_make_setting('MythFillDatabaseArgs', '--quiet');
- change_or_make_setting('MythFillDatabaseLog', '/var/log/mythtv/mythfilldatabase.log');
- change_or_make_setting('MythFillDatabasePath', '/usr/bin/nice -n 19 /usr/bin/mythfilldatabase');
- change_or_make_setting('MythFillEnabled', '1');
- change_or_make_setting('MythTVtv', $SQL_DirTV);
- change_or_make_setting('NetworkControlEnabled', '1');
- change_or_make_setting('PCMMixerVolume', '50');
- change_or_make_setting('PVR350VideoDev', '/dev/video16');
- change_or_make_setting('PlayBoxShading', '0');
- change_or_make_setting('PlayMode', 'none');
- change_or_make_setting('PlaybackExitPrompt', '2');
- change_or_make_setting('PlaybackPreviewLowCPU', '1');
-# change_or_make_setting('PlaybackReturnPrompt', '1');
-# change_or_make_setting('PlaybackReturnPrompt', '2');
- change_or_make_setting('RebootCommand', 'sudo /sbin/reboot');
- change_or_make_setting('RecordFilePrefix',$SQL_DirTV);
- change_or_make_setting('SelectChangesChannel', '1');
- change_or_make_setting('ServerHaltCommand', 'sudo /sbin/halt -p');
- change_or_make_setting('ShowWholeTree', '1');
- change_or_make_setting('SmartChannelChange', '1');
- change_or_make_setting('StartupSecsBeforeRecording', '120');
- change_or_make_setting('TruncateDeletesSlowly', '1');
- change_or_make_setting('UseOutputPictureControls', '1');
- change_or_make_setting('UserJob1', 'myth2ipod -cut \"%DIR%\" \"%FILE%\"');
- change_or_make_setting('UserJob2', 'myt2xvid3 -cut \"%DIR%\" \"%FILE%\"');
- change_or_make_setting('UserJobDesc1', 'Encode for iPod');
- change_or_make_setting('UserJobDesc2', 'Transcode to XviD');
- change_or_make_setting('UserJobDesc3', 'User Job #3');
- change_or_make_setting('UserJobDesc4', 'User Job #4');
- change_or_make_setting('VCDPlayerCommand', 'mplayer vcd:\/\/ -cdrom-device %d -fs -zoom -vo xv -vf pp=lb');
- change_or_make_setting('VideoArtworkDir', "$SQL_DirVideo/.covers");
- change_or_make_setting('VideoBrowserNoDB', '1');
- change_or_make_setting('VideoDefaultPlayer', 'mplayer-resumer.pl -fs -zoom -vo xv %s');
- change_or_make_setting('VideoGalleryNoDB', '1');
- change_or_make_setting('VideoStartupDir', $SQL_DirVideo);
- change_or_make_setting('VideoTreeNoDB', '1');
- change_or_make_setting('VisualMode','BumpScope;Gears;Goom;MonoScope;Squares;StereoScope;Synaesthesia;LibVisual-bumpscope;LibVisual-corona;LibVisual-infinite;AlbumArt');
- change_or_make_setting('weatherbackgroundfetch', '1');
- change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser');
- change_or_make_setting('WebBrowserHideScrollbars','0');
- change_or_make_setting('WebBrowserScrollMode','1');
- change_or_make_setting('WebBrowserScrollSpeed','4');
- change_or_make_setting('WebBrowserZoomLevel','20');
- change_or_make_setting('WebcamDevice','/dev/video');
- change_or_make_setting('WOLbackendCommand','');
- change_or_make_setting('WOLbackendConnectRetry','5');
- change_or_make_setting('WOLslaveBackendsCommand','');
- change_or_make_setting('WakeupTimeFormat','hh:mm yyyy-MM-dd');
- change_or_make_setting('WatchTVGuide','0');
- change_or_make_setting('WeatherDBSchemaVer','1000');
- change_or_make_setting('WebBrowserCommand','/usr/bin/mythbrowser');
- change_or_make_setting('WebBrowserHideScrollbars','0');
- change_or_make_setting('WebBrowserScrollMode','1');
- change_or_make_setting('WebBrowserScrollSpeed','4');
- change_or_make_setting('WebBrowserZoomLevel','20');
- change_or_make_setting('XineramaScreen','0');
- change_or_make_setting('blockSDWUwithoutClient','1');
- change_or_make_setting('idleWaitForRecordingTime','15');
- change_or_make_setting('mythdvd.DVDPlayerCommand', 'Internal');
- change_or_make_setting('mythvideo.VideoTreeRemember', '1');
- change_or_make_setting('mythfilldatabaseLastRunStart','');
- change_or_make_setting('mythfilldatabaseLastRunEnd','');
- change_or_make_setting('mythfilldatabaseLastRunStatus','');
-
- #
- # customexample table
- #
- change_or_make_entry("customexample", [["fromclause", ""], ["whereclause", "program.category_type = \"movie\" AND program.airdate >= YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) AND program.stars > 0.5 "], ["search", "1"]], [["rulename", "New Flix"]]);
-
-# # As much of MythWeather as we can automate for now
- my $units = 0;
- my $metric_units = do_query("SELECT * FROM settings WHERE value='SIUnits' AND data='YES'");
- if ($metric_units) {
- $units=0;
- } else {
- $units=1;
- }
-# change_or_make_entry("weatherscreens", [["draworder", "0"], ["container", "Six Day Forecast"], ["units", $units]], [["screen_id", 1]]);
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "6dlocation"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# for (my $increment=0; $increment < 6; $increment++) {
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "date-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "high-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "icon-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "low-$increment"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-# }
-# change_or_make_entry("weatherdatalayout", [["location", "0"], ["dataitem", "updatetime"], ["weatherscreens_screen_id", 1]], [["weathersourcesettings_sourceid", 4]]);
-#
-# change_or_make_entry("weathersourcesettings", [["sourceid", "1"], ["source_name", "BBC-Current-XML"], ["update_timeout", "7200"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbccurrentxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "cclocation,station_id,copyright,observation_time,weather,temp,relative_humidity,wind_dir,pressure,visibility,weather_icon,appt,wind_spdgst"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "2"], ["source_name", "BBC-3day-XML"], ["update_timeout", "21600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/bbcthreedayxml.pl"], ["author", "Stuart Morgan"], ["version", "0.1"], ["email", "stuart\@tase.co.uk"], ["types", "3dlocation,station_id,copyright,weather_icon,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "3"], ["source_name", "ENVCAN"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ca_envcan/envcan.pl"], ["author", "Joe Ripley"], ["version", "0.4"], ["email", "vitaminjoe\@gmail.com"], ["types", "cclocation,station_id,copyright,observation_time,observation_time_rfc822,weather,temp,relative_humidity,wind_dir,wind_degrees,wind_speed,wind_gust,pressure,dewpoint,heat_index,windchill,visibility,weather_icon,appt,wind_spdgst,3dlocation,6dlocation,date-0,icon-0,low-0,high-0,date-1,icon-1,low-1,high-1,date-2,icon-2,low-2,high-2,updatetime,date-3,icon-3,low-3,high-3,date-4,icon-4,low-4,high-4,date-5,icon-5,low-5,high-5"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "4"], ["source_name", "NDFD-6_day"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "3dlocation,6dlocation,updatetime,high-0,high-1,high-2,high-3,high-4,high-5,low-0,low-1,low-2,low-3,low-4,low-5,icon-0,icon-1,icon-2,icon-3,icon-4,icon-5,date-0,date-1,date-2,date-3,date-4,date-5"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "5"], ["source_name", "NDFD-18_hour"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/ndfd18.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "18hrlocation,updatetime,temp-0,temp-1,temp-2,temp-3,temp-4,temp-5,18icon-0,18icon-1,18icon-2,18icon-3,18icon-4,18icon-5,pop-0,pop-1,pop-2,pop-3,pop-4,pop-5,time-0,time-1,time-2,time-3,time-4,time-5"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "6"], ["source_name", "NWS-Alerts"], ["update_timeout", "600"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nws-alert.pl"], ["author", "Lucien Dunning"], ["version", "0.1"], ["email", "ldunning\@gmail.com"], ["types", "swlocation,updatetime,alerts"]]);
-# change_or_make_entry("weathersourcesettings", [["sourceid", "7"], ["source_name", "NWS-XML"], ["update_timeout", "900"], ["retrieve_timeout", "30"], ["path", "/usr/share/mythtv/mythweather/scripts/nwsxml.pl"], ["author", "Lucien Dunning"], ["version", "0.2"], ["email", "ldunning\@gmail.com"], ["types", "cclocation,station_id,latitude,longitude,observation_time,observation_time_rfc822,weather,temperature_string,temp,relative_humidity,wind_string,wind_dir,wind_degrees,wind_speed,wind_gust,pressure_string,pressure,dewpoint_string,dewpoint,heat_index_string,heat_index,windchill_string,windchill,visibility,weather_icon,appt,wind_spdgst"]]);
-
- my $ipaddress = execute_shell_command("ifconfig | grep inet.addr | head -1");
- $ipaddress =~ s/.*inet addr:(\d+.\d+.\d+.\d+)\s.*/$1/g;
-
- # Change from the generic IP address to the real one.
- do_query("UPDATE settings SET data='$ipaddress' where data='127.0.0.1'");
- do_query("UPDATE settings SET data='$ipaddress' where data='MythTVip'"); # ??? needed?
-
- my $hostname = execute_shell_command("hostname") || "localhost";
- # one table at a time, replace hostname with our actual hostname
- # ??? can this be done all at once in MySQL?
- foreach my $table ("capturecard", "inuseprograms", "jobqueue", "jumppoints", "keybindings", "music_playlists",
- "musicplaylist", "recorded", "settings", "weatherscreens") {
- do_query("UPDATE $table SET hostname='$hostname'");
- }
-
- # Some entries in 'settings' should stay NULL: http://www.mythtv.org/wiki/index.php/Settings_table
- # There are fewer entries that stay NULL than there are that should have the hostname set, so while
- # it duplicates some effort to change them from NULL to the hostname and them back to NULL, it's
- # easier to maintain and more future-proof.
- foreach my $entry ("mythfilldatabaseLastRunStart", "mythfilldatabaseLastRunEnd", "mythfilldatabaseLastRunStatus",
- "DataDirectMessage", "HaveRepeats", "DBSchemaVer", "DefaultTranscoder", "MythFillSuggestedRunTime",
- "MythFillGrabberSuggestsTime", "MasterServerIP", "MasterServerPort", "TVFormat", "VbiFormat", "FreqTable",
- "TimeOffset", "MasterBackendOverride", "DeletesFollowLinks", "HDRingbufferSize", "EITTransportTimeout",
- "EITIgnoresSource", "EITCrawIdleStart", "startupCommand", "blockSDWUwithoutClient", "idleWaitForRecordingTime",
- "StartupSecsBeforeRecording", "WakeupTimeFormat", "SetWakeuptimeCommand", "ServerHaltCommand", "preSDWUCheckCommand",
- "WOLbackendConnectRetry", "WOLbackendCommand", "WOLslaveBackendsCommand", "JobsRunOnRecordHost",
- "AutoCommflagWhileRecording", "JobQueueCommFlagCommand", "JobQueueTranscodeCommand",
- "AutoTranscodeBeforeAutoCommflag", "SaveTranscoding", "UserJobDesc1", "UserJob1", "UserJobDesc2", "UserJob2",
- "UserJobDesc3", "UserJob3", "UserJobDesc4", "UserJob4", "PreviewPixmapOffset", "AllRecGroupPassword",
- "MaximumCommercialSkip", "CommSkipAllBlanks", "LastFreeCard", "LiveTVPriority", "AutoExpireMethod",
- "AutoExpireDefault", "RerecordWatched", "AutoExpireWatchedPriority", "AutoExpireLiveTVMaxAge",
- "AutoExpireDayPriority", "AutoExpireExtraSpace", "AutoExpireInsteadOfDelete", "DeletedFifoOrder",
- "CommercialSkipMethod", "AggressiveCommDetect", "AutoCommercialFlag", "AutoTranscode", "AutoRunUserJob1",
- "AutoRunUserJob2", "AutoRunUserJob3", "AutoRunUserJob4", "OverTimeCategory", "CategoryOverTime",
- "EPGEnableJumpToChannel", "LogEnabled", "MythFillEnabled", "MythFillDatabasePath", "MythFillDatabaseArgs",
- "MythFillDatabaseLog", "MythFillPeriod", "MythFillMinHour", "MythFillMaxHour", "SchedMoveHigher", "SchedOpenEnd",
- "ComplexPriority", "PrefInputPriority", "SingleRecordRecPriority", "FindOneRecordRecPriority", "ArchiveDBSchemaVer",
- "FlixDBSchemaVer", "GalleryDBSchemaVer", "GameDBSchemaVer", "MusicDBSchemaVer", "PhoneDBSchemaVer",
- "mythvideo.DBSchemaVer", "WeatherDBSchemaVer") {
- do_query("UPDATE settings SET hostname=NULL WHERE value='$entry'");
- }
-
- change_or_make_setting('MasterBackendOverride','1'); # I don't remember why, but making the hostname NULL is important here
- do_query("UPDATE settings SET hostname=NULL WHERE value='MasterBackendOverride'");
-
- # storagegroup
- change_or_make_entry("storagegroup", [["groupname", "Default"], ["hostname", $hostname], ["dirname", $SQL_DirTV]], [["id", 1]]);
-
- #
- # Websites for mythbrowser
- #
- #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmyth.net"]]);
- #change_or_make_entry("websites", [["grp", "LinHeS"], ["dsc", ""], ["updated", ""]], [["url", "http://knoppmythwiki.org"]]);
-
- disconnect_from_db();
-
- # Fix hostname for iPod feed URLs
- $command = "sed -i \"s/hostname\\//$hostname\\//g\" /usr/local/bin/myth2ipod";
- execute_shell_command($command);
-
- # Fix hostname for XViD feed URLs
- $command = "sed -i \"s/192.168.0.222\\//$hostname\\//g\" /usr/local/bin/myt2xvid3";
- execute_shell_command($command);
-
- # Customize default MythTV library.xml to reflect KnoppMyth's wider selection of
- # online stream options.
- #$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml";
- $command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml";
- execute_shell_command($command);
- } else {
- my $logger = get_logger('tweaker.script');
- $logger->error("Unable to connect to mythconverg database");
- $logger->error("Unable to implement option $option.");
- return -1;
- }
- return 1;
- }
-
- file_tweaks($option) || exit -1;
- SQL_tweaks($option) || exit -1;
-}
-
-# Try to get a Recommendation Level for $option.
-sub poll_options {
- my($option) = @_;
- recommendation_level("recommended", "These tweaks benefit all users.");
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_graphics.pl b/abs/core/tweaker/bin/twk_graphics.pl
deleted file mode 100755
index 22b6688..0000000
--- a/abs/core/tweaker/bin/twk_graphics.pl
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-# List all the options that this script supports. Make sure it matches what's in
-# the corresponding .tcf entry.
-set_known_options( 'low', 'medium', 'high' );
-
-sub check_for_GL() {
- # ??? Need to make this update a class variable instead of a temp file.
- my $fps = execute_shell_command("[ -e /tmp/fps ] && cat /tmp/fps") || -1;
-
- # We think that any nVidia cards at or below NV25 are not well-supported
- # for GL. Newer cards are NV34 or above, or have a different starting letter.
- my $generation = execute_shell_command("lspci -v | grep \"nVidia Corporation\" | grep VGA | awk -FCorporation '{ print \$2 }' | awk '{ print \$1 }'");
- my $letters = substr($generation,0,2);
- if (("$letters" eq "NV") && ("$generation" lt "NV24")) {
- $fps = 0;
- }
-
- if ($fps == -1) {
- my $result = execute_shell_command("glxinfo | grep 'direct rendering'");
- if ($result =~ m/direct rendering: Yes/) {
- my $logger = get_logger('tweaker.script');
- $logger->info("Hardware OpenGL rendering ability detected.");
- # Now poll the strength, returning the FPS from glxgears, run at the default resolution.
- # I would love to be able to poll this in a way that 1) doesn't pop up a GUI window and
- # 2) doesn't rely on manually making a database that maps video cards to performance levels.
- $result = execute_shell_command("script -q -c \"glxgears -fullscreen & sleep 11 ; pkill -15 glxgears\" | grep FPS | tail -1");
- if ($result =~ m/ (\d+)\.\d+ FPS/) {
- $fps = $1;
- execute_shell_command("echo $fps > /tmp/fps");
- }
- } else {
- $fps = 0;
- execute_shell_command("echo $fps > /tmp/fps");
- }
- }
- return $fps;
-}
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- switch ($option) {
- # List all the options that this script supports. You can have as many as you like.
- case "low" {
- change_or_make_setting('ThemePainter', 'Qt') || exit -1;
- change_or_make_setting('SlideshowUseOpenGL', '0') || exit -1;
- change_or_make_setting('SlideshowOpenGLTransition', 'none') || exit -1;
- change_or_make_setting('SlideshowTransition', 'none') || exit -1;
- }
- case "medium" {
- change_or_make_setting('ThemePainter', 'Qt') || exit -1;
- change_or_make_setting('SlideshowUseOpenGL', '1') || exit -1;
- change_or_make_setting('SlideshowOpenGLTransition', 'random (gl)') || exit -1;
- change_or_make_setting('SlideshowTransition', 'random') || exit -1;
- }
- case "high" {
- change_or_make_setting('ThemePainter', 'opengl') || exit -1;
- change_or_make_setting('SlideshowUseOpenGL', '1') || exit -1;
- change_or_make_setting('SlideshowOpenGLTransition', 'random (gl)') || exit -1;
- change_or_make_setting('SlideshowTransition', 'random') || exit -1;
- }
-
- # In all cases, do the following:
-
- # enable anti-aliased fonts
- my $qtrc="/home/mythtv/.qt/qtrc";
- # clean out old Xft settings
- my $command = "sed -i 's/.*Xft=.*//g' $qtrc";
-
- if (my $error = execute_shell_command($command)) {
- my $logger = get_logger('tweaker.script');
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- } else {
- # Add Xft settings
- my $command = "sed -i 's/embedFonts=true/embedFonts=true\nenableXft=true\nuseXft=true/g' $qtrc";
- if (my $error = execute_shell_command($command)) {
- my $logger = get_logger('tweaker.script');
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- } else {
- # Make sure to use an AA-capable font
- my $command = "sed -i 's/font=.*/font=Sans Serif,12,-1,5,50,0,0,0,0,0/g' $qtrc";
- if (my $error = execute_shell_command($command)) {
- my $logger = get_logger('tweaker.script');
- $logger->error("ERROR: $error");
- $logger->error("ERROR: Unable to implement option $option.");
- exit(-1);
- }
- }
- }
- }
- } else {
- exit -1;
- }
- disconnect_from_db();
-}
-
-# Poll the system to see what recommendationlevel the given option has on the system.
-sub poll_options {
- my($option) = @_;
-
- # These are somewhat arbitrary at this point. Note that they correspond to
- # _full screen_ glxgears results in Frames Per Second (FPS), since GL is used
- # at full screen resolution in MythTV.
- my $low_threshold = 350; # at or below $low_threshold FPS, GL is not considered good enough to use in MythTV
- my $medium_threshold = 425; # GL is pretty usable here
- my $high_threshold = 500;
-
- threshold_test($option, check_for_GL(), "video card", $low_threshold, $medium_threshold, $high_threshold);
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_keymap.sh b/abs/core/tweaker/bin/twk_keymap.sh
deleted file mode 100755
index c7f4093..0000000
--- a/abs/core/tweaker/bin/twk_keymap.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/bin/bash
-
-# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-# This script is called from twk_general.pl to implement keymap standardization in KnoppMyth
-
-#KNOPPMYTH_SHARE=/usr/local/share/knoppmyth
-
-####################
-# Unify key mappings
-####################
-
-# Universal keybindings:
-# Function Remote Key Keyboard Key
-# ------------------------------------------
-# Skip Back << PgUp
-# Skip Forward >> PgDn
-# Play |> l
-# Pause || p
-# Stop [] ESC
-
-#Make mplayer use keymappings that are compatible with other media player keymappings.
-#NOTE: PGUP is PageUp and PGDWN is PageDown
-MPLAYER_CONF=/etc/mplayer/input.conf
-if [[ -f $MPLAYER_CONF ]]; then
- sed -i "s/^PGUP .*/PGUP seek -60/" $MPLAYER_CONF
- sed -i "s/^PGDWN .*/PGDWN seek +60/" $MPLAYER_CONF
- sed -i "s/^p .*/p pause/" $MPLAYER_CONF
- sed -i "s/^l .*/l pause/" $MPLAYER_CONF
-else
- echo "ERROR: $MPLAYER_CONF is missing, which is unexpected."
- exit -1
-fi
-
-#Do the same for smplayer
-SMPLAYER_CONF=/home/mythtv/.config/smplayer/smplayer.ini
-if [[ -f $SMPLAYER_CONF ]]; then
- echo "INFO: $SMPLAYER_CONF found; tweaking now"
-else
- echo "INFO: $SMPLAYER_CONF is missing; installing full version, then (re-)tweaking"
- sudo -u mythtv mkdir -p /home/mythtv/.config/smplayer/
- /bin/cp $TWEAKER_ROOT/fs$SMPLAYER_CONF $SMPLAYER_CONF
-fi
-sed -i "s/rewind3=.*/rewind3=PgUp/" $SMPLAYER_CONF
-sed -i "s/forward3=.*/forward3=PgDown/" $SMPLAYER_CONF
-sed -i "s/quit=.*/quit=Esc/" $SMPLAYER_CONF
-sed -i "s/pause=.*/pause=P/" $SMPLAYER_CONF
-sed -i "s/play=.*/play=L/" $SMPLAYER_CONF
-# Remove conflicting keybindings
-sed -i "s/stop=.*/stop=/" $SMPLAYER_CONF
-sed -i "s/play_or_pause=.*/play_or_pause=/" $SMPLAYER_CONF
-sed -i "s/exit_fullscreen=.*/exit_fullscreen=/" $SMPLAYER_CONF
-sed -i "s/pl_play=.*/pl_play=/" $SMPLAYER_CONF
diff --git a/abs/core/tweaker/bin/twk_localization.pl b/abs/core/tweaker/bin/twk_localization.pl
deleted file mode 100755
index fc84440..0000000
--- a/abs/core/tweaker/bin/twk_localization.pl
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-set_known_options( 'US_English', 'GB_English' ); # Should eventually expand to handle all translations available for MythTV.
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- # The entire planet except the US uses metric measurements.
- change_or_make_setting('SIUnits', 'YES') || exit -1;
- switch ($option) {
- case "US_English" {
- # Uses Imperial measurements for things like weather.
- change_or_make_setting('SIUnits', 'NO') || exit -1;
- change_or_make_setting('Language', 'EN') || exit -1;
- change_or_make_setting('ISO639Language0', 'eng') || exit -1;
- change_or_make_setting('ISO639Language1', 'eng') || exit -1;
- change_or_make_setting('MythArchiveVideoFormat', 'NTSC') || exit -1;
- }
- case "GB_English" {
- change_or_make_setting('Language', 'EN_GB') || exit -1;
- change_or_make_setting('ISO639Language0', 'eng') || exit -1;
- change_or_make_setting('ISO639Language1', 'eng') || exit -1;
- change_or_make_setting('MythArchiveVideoFormat', 'PAL') || exit -1;
- }
- }
- } else {
- exit -1;
- }
- disconnect_from_db();
-}
-
-# Try to get a Recommendation Level for $option.
-sub poll_options {
- my($option) = @_;
-
- recommendation_level("optional", "We don't yet have any way to know what your preferred language is. This option is as valid as any other.");
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_misc.pl b/abs/core/tweaker/bin/twk_misc.pl
deleted file mode 100755
index 96771a6..0000000
--- a/abs/core/tweaker/bin/twk_misc.pl
+++ /dev/null
@@ -1,13 +0,0 @@
-# Placeholder for tweaks not yet implemented
-
-# Screen size / viewing distance
-change_or_make_setting('chanPerPage', '4') || exit -1;
-change_or_make_setting('timePerPage', '3') || exit -1;
-
-# Disk space / sound quality / compatibility
-change_or_make_setting('DefaultRipQuality', '2') || exit -1;
-change_or_make_setting('Mp3UseVBR', '1') || exit -1;
-
-# Localization / tuner type
-# N. America
-change_or_make_setting('VbiFormat', 'NTSC Closed Caption') || exit -1;
diff --git a/abs/core/tweaker/bin/twk_scrub_sql.pl b/abs/core/tweaker/bin/twk_scrub_sql.pl
deleted file mode 100755
index c1de20b..0000000
--- a/abs/core/tweaker/bin/twk_scrub_sql.pl
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2008-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-# List all the options that this script supports. Make sure it matches what's in
-# the corresponding .tcf entry.
-set_known_options( 'scrub', 'protect' );
-my $beginning_of_user_index=65;
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
-
- my @table_list = (
- [ 'capturecard', 'cardid' ], # tuner-related
- [ 'cardinput', 'cardinputid' ], # tuner-related
- [ 'videosource', 'sourceid' ], # tuner-related
-
- [ 'dvdinput', 'intid' ],
- [ 'dvdtranscode', 'intid' ],
- [ 'gameplayers', 'gameplayerid' ],
- [ 'music_smartplaylist_categories', 'categoryid' ],
- [ 'music_smartplaylist_items', 'smartplaylistitemid' ],
- [ 'music_smartplaylists', 'smartplaylistid' ],
- [ 'phonedirectory', 'intid' ],
- [ 'profilegroups', 'id' ],
- [ 'recordingprofiles', 'id' ],
- [ 'storagegroup', 'id' ],
- [ 'videotypes', 'intid' ],
- );
-
- switch ($option) {
- case "scrub" { # delete the rows from the table
- foreach my $table (@table_list) {
- do_query("DELETE FROM @$table[0] WHERE @$table[1] < $beginning_of_user_index;");
- do_query("ALTER TABLE @$table[0] AUTO_INCREMENT = 0;");
- }
- }
- case "protect" {
- foreach my $table (@table_list) {
- do_query("ALTER TABLE @$table[0] AUTO_INCREMENT = $beginning_of_user_index;");
- }
- }
- }
- } else {
- exit -1;
- }
- disconnect_from_db();
-}
-
-sub poll_options {
- my($option) = @_;
- switch ($option) {
- case "scrub" {
- recommendation_level("recommended", "This is required to ensure that other KnoppMyth SQL Tweaks work.");
- }
- case "protect" {
- recommendation_level("recommended", "This is required to ensure that other KnoppMyth SQL Tweaks do not clobber user-made changes.");
- }
- }
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
-
-
diff --git a/abs/core/tweaker/bin/twk_tuners.pl b/abs/core/tweaker/bin/twk_tuners.pl
deleted file mode 100755
index 22c6a23..0000000
--- a/abs/core/tweaker/bin/twk_tuners.pl
+++ /dev/null
@@ -1,491 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-set_known_options( 'all' ); # When Tweaker handles multiple instances of a script, this will be expanded to
-# handle options for a given card, based on what it supports, e.g. ATSC, QAM, NTSC-coax, NTSC-Svideo, etc.
-# The current version of this script will run once and set up defaults for all detected cards, choosing
-# a default configuration based on some assumptions of common usage. Modes in this array should be listed
-# from least desirable to most desirable. E.g. ["NTSC", "ATSC", "QAM"]
-
-my @capture_card_patterns = (
- # DIGITAL
- # -------
- # ATSC-only devices
- [ "pcHDTV hd-2000", [".*0400.*109e.*036e.*r11.*7063.*2000.*"],
- ["DVB", ["ATSC"]]],
-# [ "BBTI Air2PC v2", [".*0280.*13d0.*2103.*r02.*13d0.*2103.*"], # ??? dupe 1; mihanson
-# ["DVB", ["ATSC"]]],
-
- # DVB-T devices
- [ "DViCO FusionHDTV DVB-T Lite", [".*0400.*109e.*036e.*r11.*18ac.*db10.*"],
- # secondary device "0480" "109e" "0878" -r11 "18ac" "d500"
- ["DVB", ["DVB-T"]]],
- [ "DViCO FusionHDTV DVB-T1", [".*0400.*14f1.*8800.*18ac.*db00.*"],
- ["DVB", ["DVB-T"]]], # also has composite and S-Video in for frame grabbing
- [ "DViCO FusionHDTV DVB-T Plus", [".*0400.*14f1.*8800.*8800.*db10.*"],
- ["DVB", ["DVB-T"]]],
- [ "DViCO FusionHDTV dual Express", [".*0400.*14f1.*8852.*18ac.*db78.*"],
- ["DVB", ["DVB-T"]]],
- [ "Twinhan VisionPlus DVB-T", [".*0400.*109e.*036e.*r11.*1822.*0001.*"], # ??? dupe 2; jbman, Girkers
- ["DVB", ["DVB-T"]]],
-# [ "EU Hauppauge PVR-500 (DVB-T)", [".*0400.*4444.*0016.*0070.*e807.*"],
-# ["DVB", ["DVB-T"]]],
- [ "Avermedia A777", [".*0480.*1131.*7133.*1461.*2c05.*", ".*0480.*1131.*7134.*1461.*2c05.*"],
- ["DVB", ["DVB-T"]]],
- [ "Compro T300", [".*0480.*1131.*7134.*185b.*c900.*", ".*0480.*1131.*7134.*7134.*c900.*"],
- ["DVB", ["DVB-T"]]],
-
- # DVB-C devices
- [ "Siemens DVB-C", [".*0480.*1131.*7146.*110a.*0000.*"],
- ["DVB", ["DVB-C"]]],
-
- # DVB-S devices
- [ "VisionPlus 1020A", [".*0480.*109e.*0878.*1822.*0001.*"],
- ["DVB", ["DVB-S"]]],
-# [ "Technisat Skystar2", [".*0280.*13d0.*2103.*r01.*13d0.*2103.*"], # ??? dupe 1; nbdwt73, neutron68
-# ["DVB", ["DVB-S"]]],
- [ "Twinhan 102g", [".*0400.*109e.*036e.*r11.*1822.*0001.*"], # ??? dupe 2; neutron68
- # secondary device "0480" "109e" "0878" -r11 "1822" "0001"
- ["DVB", ["DVB-S"]]],
-
- # ATSC/QAM devices
- [ "Kworld ATSC-110", [".*0480.*1131.*7133.*17de.*"],
- ["DVB", ["ATSC", "QAM"]]],
- [ "pcHDTV hd-3000", [".*0400.*14f1.*8800.*3000.*"],
- ["DVB", ["ATSC", "QAM"]]], # the hd-3000 has several sub-devices; this pattern matches the digital tuner
- [ "BBTI HD5000AV / AirStar 2 TV", [".*0280.*13d0.*2103.*r02.*13d0.*2103.*"], # ??? dupe 1; manicmike
- ["DVB", ["ATSC", "QAM", "DVB-T"]]],
- [ "pcHDTV hd-5500", [".*0400.*14f1.*8800.*7063.*5500.*"],
- ["DVB", ["ATSC", "QAM"]]],
- [ "Hauppauge WinTV-HVR-1800", [".*0400.*14f1.*8880.*0070.*7801.*"],
- ["DVB", ["ATSC", "QAM"]]],
- [ "DViCO Fusion Express", [".*0400.*14f1.*8852.*r02.*18ac.*d500.*"],
- ["DVB", ["ATSC", "QAM"]]],
-
- # card has one sub-device; this pattern matches the primary device
- [ "DViCO Fusion HDTV5 Lite", [".*0400.*109e.*036e.*r11.*18ac.*d500.*"],
- # secondary device "0480" "109e" "0878" -r11 "18ac" "d500"
- ["DVB", ["ATSC", "QAM"]]],
-
- # ANALOG
- # -------
- # NTSC cards
- # MPEG-2 type
- [ "Hauppauge PVR-150", [".*0400.*4444.*0016.*0070.*8003.*", ".*0400.*4444.*0016.*0070.*8801.*"],
- ["MPEG", ["NTSC"]]],
- [ "Hauppauge PVR-250", [".*0200.*10ec.*8139.*1799.*5000.*", ".*0400.*4444.*0016.*0070.*4009.*", ".*0400.*4444.*0016.*0070.*f7f9.*"],
- ["MPEG", ["NTSC"]]],
- [ "Hauppauge PVR-350", [".*0400.*4444.*0803.*0070.*4000.*"],
- ["MPEG", ["NTSC"]]],
-
- # NTSC/PAL cards
- # MPEG-2 type
- [ "Hauppauge PVR-500", [".*0400.*4444.*0016.*0070.*e817.*", ".*0400.*4444.*0016.*0070.*e807.*"], # look for each of two devices on the card, since it's dual-tuner
- ["MPEG", ["NTSC"]]],
-
- # Frame grabbers
-# [ "bt878-based frame grabbers", [".*0400.*109e.*036e.*", ".*0480.*109e.*0878.*"],
-# ["V4L", ["NTSC"]]],
-
- # USB patterns
-
- [ "Dvico Dual Digital 4 rev2", [".* 0fe9:db98 .*"],
- ["DVB", ["DVB-T"]]],
- );
-
-# "Hauppauge Nova-T 500 Dual DVB-T"
-
-#T: Bus=08 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
-#D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
-#P: Vendor=2040 ProdID=9941 Rev= 1.00
-#S: Manufacturer=Hauppauge
-#S: Product=WinTV Nova-DT
-#S: SerialNumber=4027351140
-#C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
-#I:* If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=dvb_usb_dib0700
-#E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
-#E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-#E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-#E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-
-# "Hauppauge Nova-T-500"
-
-#T: Bus=08 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
-#D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
-#P: Vendor=2040 ProdID=9950 Rev= 1.00
-#S: Manufacturer=Hauppauge
-#S: Product=WinTV Nova-DT
-#S: SerialNumber=4027353863
-#C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
-#I: If#= 0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=00 Prot=00 Driver=dvb_usb_dib0700
-#E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=125us
-#E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-#E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-#E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- my $logger = get_logger('tweaker.script');
-
- # Get a list of all PCI and USB devices for later processing
- my @device_list = split('\n', execute_shell_command("lspci -mn ; lsusb"));
-
- # Iterate through the list of known tuner cards, then the list of known network tuners.
- # For each known tuner, configure a safe default for it if it's found. Set up
- # well-named video sources for any mode supported by any tuner, and pick a default.
-
- # Determine the recording priority for a given device using the following priority rules,
- # from top to bottom, the top being the most significant, and the bottom being the least
- # significant
-
- # Input types in order of decreasing priority:
- # Digital cable, digital satellite, digital OTA, analog cable, analog line-in, analog OTA
-
- # Device types in order of decreasing priority:
- # local device, remote device
-
- # Capture types in order of decreasing priority:
- # MPEG-2 creators (or passthrough of MPEG-2), MPEG-4 creators, frame grabbers
-
- # For example, if device1 supports a better input type than device2, device1 is always preferred.
- # Ties are broken by the next level down. For example, if device1 and device2 both support the
- # same input type, the tie is broken based on whether it's a local or remote device. Finally,
- # ties of input type and device type are broken by the output of the device. It should be
- # noted that it's possible to tie in all categories, and MythTV will break ties based on the
- # order in which the devices are defined.
-
-
- # For the following subroutines, $relative_device_count represents which device this is in
- # the context of the total devices of its type. $global_device_count represents which device
- # this is amongst all capture devices. Each returns a list of row names and values
- # for the capturecard table, appropriate for the relevant type of device.
-
- # Create an entry in the capturecard table for the given tuner.
- sub make_capturecard_SQL {
- my($global_device_count, $relative_device_count, $cardtype, $tuner_number)=@_;
- # $tuner_number is only used for HDHomeRuns
- my $defaultinput="";
- my $hostname = execute_shell_command("hostname") || "localhost";
- my $checkfields = [["cardid", "$global_device_count"],
- ["hostname", "$hostname"],
- ["cardtype", "$cardtype"]];
- my $setfields;
- my $logger = get_logger('tweaker.script');
-
- # Because other devices use the /dev/video* and /dev/vbi* device
- # files, the "device count" is used to determine which number follows the base
- # device file name, e.g. /dev/video1, /dev/vbi1
- sub make_V4L_capturecard_SQL {
- my($relative_device_count)=@_; # 0-indexed
-
- return [["videodevice", "/dev/video$relative_device_count"],
- ["audiodevice", "/dev/dsp"],
- ["vbidevice", "/dev/vbi$relative_device_count"],
- ["audioratelimit", "0"]];
- }
-
- # Because other devices use the /dev/video* and /dev/vbi* device
- # files, the "device count" is used to determine which number follows the base
- # device file name, e.g. /dev/video1, /dev/vbi1
- sub make_MPEG_capturecard_SQL {
- my($relative_device_count, $defaultinput)=@_; # 0-indexed
-
- return [["videodevice", "/dev/video$relative_device_count"],
- ["defaultinput", $defaultinput]];
- }
-
- sub make_DVB_capturecard_SQL {
- my($relative_device_count, # 0-indexed
- $defaultinput)=@_;
- my $logger = get_logger('tweaker.script');
-
- $logger->debug("DEFAULTINPUT: $defaultinput");
-
- return [["videodevice", "$relative_device_count"], # Rather than being a device file, it's a 0-indexed value indicating
- # which of the N available DVB devices this is. Since a card can have more than one DVB device on it, there may
- # be more DVB "videodevice"s on a system than there are distinct "cardid"s.
- ["defaultinput", $defaultinput],
- ["dvb_on_demand", "1"]];
- }
-
- # special case of DVB device
- sub make_HDHOMERUN_capturecard_SQL {
- my($hdhr_hex_id, $tuner_number, $defaultinput)=@_;
-
- return [["videodevice", "$hdhr_hex_id"],
- ["defaultinput", $defaultinput],
- ["dvb_on_demand", "0"],
- ["dbox2_port", $tuner_number] # 0 or 1
- ];
- }
-
- $logger->debug("CARD TYPE: $cardtype");
- switch($cardtype) {
- case "V4L" {
- $setfields = make_V4L_capturecard_SQL($relative_device_count);
- }
- case "DVB" {
- $defaultinput = "DVBInput";
- $setfields = make_DVB_capturecard_SQL($relative_device_count, $defaultinput);
- }
- case "HDHOMERUN" {
- $defaultinput = "MPEG2TS";
- $setfields = make_HDHOMERUN_capturecard_SQL($relative_device_count, $tuner_number, $defaultinput);
- }
- case "MPEG" {
- $defaultinput = "Tuner 1";
- $setfields = make_MPEG_capturecard_SQL($relative_device_count, $defaultinput);
- }
- }
-
- change_or_make_entry("capturecard", $setfields, $checkfields);
- return $defaultinput;
- }
-
- # Create an entry in videosource corresponding to the sub-type of input this device takes
- # Return the sourceid for the entry we just made, which is a rough metric of desirability.
- sub verify_or_make_videosource_SQL {
- # sub-types are NTSC, PAL, ATSC, QAM, DVB-S, DVB-T, DVB-C, etc.
- my($sub_type)=@_;
- my $logger = get_logger('tweaker.script');
-
- $logger->debug("\t\t\tUpdating or adding videosource for sub-type: $sub_type");
-
- switch($sub_type) {
- # North American options, from least desirable to most desirable (this is slightly arbitrary)
- case "NTSC" {
- change_or_make_entry("videosource", [["name", "analog_broadcast"], ["freqtable", "try-all"]], [["sourceid", 1]]);
- # This is one of two cases where a sub_type can be used in two ways. Both videosources are made, but the preferred one is
- # cable, the most common option.
- change_or_make_entry("videosource", [["name", "analog_cable"], ["freqtable", "try-all"]], [["sourceid", 5]]);
- return 5;
- }
- case "ATSC" {
- change_or_make_entry("videosource", [["name", "digital_broadcast"], ["freqtable", "try-all"]], [["sourceid", 10]]);
- return 10;
- }
- case "QAM" {
- change_or_make_entry("videosource", [["name", "digital_cable"], ["freqtable", "try-all"]], [["sourceid", 20]]);
- return 20;
- }
-
- # Options for the rest of the planet
- case "PAL" {
- change_or_make_entry("videosource", [["name", "analog_broadcast"], ["freqtable", "try-all"]], [["sourceid", 1]]);
- # This is one of two cases where a sub_type can be used in two ways. Both videosources are made, but the preferred one is
- # cable, the most common option.
- change_or_make_entry("videosource", [["name", "analog_cable"], ["freqtable", "try-all"]], [["sourceid", 5]]);
- return 5;
- }
- case "DVB-T" {
- change_or_make_entry("videosource", [["name", "digital_broadcast"], ["freqtable", "try-all"]], [["sourceid", 10]]);
- return 10;
- }
- case "DVB-C" {
- change_or_make_entry("videosource", [["name", "digital_cable"], ["freqtable", "try-all"]], [["sourceid", 20]]);
- return 20;
- }
-
- # Planet-wide options
- case "DVB-S" {
- change_or_make_entry("videosource", [["name", "digital_satellite"], ["freqtable", "try-all"]], [["sourceid", 15]]);
- return 15;
- }
- }
- }
-
- sub make_cardinput_SQL {
- my($tuner_card_number, $sourceid, $inputname, $priority_modifier)=@_;
-
- change_or_make_entry("cardinput", [["sourceid", $sourceid], ["cardid", $tuner_card_number],
- ["inputname", $inputname], ["preference", $sourceid], ["tunechan", ""],
- ["startchan", "Please add"], ["freetoaironly", "1"],
- ["recpriority", $sourceid+$priority_modifier]],
- [["cardinputid", $tuner_card_number]]);
- }
-
- sub max {
- my($a, $b)=@_;
- if ($a > $b) {
- return $a;
- } else {
- return $b;
- }
- }
-
- my $global_device_count=0;
-
- # Configure each supported tuner/capture device detected on the system.
-
- # built-in, PCI, PCI Express, or USB
- $logger->debug("Processing built-in, PCI, PCI Express or USB devices...");
- for my $a_device (@device_list) {
- $logger->debug("DEVICE: $a_device");
- my $match=0;
-
- for my $device_data (@capture_card_patterns) {
- $logger->debug("\tIs there a @$device_data[0] at this location?");
-
- for my $patterns (@$device_data[1]) {
- for my $pattern (@$patterns) {
- if ($match) {
- next;
- } else {
- $logger->debug("\t\tPATTERN: $pattern");
- $match += ($a_device =~ m/$pattern/i);
- if ($match) {
- $global_device_count++; # 1-indexed
-
- $logger->debug("\t\tfound one!");
- # Each device has a device type (e.g. MPEG, DVB, V4L) that it supports, and a
- # list of sub_types (e.g. PAL, NTSC, DVB-S, DVB-T, DVB-C, ATSC, QAM).
- # The device type is used to configure the capturecard table and the cardinput table.
- # The sub_types are used to populate the videosource table.
- # The device type and "best" sub_type are used to set the 'sourceid' field of the cardinput table.
-
- for my $typeblock (@$device_data[2]) {
- my $device_type = @$typeblock[0];
- $logger->debug("\t\tDEVICE TYPE: $device_type"); # e.g. "DVB", "MPEG", etc.
- $cardtypes{$device_type}++;
- my $sourceid = -1;
- for my $sub_types (@$typeblock[1]) {
- for my $sub_type (@$sub_types) {
- $logger->debug("\t\tSUB-TYPE: $sub_type\n"); # e.g. "DVB-S", "QAM", etc.
- # ensure that the videosource table has an entry for each sub_type
- # that this device supports; use the "best" one for the device by
- # default
-
- #
- # POPULATE videosource table
- #
- $sourceid = max(verify_or_make_videosource_SQL($sub_type), $sourceid);
- }
- }
- $logger->debug("\t\t\"BEST\" SOURCE ID: $sourceid\n");
-
- #
- # POPULATE capturecard table
- #
- my $defaultinput = make_capturecard_SQL($global_device_count, $cardtypes{$device_type}-1, $device_type, -1);
-
- #
- # POPULATE cardinput table
- #
- make_cardinput_SQL($global_device_count, $sourceid, $defaultinput, 0);
- }
- }
- }
- }
- }
- }
- }
-
- # network tuner devices
- $logger->debug("Processing network devices...");
-
- # get our IP address
- my $ip_address;
- open(SHELL, "ifconfig | grep \"inet addr\" | grep -v 127 |");
- while(<SHELL>) {
- my @line = split(/:| +/);
- $ip_address = $line[3];
- }
- close(SHELL);
-
- # ??? eventually, just add LocalIPCheck.pl's code to Tweaker/Script.pm and avoid bizarre perl-to-shell-to-perl calls at this level
- my $ip_class = execute_shell_command("echo $ip_address | LocalIPCheck.pl; echo \$?");
-
- if ($ip_class > 0) { # we're on a LAN, not the internet
- # Look for HDHomeRun, a DVB ATSC/QAM device
- $sourceid=0;
- $logger->debug("\tLooking for SiliconDust HDHomeRun...");
- open(SHELL2, "hdhomerun_config discover |");
- while(<SHELL2>) {
- if (m/\d+\.\d+\.\d+\.\d+/) {
- my @line = split(/ /);
- my $hdhr_hex_id = $line[2];
-
- $logger->debug("\tfound $hdhr_hex_id");
- $global_device_count++; # 1-indexed
- $cardtypes{"DVB"}++;
- #
- # POPULATE videosource table
- #
- for my $sub_type ("ATSC", "QAM") {
- $sourceid = max(verify_or_make_videosource_SQL($sub_type), $sourceid);
- }
- $logger->debug("\t\t\"BEST\" SOURCE ID: $sourceid\n");
-
- #
- # POPULATE capturecard table
- #
-
- # there are two tuners per HDHomeRun
- for (my $sub_tuner_count = 0; $sub_tuner_count < 2; $sub_tuner_count++) {
- my $defaultinput = make_capturecard_SQL($global_device_count+$sub_tuner_count, $hdhr_hex_id, "HDHOMERUN", $sub_tuner_count);
- #
- # POPULATE cardinput table
- #
- make_cardinput_SQL($global_device_count+$sub_tuner_count, $sourceid, $defaultinput, -4); # the -4 is to make it less desirable
- # than a local device
- }
- $global_device_count++;
-
- }
- }
- close(SHELL2);
- } # else: don't scan the internet!
-
- # Filesystem Tweaks for tuners
- # This only works with the Nova-T-500 card, but it doesn't hurt any other cards
- execute_shell_command("echo \"#switch on onboard amplifier on Nova-T-500 card\" > /etc/modprobe.d/dvb-usb-dib0700");
- execute_shell_command("echo \"options dvb-usb-dib0700 force_lna_activation=1\" >> /etc/modprobe.d/dvb-usb-dib0700");
- } else {
- my $logger = get_logger('tweaker.script');
- $logger->error("Unable to connect to mythconverg database");
- $logger->error("Unable to implement option $option.");
- return -1;
- }
-}
-
-# Try to get a Recommendation Level for $option.
-sub poll_options {
- my($option) = @_;
-
- recommendation_level("recommended", "Everyone should scan for tuners to autoconfigure.");
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_tuners_notes.txt b/abs/core/tweaker/bin/twk_tuners_notes.txt
deleted file mode 100644
index 1f2e283..0000000
--- a/abs/core/tweaker/bin/twk_tuners_notes.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-# Some PCI devices have the same lspci -mn fingerprint, yet users are identifying them as having different functions. The example below is reported as an ATSC(DVB-T) card by one user and as a DVB-S card by two other users. lspci -vvxxx provides more fingerprint data, and I'm trying to see if there's a definitive way to tell the cards apart from it.
-
- [ "BBTI Air2PC v2", [".*0280.*13d0.*2103.*r02.*13d0.*2103.*"], # ??? dupe 1; mihanson
- ["DVB", ["ATSC"]]],
- # mihanson lspci -vvxxx info:
-
-#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00
-#10: 00 00 64 ed 81 70 00 00 00 00 00 00 00 00 00 00
-#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
-#30: 00 00 00 00 00 00 00 00 00 00 00 00 0c 01 00 00
-
-#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00
-#10: 00 00 65 ed a1 70 00 00 00 00 00 00 00 00 00 00
-#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
-#30: 00 00 00 00 00 00 00 00 00 00 00 00 0b 01 00 00
-
-#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00
-#10: 00 00 66 ed c1 70 00 00 00 00 00 00 00 00 00 00
-#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
-#30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 00 00
-
-#00: d0 13 03 21 07 01 00 04 02 00 80 02 00 40 00 00
-#10: 00 00 67 ed e1 70 00 00 00 00 00 00 00 00 00 00
-#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
-#30: 00 00 00 00 00 00 00 00 00 00 00 00 0c 01 00 00
-
-# Among the above, there are only three sections that
-# differ, shown by XX:
-#10: -- -- XX -- XX -- -- -- -- -- -- -- -- -- -- --
-#30: -- -- -- -- -- -- -- -- -- -- -- -- XX -- -- --
-
-
- [ "Technisat Skystar2", [".*0280.*13d0.*2103.*r01.*13d0.*2103.*"], # ??? dupe 1; nbdwt73, neutron68
- ["DVB", ["DVB-S"]]],
- # Neutron68 lspci -vvxxx info:
-#00: d0 13 03 21 07 01 00 04 01 00 80 02 00 40 00 00
-#10: 00 00 ae fa 81 c8 00 00 00 00 00 00 00 00 00 00
-#20: 00 00 00 00 00 00 00 00 00 00 00 00 d0 13 03 21
-#30: 00 00 00 00 00 00 00 00 00 00 00 00 05 01 00 00
-
-# when compared with mihanson's blocks, these entries differ:
-#00: -- -- -- -- -- -- -- -- -- -- -- XX -- -- -- --
-#10: -- -- XX XX XX XX XX -- -- -- -- -- -- -- -- --
-#20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-#30: -- -- -- -- -- -- -- -- -- -- -- -- XX -- -- --
-
-# eliminating the entries that even differ among mihanson's devices, we get:
-#00: -- -- -- -- -- -- -- -- -- -- -- XX -- -- -- --
-#10: -- -- -- XX -- XX XX -- -- -- -- -- -- -- -- --
-#20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-#30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-
-# Without more feedback, it's not clear whether or not this pattern is representative
-# of the differences between the DVB-S and ATSC versions of this device.
-
diff --git a/abs/core/tweaker/bin/twk_upgrade.pl b/abs/core/tweaker/bin/twk_upgrade.pl
deleted file mode 100755
index b5d09b6..0000000
--- a/abs/core/tweaker/bin/twk_upgrade.pl
+++ /dev/null
@@ -1,190 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright 2007-2009 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-#
-# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
-#
-# Tweaker 0.7 is not interactive, so these post-upgrade changes are a stopgap
-# measure to make sure people upgrading from R5F27 get sensible settings
-# for things that MythTV 0.21 doesn't know how to handle properly. This file
-# should shrink or disappear entirely once Tweaker becomes interactive.
-#
-# NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
-#
-
-use Switch;
-use Tweaker::Script;
-package Tweaker::Script;
-
-set_known_options( 'all' );
-
-# Try to implement the given option.
-sub implement_option {
- my($option) = @_;
-
- $dbconnectionstring = get_mythtv_connection_string();
-
- if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
- # use poll results from twk_cpu.pl to set playback decoder options
- my @levels = ("low", "medium", "high");
- foreach my $level (@levels) {
- my @results = split(/\|/, execute_shell_command("twk_cpu.pl --poll $level"));
- foreach my $result (@results) {
- if ($result eq "recommended") {
- if ("$level" eq "low") {
- change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU--') || exit -1; # best playback defaults for weak hardware
- } elsif ("$level" eq "medium") {
- change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU+') || exit -1; # best playback defaults for average hardware
- } elsif ("$level" eq "high") {
- change_or_make_setting('DefaultVideoPlaybackProfile', 'CPU++') || exit -1; # best playback defaults for powerful hardware
- }
- }
- }
- }
-
- # Update visualization modes for 0.21
- change_or_make_setting('VisualMode','BumpScope;Gears;Goom;MonoScope;Squares;StereoScope;Synaesthesia;LibVisual-bumpscope;LibVisual-corona;LibVisual-infinite;LibVisual-jakdaw;LibVisual-jess;AlbumArt');
-
- # Remove possibly obsolete and conflicting theme cache entries.
- execute_shell_command("/bin/rm -rf /home/mythtv/.mythtv/themecache/");
-
- # Fix bizarre ownership of files:
- execute_shell_command("chown -f root: /usr/bin/get_dual.sh");
- execute_shell_command("chown -fR root: /usr/lib/krp");
- execute_shell_command("chown -fR root: /usr/local/bin");
- execute_shell_command("chown -f root: /usr/share/man/man1/tv_grab_au.1.gz");
- execute_shell_command("chown -f root: /usr/share/xmltv/tv_grab_au/channel_ids");
- execute_shell_command("chown -fR root:src /usr/src/");
-
- # Fix video problems for some nVidia users
- execute_shell_command("grep nvidia /etc/X11/xorg.conf && sed -i -e 's/^[ \t]*Option.*\"XvmcUsesTextures\".*/#REMOVEME/g' -e 's/^[ \t]*Option.*\"UseEvents\".*/#REMOVEME/g' /etc/X11/xorg.conf"); # clear out old entries, if present
- execute_shell_command("grep nvidia /etc/X11/xorg.conf && sed -i -n '1h;2,\$H;\${g;s/#REMOVEME\\n//g;p}' /etc/X11/xorg.conf"); # clear out old entries, if present
- execute_shell_command("grep nvidia /etc/X11/xorg.conf && sed -i 's/\\(^[ \t]*Driver.*\"nvidia\".*\\)/\\1\\n\tOption \"XvmcUsesTextures\" \"false\"\\n\tOption \"UseEvents\" \"true\"/g' /etc/X11/xorg.conf");
- execute_shell_command("if [ -e /home/mythtv/.nvidia-settings-rc ] ; then sed -i -e \"s'.*XVideoTextureSyncToVBlank.*'#REMOVEME'g\" -e \"s'.*XVideoBlitterSyncToVBlank.*'#REMOVEME'g\" /home/mythtv/.nvidia-settings-rc; fi");
- execute_shell_command("grep nvidia /etc/X11/xorg.conf && echo 0/XVideoTextureSyncToVBlank=0 >> /home/mythtv/.nvidia-settings-rc && echo 0/XVideoBlitterSyncToVBlank=0 >> /home/mythtv/.nvidia-settings-rc && sed -i -n '1h;2,\$H;\${g;s/#REMOVEME\\n//g;p}' /home/mythtv/.nvidia-settings-rc");
-
-
- # Enable any digital audio out device we can.
- my $command = "amixer scontrols | grep IEC958";
- my @results = split('\n', execute_shell_command($command));
- foreach my $line (@results) {
- if ($line =~ /Simple mixer control (.*),.*/i) {
- $command = "su - mythtv -c \"amixer set $1 on\""; # Tries to set all IEC958 devices to 'on'
- # but some are just placeholders and can't be turned 'on', therefore don't error out if we fail
- execute_shell_command($command);
- }
- }
- execute_shell_command("alsactl store"); # persist the above change(s)
-
- # The Chaintech AV-710 was generally configured for digital audio in R5F27 in a way that worked
- # great there but which is failing utterly in R5.5. Try to detect this old configuration, and if
- # it's present, implement the new settings which seem to work for all digital audio devices.
- # This may only match 80% of the AV-710 users, but the rest of them can just run the necessary
- # tweaker command by hand to get the same result.
- if (execute_shell_command('lspci -mn | grep -e ".*0401.*1412.*1724.*1412.*1724"')) {
- # found an AV-710, now see if it's configured for digital audio
- if (do_query("SELECT * FROM settings WHERE value='AudioOutputDevice' AND data='/dev/adsp'")) {
- # The user was using this AV-710's spdif output, so give them the new good digital configuration
- execute_shell_command("twk_audio.pl --implement digital");
- }
- }
- change_or_make_setting('MixerDevice', 'ALSA:default') || exit -1;
-
- # Undo obsolete mplayer workaround for aspect ratio
- execute_shell_command("sed -i 's/.*monitoraspect.*//g' /home/mythtv/.mplayer/config");
-
- my $hostname = execute_shell_command("hostname") || "localhost";
- # one table at a time, replace hostname with our actual hostname
- # ??? can this be done all at once in MySQL?
- foreach my $table ("capturecard", "inuseprograms", "jobqueue", "jumppoints", "keybindings", "music_playlists",
- "musicplaylist", "recorded", "settings", "weatherscreens") {
- do_query("UPDATE $table SET hostname='$hostname'");
- }
-
- # Some entries in 'settings' should stay NULL: http://www.mythtv.org/wiki/index.php/Settings_table
- # There are fewer entries that stay NULL than there are that should have the hostname set, so while
- # it duplicates some effort to change them from NULL to the hostname and them back to NULL, it's
- # easier to maintain and more future-proof.
- foreach my $entry ("mythfilldatabaseLastRunStart", "mythfilldatabaseLastRunEnd", "mythfilldatabaseLastRunStatus",
- "DataDirectMessage", "HaveRepeats", "DBSchemaVer", "DefaultTranscoder", "MythFillSuggestedRunTime",
- "MythFillGrabberSuggestsTime", "MasterServerIP", "MasterServerPort", "TVFormat", "VbiFormat", "FreqTable",
- "TimeOffset", "MasterBackendOverride", "DeletesFollowLinks", "HDRingbufferSize", "EITTransportTimeout",
- "EITIgnoresSource", "EITCrawIdleStart", "startupCommand", "blockSDWUwithoutClient", "idleWaitForRecordingTime",
- "StartupSecsBeforeRecording", "WakeupTimeFormat", "SetWakeuptimeCommand", "ServerHaltCommand", "preSDWUCheckCommand",
- "WOLbackendConnectRetry", "WOLbackendCommand", "WOLslaveBackendsCommand", "JobsRunOnRecordHost",
- "AutoCommflagWhileRecording", "JobQueueCommFlagCommand", "JobQueueTranscodeCommand",
- "AutoTranscodeBeforeAutoCommflag", "SaveTranscoding", "UserJobDesc1", "UserJob1", "UserJobDesc2", "UserJob2",
- "UserJobDesc3", "UserJob3", "UserJobDesc4", "UserJob4", "PreviewPixmapOffset", "AllRecGroupPassword",
- "MaximumCommercialSkip", "CommSkipAllBlanks", "LastFreeCard", "LiveTVPriority", "AutoExpireMethod",
- "AutoExpireDefault", "RerecordWatched", "AutoExpireWatchedPriority", "AutoExpireLiveTVMaxAge",
- "AutoExpireDayPriority", "AutoExpireExtraSpace", "AutoExpireInsteadOfDelete", "DeletedFifoOrder",
- "CommercialSkipMethod", "AggressiveCommDetect", "AutoCommercialFlag", "AutoTranscode", "AutoRunUserJob1",
- "AutoRunUserJob2", "AutoRunUserJob3", "AutoRunUserJob4", "OverTimeCategory", "CategoryOverTime",
- "EPGEnableJumpToChannel", "LogEnabled", "MythFillEnabled", "MythFillDatabasePath", "MythFillDatabaseArgs",
- "MythFillDatabaseLog", "MythFillPeriod", "MythFillMinHour", "MythFillMaxHour", "SchedMoveHigher", "SchedOpenEnd",
- "ComplexPriority", "PrefInputPriority", "SingleRecordRecPriority", "FindOneRecordRecPriority", "ArchiveDBSchemaVer",
- "FlixDBSchemaVer", "GalleryDBSchemaVer", "GameDBSchemaVer", "MusicDBSchemaVer", "PhoneDBSchemaVer",
- "mythvideo.DBSchemaVer", "WeatherDBSchemaVer") {
- do_query("UPDATE settings SET hostname=NULL WHERE value='$entry'");
- }
-
- change_or_make_setting('MythFillDatabaseLog', '/var/log/mythtv/mythfilldatabase.log');
- change_or_make_setting('MasterBackendOverride','1'); # I don't remember why, but making the hostname NULL is important here
- do_query("UPDATE settings SET hostname=NULL WHERE value='MasterBackendOverride'");
-
- disconnect_from_db();
-
- # Fix hostname for iPod feed URLs
- $command = "sed -i \"s/hostname\\//$hostname\\//g\" /usr/local/bin/myth2ipod";
- execute_shell_command($command);
-
- # Fix hostname for XViD feed URLs
- $command = "sed -i \"s/192.168.0.222\\//$hostname\\//g\" /usr/local/bin/myt2xvid3";
- execute_shell_command($command);
-
- # Customize default MythTV library.xml to reflect KnoppMyth's wider selection of
- # online stream options.
- #$command = "sed -i \"/<type>STREAM<\\/type>\$/{N; N; N; N; s/text>.*<\\/text/text>Online Streams<\\/text/; s/action>.*<\\/action/action>MENU is.xml<\\/action/; s/<depends.*depends>//; }\" /usr/share/mythtv/library.xml";
- $command = "/bin/cp /usr/share/mythtv/library.xml.km /usr/share/mythtv/library.xml";
- execute_shell_command($command);
-
- } else {
- my $logger = get_logger('tweaker.script');
- $logger->error("ERROR: Unable to connect to mythconverg database");
- $logger->error("ERROR: Unable to implement option $option.");
- exit -1;
- }
- disconnect_from_db();
-}
-
-# Try to get a Recommendation Level for $option.
-sub poll_options {
- my($option) = @_;
- recommendation_level("recommended", "These tweaks benefit all users.");
-}
-
-# Unimplemented in 0.7
-sub check_option {
- help;
-}
-
-# Unimplemented in 0.7
-sub count_iterations {
- help;
-}
-
-process_parameters;
diff --git a/abs/core/tweaker/bin/twk_what_has_changed.sh b/abs/core/tweaker/bin/twk_what_has_changed.sh
deleted file mode 100755
index deff7cf..0000000
--- a/abs/core/tweaker/bin/twk_what_has_changed.sh
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/bin/bash
-
-# Copyright 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv
-# and Tom Culliton of <affiliation>. Most of restore_baseline_SQL taken from
-# KnoppMyth R5F27's /usr/local/bin/KnoppMyth-run script (multiple authors)
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-
-#----------------------------------------------------------------------------
-. /usr/local/bin/backupcommon || {
- echo "Can not find common settings!"
- exit 1
-}
-#----------------------------------------------------------------------------
-
-# Target output file for our results
-DIFF_RESULTS=/tmp/database_changes.txt
-LOGFILE=/var/log/twk_what_has_changed.log
-WORKING_DIR=/tmp/
-
-# Restore the SQL to the way it would have been after R5F27 was installed
-# and before the user made any changes to MythTV settings.
-# This is KnoppMyth-centric and does not apply to general MythTV distros,
-# however it is possible to generalize this to apply to any MythTV distro
-# including generic Linux distros in which MythTV has been installed.
-#
-# Preconditions: MySQL daemon is running
-#
-# Postconditions: 'mythconverg' is deleted and re-created, just as it
-# would be during the course of a normal installation.
-restore_baseline_SQL() {
- echo "restoring baseline SQL" >> $LOGFILE
- KRP_RESULT=-1
- KRPAutoDetect.pl &> /dev/null # be quiet
- KRP_RESULT=$?;
-
- # Parts from R5F27's KnoppMyth-run
- KNOPPMYTH_SQL_FILE="/usr/local/share/knoppmyth/KnoppMyth.sql"
-
- # Try to detect and configure settings for various tuner
- # and capture devices.
- /usr/local/bin/TunerConfig.sh $KNOPPMYTH_SQL_FILE >> /dev/null
- /usr/local/bin/ren_host.sh
- GlobalSQLtweaker.sh $KNOPPMYTH_SQL_FILE
-
- if [[ ($KRP_RESULT != 1) && ($KRP_RESULT != 2) && ($KRP_RESULT != 3) && ($KRP_RESULT != 10) && (-n "$IS_AUS") ]]; then # not Dragon
- /usr/local/bin/epia_sql.sh
- fi
-
- # General MythTV SQL settings for all boxes
- if [ -f "/usr/local/bin/MythTV-sql" ]; then
- # Interject platform-specific SQL settings before we populate the SQL
- # database.
- if [[ ($KRP_RESULT == 1) || ($KRP_RESULT == 2) || ($KRP_RESULT == 3) || ($KRP_RESULT == 10) ]]; then # Dragon
- DragonSQLtweaker.sh $KNOPPMYTH_SQL_FILE
- fi
- # Now use the (possibly modified) KnoppMyth.sql to populate initial
- # MythTV settings.
-
- # This wipes out the current mythconverg and replaces it with what's in $KNOPPMYTH_SQL_FILE
- sh /usr/local/bin/MythTV-sql $KNOPPMYTH_SQL_FILE
- fi
-
- echo \
- "MythTV will re-launch in a tiny window. If it asks you about
-upgrading the schema, agree. When the schema upgrade is complete,
-exit MythTV.
-You can exit MythTV immediately if you aren't asked to do a schema
-upgrade."
- echo "###"
- echo "Press ENTER to re-launch MythTV."
- read CONTINUE;
- restart_mythtv "--geometry 640x480"
-}
-
-# Call mysql and only dump the requested data in tab seperated columns
-get_data () {
- mysql mythconverg -u root -sNBe "$*"
-}
-
-# Compares $MYTHTV_EXPECTED_DB_NAME to $USERS_DB_NAME
-compare_databases() {
- echo "comparing databases" >> $LOGFILE
- tables_to_compare="capturecard cardinput codecparams displayprofilegroups displayprofiles dtv_multiplex keybindings playgroups profilegroups recordingprofiles settings videotypes weatherdatalayout weatherscreens weathersourcesettings"
- hostnames=$(get_data "select distinct hostname from settings where hostname is not null")
-
- /etc/init.d/mysql start >> $LOGFILE
- # Do some MySQL magic to compare $tables_to_compare between
- # $MYTHTV_EXPECTED_DB_NAME (baseline) and $USERS_DB_NAME (user's version)
- # ???
-}
-
-# This is somewhat KnoppMyth-centric, though minor modification would
-# make it work generally.
-function restart_mythtv {
- echo "restarting MythTV" >> $LOGFILE
- EXTRA_PARAMETERS=$1 ; shift
- /etc/init.d/mythtv-backend start >> $LOGFILE
- killall mythfrontend
- # re-launches the frontend and gives the user a chance to upgrade to latest schema
- su - mythtv -c "export DISPLAY=:0.0 ; mythfrontend --logfile /var/log/mythtv/mythfrontend.log $EXTRA_PARAMETERS" >> $LOGFILE
-}
-
-function rename_database {
- db_source=$1 ; shift
- db_target=$1 ; shift
-
- echo "renaming database $db_source to $db_target" >> $LOGFILE
-
- # Exit the frontend before messing with the SQL
- killall mythfrontend
- # If we stop MySQL before stopping the MythTV backend, we'll probably trigger badness
- /etc/init.d/mythtv-backend stop >> $LOGFILE
- # MySQL needs to stop before we do this.
- /etc/init.d/mysql stop >> $LOGFILE
- /bin/mv $db_source $db_target
-}
-
-main() {
- echo -n "$0 started running: " >> $LOGFILE
- date >> $LOGFILE
-
- echo "STEP 0..."
- echo "STEP 0" >> $LOGFILE
- # 0) acquire system settings
- MYTHTV_EXPECTED_DB_NAME=`grep DBName /etc/mythtv/mysql.txt | awk -F= '{ print $2 }'`
- USERS_DB_NAME="mythconverg-copy"
- /etc/init.d/mysql start >> $LOGFILE
- # MySQL needs to be running or mysqladmin won't return anything
- SQL_HOME=`mysqladmin variables | grep datadir | awk -F\| '{ print $3 }' | sed 's/ //g'`
-
- echo "STEP 1..."
- echo "STEP 1" >> $LOGFILE
- # 1) rename the current MythTV MySQL database
- rename_database $SQL_HOME$MYTHTV_EXPECTED_DB_NAME $WORKING_DIR$USERS_DB_NAME
-
- echo "STEP 2..."
- echo "STEP 2" >> $LOGFILE
- # 2) re-create the R5F27 baseline SQL.
- /etc/init.d/mysql start >> $LOGFILE
- restore_baseline_SQL
-
- echo "STEP 3..."
- echo "STEP 3" >> $LOGFILE
- # 3) compare the fresh baseline DB with the user's modified DB, and save the
- # diffs to a text file
- # ???
-
- echo "STEP 4..."
- echo "STEP 4" >> $LOGFILE
- # 4) restore the user's database
- rename_database $WORKING_DIR$USERS_DB_NAME $SQL_HOME$MYTHTV_EXPECTED_DB_NAME
- /etc/init.d/mysql start >> $LOGFILE
-
- echo "STEP 5..."
- echo "STEP 5" >> $LOGFILE
- # 5) Tell them the comparison is done, tell them where to find the results,
- # and prompt them to restart MythTV.
- echo "Your results are in $DIFF_RESULTS"
- echo "###"
- echo "Press ENTER to re-launch MythTV."
- read CONTINUE;
-
- restart_mythtv "&"
- echo "DONE"
- echo -n "$0 stopped running: " >> $LOGFILE
- date >> $LOGFILE
-}
-
-main
-
diff --git a/abs/core/tweaker/fs/etc/asound.conf b/abs/core/tweaker/fs/etc/asound.conf
deleted file mode 100644
index ffb665d..0000000
--- a/abs/core/tweaker/fs/etc/asound.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-pcm.spdifdmix {
- type dmix
- ipc_key 1337
- slave {
- pcm "hw:0,1"
- format S32_LE
- }
-}
-
-pcm.!default {
- type plug
- slave {
- pcm spdifdmix
- }
-}
diff --git a/abs/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini b/abs/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini
deleted file mode 100644
index 9660607..0000000
--- a/abs/core/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini
+++ /dev/null
@@ -1,429 +0,0 @@
-[%General]
-mplayer_bin=mplayer
-driver\vo="xv,"
-driver\ao="alsa,"
-screenshot_directory=/home/mythtv/.config/smplayer/screenshots
-dont_remember_media_settings=false
-dont_remember_time_pos=false
-audio_lang=
-subtitle_lang=
-use_direct_rendering=false
-use_double_buffer=true
-disable_screensaver=true
-use_soft_video_eq=false
-use_slices=true
-autoq=6
-add_blackborders_on_fullscreen=false
-use_soft_vol=true
-softvol_max=110
-use_scaletempo=-1
-dont_change_volume=false
-use_hwac3=false
-use_audio_equalizer=true
-use_volume_option=-1
-loop=false
-osd=0
-file_settings_method=hash
-
-[drives]
-dvd_device=/dev/dvd
-cdrom_device=/dev/cdrom
-vcd_initial_title=2
-use_dvdnav=false
-
-[performance]
-priority=2
-frame_drop=true
-hard_frame_drop=false
-autosync=false
-autosync_factor=100
-h264_skip_loop_filter=1
-HD_height=720
-fast_audio_change=-1
-threads=1
-cache_for_files=2000
-cache_for_streams=1000
-cache_for_dvds=0
-cache_for_vcds=1000
-cache_for_audiocds=1000
-
-[subtitles]
-font_file=
-font_name=
-use_fontconfig=false
-subcp=ISO-8859-1
-use_enca=false
-enca_lang=en
-font_autoscale=1
-subfuzziness=1
-autoload_sub=true
-use_ass_subtitles=true
-ass_line_spacing=0
-use_closed_caption_subs=false
-use_forced_subs_only=false
-subtitles_on_screenshots=false
-use_new_sub_commands=-1
-change_sub_scale_should_restart=-1
-styles\fontname=Arial
-styles\fontsize=20
-styles\primarycolor=4294967295
-styles\backcolor=4278190080
-styles\outlinecolor=4278190080
-styles\bold=false
-styles\italic=false
-styles\halignment=2
-styles\valignment=0
-styles\borderstyle=1
-styles\outline=1
-styles\shadow=2
-styles\marginl=20
-styles\marginr=20
-styles\marginv=8
-force_ass_styles=false
-user_forced_ass_style=
-freetype_support=true
-
-[advanced]
-color_key=20202
-use_mplayer_window=false
-monitor_aspect=
-use_idx=false
-mplayer_additional_options=
-mplayer_additional_video_filters=
-mplayer_additional_audio_filters=
-log_mplayer=true
-log_smplayer=true
-log_filter=.*
-autosave_mplayer_log=false
-mplayer_log_saveto=
-repaint_video_background=false
-use_edl_files=true
-prefer_ipv4=true
-use_short_pathnames=false
-change_video_equalizer_on_startup=true
-use_pausing_keep_force=true
-correct_pts=-1
-actions_to_run=
-
-[gui]
-fullscreen=false
-start_in_fullscreen=false
-compact_mode=false
-stay_on_top=0
-size_factor=100
-resize_method=1
-style=
-show_frame_counter=false
-show_motion_vectors=false
-mouse_left_click_function=dvdnav_mouse
-mouse_right_click_function=show_context_menu
-mouse_double_click_function=fullscreen
-mouse_middle_click_function=mute
-mouse_xbutton1_click_function=
-mouse_xbutton2_click_function=
-wheel_function=0
-seeking1=10
-seeking2=60
-seeking3=600
-seeking4=30
-update_while_seeking=false
-time_slider_drag_delay=100
-language=
-iconset=
-balloon_count=5
-restore_pos_after_fullscreen=false
-save_window_size_on_exit=true
-close_on_finish=false
-default_font=
-pause_when_hidden=false
-allow_video_movement=false
-gui=DefaultGUI
-gui_minimum_width=0
-default_size=@Size(580 440)
-hide_video_window_on_audio_files=true
-report_mplayer_crashes=true
-reported_mplayer_is_old=false
-auto_add_to_playlist=true
-add_to_playlist_consecutive_files=false
-
-[directories]
-latest_dir=/home/mythtv
-last_dvd_directory=
-
-[defaults]
-initial_sub_scale=5
-initial_sub_scale_ass=1
-initial_volume=40
-initial_contrast=0
-initial_brightness=0
-initial_hue=0
-initial_saturation=0
-initial_gamma=0
-initial_audio_equalizer=0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-initial_panscan_factor=1
-initial_sub_pos=100
-initial_volnorm=false
-initial_postprocessing=false
-initial_deinterlace=0
-initial_audio_channels=2
-initial_stereo_mode=0
-initial_audio_track=1
-initial_subtitle_track=1
-
-[mplayer_info]
-mplayer_detected_version=29134
-mplayer_user_supplied_version=-1
-
-[instances]
-use_single_instance=true
-connection_port=8000
-use_autoport=true
-temp\autoport=57685
-
-[floating_control]
-margin=0
-width=100
-animated=true
-display_in_compact_mode=false
-bypass_window_manager=true
-
-[history]
-recents=@Invalid()
-recents\max_items=10
-urls=@Invalid()
-urls\max_items=10
-
-[default_gui]
-fullscreen_toolbar1_was_visible=false
-fullscreen_toolbar2_was_visible=false
-compact_toolbar1_was_visible=false
-compact_toolbar2_was_visible=false
-pos=@Point(0 25)
-size=@Size(580 440)
-toolbars_state=@ByteArray(\0\0\0\xff\0\0\x11\x95\xfd\0\0\0\x1\0\0\0\x3\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x1\0\0\0\x1\xfb\0\0\0\x18\0p\0l\0\x61\0y\0l\0i\0s\0t\0\x64\0o\0\x63\0k\x2\0\0\0\x19\0\0\0\x19\0\0\x3\xc0\0\0\x1\xe0\0\0\x2\x44\0\0\x1\x36\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\x2\0\0\0\x2\0\0\0\x2\0\0\0\x10\0t\0o\0o\0l\0\x62\0\x61\0r\0\x31\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x10\0t\0o\0o\0l\0\x62\0\x61\0r\0\x32\x1\0\0\x1\xc5\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0\x3\0\0\0\x2\0\0\0\x1a\0\x63\0o\0n\0t\0r\0o\0l\0w\0i\0\x64\0g\0\x65\0t\x1\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0\0\0\0$\0\x63\0o\0n\0t\0r\0o\0l\0w\0i\0\x64\0g\0\x65\0t\0_\0m\0i\0n\0i\0\0\0\0\0\xff\xff\xff\xff\0\0\0\0\0\0\0\0)
-actions\toolbar1=open_file, open_dvd, open_url, separator, compact, fullscreen, separator, screenshot, separator, show_file_properties, show_playlist, show_preferences, separator, play_prev, play_next
-actions\controlwidget=play, pause_and_frame_step, stop, separator, rewindbutton_action, timeslider_action, forwardbutton_action, separator, fullscreen, mute, volumeslider_action
-actions\controlwidget_mini=play_or_pause, stop, separator, rewind1, timeslider_action, forward1, separator, mute, volumeslider_action
-actions\floating_control=play, pause, stop, separator, rewindbutton_action, timeslider_action, forwardbutton_action, separator, fullscreen, mute, volumeslider_action, separator, timelabel_action
-
-[base_gui_plus]
-show_tray_icon=false
-mainwindow_visible=true
-trayicon_playlist_was_visible=false
-widgets_size=0
-fullscreen_playlist_was_visible=false
-fullscreen_playlist_was_floating=false
-compact_playlist_was_visible=false
-ignore_playlist_events=false
-
-[playlist]
-repeat=false
-shuffle=false
-auto_get_info=true
-recursive_add_directory=false
-save_playlist_in_config=true
-play_files_from_start=true
-latest_dir=
-
-[playlist_contents]
-count=0
-current_item=-1
-modified=false
-
-[actions]
-open_file=Ctrl+F
-open_directory=
-open_playlist=
-open_vcd=
-open_audio_cd=
-open_dvd=
-open_dvd_folder=
-open_url=Ctrl+U
-close=Ctrl+X
-clear_recents=
-play=L
-play_or_pause=Media Play
-pause=P
-pause_and_frame_step=
-stop=Media Stop
-frame_step=.
-rewind1=Left
-rewind2=Down
-rewind3=PgUp
-forward1=Right
-forward2=Up
-forward3=PgDown
-repeat=
-jump_to=Ctrl+J
-normal_speed=Backspace
-halve_speed={
-double_speed=}
-dec_speed=[
-inc_speed=]
-dec_speed_4=
-inc_speed_4=
-dec_speed_1=
-inc_speed_1=
-fullscreen=F
-compact=Ctrl+C
-video_equalizer=Ctrl+E
-screenshot=S
-video_preview=
-flip=
-mirror=
-postprocessing=
-autodetect_phase=
-deblock=
-dering=
-add_noise=
-add_letterbox=
-upscaling=
-audio_equalizer=
-mute=M
-decrease_volume="9, /"
-increase_volume="0, *"
-dec_audio_delay=-
-inc_audio_delay=+
-audio_delay=
-load_audio_file=
-unload_audio_file=
-extrastereo_filter=
-karaoke_filter=
-volnorm_filter=
-load_subs=
-unload_subs=
-dec_sub_delay=Z
-inc_sub_delay=X
-sub_delay=
-dec_sub_pos=R
-inc_sub_pos=T
-dec_sub_scale=Shift+R
-inc_sub_scale=Shift+T
-dec_sub_step=G
-inc_sub_step=Y
-use_ass_lib=
-use_closed_caption=
-use_forced_subs_only=
-show_find_sub_dialog=
-upload_subtitles=
-show_playlist=Ctrl+L
-show_file_properties=Ctrl+I
-frame_counter=
-motion_vectors=
-show_preferences=Ctrl+P
-show_mplayer_log=Ctrl+M
-show_smplayer_log=Ctrl+S
-faq=
-cl_options=
-tips=
-about_qt=
-about_smplayer=
-play_next=>
-play_prev=<
-move_up=Alt+Up
-move_down=Alt+Down
-move_left=Alt+Left
-move_right=Alt+Right
-inc_zoom=E
-dec_zoom=W
-reset_zoom=Shift+E
-auto_zoom=Shift+W
-zoom_169=Shift+A
-zoom_235=Shift+S
-exit_fullscreen=
-next_osd=O
-dec_contrast=1
-inc_contrast=2
-dec_brightness=3
-inc_brightness=4
-dec_hue=5
-inc_hue=6
-dec_saturation=7
-inc_saturation=8
-dec_gamma=
-inc_gamma=
-next_video=
-next_audio=H
-next_subtitle=J
-next_chapter=@@
-prev_chapter=!
-toggle_double_size=Ctrl+D
-reset_video_equalizer=
-reset_audio_equalizer=
-show_context_menu=
-next_aspect=A
-osd_none=
-osd_seek=
-osd_timer=
-osd_total=
-denoise_none=
-denoise_normal=
-denoise_soft=
-size_50=
-size_75=
-size_100=Ctrl+1
-size_125=
-size_150=
-size_175=
-size_200=Ctrl+2
-size_300=
-size_400=
-deinterlace_none=
-deinterlace_l5=
-deinterlace_yadif0=
-deinterlace_yadif1=
-deinterlace_lb=
-deinterlace_kern=
-channels_stereo=
-channels_surround=
-channels_ful51=
-stereo=
-left_channel=
-right_channel=
-aspect_detect=
-aspect_4%3A3=
-aspect_5%3A4=
-aspect_14%3A9=
-aspect_16%3A9=
-aspect_16%3A10=
-aspect_2.35%3A1=
-aspect_1%3A1=
-aspect_none=
-rotate_none=
-rotate_clockwise_flip=
-rotate_clockwise=
-rotate_counterclockwise=
-rotate_counterclockwise_flip=
-on_top_always=
-on_top_never=
-on_top_playing=
-toggle_stay_on_top=
-dvdnav_up=Shift+Up
-dvdnav_down=Shift+Down
-dvdnav_left=Shift+Left
-dvdnav_right=Shift+Right
-dvdnav_menu=Shift+Return
-dvdnav_select=Return
-dvdnav_prev=Shift+Esc
-dvdnav_mouse=
-quit=Esc
-show_tray_icon=
-restore\hide=
-pl_open=
-pl_save=
-pl_play=
-pl_next=N
-pl_prev=
-pl_move_up=
-pl_move_down=
-pl_repeat=
-pl_shuffle=
-pl_preferences=
-pl_add_current=
-pl_add_files=
-pl_add_directory=
-pl_remove_selected=
-pl_remove_all=
-pl_edit=
-show_main_toolbar=F5
-show_language_toolbar=F6
diff --git a/abs/core/tweaker/fs/var/lib/alsa/ALC888.asound.state b/abs/core/tweaker/fs/var/lib/alsa/ALC888.asound.state
deleted file mode 100644
index 5540338..0000000
--- a/abs/core/tweaker/fs/var/lib/alsa/ALC888.asound.state
+++ /dev/null
@@ -1,354 +0,0 @@
-state.NVidia {
- control.1 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Front Playback Volume'
- value.0 25
- value.1 25
- }
- control.2 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Front Playback Switch'
- value.0 true
- value.1 true
- }
- control.3 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Surround Playback Volume'
- value.0 0
- value.1 0
- }
- control.4 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Surround Playback Switch'
- value.0 true
- value.1 true
- }
- control.5 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Center Playback Volume'
- value 0
- }
- control.6 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'LFE Playback Volume'
- value 0
- }
- control.7 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Center Playback Switch'
- value true
- }
- control.8 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'LFE Playback Switch'
- value true
- }
- control.9 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Side Playback Volume'
- value.0 0
- value.1 0
- }
- control.10 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Side Playback Switch'
- value.0 true
- value.1 true
- }
- control.11 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Headphone Playback Switch'
- value.0 true
- value.1 true
- }
- control.12 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'Mic Playback Volume'
- value.0 0
- value.1 0
- }
- control.13 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Mic Playback Switch'
- value.0 false
- value.1 false
- }
- control.14 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'Front Mic Playback Volume'
- value.0 0
- value.1 0
- }
- control.15 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Front Mic Playback Switch'
- value.0 false
- value.1 false
- }
- control.16 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'Line Playback Volume'
- value.0 0
- value.1 0
- }
- control.17 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Line Playback Switch'
- value.0 false
- value.1 false
- }
- control.18 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 3'
- comment.dbmin 0
- comment.dbmax 3000
- iface MIXER
- name 'Mic Boost'
- value.0 0
- value.1 0
- }
- control.19 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 3'
- comment.dbmin 0
- comment.dbmax 3000
- iface MIXER
- name 'Front Mic Boost'
- value.0 0
- value.1 0
- }
- control.20 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -1650
- comment.dbmax 3000
- iface MIXER
- name 'Capture Volume'
- value.0 0
- value.1 0
- }
- control.21 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Capture Switch'
- value.0 true
- value.1 true
- }
- control.22 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -1650
- comment.dbmax 3000
- iface MIXER
- name 'Capture Volume'
- index 1
- value.0 0
- value.1 0
- }
- control.23 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Capture Switch'
- index 1
- value.0 true
- value.1 true
- }
- control.24 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 1
- comment.item.0 Mic
- comment.item.1 'Front Mic'
- comment.item.2 Line
- iface MIXER
- name 'Input Source'
- value Mic
- }
- control.25 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 1
- comment.item.0 Mic
- comment.item.1 'Front Mic'
- comment.item.2 Line
- iface MIXER
- name 'Input Source'
- index 1
- value Mic
- }
- control.26 {
- comment.access read
- comment.type IEC958
- comment.count 1
- iface MIXER
- name 'IEC958 Playback Con Mask'
- value '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- }
- control.27 {
- comment.access read
- comment.type IEC958
- comment.count 1
- iface MIXER
- name 'IEC958 Playback Pro Mask'
- value '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- }
- control.28 {
- comment.access 'read write'
- comment.type IEC958
- comment.count 1
- iface MIXER
- name 'IEC958 Playback Default'
- value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- }
- control.29 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'IEC958 Playback Switch'
- value false
- }
- control.30 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'IEC958 Default PCM Playback Switch'
- value true
- }
- control.31 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'IEC958 Capture Switch'
- value false
- }
- control.32 {
- comment.access read
- comment.type IEC958
- comment.count 1
- iface MIXER
- name 'IEC958 Capture Default'
- value '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- }
- control.33 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Master Playback Volume'
- value 31
- }
- control.34 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Master Playback Switch'
- value true
- }
- control.35 {
- comment.access 'read write user'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 255'
- comment.tlv '0000000100000008ffffec1400000014'
- comment.dbmin -5100
- comment.dbmax 0
- iface MIXER
- name 'PCM Playback Volume'
- value.0 163
- value.1 163
- }
-}
diff --git a/abs/core/tweaker/fs/var/lib/alsa/AV710.asound.state b/abs/core/tweaker/fs/var/lib/alsa/AV710.asound.state
deleted file mode 100644
index 7e57108..0000000
--- a/abs/core/tweaker/fs/var/lib/alsa/AV710.asound.state
+++ /dev/null
@@ -1,567 +0,0 @@
-state.AV710 {
- control.1 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Master Playback Switch'
- value true
- }
- control.2 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Master Playback Volume'
- value.0 22
- value.1 22
- }
- control.3 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Center Playback Switch'
- value false
- }
- control.4 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Center Playback Volume'
- value 31
- }
- control.5 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'LFE Playback Switch'
- value false
- }
- control.6 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'LFE Playback Volume'
- value 0
- }
- control.7 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 2
- iface MIXER
- name 'Surround Playback Switch'
- value.0 false
- value.1 false
- }
- control.8 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Surround Playback Volume'
- value.0 0
- value.1 0
- }
- control.9 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Headphone Playback Switch'
- value true
- }
- control.10 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Headphone Playback Volume'
- value.0 22
- value.1 22
- }
- control.11 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Master Mono Playback Switch'
- value true
- }
- control.12 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 31'
- comment.dbmin -4650
- comment.dbmax 0
- iface MIXER
- name 'Master Mono Playback Volume'
- value 25
- }
- control.13 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'PC Speaker Playback Switch'
- value false
- }
- control.14 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 15'
- comment.dbmin -4500
- comment.dbmax 0
- iface MIXER
- name 'PC Speaker Playback Volume'
- value 0
- }
- control.15 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Phone Playback Switch'
- value false
- }
- control.16 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'Phone Playback Volume'
- value 0
- }
- control.17 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Mic Playback Switch'
- value false
- }
- control.18 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'Mic Playback Volume'
- value 0
- }
- control.19 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Mic Boost (+20dB)'
- value false
- }
- control.20 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Line Playback Switch'
- value false
- }
- control.21 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'Line Playback Volume'
- value.0 0
- value.1 0
- }
- control.22 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'CD Playback Switch'
- value true
- }
- control.23 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'CD Playback Volume'
- value.0 25
- value.1 25
- }
- control.24 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Video Playback Switch'
- value false
- }
- control.25 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'Video Playback Volume'
- value.0 0
- value.1 0
- }
- control.26 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Aux Playback Switch'
- value false
- }
- control.27 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'Aux Playback Volume'
- value.0 0
- value.1 0
- }
- control.28 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'PCM Playback Switch'
- value true
- }
- control.29 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 31'
- comment.dbmin -3450
- comment.dbmax 1200
- iface MIXER
- name 'PCM Playback Volume'
- value.0 22
- value.1 22
- }
- control.30 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 2
- comment.item.0 Mic
- comment.item.1 CD
- comment.item.2 Video
- comment.item.3 Aux
- comment.item.4 Line
- comment.item.5 Mix
- comment.item.6 'Mix Mono'
- comment.item.7 Phone
- iface MIXER
- name 'Capture Source'
- value.0 Line
- value.1 Line
- }
- control.31 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Capture Switch'
- value true
- }
- control.32 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 2
- comment.range '0 - 15'
- comment.dbmin 0
- comment.dbmax 2250
- iface MIXER
- name 'Capture Volume'
- value.0 0
- value.1 0
- }
- control.33 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name '3D Control - Switch'
- value false
- }
- control.34 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 1
- comment.item.0 Mix
- comment.item.1 Mic
- iface MIXER
- name 'Mono Output Select'
- value Mix
- }
- control.35 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 1
- comment.item.0 Mic1
- comment.item.1 Mic2
- iface MIXER
- name 'Mic Select'
- value Mic1
- }
- control.36 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 15'
- iface MIXER
- name '3D Control - Center'
- value 0
- }
- control.37 {
- comment.access 'read write'
- comment.type INTEGER
- comment.count 1
- comment.range '0 - 15'
- iface MIXER
- name '3D Control - Depth'
- value 0
- }
- control.38 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Alternate Level to Surround Out'
- value false
- }
- control.39 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Downmix LFE and Center to Front'
- value false
- }
- control.40 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Downmix Surround to Front'
- value false
- }
- control.41 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'External Amplifier'
- value true
- }
- control.42 {
- comment.access read
- comment.type BYTES
- comment.count 52
- iface CARD
- name 'ICE1724 EEPROM'
- value '172414121c01020210c1ff0000ff0000ff0000000101010001000000000000000000000000000000ff000000ff000000ff000000'
- }
- control.43 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 1
- comment.item.0 '8000'
- comment.item.1 '9600'
- comment.item.2 '11025'
- comment.item.3 '12000'
- comment.item.4 '16000'
- comment.item.5 '22050'
- comment.item.6 '24000'
- comment.item.7 '32000'
- comment.item.8 '44100'
- comment.item.9 '48000'
- comment.item.10 '64000'
- comment.item.11 '88200'
- comment.item.12 '96000'
- comment.item.13 '176400'
- comment.item.14 '192000'
- comment.item.15 'IEC958 Input'
- iface MIXER
- name 'Multi Track Internal Clock'
- value '44100'
- }
- control.44 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Multi Track Rate Locking'
- value false
- }
- control.45 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'Multi Track Rate Reset'
- value true
- }
- control.46 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 1
- comment.item.0 'PCM Out'
- comment.item.1 'H/W In 0'
- comment.item.2 'H/W In 1'
- comment.item.3 'IEC958 In L'
- comment.item.4 'IEC958 In R'
- iface MIXER
- name 'H/W Playback Route'
- value 'PCM Out'
- }
- control.47 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 1
- comment.item.0 'PCM Out'
- comment.item.1 'H/W In 0'
- comment.item.2 'H/W In 1'
- comment.item.3 'IEC958 In L'
- comment.item.4 'IEC958 In R'
- iface MIXER
- name 'H/W Playback Route'
- index 1
- value 'PCM Out'
- }
- control.48 {
- comment.access read
- comment.type INTEGER
- comment.count 22
- comment.range '0 - 255'
- iface MIXER
- name 'Multi Track Peak'
- value.0 0
- value.1 0
- value.2 0
- value.3 0
- value.4 0
- value.5 0
- value.6 0
- value.7 0
- value.8 255
- value.9 255
- value.10 0
- value.11 0
- value.12 0
- value.13 0
- value.14 0
- value.15 0
- value.16 0
- value.17 0
- value.18 0
- value.19 0
- value.20 0
- value.21 0
- }
- control.49 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 1
- comment.item.0 'PCM Out'
- comment.item.1 'H/W In 0'
- comment.item.2 'H/W In 1'
- comment.item.3 'IEC958 In L'
- comment.item.4 'IEC958 In R'
- iface MIXER
- name 'IEC958 Playback Route'
- value 'PCM Out'
- }
- control.50 {
- comment.access 'read write'
- comment.type ENUMERATED
- comment.count 1
- comment.item.0 'PCM Out'
- comment.item.1 'H/W In 0'
- comment.item.2 'H/W In 1'
- comment.item.3 'IEC958 In L'
- comment.item.4 'IEC958 In R'
- iface MIXER
- name 'IEC958 Playback Route'
- index 1
- value 'PCM Out'
- }
- control.51 {
- comment.access 'read write'
- comment.type BOOLEAN
- comment.count 1
- iface MIXER
- name 'IEC958 Output Switch'
- value true
- }
- control.52 {
- comment.access 'read write'
- comment.type IEC958
- comment.count 1
- iface PCM
- device 1
- name 'IEC958 Playback Default'
- value '0000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- }
- control.53 {
- comment.access read
- comment.type IEC958
- comment.count 1
- iface PCM
- device 1
- name 'IEC958 Playback Con Mask'
- value '3fff000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
- }
- control.54 {
- comment.access read
- comment.type IEC958
- comment.count 1
- iface PCM
- device 1
- name 'IEC958 Playback Pro Mask'
- value df00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
- }
-}
diff --git a/abs/core/tweaker/lib/Tweaker/Definitions.pm b/abs/core/tweaker/lib/Tweaker/Definitions.pm
deleted file mode 100644
index cbadf29..0000000
--- a/abs/core/tweaker/lib/Tweaker/Definitions.pm
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 2007 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-package Tweaker::Definitions;
-use List::Member;
-use Log::Log4perl qw(:easy);
-
-# To install the above modules:
-# --
-# sudo cpan install List::Member
-
-# Recommendation Levels
-my $bottom = -200; # a reserved value, under which no recommendationlevel can go
-my $not_available = -100;
-my $unsupported = -99;
-my $inadvisable = -50;
-my $optional = 0;
-my $recommended = 100;
-
-# Interactivity Levels
-my $guided = "guided";
-my $minimal = "minimal";
-
-# Special variables
-my $null = "null"; # reserved as the script name for special Tweaks that define Tweaker behavior
-
-my %global_variable_hash = (
- "bottom" => $bottom,
- "not available" => $not_available,
- "unsupported" => $unsupported,
- "inadvisable" => $inadvisable,
- "optional" => $optional,
- "recommended" => $recommended,
- "guided" => $guided,
- "minimal" => $minimal,
- "null" => $null
-);
-
-sub get_global_variable_value {
- my ($variable) = @_;
-
- my @known_variables = keys %global_variable_hash;
- if (member($variable, @known_variables) + 1) {
- if ($global_variable_hash{$variable}) {
- return $global_variable_hash{$variable};
- }
- } else {
- my $logger = get_logger();
- $logger->error("No Tweaker Definition for variable named $variable");
- return $bottom;
- }
-}
-
-1;
diff --git a/abs/core/tweaker/lib/Tweaker/Script.pm b/abs/core/tweaker/lib/Tweaker/Script.pm
deleted file mode 100644
index 7dd2c8f..0000000
--- a/abs/core/tweaker/lib/Tweaker/Script.pm
+++ /dev/null
@@ -1,353 +0,0 @@
-# Copyright 2007, 2008 Robert ("Bob") Igo of StormLogic, LLC and mythic.tv.
-#
-# This program 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 3 of the License, or
-# (at your option) any later version.
-#
-# This program 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, see <http://www.gnu.org/licenses/>.
-
-package Tweaker::Script;
-
-use strict;
-use DBI;
-use Switch;
-use Tweaker::Definitions;
-
-# To install the above modules:
-# --
-# sudo apt-get install libdbi-perl liblog-log4perl-perl
-# sudo cpan install Getopt::Lucid List::Member
-# choose the defaults for all options, agree to install all dependencies
-
-use Getopt::Lucid qw( :all );
-# see http://search.cpan.org/~dagolden/Getopt-Lucid-0.16/lib/Getopt/Lucid.pm for usage details
-use Log::Log4perl qw(get_logger);
-# see http://search.cpan.org/~mschilli/Log-Log4perl-1.14/lib/Log/Log4perl.pm for usage details
-# http://www.perl.com/pub/a/2002/09/11/log4perl.html is highly recommended as well
-
-use List::Member;
-
-my $dbh; # the database we connect to
-my $sth; #
-my $TWEAKER_ROOT;
-my @known_options;
-
-# Print advice on usage and invocation.
-sub help () {
- my $logger = get_logger('tweaker.script');
- $logger->fatal("USAGE:\n$0 [--check Option] [--implement Option] [--poll Option] [--iterations] [--help]");
- $logger->fatal("Valid values for Option are: ", join(" ",@known_options));
- $logger->fatal("Only one of the above parameters may be passed.");
- $logger->fatal("The --check and --iterations parameters are not yet supported.");
- exit;
-}
-
-sub execute_shell_command {
- my($command) = @_;
- my $results="";
- my $logger = get_logger('tweaker.script');
-
- open(SHELL, "$command 2>&1 |");
-
- while(<SHELL>) {
- $results=$results."".$_;
- }
- close(SHELL);
- chop($results);
- $logger->debug("Command '$command' produced output '$results'");
- return $results;
-}
-
-# Simple way to get the value of an environment variable from the executing shell.
-sub get_environment_variable {
- my($envvar) = @_;
- open(SHELL, "echo $envvar|");
- while(<SHELL>) {
- chop;
- return $_;
- }
- close(SHELL);
-}
-
-sub get_mythtv_connection_string {
- # we want something like mythconverg:localhost
- my $dbname = "";
- my $dbhostname = "";
- open(MYSQLTXT, "< /usr/share/mythtv/mysql.txt");
- while(<MYSQLTXT>) {
- if (/DBName=(.*)/) {
- $dbname=$1;
- } elsif (/DBHostName=(.*)/) {
- $dbhostname=$1;
- }
- }
- close(MYSQLTXT);
-
- return "$dbname:$dbhostname";
-}
-
-sub get_mythtv_authentication {
- # we want something like ['root', '']
- my $dbusername = "";
- my $dbpassword = "";
-
- open(MYSQLTXT, "< /usr/share/mythtv/mysql.txt");
- while(<MYSQLTXT>) {
- if (/DBUserName=(.*)/) {
- $dbusername=$1;
- } elsif (/DBPassword=(.*)/) {
- $dbpassword=$1;
- }
- }
- close(MYSQLTXT);
-
- return ($dbusername, $dbpassword);
-}
-
-# Database routines.
-sub connect_to_db {
- my ($db) = @_;
- my $logger = get_logger('tweaker.script');
- my ($dbusername, $dbpassword) = get_mythtv_authentication();
- if (!($dbh = DBI->connect($db, $dbusername, $dbpassword))) {
- $logger->error("Couldn't connect to database: ", DBI->errstr);
- return -1;
- }
- return 1;
-}
-
-sub disconnect_from_db {
- $dbh->disconnect;
-}
-
-sub do_query {
- my ($query) = @_;
- my $logger = get_logger('tweaker.script');
- my $rv="";
-
- $logger->debug("Processing statement: ", $query);
-
- if (!($sth = $dbh->prepare($query))) {
- $logger->error("Couldn't prepare statement: ", $dbh->errstr);
- return -1;
- }
- $rv = $sth->execute(); # Returns an integer when rows were affected; returns -1 when there's an
- # error; returns 0E0 (true) when no error but no rows affected.
-
- if (!$rv) {
- $logger->error("Couldn't execute statement: ", $sth->errstr);
- return -1;
- }
- return $rv;
-}
-
-# Make sure the option passed to this script is handled.
-sub validate_option {
- my($option) = @_;
-
- if (!(member($option, @known_options) + 1)) {
- my $logger = get_logger('tweaker.script');
- $logger->fatal("Option '$option' is not known to $0.");
- $logger->fatal("Valid Options are: ", join(", ",@known_options));
- exit -1;
- }
- return 1;
-}
-
-# Prints out each option that the script handles, separated by '|'.
-# This allows for a minimal .tcf entry.
-sub get_options {
- print join("|",@known_options),"\n";
-}
-
-# Prints out the passed Recommendation Level first, followed by any other
-# strings, separated by '|'. This allows the author of a Tweaker Script to
-# return explanatory information along with a Recommendation Level.
-sub recommendation_level {
- print join("|",@_),"\n";
-}
-
-sub process_parameters () {
- # Accept these parameters:
- # --
- my @parameters = (
- Switch("help")->anycase,
- Param("check")->anycase, # Requirement 1.1
- Param("implement")->anycase, # Requirement 1.2
- Param("poll")->anycase, # Requirement 1.3
- Switch("iterations")->anycase, # Requirement 1.4
- Switch("getoptions")->anycase # Requirement 1.5
- );
- my $opt = Getopt::Lucid->getopt( \@parameters );
-
- if (!(my $TWEAKER_ROOT = get_environment_variable("\$TWEAKER_ROOT"))) {
- Log::Log4perl->easy_init();
- my $logger = get_logger();
- $logger->fatal("ERROR: \$TWEAKER_ROOT environment variable is not set.");
- exit -1;
- } else {
- my $log4perl_conf = "$TWEAKER_ROOT/log4perl.conf";
- Log::Log4perl::init_and_watch($log4perl_conf,10);
- my $logger = get_logger('tweaker.script');
- $logger->info("\$TWEAKER_ROOT is '$TWEAKER_ROOT'.");
- }
-
- if ($opt->get_help > 0) {
- help;
- }
-
- my $check = $opt->get_check;
- my $implement = $opt->get_implement;
- my $poll = $opt->get_poll;
- my $iterations = $opt->get_iterations;
- my $getoptions = $opt->get_getoptions;
-
- # Requirement 1.6
- if ($check) {
- if ($implement || $poll || $iterations || $getoptions) {
- help;
- }
- validate_option($check); # exits with an error if option is invalid
- check_option($check); # Requirement 1.1
- } elsif ($implement) {
- if ($poll || $iterations || $getoptions) {
- help;
- }
- validate_option($implement); # exits with an error if option is invalid
- implement_option($implement); # Requirement 1.2
- } elsif ($poll) {
- if ($iterations || $getoptions) {
- help;
- }
- validate_option($poll); # exits with an error if option is invalid
- poll_options($poll); # Requirement 1.3
- } elsif ($iterations) {
- if ($getoptions) {
- help;
- }
- #count_iterations; # Requirement 1.4
- } elsif ($getoptions) {
- get_options; # Requirement 1.5
- } else {
- help;
- }
-}
-
-sub set_known_options {
- my(@options) = @_;
- @known_options = @_;
-}
-
-# These entries may or may not already exist. First, try updating them, and if that fails, insert them.
-# Pass in array references for setfields and checkfields. Each must
-# reference an array of lists, where each list is a key, value pair, e.g.
-# [["data", "somedata"], ["name", "skippy"]]
-sub change_or_make_entry {
- my($table, $setfields, $checkfields) = @_;
- my $query_string = "UPDATE $table SET ";
-
- my $fields="";
- foreach my $sets (@$setfields) {
- if ($fields) {
- $fields = $fields . ", ";
- }
- $fields = $fields . "@$sets[0]='@$sets[1]' ";
- }
- $query_string = $query_string . $fields . "WHERE ";
-
- my $checkstring="";
- foreach my $checks (@$checkfields) {
- if ($checkstring) {
- $checkstring = $checkstring . "AND ";
- }
- $checkstring = $checkstring . "@$checks[0]='@$checks[1]' ";
- }
- $query_string = $query_string . $checkstring;
-
- my $rv = do_query($query_string);
- if (($rv == 0E0) || ($rv < 1)) { # UPDATE didn't apply; do an insert
- my $fields="";
- my $values="";
- foreach my $sets (@$setfields) {
- if ($fields) {
- $fields = $fields . ", ";
- $values = $values . ", ";
- }
- $fields = $fields . "@$sets[0]";
- $values = $values . "'@$sets[1]'";
- }
- foreach my $sets (@$checkfields) {
- if ($fields) {
- $fields = $fields . ", ";
- $values = $values . ", ";
- }
- $fields = $fields . "@$sets[0]";
- $values = $values . "'@$sets[1]'";
- }
-
- $query_string = "INSERT INTO $table (". $fields . ") VALUES (" . $values . ")";
-
- $rv = do_query($query_string);
- }
- return $rv;
-}
-
-# We update so many entries in the settings table that a subroutine makes coding and readability easier.
-sub change_or_make_setting {
- my($value, $data) = @_;
-
- return(change_or_make_entry("settings", [["data", $data]], [["value", $value]]));
-}
-
-# Benchmark-driven tests for low, medium, or high "performance" often look the same.
-# If your test falls into this pattern, you can use this subroutine to simplify your
-# Tweaker Script's poll_options subroutine.
-# NOTE: This only handles options for low, medium, or high right now.
-# NOTE: You don't have to use this! Only use it if your poll_options subroutine
-# would look like this anyway. Don't shoehorn it to fit!
-sub threshold_test {
- my($option, $benchmark_number, $name_of_benchmarked_device, $low_threshold, $medium_threshold, $high_threshold) = @_;
- # e.g. ("medium", 512, "video card", 350, 425, 500)
-
- my $logger = get_logger('tweaker.script');
- $logger->debug("Threshold test for option '$option' ($name_of_benchmarked_device) with benchmark of $benchmark_number, where: low = $low_threshold, medium = $medium_threshold, high = $high_threshold");
-
- switch ($option) {
- case "low" {
- if ($benchmark_number <= $low_threshold) {
- recommendation_level("recommended", "Your $name_of_benchmarked_device seems to be unable to handle higher usage than this.");
- } elsif ($benchmark_number <= $medium_threshold) {
- recommendation_level("optional", "Your $name_of_benchmarked_device seems to be able to handle higher usage than this, but select this option if you want to reduce overall $name_of_benchmarked_device usage.");
- } elsif ($benchmark_number >= $high_threshold) {
- recommendation_level("optional", "Your $name_of_benchmarked_device seems to be quite capable of this setting, but select this option if you want to reduce overall $name_of_benchmarked_device usage.");
- }
- }
- case "medium" {
- if ($benchmark_number <= $low_threshold) {
- recommendation_level("inadvisable", "Your $name_of_benchmarked_device seems to be unable to handle this usage level, but you are free to try.");
- } elsif ($benchmark_number <= $medium_threshold) {
- recommendation_level("recommended", "Your $name_of_benchmarked_device seems to be unable to handle higher usage than this.");
- } elsif ($benchmark_number >= $high_threshold) {
- recommendation_level("optional", "Your $name_of_benchmarked_device seems to be able to handle higher usage than this, but select this option if you want to reduce overall $name_of_benchmarked_device usage.");
- }
- }
- case "high" {
- if ($benchmark_number <= $low_threshold) {
- recommendation_level("inadvisable", "Your $name_of_benchmarked_device seems to be unable to handle this usage level, and it is not recommended that you try.");
- } elsif ($benchmark_number <= $medium_threshold) {
- recommendation_level("inadvisable", "Your $name_of_benchmarked_device seems to be unable to handle this usage level, but you are free to try.");
- } elsif ($benchmark_number >= $high_threshold) {
- recommendation_level("recommended", "Your $name_of_benchmarked_device seems to be quite capable of this setting.");
- }
- }
- }
-}
-
-1;
diff --git a/abs/core/tweaker/log4perl.conf b/abs/core/tweaker/log4perl.conf
deleted file mode 100644
index 3c0a5bb..0000000
--- a/abs/core/tweaker/log4perl.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-log4perl.logger = FATAL, ScreenLogger
-log4perl.logger.tweaker = INFO, FileLogger
-log4perl.logger.tweaker.script = WARN, FileLogger
-
-log4perl.appender.ScreenLogger = Log::Dispatch::Screen
-log4perl.appender.ScreenLogger.Threshold = FATAL
-log4perl.appender.ScreenLogger.layout = Log::Log4perl::Layout::PatternLayout
-log4perl.appender.ScreenLogger.layout.ConversionPattern=<%p> %F{1} - %m%n
-
-log4perl.appender.FileLogger = Log::Log4perl::Appender::File
-log4perl.appender.FileLogger.filename = /var/log/tweaker.log
-log4perl.appender.FileLogger.layout = Log::Log4perl::Layout::PatternLayout
-log4perl.appender.FileLogger.layout.ConversionPattern=%d <%p> %F{1}:%L %M - %m%n
diff --git a/abs/core/tweaker/tcf/EXAMPLE.tcf b/abs/core/tweaker/tcf/EXAMPLE.tcf
deleted file mode 100644
index 0064fba..0000000
--- a/abs/core/tweaker/tcf/EXAMPLE.tcf
+++ /dev/null
@@ -1,38 +0,0 @@
-<!-- This is an example TCF. See TCFProgrammingSpecifications.odt for details.
- //-->
-<tweak name = "Put a human-readable name for the tweak here. Make sure it's unique."> <!-- REQUIRED //-->
- <description>Put a human-readable description of the tweak here.</description> <!-- OPTIONAL but usually a good idea, unless the user
- will never see the description.
- //-->
- <complexity>Put a complexity level here.</complexity> <!-- OPTIONAL human-readable assessment of how complex this Tweak is to understand.
- A complete list of complexity levels is listed in tweaker-core.tcf
- //-->
- <script>twk_EXAMPLE.pl</script> <!-- REQUIRED: An executable script in the $PATH of the shell that invoked Tweaker.
- For consistency, adhere to the naming convention by beginning the script name with
- 'twk_'. You can make the tweaker script in any language you wish, but Perl is
- supported well.
- //-->
- <alwaysaskuser>boolean</alwaysaskuser> <!-- OPTIONAL field with values: yes, no - not used in Tweaker v0.7
- //-->
- <options> <!-- REQUIRED //-->
- <option name = "Human-readable name for this option"> <!-- REQUIRED: Option names must match those handled in the
- corresponding tweaker script.
- //-->
- <description>Human-readable description of what this option does.</description> <!-- OPTIONAL //-->
- <complexity>Put a complexity level here.</complexity> <!-- OPTIONAL human-readable assessment of how complex this Tweak is to
- understand. A complete list of complexity levels is listed in
- tweaker-core.tcf
- //-->
- <recommendationlevel>recommendationlevel</recommendationlevel> <!-- OPTIONAL human-readable recommendation level for this tweak.
- If this field is absent, the script will be run to acquire
- the recommendationlevel. The default recommendationlevel
- is $optional if it cannot otherwise be determined. For a
- complete list of recommendation levels, see Tweaker/Definitions.pm
- //-->
- </option>
- <!-- Put any additional options here. If you only have one option and it ends up with a recommendationlevel at or above $optional,
- it will be selected automatically. Otherwise, the option with the highest recommendationlevel above $optional will be selected.
- //-->
- </options>
-</tweak>
-<!-- Put any additional tweaks here. //-->
diff --git a/abs/core/tweaker/tcf/focus.tcf b/abs/core/tweaker/tcf/focus.tcf
deleted file mode 100644
index 353662c..0000000
--- a/abs/core/tweaker/tcf/focus.tcf
+++ /dev/null
@@ -1,113 +0,0 @@
-<tweak name = "SQL table scrubber">
- <script>twk_scrub_sql.pl</script>
- <description>Scrubs the sections of mythconverg that KnoppMyth controls, preparing for the Tweaks below.</description>
- <options>
- <option name = "scrub">
- <description>Everyone should run this, or some the Tweaks below may fail.</description>
- <recommendationlevel>recommended</recommendationlevel>
- </option>
- </options>
-</tweak>
-<tweak name = "Audio">
- <script>twk_audio.pl</script>
- <description>Configures MythTV, xine, and mplayer to output audio the way you want.</description>
- <options>
- <option name = "analogstereo">
- <description>Suitable for output to headphones, amplified speakers, or analog inputs on a receiver.</description>
- <recommendationlevel>recommended</recommendationlevel>
- </option>
- <option name = "analogsurround">
- <description>Suitable for direct output to multiple individual speakers.</description>
- </option>
- <option name = "digital">
- <description>The best option if your hardware supports it. Sends audio directly to a reciever to be processed.</description>
- </option>
- </options>
-</tweak>
-<tweak name = "CPU">
- <script>twk_cpu.pl</script>
- <description>Configures MythTV to use CPU-appropriate features and themes.</description>
- <options>
- <option name = "low">
- <description>Uses the least amount of CPU but enables the fewest extra options.</description>
- </option>
- <option name = "medium">
- <description>Uses a moderate amount of CPU and enables typical extra options.</description>
- </option>
- <option name = "high">
- <description>Uses the most amount of CPU of the above options but enables the most extra options.</description>
- </option>
- </options>
-</tweak>
-<tweak name = "RAM">
- <script>twk_RAM.pl</script>
- <description>Configures MythTV to use the right-sized RAM cache for various options.</description>
- <options>
- <option name = "low">
- <description>Uses the least amount of RAM but may cause buffering delays.</description>
- </option>
- <option name = "medium">
- <description>Uses a moderate amount of RAM as a tradeoff between buffering and RAM usage.</description>
- </option>
- <option name = "high">
- <description>Uses the most amount of RAM to reduce buffering and improve performance.</description>
- </option>
- </options>
-</tweak>
-<tweak name = "graphics">
- <script>twk_graphics.pl</script>
- <description>Configures MythTV to use graphical options that are appropriate for your video card.</description>
- <options>
- <option name = "low">
- <description>Puts little stress on the video card.</description>
- </option>
- <option name = "medium">
- <description>Puts the video card to work a bit and enables some eye candy.</description>
- </option>
- <option name = "high">
- <description>Puts the video card hardest to work and enables more eye candy.</description>
- </option>
- </options>
-</tweak>
-<tweak name = "localization">
- <script>twk_localization.pl</script>
- <description>Configures the system to use your native language, system of measurements, etc.</description>
- <options>
- <option name = "US_English">
- <description>This is for most North Americans. Any units seen are in imperial units, such as Fahrenheit, pounds, feet, etc.</description>
- </option>
- <option name = "GB_English">
- <description>This is for most UK residents. Any units seen are in metric, such as Celsius, kilograms, meters, etc.</description>
- </option>
- </options>
-</tweak>
-<tweak name = "Tuner Configuration">
- <script>twk_tuners.pl</script>
- <description>Recommended for everyone.</description>
- <options>
- <option name = "all">
- <description>Detects and auto-configures many tuner devices.</description>
- <recommendationlevel>recommended</recommendationlevel>
- </option>
- </options>
-</tweak>
-<tweak name = "KnoppMyth Customizations">
- <script>twk_general.pl</script>
- <description>Recommended for everyone.</description>
- <options>
- <option name = "all">
- <description>Changes made to the MythTV and KnoppMyth baseline settings for integration and functionality.</description>
- <recommendationlevel>recommended</recommendationlevel>
- </option>
- </options>
-</tweak>
-<tweak name = "SQL table protecter">
- <script>twk_scrub_sql.pl</script>
- <description>Protects the sections of mythconverg that KnoppMyth controls, keeping our changes separate from user-made changes.</description>
- <options>
- <option name = "protect">
- <description>Everyone should run this, or user-made changes might get clobbered.</description>
- <recommendationlevel>recommended</recommendationlevel>
- </option>
- </options>
-</tweak>
diff --git a/abs/core/tweaker/tcf/os.tcf b/abs/core/tweaker/tcf/os.tcf
deleted file mode 100644
index e70f4ee..0000000
--- a/abs/core/tweaker/tcf/os.tcf
+++ /dev/null
@@ -1,10 +0,0 @@
-<tweak name = "Linux-related Customizations">
- <script>twk_linux.pl</script>
- <description>Recommended for everyone.</description>
- <options>
- <option name = "all">
- <description>Changes made to the Linux baseline settings for integration and functionality.</description>
- <recommendationlevel>recommended</recommendationlevel>
- </option>
- </options>
-</tweak>
diff --git a/abs/core/tweaker/tcf/tcf.dtd b/abs/core/tweaker/tcf/tcf.dtd
deleted file mode 100644
index 64ce67e..0000000
--- a/abs/core/tweaker/tcf/tcf.dtd
+++ /dev/null
@@ -1,11 +0,0 @@
-<!ELEMENT tcf (tweak+)>
-<!ELEMENT tweak (description?, complexity?, script, alwaysaskuser?, options)>
- <!ATTLIST tweak name CDATA #REQUIRED>
-<!ELEMENT description (#PCDATA)>
-<!ELEMENT complexity (#PCDATA)>
-<!ELEMENT script (#PCDATA)>
-<!ELEMENT alwaysaskuser (#PCDATA)>
-<!ELEMENT options (option+)>
-<!ELEMENT option (description?, complexity?, recommendationlevel?)>
- <!ATTLIST option name CDATA #REQUIRED>
-<!ELEMENT recommendationlevel (#PCDATA)>
diff --git a/abs/core/tweaker/tcf/tweaker-core.tcf b/abs/core/tweaker/tcf/tweaker-core.tcf
deleted file mode 100644
index 88d8608..0000000
--- a/abs/core/tweaker/tcf/tweaker-core.tcf
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" ?>
-<!DOCTYPE tcf SYSTEM "/usr/LH/tweaker/tcf/tcf.dtd" [
-<!-- <!ENTITY os SYSTEM "/usr/LH/tweaker/tcf/os.tcf"> //-->
-<!-- <!ENTITY distro SYSTEM "/usr/LH/tweaker/tcf/distro.tcf"> //-->
- <!ENTITY focus SYSTEM "/usr/LH/tweaker/tcf/focus.tcf">
- <!ENTITY userland SYSTEM "/usr/LH/tweaker/tcf/userland.tcf">
- ]>
-<tcf>
- <tweak name = "Complexity Level">
- <description>Some configuration options require more understanding than others.</description>
- <complexity>basic</complexity>
- <script>null</script>
- <options>
- <option name = "Basic">
- <description>Show only the most basic configuration options. This is best for new Users.</description>
- <recommendationlevel>recommended</recommendationlevel>
- </option>
- <option name = "Intermediate">
- <description>Show the basic configuration options as well as the options that veteran Users will understand.</description>
- </option>
- <option name = "Advanced">
- <description>Show all configuration options, including those that only advanced Users will understand.</description>
- <recommendationlevel>inadvisable</recommendationlevel>
- </option>
- </options>
- </tweak>
- <tweak name = "Interactivity">
- <description>Tweaker can guess answers to some configuration options. Interactivity determines whether or not these guesses are used automatically, or whether you have a chance to intervene.</description>
- <complexity>basic</complexity>
- <script>null</script>
- <options>
- <option name = "Minimal">
- <description>Show only the most basic configuration options. This is best for new Users.</description>
- <recommendationlevel>inadvisable</recommendationlevel>
- </option>
- <option name = "Guided">
- <description>Show the basic configuration options as well as the options that veteran Users will understand.</description>
- <recommendationlevel>recommended</recommendationlevel>
- </option>
- </options>
- </tweak>
- &os;
- &distro;
- &focus;
- &userland;
-</tcf>
-
diff --git a/abs/core/tweaker/tcf/userland.tcf b/abs/core/tweaker/tcf/userland.tcf
deleted file mode 100644
index e69de29..0000000
--- a/abs/core/tweaker/tcf/userland.tcf
+++ /dev/null
diff --git a/abs/core/tweaker/tweaker.install b/abs/core/tweaker/tweaker.install
deleted file mode 100644
index fc4ba07..0000000
--- a/abs/core/tweaker/tweaker.install
+++ /dev/null
@@ -1,39 +0,0 @@
-# This is a default template for a post-install scriptlet. You can
-# remove any functions you don't need (and this header).
-
-# arg 1: the new package version
-pre_install() {
-/bin/true
-}
-
-# arg 1: the new package version
-post_install() {
- touch /var/log/tweaker.log
- chmod 777 /var/log/tweaker.log
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-pre_upgrade() {
- /bin/true
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- /bin/true
-}
-
-# arg 1: the old package version
-pre_remove() {
- /bin/true
-}
-
-# arg 1: the old package version
-post_remove() {
- /bin/true
-}
-
-op=$1
-shift
-$op $*
diff --git a/abs/core/tweaker/tweaker.sh b/abs/core/tweaker/tweaker.sh
deleted file mode 100644
index 8cb36eb..0000000
--- a/abs/core/tweaker/tweaker.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/bash
- export TWEAKER_ROOT=/usr/LH/tweaker
- export PATH=$PATH:$TWEAKER_ROOT/bin
- export PERL5LIB=$TWEAKER_ROOT/lib:$PERL5LIB \ No newline at end of file