From 8318951c942e2619e4c84315f3e49364b444df79 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Mon, 13 Jul 2009 14:31:25 -0400
Subject: preliminary version of mplayer wrapper; needs further integration
 work

---
 abs/core-testing/mplayer-wrapper/PKGBUILD          |   9 +-
 .../mplayer-wrapper/bin/mplayer-wrapper.pl         | 110 --------------------
 .../mplayer-wrapper/mplayer-wrapper.install        |  38 +++++++
 .../mplayer-wrapper/mplayer-wrapper.pl             | 113 +++++++++++++++++++++
 4 files changed, 158 insertions(+), 112 deletions(-)
 delete mode 100755 abs/core-testing/mplayer-wrapper/bin/mplayer-wrapper.pl
 create mode 100644 abs/core-testing/mplayer-wrapper/mplayer-wrapper.install
 create mode 100755 abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl

diff --git a/abs/core-testing/mplayer-wrapper/PKGBUILD b/abs/core-testing/mplayer-wrapper/PKGBUILD
index 82f1082..3fb4124 100644
--- a/abs/core-testing/mplayer-wrapper/PKGBUILD
+++ b/abs/core-testing/mplayer-wrapper/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mplayer-wrapper
-pkgver=1
+pkgver=1	
 pkgrel=1
 pkgdesc="wrapper for mplayer and mplayer derivatives"
 arch=('i686' 'x86_64')
@@ -10,7 +10,12 @@ source=(mplayer-wrapper.pl)
 
 license=('GPL2')
 
+install=mplayer-wrapper.install
 build() {
+   LH_ROOT=/usr/LH
+   mkdir -p $startdir/pkg/$LH_ROOT/bin/
+
    cd $startdir
-   install -m0777 -D bin/*  $startdir/pkg/usr/LH/bin/
+   # executables
+   install -m0755 -D *.pl  $startdir/pkg/$LH_ROOT/bin/
 }
diff --git a/abs/core-testing/mplayer-wrapper/bin/mplayer-wrapper.pl b/abs/core-testing/mplayer-wrapper/bin/mplayer-wrapper.pl
deleted file mode 100755
index 583786d..0000000
--- a/abs/core-testing/mplayer-wrapper/bin/mplayer-wrapper.pl
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/perl
-
-use Shell;
-use strict;
-use POSIX qw(floor);
-
-# Written by Bob Igo from the MythTV Store at http://MythiC.TV
-# including some original code and contributions from Nick C.
-# and graysky.
-# Email: bob@stormlogic.com
-#
-# If you run into problems with this script, please send me email
-
-# PURPOSE:
-# --------------------------
-# This is a wrapper script that tries to find the best parameters
-# for calling an underlying video player.  The outer layer determines
-# the best playback parameters, while the inner layer picks the best
-# player to call.
-
-# RATIONALE:
-# --------------------------
-# Default video playback options are not optimal on all hardware or
-# for all video types.  In addition, common video players do not
-# offer to bookmark video so that you can resume where you left off.
-# Both of these problems can be addressed by this wrapper.
-
-# PARAMETERS:
-# --------------------------
-# The same parameters you'd use for mplayer, some of which may be
-# translated automatically for use with smplayer.
-
-# FILES:
-# --------------------------
-# $mediafile, the file to play
-
-sub run () {
-    my $mediafile = @ARGV[$#ARGV];
-    my $player = &pick_player();
-
-    my $player_parameters = join(' ',
-				 &translate_parameters($player,@ARGV[0..$#ARGV-1]),
-				 &dynamic_parameters($mediafile));
-    &player($player,$player_parameters,$mediafile);
-}
-
-&run();
-
-# Translates any parameters into ones that will be compatible with the given player.
-sub translate_parameters() {
-    my($player,@parameters)=@_;
-
-    if ($player eq "smplayer") {
-	# Stupidly, smplayer uses a different set of command-line parameters than generic
-	# mplayer, so we need to translate mplayer-centric ones into the few that are
-	# available in smplayer-ese.
-	my %smplayer_parameter_translation_array = (
-	    "-fs" => "-fullscreen",
-	    "-zoom" => " "
-	    );
-	
-	sub translate() {
-	    my($flag)=@_;
-	    return $smplayer_parameter_translation_array{$flag};
-	}
-	
-	return map(&translate($_), @parameters);
-    } else {
-	return @parameters;
-    }
-}
-
-# Returns an array of dynamic parameters based in part on the media.
-sub dynamic_parameters () {
-    my($mediafile)=@_;
-    return(); # ??? empty for now; further development required
-}
-
-# Find the best player for use on this system.  The script prefers smplayer,
-# which has built-in bookmarking, falling back to mplayer-resumer.pl, which
-# implements bookmarking as an mplayer wrapper, if smplayer cannot be found.
-# Finally, if no bookmarking players can be found, a barebones mplayer is used.
-sub pick_player () {
-    my @possible_players = ("smplayer", "mplayer-resumer.pl", "mplayer");
-    my $command;
-    my $candidate_player;
-    foreach (@possible_players) {
-	$candidate_player = $_;
-	$command = "which $candidate_player |";
-	open(SHELL, $command);
-	if (<SHELL>) {
-	    #print "player $candidate_player : $_\n";
-	    return $candidate_player;
-	}
-	close(SHELL);
-    }
-}
-
-# Calls player
-sub player () {
-    my($player,$parameters,$mediafile)=@_;
-    my $command = "$player $parameters \"$mediafile\" 2>&1 2>/dev/null |";
-
-    #print "DEBUG: command is:\n$command\n";
-    open(SHELL, $command);
-    while (<SHELL>) {
-	print $_;
-    }
-    close(SHELL);
-}
diff --git a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.install b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.install
new file mode 100644
index 0000000..18f1b75
--- /dev/null
+++ b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.install
@@ -0,0 +1,38 @@
+# 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() {
+/bin/true
+}
+
+# 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-testing/mplayer-wrapper/mplayer-wrapper.pl b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
new file mode 100755
index 0000000..9977741
--- /dev/null
+++ b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
@@ -0,0 +1,113 @@
+#!/usr/bin/perl
+
+use Shell;
+use strict;
+use POSIX qw(floor);
+
+# Written by Bob Igo from the MythTV Store at http://MythiC.TV
+# including some original code and contributions from Nick C.
+# and graysky.
+# Email: bob@stormlogic.com
+#
+# If you run into problems with this script, please send me email
+
+# PURPOSE:
+# --------------------------
+# This is a wrapper script that tries to find the best parameters
+# for calling an underlying video player.  The outer layer determines
+# the best playback parameters, while the inner layer picks the best
+# player to call.
+
+# RATIONALE:
+# --------------------------
+# Default video playback options are not optimal on all hardware or
+# for all video types.  In addition, common video players do not
+# offer to bookmark video so that you can resume where you left off.
+# Both of these problems can be addressed by this wrapper.
+
+# PARAMETERS:
+# --------------------------
+# The same parameters you'd use for mplayer, some of which may be
+# translated automatically for use with smplayer.
+
+# FILES:
+# --------------------------
+# $mediafile, the file to play
+
+sub run () {
+    my $mediafile = @ARGV[$#ARGV];
+    my $player = &pick_player();
+
+    my $player_parameters = join(' ',
+				 &translate_parameters($player,@ARGV[0..$#ARGV-1]),
+				 &dynamic_parameters($mediafile));
+    &player($player,$player_parameters,$mediafile);
+}
+
+&run();
+
+# Translates any parameters into ones that will be compatible with the given player.
+sub translate_parameters() {
+    my($player,@parameters)=@_;
+
+    if ($player eq "smplayer") {
+	# Stupidly, smplayer uses a different set of command-line parameters than generic
+	# mplayer, so we need to translate mplayer-centric ones into the few that are
+	# available in smplayer-ese.
+	my %smplayer_parameter_translation_array = (
+	    "-fs" => "-fullscreen",
+	    "-zoom" => " "
+	    );
+	
+	sub translate() {
+	    my($flag)=@_;
+	    return $smplayer_parameter_translation_array{$flag};
+	}
+	
+	return map(&translate($_), @parameters);
+    } else {
+	# currently, all other players used by this wrapper work with mplayer parameters
+	return @parameters;
+    }
+}
+
+# Returns an array of dynamic parameters based on the media type,
+# the presence of special playback decoding hardware, and the
+# general capability of the CPU.
+sub dynamic_parameters () {
+    my($mediafile)=@_;
+    return(); # ??? empty for now; further development required
+}
+
+# Find the best player for use on this system.  The script prefers smplayer,
+# which has built-in bookmarking, falling back to mplayer-resumer.pl, which
+# implements bookmarking as an mplayer wrapper, if smplayer cannot be found.
+# Finally, if no bookmarking players can be found, a barebones mplayer is used.
+sub pick_player () {
+    my @possible_players = ("smplayer", "mplayer-resumer.pl", "mplayer");
+    my $command;
+    my $candidate_player;
+    foreach (@possible_players) {
+	$candidate_player = $_;
+	$command = "which $candidate_player |";
+	open(SHELL, $command);
+	if (<SHELL>) {
+	    #print "player $candidate_player : $_\n";
+	    return $candidate_player;
+	}
+	close(SHELL);
+    }
+}
+
+# Calls player
+sub player () {
+    my($player,$parameters,$mediafile)=@_;
+    my $command = "$player $parameters \"$mediafile\" 2>&1 2>/dev/null |";
+
+    #print "DEBUG: command is:\n$command\n";
+    open(SHELL, $command);
+    while (<SHELL>) {
+	print $_;
+    }
+    close(SHELL);
+}
-- 
cgit v0.12


From 8ab2b94c697866402266afc4f04cebf76203463f Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Mon, 13 Jul 2009 14:33:26 -0400
Subject: initial mplayer-wrapper integration; some more mplayer tweaks;
 preliminary smplayer tweaks

---
 abs/core-testing/tweaker/PKGBUILD                  | 14 +++++-----
 abs/core-testing/tweaker/bin/twk_audio.pl          |  6 ++---
 abs/core-testing/tweaker/bin/twk_cpu.pl            | 31 ++++++++++++++++++++++
 abs/core-testing/tweaker/bin/twk_general.pl        |  8 +++---
 .../fs/home/mythtv/.config/smplayer/smplayer.ini   |  2 +-
 5 files changed, 44 insertions(+), 17 deletions(-)

diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index ebd3ed4..377edda 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,7 +1,7 @@
 pkgname=tweaker
 pkgver=1
-pkgrel=38
-pkgdesc=""
+pkgrel=40
+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') 
@@ -16,19 +16,18 @@ 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/$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
-#   install -m0777  -D fs/ $startdir/pkg/$TWEAKER_ROOT/fs
-    cp -rp fs $startdir/pkg/$TWEAKER_ROOT/
-    chmod -R  0777 $startdir/pkg/$TWEAKER_ROOT/ 
+   # 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
@@ -37,7 +36,6 @@ build() {
    #install -m0755 log4perl.conf $startdir/pkg/etc/log4perl.conf
    install -m0755 log4perl.conf $startdir/pkg/$TWEAKER_ROOT
 
-   # Ensure shell variables are configured at start; ensure $TWEAKER_ROOT/bin is in $PATH
    install -m0755 tweaker.sh $startdir/pkg/etc/profile.d/tweaker.sh
 
    # Copy our tweaker Perl modules for general use
diff --git a/abs/core-testing/tweaker/bin/twk_audio.pl b/abs/core-testing/tweaker/bin/twk_audio.pl
index eec7992..09676ed 100755
--- a/abs/core-testing/tweaker/bin/twk_audio.pl
+++ b/abs/core-testing/tweaker/bin/twk_audio.pl
@@ -110,9 +110,9 @@ sub implement_option {
     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].*=.*#TWEAKER/d' $mplayer_conf";
+	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].*=.*\\)/#\\1/g' $mplayer_conf";
+	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;
@@ -133,7 +133,7 @@ sub implement_option {
 		# Not supported yet.
 	    }
 	    case "digital" {
-		$command2 = "echo -e 'ac=hwac3,hwdts, #TWEAKER\nao=alsa:device=plughw=$card.$device #TWEAKER' >> $mplayer_conf";
+		$command2 = "echo -e 'ac=hwac3,hwdts, #TWEAKER\nao=alsa:device=plughw=$card.$device #TWEAKER\naf=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.");
diff --git a/abs/core-testing/tweaker/bin/twk_cpu.pl b/abs/core-testing/tweaker/bin/twk_cpu.pl
index 118bac1..8bddbe3 100755
--- a/abs/core-testing/tweaker/bin/twk_cpu.pl
+++ b/abs/core-testing/tweaker/bin/twk_cpu.pl
@@ -57,6 +57,36 @@ sub get_HDD_size {
 #    
 #}
 
+# 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) = @_;
@@ -106,6 +136,7 @@ sub implement_option {
 	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();	
     } else {
 	exit -1;
     }
diff --git a/abs/core-testing/tweaker/bin/twk_general.pl b/abs/core-testing/tweaker/bin/twk_general.pl
index 387920c..3d16f2c 100755
--- a/abs/core-testing/tweaker/bin/twk_general.pl
+++ b/abs/core-testing/tweaker/bin/twk_general.pl
@@ -87,10 +87,8 @@ sub implement_option {
 	    #
 	    # 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 $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") {
 		change_or_make_entry("videotypes", [["f_ignore", "1"]], [["extension", $non_video_ext]]);
@@ -415,7 +413,7 @@ sub implement_option {
 	    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('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');
diff --git a/abs/core-testing/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini b/abs/core-testing/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini
index 33439a7..9660607 100644
--- a/abs/core-testing/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini
+++ b/abs/core-testing/tweaker/fs/home/mythtv/.config/smplayer/smplayer.ini
@@ -330,7 +330,7 @@ reset_zoom=Shift+E
 auto_zoom=Shift+W
 zoom_169=Shift+A
 zoom_235=Shift+S
-exit_fullscreen=Esc
+exit_fullscreen=
 next_osd=O
 dec_contrast=1
 inc_contrast=2
-- 
cgit v0.12


From 4c71823825d08c1cc2219d22a6d3fe190e158a09 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Mon, 13 Jul 2009 17:50:14 -0400
Subject: fixed twk_audio.pl bug

---
 abs/core-testing/tweaker/PKGBUILD         |  2 +-
 abs/core-testing/tweaker/bin/twk_audio.pl | 10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index 377edda..b3b4983 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=tweaker
 pkgver=1
-pkgrel=40
+pkgrel=41
 pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/tweaker/bin/twk_audio.pl b/abs/core-testing/tweaker/bin/twk_audio.pl
index 09676ed..47a2415 100755
--- a/abs/core-testing/tweaker/bin/twk_audio.pl
+++ b/abs/core-testing/tweaker/bin/twk_audio.pl
@@ -133,7 +133,7 @@ sub implement_option {
 		# Not supported yet.
 	    }
 	    case "digital" {
-		$command2 = "echo -e 'ac=hwac3,hwdts, #TWEAKER\nao=alsa:device=plughw=$card.$device #TWEAKER\naf=scaletempo=stride=30:overlap=.50:search=10 #TWEAKER\nspeed=1.0 #TWEAKER' >> $mplayer_conf";
+		$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.");
@@ -160,6 +160,14 @@ sub implement_option {
 		}
 	    }
 	}
+	# 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.");
     }
 
-- 
cgit v0.12


From a6476c77e1cc295d4b8debaea2d0dfbeae0f7b01 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Mon, 13 Jul 2009 18:54:01 -0700
Subject: Fixed bug that prevented the installation of nvidia drivers.

---
 abs/core-testing/LinHES-config/PKGBUILD   | 2 +-
 abs/core-testing/LinHES-config/xconfig.sh | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index a31f7d4..5ad1a9c 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.0
-pkgrel=52
+pkgrel=53
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
 pkgdesc="Install and configure your system"
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted sg3_utils nmbscan system-templates rsync python-parted ddcxinfo python-pexpect python-netifaces LinHES-timezone)
diff --git a/abs/core-testing/LinHES-config/xconfig.sh b/abs/core-testing/LinHES-config/xconfig.sh
index 4f5fc62..b2b95f3 100755
--- a/abs/core-testing/LinHES-config/xconfig.sh
+++ b/abs/core-testing/LinHES-config/xconfig.sh
@@ -3,7 +3,7 @@
 #SET DISPLAYRES to force Xres, ENV takes precendent over cmdline
 #displayres=cmdline
 #NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel unichrome-dri xf86-video-unichrome xf86-video-mga xf86-video-savage xf86-video-trident"
-NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel xf86-video-mga xf86-video-savage xf86-video-trident"
+NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel xf86-video-mga xf86-video-savage xf86-video-trident xf86-video-openchrome"
 BASE=""
 . /etc/profile
 NVIDIA_96XX="$TEMPLATES/xorg/96xx_supported.txt"
-- 
cgit v0.12


From f301d235fc7955336a38ae4181edcf6961446cd1 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Tue, 14 Jul 2009 15:14:20 -0400
Subject: incorporated vdpau into mplayer wrapper but unable to test; tested
 with other codecs, and it seems to work; remove smplayer functionality for
 now

---
 abs/core-testing/mplayer-wrapper/PKGBUILD          |   2 +-
 .../mplayer-wrapper/bin/mplayer-resumer.pl         | 188 ---------------------
 .../mplayer-wrapper/mplayer-wrapper.pl             |  48 +++++-
 abs/core-testing/tweaker/bin/twk_general.pl        |   2 +-
 4 files changed, 46 insertions(+), 194 deletions(-)
 delete mode 100755 abs/core-testing/mplayer-wrapper/bin/mplayer-resumer.pl

diff --git a/abs/core-testing/mplayer-wrapper/PKGBUILD b/abs/core-testing/mplayer-wrapper/PKGBUILD
index 3fb4124..b9e3aef 100644
--- a/abs/core-testing/mplayer-wrapper/PKGBUILD
+++ b/abs/core-testing/mplayer-wrapper/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mplayer-wrapper
 pkgver=1	
-pkgrel=1
+pkgrel=2
 pkgdesc="wrapper for mplayer and mplayer derivatives"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/mplayer-wrapper/bin/mplayer-resumer.pl b/abs/core-testing/mplayer-wrapper/bin/mplayer-resumer.pl
deleted file mode 100755
index c785a25..0000000
--- a/abs/core-testing/mplayer-wrapper/bin/mplayer-resumer.pl
+++ /dev/null
@@ -1,188 +0,0 @@
-#!/usr/bin/perl
-
-use Shell;
-use strict;
-use POSIX qw(floor);
-
-# 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 is a wrapper script to prove the concept of having MythTV
-# resume playback of previously-stopped video where you left off.
-# It's likely that a good solution will look different than this
-# initial code.
-
-# RATIONALE:
-# --------------------------
-# Watching 90% of a video and stopping causes you to return to the
-# beginning again the next time you watch it.  Remembering where
-# you were in the video and resuming at that position is a much nicer
-# behavior for the user.
-#
-# By default, mplayer spits out timecode information that tells you
-# where you are in the video, to the tenth of a second.  Mplayer also
-# supports a seek feature on the command-line.  We can make use of these
-# features to write an mplayer wrapper that will remember the last
-# position in a video file and resume to it on playback.
-
-# PARAMETERS:
-# --------------------------
-# see print_usage() below
-
-# FILES:
-# --------------------------
-# $infile, the video to play
-# $resumefile, the video's resume file (see get_resume_filename() below)
-
-# KNOWN ISSUES:
-# --------------------------
-# Mplayer misreports the timecodes on .nuv MPEG-2 files.  Currently, anything
-# captured via an HDTV tuner card and put into your /myth/video directory
-# will fail with this resumer.
-#
-# Current theories include the timecode having to do with the show's broadcast
-# time, recording time, or perhaps its upload time to the station that
-# broadcast it.
-
-# DESIGN LIMITATION:
-# -------------------------
-# If the video file to be played is on a read-only filesystem, or otherwise
-# lives in a location that cannot be written to, resume will fail.  This is
-# because the current implementation uses a file parallel to the video file
-# to store the timecode.
-#
-
-# CHANGE LOG:
-# 5/3/2006
-# Added last time started checking.
-# If this script is restarted within $tdiff (default 5 seconds)
-# then it will delete the file used to keep track of the videos
-# resume position.
-
-
-my $infile;
-my $resumefile;
-my $mplayer_parameters;
-my $fudge_factor=2; # number of additional seconds to skip back before playback
-my $tnow;    # Time now.
-my $tprev;   # Time the prog was last started. 
-             # Returned from the modification time of the xx.resume file.
-my $tdiff=5; # How many seconds before we should start from 
-             # the beginning of the movie
-#DEBUG
-#open(DEBUG,">/tmp/debug") || die "unable to open debug file";
-
-sub init () {
-    $tnow = time();
-    $infile = @ARGV[$#ARGV];
-
-    $resumefile = &get_resume_filename($infile);
-    # This returns the 9th element of the 13 element array 
-    # created by the stat function.
-    $tprev = (stat ($resumefile))[9]; 
-    # if this file is restarted in less than 5 seconds then 
-    # remove the .resume file
-    if ( ($tnow - $tprev) < $tdiff ) {
-        unlink($resumefile);
-    }
-
-    $mplayer_parameters = join(' ',@ARGV[0..$#ARGV-1]);
-}
-
-&init();
-&save_time_offset(&mplayer($mplayer_parameters,$infile), $resumefile);
-
-#close(DEBUG);
-
-# For $pathname, return $path.$filename.resume
-sub get_resume_filename () {
-    my($pathname)=@_;
-    
-    my $idx = rindex($pathname,"/");
-
-    if ($idx == -1) { # There was no "/" in $pathname
-	return ".".$pathname.".resume";
-    } else {
-	# Now we need to split out the path from the filename.
-	my $path = substr($pathname,0,$idx+1);
-	my $filename = substr($pathname,$idx+1);
-	return "$path.$filename.resume";
-    }
-}
-
-# Calls mplayer and returns the last known video position
-sub mplayer () {
-    my($parameters,$infile)=@_;
-    my $seconds=0;
-    my $timecode=&get_time_offset($infile);
-    my $command = "mplayer $parameters -ss $timecode \"$infile\" 2>&1 2>/dev/null |";
-
-    open(SHELL, $command);
-    # The kind of line we care about looks like this example:
-    # A:1215.2 V:1215.2 A-V:  0.006 ct:  0.210 207/201 13%  0%  1.9% 0 0 68%
-    # But all we care to look at is the first number.
-    
-    while (<SHELL>) {
-	#print DEBUG $_;
-	if (m/A: *[0-9]+\.[0-9]/) { # See if this line has timecodes on it
-	    my $last_timecode_line = &extract_last_timecode_line($_);
-	    if ($last_timecode_line =~ m/ *([0-9]+\.[0-9]) V/) {
-		$seconds=$1;
-	    }
-	}
-    }
-    close(SHELL);
-
-    return $seconds;
-
-    sub extract_last_timecode_line () {
-	my ($line)=@_;
-	my @lines=split('A:',$line);
-	return @lines[$#lines-1];
-    }
-}
-
-# Save the last known video position
-sub save_time_offset () {
-    my($seconds, $resumefile)=@_;
-
-    open(RESUMEFILE, ">$resumefile") || die "Unable to open $resumefile for writing";
-    print RESUMEFILE "$seconds";
-    close(RESUMEFILE);
-}
-
-# returns the number of seconds corresponding to the last known video position,
-# in hh:mm:ss format, compatible with the "-ss" parameter to mplayer
-sub get_time_offset () {
-    my($videofile)=@_;
-    my($resumefile) = &get_resume_filename($videofile);
-    my $seconds=0;
-    my $timecode;
-
-    open(RESUMEFILE, "<$resumefile") || return "00:00:00";
-    while(<RESUMEFILE>) {
-	$seconds=$_;
-    }
-    close(RESUMEFILE);
-
-    my $hours = floor($seconds/3600);
-    $seconds = $seconds - $hours*3600;
-
-    my $minutes = floor($seconds/60);
-    $seconds = int($seconds - $minutes*60) - $fudge_factor;
-
-    $timecode = sprintf "%02d:%02d:%02d",$hours,$minutes,$seconds;
-#    print "TIMECODE: $timecode\n";
-    return $timecode;
-}
-
-sub print_usage () {
-    print "USAGE:\n";
-    print "\t",$ARGV[0], "[mplayer parameters] video_file\n";
-    print "\t","e.g. ",$ARGV[0], "-fs -zoom my.mpg\n";
-    print "\t","Version 5/3/2006\n";
-}
diff --git a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
index 9977741..2d823d9 100755
--- a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
+++ b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
@@ -76,7 +76,46 @@ sub translate_parameters() {
 # general capability of the CPU.
 sub dynamic_parameters () {
     my($mediafile)=@_;
-    return(); # ??? empty for now; further development required
+    my @parameters = ();
+    my $codec="";
+
+    # figure out what codec the video uses
+    my $command="mplayer -identify -vo null -frames 0 \"$mediafile\" | grep ID_VIDEO_CODEC | cut -c 16- |";
+    open(SHELL, $command);
+    while (<SHELL>) {
+	chop;
+	$codec = $_;
+	#print "DEBUG: codec is $codec\n";
+    }
+    close(SHELL);
+
+    # We should use vdpau if it's available and helps with the codec we need to decode.
+    # ??? NOTE: At the moment, vdpau capability is assumed, not verified.
+    if ($codec eq "ffh264") { # h.264
+	push(@parameters, "-vo vdpau");
+	push(@parameters, "-vc ffh264vdpau");
+    } elsif ($codec eq "ffmpeg2") { # MPEG2
+	push(@parameters, "-vo vdpau");
+	push(@parameters, "-vc ffmpeg12vdpau");
+
+	# problems reported with WMV3 support
+	
+#    } elsif ($codec eq "ffwmv3") { # WMV3
+#	push(@parameters, "-vo vdpau");
+#	push(@parameters, "-vc ffwmv3vdpau");
+
+	# problems reported with WVC1 support
+	
+#    } elsif ($codec eq "ffvc1") { # WVC1
+#	push(@parameters, "-vo vdpau");
+#	push(@parameters, "-vc ffvc1vdpau");
+
+    } else {
+	push(@parameters, "-vo xv,x11,");
+	push(@parameters, "-vc ,");
+    }
+    push(@parameters, "-vf pp=lb,");
+    return(@parameters);
 }
 
 # Find the best player for use on this system.  The script prefers smplayer,
@@ -84,7 +123,8 @@ sub dynamic_parameters () {
 # implements bookmarking as an mplayer wrapper, if smplayer cannot be found.
 # Finally, if no bookmarking players can be found, a barebones mplayer is used.
 sub pick_player () {
-    my @possible_players = ("smplayer", "mplayer-resumer.pl", "mplayer");
+    #my @possible_players = ("smplayer", "mplayer-resumer.pl", "mplayer");
+    my @possible_players = ("mplayer-resumer.pl", "mplayer");
     my $command;
     my $candidate_player;
     foreach (@possible_players) {
@@ -102,9 +142,9 @@ sub pick_player () {
 # Calls player
 sub player () {
     my($player,$parameters,$mediafile)=@_;
-    my $command = "$player $parameters \"$mediafile\" 2>&1 2>/dev/null |";
+    my $command = "$player $parameters \"$mediafile\" 2>&1 |";
 
-    #print "DEBUG: command is:\n$command\n";
+    print "DEBUG: command is:\n$command\n";
     open(SHELL, $command);
     while (<SHELL>) {
 	print $_;
diff --git a/abs/core-testing/tweaker/bin/twk_general.pl b/abs/core-testing/tweaker/bin/twk_general.pl
index 3d16f2c..a5a154a 100755
--- a/abs/core-testing/tweaker/bin/twk_general.pl
+++ b/abs/core-testing/tweaker/bin/twk_general.pl
@@ -410,7 +410,7 @@ sub implement_option {
 	    change_or_make_setting('UserJobDesc2', 'User Job #2');
 	    change_or_make_setting('UserJobDesc3', 'User Job #3');
 	    change_or_make_setting('UserJobDesc4', 'Extract audio');
-	    change_or_make_setting('VCDPlayerCommand', 'mplayer vcd:\/\/ -cdrom-device %d -fs -zoom -vo xv -vf pp=lb');
+	    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');
-- 
cgit v0.12


From 0c8f5ba689416ba6f11fd176e6c1fd61207c477e Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Wed, 15 Jul 2009 15:18:52 -0400
Subject: wrapper now lets command-line options override dynamic ones

---
 abs/core-testing/mplayer-wrapper/PKGBUILD          |  2 +-
 .../mplayer-wrapper/mplayer-wrapper.pl             | 29 ++++++++++++++++++----
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/abs/core-testing/mplayer-wrapper/PKGBUILD b/abs/core-testing/mplayer-wrapper/PKGBUILD
index b9e3aef..52ccbd4 100644
--- a/abs/core-testing/mplayer-wrapper/PKGBUILD
+++ b/abs/core-testing/mplayer-wrapper/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mplayer-wrapper
 pkgver=1	
-pkgrel=2
+pkgrel=3
 pkgdesc="wrapper for mplayer and mplayer derivatives"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
index 2d823d9..646b675 100755
--- a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
+++ b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
@@ -38,9 +38,28 @@ sub run () {
     my $mediafile = @ARGV[$#ARGV];
     my $player = &pick_player();
 
+    # mplayer evaluates configuration options in the following order, with
+    # later-evaluated options overriding earlier-evaluated ones, both within
+    # a given configuration location and between them:
+    # 1) system-wide configuration/profiles, /etc/mplayer/mplayer.conf
+    # 2) user-specific configuration/profiles, ~/.mplayer/config
+    # 3) commandline configuration parameters
+    # 4) file-specific configuration, ~/.mplayer/[filename].conf
+    # 5) any nonstandard configuration file, included via "-include" parameter
+    #
+    # This script's dynamic configuration options fall in at 2.5 above,
+    # so commandline options, file-specific configuration options,
+    # or a nonstandard configuration file will override the options that
+    # the script creates, but system-wide and user-specific configuration
+    # will be overridden by the dynamic configuration options.
+    #
+    # This is sub-optimal, as the easiest way for a user to compensate for
+    # a misfiring configuration rule would be to override it in a configuration
+    # file.  Instead, they will have to change the way they run this script.
+
     my $player_parameters = join(' ',
-				 &translate_parameters($player,@ARGV[0..$#ARGV-1]),
-				 &dynamic_parameters($mediafile));
+				 &dynamic_parameters($mediafile),
+				 &translate_parameters($player,@ARGV[0..$#ARGV-1]));
     &player($player,$player_parameters,$mediafile);
 }
 
@@ -98,13 +117,13 @@ sub dynamic_parameters () {
 	push(@parameters, "-vo vdpau");
 	push(@parameters, "-vc ffmpeg12vdpau");
 
-	# problems reported with WMV3 support
+	# problems have been reported with WMV3 support
 	
 #    } elsif ($codec eq "ffwmv3") { # WMV3
 #	push(@parameters, "-vo vdpau");
 #	push(@parameters, "-vc ffwmv3vdpau");
 
-	# problems reported with WVC1 support
+	# problems have been reported with WVC1 support
 	
 #    } elsif ($codec eq "ffvc1") { # WVC1
 #	push(@parameters, "-vo vdpau");
@@ -144,7 +163,7 @@ sub player () {
     my($player,$parameters,$mediafile)=@_;
     my $command = "$player $parameters \"$mediafile\" 2>&1 |";
 
-    print "DEBUG: command is:\n$command\n";
+    print "DEBUG: $0's player command is: *** $command ***\n";
     open(SHELL, $command);
     while (<SHELL>) {
 	print $_;
-- 
cgit v0.12


From 21c51f49475f01df08919782c7dd824738c94cdf Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Wed, 15 Jul 2009 16:14:15 -0400
Subject: minor fix after first test on vdpau-capable hardware

---
 abs/core-testing/mplayer-wrapper/PKGBUILD           | 2 +-
 abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/mplayer-wrapper/PKGBUILD b/abs/core-testing/mplayer-wrapper/PKGBUILD
index 52ccbd4..2f33bbc 100644
--- a/abs/core-testing/mplayer-wrapper/PKGBUILD
+++ b/abs/core-testing/mplayer-wrapper/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mplayer-wrapper
 pkgver=1	
-pkgrel=3
+pkgrel=4
 pkgdesc="wrapper for mplayer and mplayer derivatives"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
index 646b675..a664a99 100755
--- a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
+++ b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
@@ -132,8 +132,8 @@ sub dynamic_parameters () {
     } else {
 	push(@parameters, "-vo xv,x11,");
 	push(@parameters, "-vc ,");
+	push(@parameters, "-vf pp=lb,");
     }
-    push(@parameters, "-vf pp=lb,");
     return(@parameters);
 }
 
-- 
cgit v0.12


From d7d468a521949ab4dd392bb64d34cf0ea97eada6 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Thu, 16 Jul 2009 13:48:54 -0400
Subject: '-vo null' was causing some codecs to be mis-identified

---
 abs/core-testing/mplayer-wrapper/PKGBUILD           | 2 +-
 abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/mplayer-wrapper/PKGBUILD b/abs/core-testing/mplayer-wrapper/PKGBUILD
index 2f33bbc..9c0934b 100644
--- a/abs/core-testing/mplayer-wrapper/PKGBUILD
+++ b/abs/core-testing/mplayer-wrapper/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mplayer-wrapper
 pkgver=1	
-pkgrel=4
+pkgrel=5
 pkgdesc="wrapper for mplayer and mplayer derivatives"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
index a664a99..86c40c6 100755
--- a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
+++ b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
@@ -99,7 +99,7 @@ sub dynamic_parameters () {
     my $codec="";
 
     # figure out what codec the video uses
-    my $command="mplayer -identify -vo null -frames 0 \"$mediafile\" | grep ID_VIDEO_CODEC | cut -c 16- |";
+    my $command="mplayer -identify -frames 0 \"$mediafile\" | grep ID_VIDEO_CODEC | cut -c 16- |";
     open(SHELL, $command);
     while (<SHELL>) {
 	chop;
-- 
cgit v0.12


From cb11759fca03a6f9297a9d1e3e51861e40ad3897 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Thu, 16 Jul 2009 14:39:53 -0400
Subject: Using twk_general.pl to turn off a harmful picture control setting

---
 abs/core-testing/tweaker/PKGBUILD           | 2 +-
 abs/core-testing/tweaker/bin/twk_general.pl | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index b3b4983..84f4f9e 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=tweaker
 pkgver=1
-pkgrel=41
+pkgrel=42
 pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/tweaker/bin/twk_general.pl b/abs/core-testing/tweaker/bin/twk_general.pl
index a5a154a..9043b6c 100755
--- a/abs/core-testing/tweaker/bin/twk_general.pl
+++ b/abs/core-testing/tweaker/bin/twk_general.pl
@@ -410,6 +410,7 @@ sub implement_option {
 	    change_or_make_setting('UserJobDesc2', 'User Job #2');
 	    change_or_make_setting('UserJobDesc3', 'User Job #3');
 	    change_or_make_setting('UserJobDesc4', 'Extract audio');
+	    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');
-- 
cgit v0.12


From dfc018de02274ae8d209e56f83c6f247f0731afe Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Thu, 16 Jul 2009 18:18:08 -0700
Subject: Initial inclusion.  Needed for Myth2Ipod.

---
 abs/extra-testing/gpac/ChangeLog |  9 +++++++++
 abs/extra-testing/gpac/PKGBUILD  | 13 +++++++------
 2 files changed, 16 insertions(+), 6 deletions(-)
 create mode 100644 abs/extra-testing/gpac/ChangeLog

diff --git a/abs/extra-testing/gpac/ChangeLog b/abs/extra-testing/gpac/ChangeLog
new file mode 100644
index 0000000..5e63198
--- /dev/null
+++ b/abs/extra-testing/gpac/ChangeLog
@@ -0,0 +1,9 @@
+2009-04-19  Allan McRae <allan@archlinux.org>
+	* gpac-0.4.5-2
+	* Rebuild against libavcodec.so.52 (FS#14291)
+
+2008-12-14  Allan McRae <allan@archlinux.org>
+	* gpac-0.4.5-1
+	* upstream update
+	* FHS man page
+	
diff --git a/abs/extra-testing/gpac/PKGBUILD b/abs/extra-testing/gpac/PKGBUILD
index 7f47c35..a224ac6 100755
--- a/abs/extra-testing/gpac/PKGBUILD
+++ b/abs/extra-testing/gpac/PKGBUILD
@@ -1,26 +1,27 @@
-# $Id: PKGBUILD,v 1.1 2008/07/16 09:37:15 allan Exp $
+# $Id: PKGBUILD,v 1.4 2009/04/19 08:06:33 allan Exp $
 # Maintainer: Allan McRae <allan@archlinux.org>
 # Contributor: niQo
 
 pkgname=gpac
-pkgver=0.4.4
+pkgver=0.4.5
 pkgrel=2
 pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
 arch=('i686' 'x86_64')
 url="http://gpac.sourceforge.net"
-depends=('libxml2'  'alsa-lib' 'sdl' 'spidermonkey' 'libmad' \
+depends=('libxml2' 'wxgtk' 'alsa-lib' 'sdl' 'spidermonkey' 'libmad' \
          'faad2' 'xvidcore' 'ffmpeg' 'freeglut')
 license=('LGPL')
 source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
-md5sums=('a5cb48ab85e9914d127fd8799b4b2e56')
+md5sums=('755e8c438a48ebdb13525dd491f5b0d1')
 
 build() {
   cd "${srcdir}/${pkgname}"
   chmod +x configure
   sed -i 's#osmozilla##g' applications/Makefile
   sed -i 's#"$(prefix)#"$(DESTDIR)$(prefix)#' applications/osmo4_wx/Makefile
-  ./configure --prefix=/usr
+  sed -i 's#ldconfig || true##g' Makefile
+  ./configure --prefix=/usr --mandir=/usr/share/man --use-js=no
   make || return 1
   make DESTDIR=${pkgdir}/ install-lib
   make DESTDIR=${pkgdir}/ install
-}
+}
\ No newline at end of file
-- 
cgit v0.12


From 1b9eeb6d26aaf407a2366810437b1ba09c1658b3 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 17 Jul 2009 13:41:55 -0400
Subject: mythtv-svn: updated to 20936

---
 abs/core-testing/mythtv/trunk/morethemes/PKGBUILD     |  2 +-
 abs/core-testing/mythtv/trunk/mp_all.sh               | 13 ++++++++++++-
 abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD    |  2 +-
 abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD    |  2 +-
 abs/core-testing/mythtv/trunk/mythflix/PKGBUILD       |  2 +-
 abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD    |  2 +-
 abs/core-testing/mythtv/trunk/mythgame/PKGBUILD       |  2 +-
 abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD     |  2 +-
 abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD      |  2 +-
 abs/core-testing/mythtv/trunk/mythnews/PKGBUILD       |  2 +-
 abs/core-testing/mythtv/trunk/myththemes/PKGBUILD     |  2 +-
 abs/core-testing/mythtv/trunk/mythtv/PKGBUILD         |  8 +++++---
 abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD      |  2 +-
 abs/core-testing/mythtv/trunk/mythweather/PKGBUILD    |  2 +-
 abs/core-testing/mythtv/trunk/mythweb/PKGBUILD        |  2 +-
 abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD |  2 +-
 16 files changed, 31 insertions(+), 18 deletions(-)

diff --git a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
index 3009bee..ae3aafe 100644
--- a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=morethemes-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Additional themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mp_all.sh b/abs/core-testing/mythtv/trunk/mp_all.sh
index 3b0421c..9f94859 100755
--- a/abs/core-testing/mythtv/trunk/mp_all.sh
+++ b/abs/core-testing/mythtv/trunk/mp_all.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-_svnver=20787
+_svnver=20936
 
 # NOTE: Make sure to build and install mythtv first BEFORE building anything else
 buildlist=('mythtv' 'mytharchive' 'mythbrowser' 'mythflix' 'mythgallery' 'mythgame' 'mythmovies' 'mythmusic' 'mythnews' 'mythvideo' 'mythweather' 'mythzoneminder' 'mythweb' 'myththemes' 'morethemes')
@@ -9,9 +9,20 @@ for i in `echo ${buildlist[@]:0}`
 do
 	echo "---------- building $i ----------"
 	cd ./$i
+
+	# set svn version in the PKGBUILD
+	sed -i s/^pkgver=.*/pkgver=$_svnver/ PKGBUILD
+
+	# optionally clean up for virgin build
+#	rm -rf pkg src
+
+	# make the package
 	mp -f -i --holdver || exit 1
+
+	# clean up afterwards
 	rm -rf pkg
 	rm -f *~
+
 	cd ..
 done
 
diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
index 3101248..43ddfb0 100644
--- a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mytharchive-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
index f01722d..de5d3bd 100644
--- a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythbrowser-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Mini web browser for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
index f5efdc9..1ea6b21 100644
--- a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythflix-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Netflix access plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
index 115bc12..7d33352 100644
--- a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgallery-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Image gallery plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
index 2271068..9571b5a 100644
--- a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgame-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Emulation plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
index b62b7c7..a31852c 100644
--- a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmovies-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Displays information about movies playing in the area."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
index 912fa54..180f690 100644
--- a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmusic-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Music playing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
index 5d8c7fe..f5fb69a 100644
--- a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythnews-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="News checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
index 2066152..1bf01e5 100755
--- a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=myththemes-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
index cb0bc86..72ad0a8 100755
--- a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythtv-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="A personal video recorder for Linux"
 url="http://www.mythtv.org"
@@ -16,7 +16,8 @@ groups=('pvr')
 #MAKEFLAGS="-j6"
 install='mythtv.install'
 
-patchs=('smolt_jump.patch' 'myththemedmenu.h.patch' 'myththemedmenu.cpp.patch' )
+patchs=()
+#patchs=('smolt_jump.patch' 'myththemedmenu.h.patch' 'myththemedmenu.cpp.patch' )
 #	'H264Parser-fixes-v1.1.patch' \
 #	'hdpvr-signalmonitor.patch' 'ringbuffer_reset_v2.diff' )
 #patchs=('svn_main_menu_popup.patch' 'smolt_jump.patch')
@@ -55,10 +56,11 @@ build() {
 
 	# configure
 	./configure --prefix=/usr --arch=${ARCH} \
-	--enable-vdpau --enable-xvmc --enable-xvmc-pro \
+	--enable-vdpau --disable-xvmc \
 	--enable-opengl-vsync --enable-libfaad --enable-dvb --enable-firewire \
 	--compile-type=release --with-bindings=perl,python \
 	--enable-audio-alsa --disable-audio-jack --disable-audio-arts || return 1
+       #        --enable-xvmc --enable-xvmc-pro \
 
 	# build and install
 	. /etc/profile
diff --git a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
index 289dd21..b92227c 100644
--- a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythvideo-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Video playback and browsing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
index 4200bf0..63f447b 100644
--- a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweather-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Weather checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
index b058125..7f9f292 100644
--- a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweb-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Web interface for MythTV's backend"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
index cb2f2c3..e2f5f28 100644
--- a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythzoneminder-svn
-pkgver=20787
+pkgver=20936
 pkgrel=1
 pkgdesc="Integrates ZoneMinder into MythTV"
 url="http://www.mythtv.org"
-- 
cgit v0.12


From 1f5c42b929c211d15031d3c8533bc148e267d880 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 17 Jul 2009 16:40:31 -0400
Subject: libjpeg: update to version 7

---
 abs/core-testing/libjpeg/PKGBUILD | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/abs/core-testing/libjpeg/PKGBUILD b/abs/core-testing/libjpeg/PKGBUILD
index baedcd4..3f671b4 100644
--- a/abs/core-testing/libjpeg/PKGBUILD
+++ b/abs/core-testing/libjpeg/PKGBUILD
@@ -1,10 +1,10 @@
 # $Id$
 # Maintainer: Allan McRae <allan@archlinux.org>
-# Committer: Judd Vinet <jvinet@zeroflux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
 
 pkgname=libjpeg
-pkgver=6b
-pkgrel=6
+pkgver=7
+pkgrel=1
 pkgdesc="Library of JPEG support functions"
 arch=('i686' 'x86_64')
 url="http://www.ijg.org/"
@@ -12,17 +12,17 @@ license=('custom')
 depends=('glibc')
 makedepends=('libtool')
 options=(!libtool)
-source=(ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v$pkgver.tar.gz)
-md5sums=('dbd5f3b47ed13132f04c685d608a7547')
+source=(http://www.ijg.org/files/jpegsrc.v7.tar.gz)
+md5sums=('382ef33b339c299b56baf1296cda9785')
 
 build() {
   cd $srcdir/jpeg-$pkgver
-  cp /usr/share/libtool/config/config.{guess,sub} .
-  sed -i "s#./libtool#libtool#" configure
   ./configure --prefix=/usr --enable-shared --enable-static
   make || return 1
-  mkdir -p $pkgdir/usr/{bin,lib,include,share/man/man1}
-  make prefix=$pkgdir/usr mandir=$pkgdir/usr/share/man/man1 install
+  make prefix=$pkgdir/usr mandir=$pkgdir/usr/share/man install
+  
+  # See FS#11116 - re-assess need with v7 release sometime...
   install -m644 jpegint.h $pkgdir/usr/include
+
   install -Dm644 README $pkgdir/usr/share/licenses/libjpeg/README
 }
-- 
cgit v0.12


From ec0507cc69399f73f21098424b798a4283ba7fea Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 17 Jul 2009 16:41:12 -0400
Subject: libmng: update to version 1.0.10

---
 abs/core-testing/libmng/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/libmng/PKGBUILD b/abs/core-testing/libmng/PKGBUILD
index d0fd215..ede7f7c 100644
--- a/abs/core-testing/libmng/PKGBUILD
+++ b/abs/core-testing/libmng/PKGBUILD
@@ -1,14 +1,14 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
+# $Id$
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=libmng
 pkgver=1.0.10
-pkgrel=1
+pkgrel=2
 pkgdesc="A collection of routines used to create and manipulate MNG format graphics files"
 arch=('i686' 'x86_64')
 url="http://www.libmng.com/"
 license=('custom')
-depends=('zlib' 'libjpeg')
+depends=('zlib' 'libjpeg>=7')
 options=(!libtool)
 source=(http://dl.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
 md5sums=('a464ae7d679781beebdf7440d144b7bd')
-- 
cgit v0.12


From d258c28f88adcb61ff0f9089b4580bec355ae64d Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 17 Jul 2009 16:41:49 -0400
Subject: libtiff: update to version 3.8.2

---
 abs/core-testing/libtiff/PKGBUILD | 52 ++++++++++++++++++++++++---------------
 1 file changed, 32 insertions(+), 20 deletions(-)

diff --git a/abs/core-testing/libtiff/PKGBUILD b/abs/core-testing/libtiff/PKGBUILD
index 67cb689..51e106c 100644
--- a/abs/core-testing/libtiff/PKGBUILD
+++ b/abs/core-testing/libtiff/PKGBUILD
@@ -1,31 +1,43 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
-# Maintainer: dorphell <dorphell@archlinux.org>
+# $Id$
+# Maintainer: Eric Belanger <eric@archlinux.org>
+# Contributor: dorphell <dorphell@archlinux.org>
 
 pkgname=libtiff
 pkgver=3.8.2
-pkgrel=3
+pkgrel=5
 pkgdesc="Library for manipulation of TIFF images"
-arch=(i686 x86_64)
-depends=(libjpeg zlib)
-makedepends=(libgl freeglut libxmu libxi)
-options=(!libtool)
+arch=('i686' 'x86_64')
 url="http://www.libtiff.org/"
-source=(ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz
-	tiff2pdf-octal-printf.patch
-       	tiffsplit-fname-overflow.patch
-	CVE-2006-3459-3465.patch
-	tiff2pdf-compression.patch)
+license=('custom')
+depends=('libjpeg>=7' 'zlib')
+makedepends=('libgl' 'freeglut' 'libxmu' 'libxi')
+optdepends=('freeglut: for using tiffgt')
+options=('!libtool')
+source=(ftp://ftp.remotesensing.org/pub/libtiff/tiff-${pkgver}.tar.gz \
+	tiff2pdf-octal-printf.patch \
+       	tiffsplit-fname-overflow.patch \
+	CVE-2006-3459-3465.patch \
+	tiff2pdf-compression.patch \
+        tiff-3.8.2-CVE-2008-2327.patch)
 md5sums=('fbb6f446ea4ed18955e2714934e5b698' 'd54368687d2645ffbbe6c2df384b11bf'\
          '323352fd60a7bd3ffac8724c3c031669' '624d3067e6a4c0680767eb62253ea980'\
-         'b443ffca9d498bb3a88c17da0200025b')
+         'b443ffca9d498bb3a88c17da0200025b' 'c2c2e22557d9c63011df5777dda6a86b')
+sha1sums=('549e67b6a15b42bfcd72fe17cda7c9a198a393eb'
+          'c79245249634a121bfaff6cfecb763f72fe7f8eb'
+          'dc86bb68c7831ff70ff01d952d553be9f986be46'
+          '85dc50a60a10025757e249d869dab7eb73ba6e3c'
+          '508751f55131356ea8a7e7c4994ffbc9bd881769'
+          '1da2ec6a47c0666cad9d07fb8427c1c75ca27b10')
 
 build() {
-  cd ${startdir}/src/tiff-${pkgver}
-  patch -Np1 -i ${startdir}/src/tiff2pdf-octal-printf.patch || return 1
-  patch -Np1 -i ${startdir}/src/tiffsplit-fname-overflow.patch || return 1
-  patch -Np1 -i ${startdir}/src/CVE-2006-3459-3465.patch || return 1
-  patch -Np1 -i ${startdir}/src/tiff2pdf-compression.patch || return 1
-  ./configure --prefix=/usr --sysconfdir=/etc
+  cd ${srcdir}/tiff-${pkgver}
+  patch -Np1 -i ${srcdir}/tiff2pdf-octal-printf.patch || return 1
+  patch -Np1 -i ${srcdir}/tiffsplit-fname-overflow.patch || return 1
+  patch -Np1 -i ${srcdir}/CVE-2006-3459-3465.patch || return 1
+  patch -Np1 -i ${srcdir}/tiff2pdf-compression.patch || return 1
+  patch -Np1 -i ${srcdir}/tiff-3.8.2-CVE-2008-2327.patch || return 1
+  ./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man || return 1
   make || return 1
-  make DESTDIR=${startdir}/pkg install
+  make DESTDIR=${pkgdir} install || return 1
+  install -D -m644 COPYRIGHT ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
 }
-- 
cgit v0.12


From d15bb4e7efca625e3d5265000ebd9df08c59f8c1 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 17 Jul 2009 16:42:40 -0400
Subject: libtiff: missed a patch file

---
 .../libtiff/tiff-3.8.2-CVE-2008-2327.patch         | 64 ++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 abs/core-testing/libtiff/tiff-3.8.2-CVE-2008-2327.patch

diff --git a/abs/core-testing/libtiff/tiff-3.8.2-CVE-2008-2327.patch b/abs/core-testing/libtiff/tiff-3.8.2-CVE-2008-2327.patch
new file mode 100644
index 0000000..e6d74a6
--- /dev/null
+++ b/abs/core-testing/libtiff/tiff-3.8.2-CVE-2008-2327.patch
@@ -0,0 +1,64 @@
+Fixes security issues in libTIFF's handling of LZW-encoded
+images.  The use of uninitialized data could lead to a buffer
+underflow and a crash or arbitrary code execution.
+
+CVE-ID: CVE-2008-2327
+Security bug: https://bugs.gentoo.org/show_bug.cgi?id=234080
+
+Index: tiff-3.8.2/libtiff/tif_lzw.c
+===================================================================
+--- tiff-3.8.2.orig/libtiff/tif_lzw.c
++++ tiff-3.8.2/libtiff/tif_lzw.c
+@@ -237,6 +237,12 @@ LZWSetupDecode(TIFF* tif)
+                     sp->dec_codetab[code].length = 1;
+                     sp->dec_codetab[code].next = NULL;
+                 } while (code--);
++		/*
++		* Zero-out the unused entries
++		*/
++		_TIFFmemset(&sp->dec_codetab[CODE_CLEAR], 0,
++		(CODE_FIRST-CODE_CLEAR)*sizeof (code_t));
++
+ 	}
+ 	return (1);
+ }
+@@ -408,12 +414,19 @@ LZWDecode(TIFF* tif, tidata_t op0, tsize
+ 			break;
+ 		if (code == CODE_CLEAR) {
+ 			free_entp = sp->dec_codetab + CODE_FIRST;
++			_TIFFmemset(free_entp, 0, (CSIZE-CODE_FIRST)*sizeof (code_t));
+ 			nbits = BITS_MIN;
+ 			nbitsmask = MAXCODE(BITS_MIN);
+ 			maxcodep = sp->dec_codetab + nbitsmask-1;
+ 			NextCode(tif, sp, bp, code, GetNextCode);
+ 			if (code == CODE_EOI)
+ 				break;
++			if (code == CODE_CLEAR) {
++				TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
++				"LZWDecode: Corrupted LZW table at scanline %d",
++				tif->tif_row);
++				return (0);
++			}
+ 			*op++ = (char)code, occ--;
+ 			oldcodep = sp->dec_codetab + code;
+ 			continue;
+@@ -604,12 +617,19 @@ LZWDecodeCompat(TIFF* tif, tidata_t op0,
+ 			break;
+ 		if (code == CODE_CLEAR) {
+ 			free_entp = sp->dec_codetab + CODE_FIRST;
++			_TIFFmemset(free_entp, 0, (CSIZE-CODE_FIRST)*sizeof (code_t));
+ 			nbits = BITS_MIN;
+ 			nbitsmask = MAXCODE(BITS_MIN);
+ 			maxcodep = sp->dec_codetab + nbitsmask;
+ 			NextCode(tif, sp, bp, code, GetNextCodeCompat);
+ 			if (code == CODE_EOI)
+ 				break;
++			if (code == CODE_CLEAR) {
++				TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
++				"LZWDecode: Corrupted LZW table at scanline %d",
++				tif->tif_row);
++				return (0);
++			}
+ 			*op++ = code, occ--;
+ 			oldcodep = sp->dec_codetab + code;
+ 			continue;
-- 
cgit v0.12


From fb13d828b914fa3e40b9b7242177342b0ea904a7 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 17 Jul 2009 16:43:18 -0400
Subject: libtiff: missed the ChangeLog file

---
 abs/core-testing/libtiff/ChangeLog | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100644 abs/core-testing/libtiff/ChangeLog

diff --git a/abs/core-testing/libtiff/ChangeLog b/abs/core-testing/libtiff/ChangeLog
new file mode 100644
index 0000000..1a1c85b
--- /dev/null
+++ b/abs/core-testing/libtiff/ChangeLog
@@ -0,0 +1,8 @@
+2008-09-05  Eric Belanger  <eric@archlinux.org>
+
+	* libtiff 3.8.2-4
+	* Applied patch to fix buffer underflow in LZW decoding	(tiff-3.8.2-CVE-2008-2327.patch)
+	* Added license
+	* Added freeglut optdepends
+	* FHS man pages
+	* Added ChangeLog
-- 
cgit v0.12


From 0a9d5cb47df47ed459725d22febbf0475b69c10f Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 17 Jul 2009 17:09:11 -0400
Subject: qt: update to version 4.5.2

---
 abs/core-testing/qt/PKGBUILD    | 66 ++++++++++++++++++++++++++++++-----------
 abs/core-testing/qt/qdoc3.patch | 19 +++++++-----
 2 files changed, 60 insertions(+), 25 deletions(-)

diff --git a/abs/core-testing/qt/PKGBUILD b/abs/core-testing/qt/PKGBUILD
index b581564..fec68bc 100644
--- a/abs/core-testing/qt/PKGBUILD
+++ b/abs/core-testing/qt/PKGBUILD
@@ -2,33 +2,49 @@
 # Maintainer: Pierre Schmitz <pierre@archlinux.de>
 
 pkgname=qt
-pkgver=4.5.1
-pkgrel=2
-_qtcopyver=958581
+pkgver=4.5.2
+pkgrel=3
+_kdeqtver=2d1727e396d5dca24ae0fb6a45d35ffc1abd0c12
 pkgdesc='A cross-platform application and UI framework'
 arch=('i686' 'x86_64')
 url='http://www.qtsoftware.com/'
 license=('GPL3' 'LGPL')
-depends=('libpng' 'mesa' 'fontconfig' 'libtiff' 'libmng' 'sqlite3' 'libxrandr' 'glib2' 'libxi' 'dbus' 'libxcursor' 'libxinerama' 'libxrender')
+depends=('libpng' 'mesa' 'fontconfig' 'libtiff>=3.8.2-5' 'libmng>=1.0.10-2' 'sqlite3'
+         'libxrandr' 'glib2' 'libxi' 'dbus' 'libxcursor' 'libxinerama' 'libxrender')
 optdepends=('postgresql-libs' 'libmysqlclient' 'unixodbc')
-makedepends=('inputproto' 'postgresql-libs' 'mysql' 'unixodbc' 'libxfixes')
+makedepends=('inputproto' 'postgresql-libs' 'mysql' 'unixodbc' 'libxfixes' 'gtk2')
 provides=("qt4=${pkgver}")
 replaces=('qt4')
 conflicts=('qt4')
 options=('!libtool')
 _pkgfqn="qt-x11-opensource-src-${pkgver}"
-# svn export -r${_qtcopyver} svn://anonsvn.kde.org/home/kde/trunk/qt-copy/patches/ qt-copy-patches-${_qtcopyver}
 source=("ftp://ftp.qtsoftware.com/qt/source/${_pkgfqn}.tar.bz2"
-        "ftp://ftp.archlinux.org/other/qt/qt-copy-patches-${_qtcopyver}.tar.bz2"
+        "ftp://ftp.archlinux.org/other/kde-qt/kde-qt-patches-${_kdeqtver}.tar.bz2"
         'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qtconfig.desktop'
         'qdoc3.patch')
-md5sums=('afc43e566341cf3e5ed0bcb974f0c3b2'
-         'b57b08ac7f990f91b85a7b1b1106e36b'
+md5sums=('28a7e8ac9805a6f614d2a27ee1a6ac9d'
+         '4b333add3031f59538629b35858178d9'
          'b352b4b70faba2571af3fce5d119580a'
          '491a96682faa03407f768a53cca71db5'
          'cda7ed7e132689991dc2968a0043b4b0'
          '717669b728a0a795217d2f52969e454c'
-         '868056a3edab09fbac0f82ec8b4a4be3')
+         '9c0a0db3569e889a54a6cddcd55c538c')
+
+_create-kdeqt-patches() {
+	local codir=$(mktemp -d)
+	mkdir -p "${codir}/kde-qt"
+	git clone git://gitorious.org/+kde-developers/qt/kde-qt.git "${codir}/kde-qt"
+	pushd "${codir}/kde-qt"
+	local kdeqtver=$(git --no-pager show --format='%H' "${pkgver}-patched")
+	mkdir "../kde-qt-patches-${kdeqtver}"
+	git format-patch -k "v${pkgver}..${pkgver}-patched" -o "../kde-qt-patches-${kdeqtver}"
+	popd
+	pushd "${codir}"
+	bsdtar -cjf "kde-qt-patches-${kdeqtver}.tar.bz2" kde-qt-patches-${kdeqtver}
+	popd
+	mv "${codir}/kde-qt-patches-${kdeqtver}.tar.bz2" .
+	rm -rf "${codir}"
+}
 
 build() {
 	unset QMAKESPEC
@@ -37,17 +53,17 @@ build() {
 	export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
 
 	cd $srcdir/$_pkgfqn
-	for i in $srcdir/qt-copy-patches-${_qtcopyver}/*; do
+	for i in $srcdir/kde-qt-patches-${_kdeqtver}/*; do
 		echo "applying $i"
-		patch -p0 -i $i || return 1
+		patch -p1 -i $i || return 1
 	done
 
-	patch -p1 -i $srcdir/qdoc3.patch
+	patch -p0 -i $srcdir/qdoc3.patch
 
 	sed -i "s|-O2|$CXXFLAGS|" mkspecs/common/g++.conf
+	sed -i "/^QMAKE_RPATH/s| -Wl,-rpath,||g" mkspecs/common/g++.conf
 
 	./configure -confirm-license -opensource \
-		-silent \
 		-prefix /usr \
 		-sysconfdir /etc \
 		-plugindir /usr/lib/qt/plugins \
@@ -56,16 +72,32 @@ build() {
 		-docdir /usr/share/doc/qt \
 		-examplesdir /usr/share/doc/qt/examples \
 		-demosdir /usr/share/doc/qt/demos \
-		-no-separate-debug-info \
+		-largefile \
 		-plugin-sql-{psql,mysql,sqlite,odbc} \
 		-system-sqlite \
+		-xmlpatterns \
+		-no-phonon \
+		-svg \
+		-webkit \
+		-scripttools \
+		-system-zlib \
+		-system-libtiff \
+		-system-libpng \
+		-system-libmng \
+		-system-libjpeg \
 		-openssl-linked \
 		-nomake demos \
 		-nomake examples \
 		-nomake docs \
-		-no-phonon \
+		-no-rpath \
+		-silent \
 		-optimized-qmake \
-		-reduce-relocations
+		-dbus \
+		-reduce-relocations \
+		-no-separate-debug-info \
+		-gtkstyle \
+		-opengl \
+		-glib
 
 	make
 	make INSTALL_ROOT=$pkgdir install
diff --git a/abs/core-testing/qt/qdoc3.patch b/abs/core-testing/qt/qdoc3.patch
index 38ae735..c967b6e 100644
--- a/abs/core-testing/qt/qdoc3.patch
+++ b/abs/core-testing/qt/qdoc3.patch
@@ -1,17 +1,20 @@
-diff -up qt-x11-opensource-src-4.5.0/tools/qdoc3/qdoc3.pro.qdoc3 qt-x11-opensource-src-4.5.0/tools/qdoc3/qdoc3.pro
---- qt-x11-opensource-src-4.5.0/tools/qdoc3/qdoc3.pro.qdoc3	2009-02-25 15:09:26.000000000 -0600
-+++ qt-x11-opensource-src-4.5.0/tools/qdoc3/qdoc3.pro	2009-03-04 09:30:05.000000000 -0600
-@@ -106,3 +106,7 @@ win32 {
-         QT_WINCONFIG = debug
-     }    
+--- tools/qdoc3/qdoc3.pro       2009-06-25 17:34:42.000000000 +0200
++++ tools/qdoc3/qdoc3.pro.new   2009-06-25 17:35:42.000000000 +0200
+@@ -8,6 +8,11 @@
+     CONFIG -= build_all
+     CONFIG += release
  }
 +
 +TARGET= qdoc3
 +target.path = $$[QT_INSTALL_BINS]
 +INSTALLS += target
++
+ mac:CONFIG -= app_bundle
+ HEADERS += apigenerator.h \
+            archiveextractor.h \
 diff -up qt-x11-opensource-src-4.5.0/tools/tools.pro.qdoc3 qt-x11-opensource-src-4.5.0/tools/tools.pro
---- qt-x11-opensource-src-4.5.0/tools/tools.pro.qdoc3	2009-02-25 15:09:27.000000000 -0600
-+++ qt-x11-opensource-src-4.5.0/tools/tools.pro	2009-03-04 09:44:18.000000000 -0600
+--- tools/tools.pro.qdoc3	2009-02-25 15:09:27.000000000 -0600
++++ tools/tools.pro	2009-03-04 09:44:18.000000000 -0600
 @@ -13,6 +13,7 @@ no-png {
           SUBDIRS += designer
       }
-- 
cgit v0.12


From 1790a798f524c12a47dff76d200124b607be1c5e Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 18 Jul 2009 10:41:38 +0930
Subject: runit-scripts: add wall for reboot and halt

---
 abs/core-testing/runit-scripts/PKGBUILD                  | 4 ++--
 abs/core-testing/runit-scripts/runitscripts/halt-runit   | 1 +
 abs/core-testing/runit-scripts/runitscripts/reboot-runit | 1 +
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/runit-scripts/PKGBUILD b/abs/core-testing/runit-scripts/PKGBUILD
index 2c237d7..7fe22bf 100755
--- a/abs/core-testing/runit-scripts/PKGBUILD
+++ b/abs/core-testing/runit-scripts/PKGBUILD
@@ -1,11 +1,11 @@
 pkgname=runit-scripts
 pkgver=1.8.0
-pkgrel=90
+pkgrel=91
 pkgdesc="collection of startup scripts for runit"
 url="http://smarden.org/runit/"
 license="BSD"
 depends=('glibc' 'util-linux' 'initscripts' 'runit' )
-makedepends=()
+makedepends=('rsync')
 conflicts=()
 replaces=()
 backup=(etc/runit/1.local)
diff --git a/abs/core-testing/runit-scripts/runitscripts/halt-runit b/abs/core-testing/runit-scripts/runitscripts/halt-runit
index 7c07b05..b7d9a95 100755
--- a/abs/core-testing/runit-scripts/runitscripts/halt-runit
+++ b/abs/core-testing/runit-scripts/runitscripts/halt-runit
@@ -1,2 +1,3 @@
 #!/bin/sh
+wall "System will shutdown NOW"
 runit-init 0
diff --git a/abs/core-testing/runit-scripts/runitscripts/reboot-runit b/abs/core-testing/runit-scripts/runitscripts/reboot-runit
index be831ec..0d3d9d4 100755
--- a/abs/core-testing/runit-scripts/runitscripts/reboot-runit
+++ b/abs/core-testing/runit-scripts/runitscripts/reboot-runit
@@ -1,2 +1,3 @@
 #!/bin/sh
+wall "System will reboot NOW"
 runit-init 6
-- 
cgit v0.12


From 612c1cb40938ff5d0969fcbfb7f2c96d91af1500 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 17 Jul 2009 21:31:41 -0400
Subject: mythtv-svn: updated to 20947

---
 abs/core-testing/mythtv/trunk/morethemes/PKGBUILD     | 2 +-
 abs/core-testing/mythtv/trunk/mp_all.sh               | 6 ++++--
 abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD    | 2 +-
 abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD    | 2 +-
 abs/core-testing/mythtv/trunk/mythflix/PKGBUILD       | 2 +-
 abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD    | 2 +-
 abs/core-testing/mythtv/trunk/mythgame/PKGBUILD       | 2 +-
 abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD     | 2 +-
 abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD      | 2 +-
 abs/core-testing/mythtv/trunk/mythnews/PKGBUILD       | 2 +-
 abs/core-testing/mythtv/trunk/myththemes/PKGBUILD     | 2 +-
 abs/core-testing/mythtv/trunk/mythtv/PKGBUILD         | 2 +-
 abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD      | 2 +-
 abs/core-testing/mythtv/trunk/mythweather/PKGBUILD    | 2 +-
 abs/core-testing/mythtv/trunk/mythweb/PKGBUILD        | 2 +-
 abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD | 2 +-
 16 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
index ae3aafe..3303774 100644
--- a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=morethemes-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Additional themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mp_all.sh b/abs/core-testing/mythtv/trunk/mp_all.sh
index 9f94859..922a9c0 100755
--- a/abs/core-testing/mythtv/trunk/mp_all.sh
+++ b/abs/core-testing/mythtv/trunk/mp_all.sh
@@ -1,5 +1,6 @@
 #!/bin/sh
-_svnver=20936
+pkgver=20947
+pkgrel=1
 
 # NOTE: Make sure to build and install mythtv first BEFORE building anything else
 buildlist=('mythtv' 'mytharchive' 'mythbrowser' 'mythflix' 'mythgallery' 'mythgame' 'mythmovies' 'mythmusic' 'mythnews' 'mythvideo' 'mythweather' 'mythzoneminder' 'mythweb' 'myththemes' 'morethemes')
@@ -11,7 +12,8 @@ do
 	cd ./$i
 
 	# set svn version in the PKGBUILD
-	sed -i s/^pkgver=.*/pkgver=$_svnver/ PKGBUILD
+	sed -i s/^pkgver=.*/pkgver=$pkgver/ PKGBUILD
+	sed -i s/^pkgrel=.*/pkgrel=$pkgrel/ PKGBUILD
 
 	# optionally clean up for virgin build
 #	rm -rf pkg src
diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
index 43ddfb0..b7099e0 100644
--- a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mytharchive-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
index de5d3bd..7bdf500 100644
--- a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythbrowser-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Mini web browser for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
index 1ea6b21..2d67886 100644
--- a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythflix-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Netflix access plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
index 7d33352..7984697 100644
--- a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgallery-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Image gallery plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
index 9571b5a..b0ef0fd 100644
--- a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgame-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Emulation plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
index a31852c..bfdcd48 100644
--- a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmovies-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Displays information about movies playing in the area."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
index 180f690..65021b0 100644
--- a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmusic-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Music playing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
index f5fb69a..1b28dc3 100644
--- a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythnews-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="News checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
index 1bf01e5..9ac2b6c 100755
--- a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=myththemes-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
index 72ad0a8..08152de 100755
--- a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythtv-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="A personal video recorder for Linux"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
index b92227c..2848fab 100644
--- a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythvideo-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Video playback and browsing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
index 63f447b..6182548 100644
--- a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweather-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Weather checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
index 7f9f292..a1abcf3 100644
--- a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweb-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Web interface for MythTV's backend"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
index e2f5f28..800fff5 100644
--- a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythzoneminder-svn
-pkgver=20936
+pkgver=20947
 pkgrel=1
 pkgdesc="Integrates ZoneMinder into MythTV"
 url="http://www.mythtv.org"
-- 
cgit v0.12


From e0f7e4d95cf342c63e08a62781ba9b16f31b33a8 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 17 Jul 2009 21:33:20 -0400
Subject: libmms: added version 0.4 to support xbmc-svn

---
 abs/extra-testing/libmms/PKGBUILD | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 abs/extra-testing/libmms/PKGBUILD

diff --git a/abs/extra-testing/libmms/PKGBUILD b/abs/extra-testing/libmms/PKGBUILD
new file mode 100644
index 0000000..81c7474
--- /dev/null
+++ b/abs/extra-testing/libmms/PKGBUILD
@@ -0,0 +1,21 @@
+#$Id$
+#Maintainer: Jan de Groot <jgc@archlinux.org>
+
+pkgname=libmms
+pkgver=0.4
+pkgrel=1
+pkgdesc="MMS stream protocol library"
+arch=(i686 x86_64)
+url="https://launchpad.net/libmms"
+license=(LGPL)
+depends=('glib2>=2.16.4')
+options=('!libtool')
+source=(http://launchpad.net/libmms/trunk/${pkgver}/+download/libmms-${pkgver}.tar.gz)
+md5sums=('4a681a815186fe26bb1b02ccea57fb75')
+
+build() {
+  cd ${startdir}/src/${pkgname}-${pkgver}
+  ./configure --prefix=/usr --disable-static || return 1
+  make || return 1
+  make DESTDIR=${startdir}/pkg install || return 1
+}
-- 
cgit v0.12


From e695c2430b563d415e0d6ee429d79a42f21b1485 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:08:35 -0400
Subject: fbsplash: rebuilt

---
 abs/core-testing/fbsplash/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/fbsplash/PKGBUILD b/abs/core-testing/fbsplash/PKGBUILD
index 5d42484..736da1f 100644
--- a/abs/core-testing/fbsplash/PKGBUILD
+++ b/abs/core-testing/fbsplash/PKGBUILD
@@ -2,7 +2,7 @@
 
 pkgname=fbsplash
 pkgver=1.5.4.3
-pkgrel=14
+pkgrel=15
 pkgdesc="A userspace implementation of a splash screen for Linux (formerly known as gensplash)"
 arch=('i686' 'x86_64')
 url="http://fbsplash.berlios.de"
-- 
cgit v0.12


From 398426a1ccaf4c1c0860b3ca3e652dc2dcb87f1d Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:08:55 -0400
Subject: imlib2: rebuild

---
 abs/core-testing/imlib2/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/imlib2/PKGBUILD b/abs/core-testing/imlib2/PKGBUILD
index 1fd9f74..b465ca2 100644
--- a/abs/core-testing/imlib2/PKGBUILD
+++ b/abs/core-testing/imlib2/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 pkgname=imlib2
 pkgver=1.4.1
-pkgrel=1
+pkgrel=2
 pkgdesc="Imlib2 is the successor to Imlib. It is NOT a newer version -- Imlib 2 can be installed alongside Imlib 1.x"
 arch=(i686 x86_64)
 url="http://sourceforge.net/projects/enlightenment"
-- 
cgit v0.12


From f46604b8cba6a811985d6b42156817780a9bb4ff Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:09:09 -0400
Subject: jasper: rebuilt

---
 abs/core-testing/jasper/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/jasper/PKGBUILD b/abs/core-testing/jasper/PKGBUILD
index ee60693..b841057 100644
--- a/abs/core-testing/jasper/PKGBUILD
+++ b/abs/core-testing/jasper/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=jasper
 pkgver=1.900.1
-pkgrel=1
+pkgrel=2
 pkgdesc="a software-based implementation of the codec specified in the emerging JPEG-2000 Part-1 standard"
 arch=(i686 x86_64)
 url="http://www.ece.uvic.ca/~mdadams/jasper/"
-- 
cgit v0.12


From 0310bcfd0825692a74e8c32bff985cc6ae209c6e Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:09:26 -0400
Subject: lcms: rebuild

---
 abs/core-testing/lcms/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/lcms/PKGBUILD b/abs/core-testing/lcms/PKGBUILD
index 7e40429..3cd6add 100644
--- a/abs/core-testing/lcms/PKGBUILD
+++ b/abs/core-testing/lcms/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=lcms
 pkgver=1.17
-pkgrel=2
+pkgrel=3
 pkgdesc="Lightweight color management development library/engine"
 arch=(i686 x86_64)
 license=('CUSTOM')
-- 
cgit v0.12


From 3922b1dcb14ff2c510b53cb4c72b52067fe72814 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:09:40 -0400
Subject: libcups: rebuild

---
 abs/core-testing/libcups/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/libcups/PKGBUILD b/abs/core-testing/libcups/PKGBUILD
index d2a9d5a..9b31bd0 100644
--- a/abs/core-testing/libcups/PKGBUILD
+++ b/abs/core-testing/libcups/PKGBUILD
@@ -3,14 +3,14 @@
 
 pkgname=libcups
 pkgver=1.3.9
-pkgrel=3
+pkgrel=4
 pkgdesc="The CUPS Printing System"
 arch=('i686' 'x86_64')
 license=('GPL')
 url="http://www.cups.org/"
 depends=('gnutls>=2.4.1' 'libtiff' 'libpng' 'heimdal>=1.2')
 source=(ftp://ftp.easysw.com/pub/cups/${pkgver}/cups-${pkgver}-source.tar.bz2)
-md5sums=('cf63f451c356e6cabb08972d4d11c365')
+md5sums=('72430b36094cf587cf2e0087047d5643')
 
 build() {
   cd ${srcdir}/cups-${pkgver}
-- 
cgit v0.12


From a0f4f44a3c2018e40937eb5abb3c194a5fed9a4d Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:10:01 -0400
Subject: libmng: rebuild

---
 abs/core-testing/libmng/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/libmng/PKGBUILD b/abs/core-testing/libmng/PKGBUILD
index ede7f7c..dc3958a 100644
--- a/abs/core-testing/libmng/PKGBUILD
+++ b/abs/core-testing/libmng/PKGBUILD
@@ -3,7 +3,7 @@
 # Maintainer: judd <jvinet@zeroflux.org>
 pkgname=libmng
 pkgver=1.0.10
-pkgrel=2
+pkgrel=3
 pkgdesc="A collection of routines used to create and manipulate MNG format graphics files"
 arch=('i686' 'x86_64')
 url="http://www.libmng.com/"
-- 
cgit v0.12


From b33f05505b2ed24a40519dbc380feedc3ee4d20a Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:10:20 -0400
Subject: libwmf: rebuild

---
 abs/core-testing/libwmf/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/libwmf/PKGBUILD b/abs/core-testing/libwmf/PKGBUILD
index f1c3d17..4ec415d 100644
--- a/abs/core-testing/libwmf/PKGBUILD
+++ b/abs/core-testing/libwmf/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: FJ <joostef@gmail.com>
 pkgname=libwmf
 pkgver=0.2.8.4
-pkgrel=4
+pkgrel=5
 pkgdesc="A library for reading vector images in Microsoft's native Windows Metafile Format (WMF)."
 arch=(i686 x86_64)
 url="http://wvware.sourceforge.net/libwmf.html"
-- 
cgit v0.12


From 03379ee0a3edc7f6ba1baa72d22845d50c2972cc Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:10:33 -0400
Subject: mjpegtools: rebuild

---
 abs/core-testing/mjpegtools/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/mjpegtools/PKGBUILD b/abs/core-testing/mjpegtools/PKGBUILD
index 4b85e30..425fa35 100644
--- a/abs/core-testing/mjpegtools/PKGBUILD
+++ b/abs/core-testing/mjpegtools/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=mjpegtools
 pkgver=1.9.0
-pkgrel=3
+pkgrel=4
 pkgdesc="The mjpeg programs are a set of tools that can do recording of videos and playback, simple cut-and-paste editing and the MPEG compression of audio and video under Linux. "
 arch=(i686 x86_64)
 license=('GPL')
-- 
cgit v0.12


From fa78fc17bc9223f5615c9e4e5402514079085035 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:10:47 -0400
Subject: pil: rebuild

---
 abs/core-testing/pil/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/pil/PKGBUILD b/abs/core-testing/pil/PKGBUILD
index f7149de..6f01309 100644
--- a/abs/core-testing/pil/PKGBUILD
+++ b/abs/core-testing/pil/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=pil
 pkgver=1.1.6
-pkgrel=5
+pkgrel=6
 pkgdesc="Python imaging library"
 arch=('i686' 'x86_64')
 url="http://www.pythonware.com/products/pil/index.htm"
-- 
cgit v0.12


From 49fde5e7c64d01147374aecab72ebf8dc6320f98 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:30:04 -0400
Subject: sdl_image: rebuild

---
 abs/extra-testing/sdl_image/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/sdl_image/PKGBUILD b/abs/extra-testing/sdl_image/PKGBUILD
index c9d29f2..f3ab8cb 100644
--- a/abs/extra-testing/sdl_image/PKGBUILD
+++ b/abs/extra-testing/sdl_image/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 pkgname=sdl_image
 pkgver=1.2.6
-pkgrel=2
+pkgrel=3
 pkgdesc="A simple library to load images of various formats as SDL surfaces"
 arch=(i686 x86_64)
 license=('LGPL')
-- 
cgit v0.12


From 659ded0019f417ddf3ac54efae6e3a663ddf5e78 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 11:30:28 -0400
Subject: qt: rebuild

---
 abs/core-testing/qt/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/qt/PKGBUILD b/abs/core-testing/qt/PKGBUILD
index fec68bc..87ec9f7 100644
--- a/abs/core-testing/qt/PKGBUILD
+++ b/abs/core-testing/qt/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=qt
 pkgver=4.5.2
-pkgrel=3
+pkgrel=4
 _kdeqtver=2d1727e396d5dca24ae0fb6a45d35ffc1abd0c12
 pkgdesc='A cross-platform application and UI framework'
 arch=('i686' 'x86_64')
-- 
cgit v0.12


From d29463c5db9457a34ba9ac598df3f39b5366601a Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 12:51:29 -0400
Subject: opera: rebuild

---
 abs/extra-testing/opera/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/opera/PKGBUILD b/abs/extra-testing/opera/PKGBUILD
index f7f5134..b7342f8 100644
--- a/abs/extra-testing/opera/PKGBUILD
+++ b/abs/extra-testing/opera/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=opera
 pkgver=9.64
-pkgrel=1
+pkgrel=2
 pkgdesc="The Opera web browser"
 url="http://www.opera.com/"
 depends=('qt')
-- 
cgit v0.12


From 4a3999b40c4eb9bdf93b6800262d76b1d4d71037 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 12:53:32 -0400
Subject: xbmc-svn: rebuild

---
 abs/extra-testing/community/xbmc-svn/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/community/xbmc-svn/PKGBUILD b/abs/extra-testing/community/xbmc-svn/PKGBUILD
index 74d2b7e..baaa112 100644
--- a/abs/extra-testing/community/xbmc-svn/PKGBUILD
+++ b/abs/extra-testing/community/xbmc-svn/PKGBUILD
@@ -6,7 +6,7 @@
 
 pkgname=xbmc-svn
 pkgver=21337
-pkgrel=1
+pkgrel=2
 pkgdesc="XBMC Media Center from SVN (linuxport branch)"
 provides=('xbmc')
 conflicts=('xbmc' 'xbmc-smoothvideo' 'xbmc-vdpau')
-- 
cgit v0.12


From dab90197ec15b59797a5bb80848e66a0601ae1f7 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sat, 18 Jul 2009 14:23:56 -0400
Subject: mythtv-svn: update to 20949

---
 abs/core-testing/mythtv/trunk/morethemes/PKGBUILD     | 2 +-
 abs/core-testing/mythtv/trunk/mp_all.sh               | 2 +-
 abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD    | 2 +-
 abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD    | 2 +-
 abs/core-testing/mythtv/trunk/mythflix/PKGBUILD       | 2 +-
 abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD    | 2 +-
 abs/core-testing/mythtv/trunk/mythgame/PKGBUILD       | 2 +-
 abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD     | 2 +-
 abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD      | 2 +-
 abs/core-testing/mythtv/trunk/mythnews/PKGBUILD       | 2 +-
 abs/core-testing/mythtv/trunk/myththemes/PKGBUILD     | 2 +-
 abs/core-testing/mythtv/trunk/mythtv/PKGBUILD         | 2 +-
 abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD      | 2 +-
 abs/core-testing/mythtv/trunk/mythweather/PKGBUILD    | 2 +-
 abs/core-testing/mythtv/trunk/mythweb/PKGBUILD        | 2 +-
 abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD | 2 +-
 16 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
index 3303774..1a8a490 100644
--- a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=morethemes-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Additional themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mp_all.sh b/abs/core-testing/mythtv/trunk/mp_all.sh
index 922a9c0..ad30c6f 100755
--- a/abs/core-testing/mythtv/trunk/mp_all.sh
+++ b/abs/core-testing/mythtv/trunk/mp_all.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-pkgver=20947
+pkgver=20949
 pkgrel=1
 
 # NOTE: Make sure to build and install mythtv first BEFORE building anything else
diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
index b7099e0..667c45b 100644
--- a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mytharchive-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
index 7bdf500..1183982 100644
--- a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythbrowser-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Mini web browser for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
index 2d67886..2e3aace 100644
--- a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythflix-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Netflix access plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
index 7984697..03ea074 100644
--- a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgallery-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Image gallery plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
index b0ef0fd..9ed2e99 100644
--- a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgame-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Emulation plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
index bfdcd48..50d2f5b 100644
--- a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmovies-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Displays information about movies playing in the area."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
index 65021b0..87bb2be 100644
--- a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmusic-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Music playing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
index 1b28dc3..df0dfff 100644
--- a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythnews-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="News checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
index 9ac2b6c..dfcc253 100755
--- a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=myththemes-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
index 08152de..f6ef576 100755
--- a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythtv-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="A personal video recorder for Linux"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
index 2848fab..e64b632 100644
--- a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythvideo-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Video playback and browsing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
index 6182548..d972f20 100644
--- a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweather-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Weather checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
index a1abcf3..11e354d 100644
--- a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweb-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Web interface for MythTV's backend"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
index 800fff5..bd674ee 100644
--- a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythzoneminder-svn
-pkgver=20947
+pkgver=20949
 pkgrel=1
 pkgdesc="Integrates ZoneMinder into MythTV"
 url="http://www.mythtv.org"
-- 
cgit v0.12


From 2912f0964498d3d2e80e875a2fd1c2016b9e9253 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 18 Jul 2009 11:47:16 -0700
Subject: Latest MythTV-0.21-fixes.

---
 abs/core-testing/mythtv/stable/mythtv/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
index e6a84ac..cd8e276 100644
--- a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythtv
 pkgver=0.21
-pkgrel=73
+pkgrel=74
 pkgdesc="A Homebrew PVR project"
 arch=('i686' 'x86_64')
 depends=('bash' 'mysql-clients>=5.0' 'qt3' 'lame' 'lirc-utils' 'ffmpeg' \
-- 
cgit v0.12


From e2bbd05483795f82106dd43a577037fd3bda8ee6 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sun, 19 Jul 2009 08:59:29 +0930
Subject: lirc: prelim dvico dual4 rev 2 remote work

---
 abs/core-testing/lirc/PKGBUILD      | 13 +++++++++----
 abs/core-testing/lirc/dvicoIR.rules | 14 ++++++++++++--
 abs/core-testing/lirc/lirc.fdi      | 11 +++++++++++
 3 files changed, 32 insertions(+), 6 deletions(-)
 create mode 100644 abs/core-testing/lirc/lirc.fdi

diff --git a/abs/core-testing/lirc/PKGBUILD b/abs/core-testing/lirc/PKGBUILD
index 30c5052..6c5cbf6 100644
--- a/abs/core-testing/lirc/PKGBUILD
+++ b/abs/core-testing/lirc/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=lirc
 pkgver=0.8.5CVS
-pkgrel=12
+pkgrel=14
 _kernver=2.6.28-LinHES
 pkgdesc="Linux Infrared Remote Control kernel modules for stock arch kernel"
 arch=(i686 x86_64)
@@ -22,7 +22,8 @@ source=(http://www.blushingpenguin.com/mark/lmilk/lirc-0.8.5-CVS-pvr150.tar.bz2
 	lirc_mod_mce.patch
 	hw_commandir.c
 	hw_commandir.h
-	dvicoIR.rules)
+	dvicoIR.rules
+        lirc.fdi)
 
 build() {
 	# configure
@@ -67,8 +68,11 @@ build() {
 	rm $startdir/pkg/lib/modules/$_kernver/kernel/drivers/misc/commandir.ko
 
 	# Add a udev rule for the DVICO remote so that if there is more than 
-	# one hiddev device, the systm cant get confused.
+	# one hiddev device, the system cant get confused.
 	install -D -m644 $srcdir/dvicoIR.rules $pkgdir/etc/udev/rules.d/dvicoIR.rules
+
+	# Add the fdi file to prevent the Dvico dual 4 remotes from screwing up keyboard interaction.
+	install -D -m644 $srcdir/lirc.fdi $pkgdir/usr/share/hal/fdi/preprobe/20thirdparty/lirc.fdi
 }
 md5sums=('b96dae91b566143b3af433fa2714ec9a'
          '1753acd774f50b638e6173d364de53fd'
@@ -78,4 +82,5 @@ md5sums=('b96dae91b566143b3af433fa2714ec9a'
          'd299b696b007fc9b663a73cc1758a1ef'
          'f059f4030afc682c9539a03bf837c1cf'
          '4e698654cc44fc6c4163814acda5a7ee'
-         'd79400e2e3069b14039ca07d3317965c')
+         '9a3a6dc03647ee6674a166dfb884ddd6'
+         '664fb04b51396628300daf8befd0db77')
diff --git a/abs/core-testing/lirc/dvicoIR.rules b/abs/core-testing/lirc/dvicoIR.rules
index 5d6d066..ada5466 100644
--- a/abs/core-testing/lirc/dvicoIR.rules
+++ b/abs/core-testing/lirc/dvicoIR.rules
@@ -1,5 +1,15 @@
-# Added to get DVICO remote to be consistant device
+# This rule is for the Dvico Dual Digital 4 Rev 2. It has 2 IR modules 
+# identified, only the first of which is connected to the receiver.
+# The KERNELS=="*-1" part of this rule makes sure that the first 
+# device is the one that gets the symlink.
+KERNEL=="event*", \
+    KERNELS=="*-1", \
+    ATTRS{manufacturer}=="Dvico", \
+    ATTRS{idVendor}=="0fe9", \
+    ATTRS{idProduct}=="db98", \
+    SYMLINK="input/irremote"
+
+# This rule is for the older style USB DVICO remote dongles.
 SUBSYSTEMS=="usb", KERNEL=="hiddev*", \
     ATTRS{product}=="DVICO USB HID Remocon V1.00", \
     SYMLINK+="usb/dvicoIR"
-
diff --git a/abs/core-testing/lirc/lirc.fdi b/abs/core-testing/lirc/lirc.fdi
new file mode 100644
index 0000000..7a8c8ad
--- /dev/null
+++ b/abs/core-testing/lirc/lirc.fdi
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deviceinfo version="0.2">
+  <device>
+     <!-- This rule prevents the Dvico dual digital4 rev 2
+          remote input device from making your keyboard act wierd>
+     <match key="info.product" contains_ncase="IR-receiver inside an USB DVB receiver">
+        <merge key="info.ignore" type="bool">true</merge>
+     </match>
+  </device>
+</deviceinfo>
-- 
cgit v0.12


From cc8edc447eb08fbaefc37fba12f50291ba62dd63 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sun, 19 Jul 2009 10:08:24 +0930
Subject: lirc: add python to makedepends

---
 abs/core-testing/lirc/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/lirc/PKGBUILD b/abs/core-testing/lirc/PKGBUILD
index 6c5cbf6..5406783 100644
--- a/abs/core-testing/lirc/PKGBUILD
+++ b/abs/core-testing/lirc/PKGBUILD
@@ -10,7 +10,7 @@ arch=(i686 x86_64)
 url="http://www.lirc.org/"
 license=('GPL')
 depends=('lirc-utils=0.8.5CVS' 'kernel26>=2.6.27' 'kernel26<2.6.29' 'iguanaIR')
-#makedepends=('help2man')
+makedepends=('python')
 replaces=('lirc+pctv')
 options=('!makeflags')
 install=$pkgname.install
-- 
cgit v0.12


From 315f3d8cd73888122339fe0fe9c47da5e3e56c72 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sun, 19 Jul 2009 10:21:34 +0930
Subject: system-templates: update preview.jpg for some remotes

---
 abs/core-testing/system-templates/PKGBUILD         |   2 +-
 .../templates/remotes/AOpen-EA65/lircd.conf.ea65   |  73 ++++
 .../templates/remotes/AOpen-EA65/lircrc.ea65       | 381 ++++++++++++++++++
 .../templates/remotes/AOpen-EA65/preview.jpg       | Bin 0 -> 76036 bytes
 .../remotes/ASUS-DiGiMatrix/lircd.conf.asus        |  56 +++
 .../remotes/ASUS-DiGiMatrix/lircd.conf.digimatrix  | 152 ++++++++
 .../templates/remotes/ASUS-DiGiMatrix/preview.jpg  | Bin 0 -> 28706 bytes
 .../lircd.conf.dvico-dual-digital4                 |  81 ++++
 .../lircrc.dvico-dual-digital4                     | 430 +++++++++++++++++++++
 .../remotes/Dvico-Dual-Digital4-rev2/preview.jpg   | Bin 0 -> 34354 bytes
 .../remotes/asus-digitmatrix/lircd.conf.asus       |  56 ---
 .../remotes/asus-digitmatrix/lircd.conf.digimatrix | 152 --------
 .../templates/remotes/asus-digitmatrix/preview.jpg | Bin 1587 -> 0 bytes
 .../templates/remotes/ea65/lircd.conf.ea65         |  73 ----
 .../templates/remotes/ea65/lircrc.ea65             | 381 ------------------
 .../templates/remotes/ea65/preview.jpg             | Bin 1587 -> 0 bytes
 .../templates/remotes/imon-pad/preview.jpg         | Bin 1587 -> 35870 bytes
 .../templates/remotes/imon/preview.jpg             | Bin 1587 -> 25799 bytes
 18 files changed, 1174 insertions(+), 663 deletions(-)
 create mode 100644 abs/core-testing/system-templates/templates/remotes/AOpen-EA65/lircd.conf.ea65
 create mode 100644 abs/core-testing/system-templates/templates/remotes/AOpen-EA65/lircrc.ea65
 create mode 100644 abs/core-testing/system-templates/templates/remotes/AOpen-EA65/preview.jpg
 create mode 100644 abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/lircd.conf.asus
 create mode 100644 abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/lircd.conf.digimatrix
 create mode 100644 abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/preview.jpg
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/lircd.conf.dvico-dual-digital4
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/lircrc.dvico-dual-digital4
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/preview.jpg
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/lircd.conf.asus
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/lircd.conf.digimatrix
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/preview.jpg
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/ea65/lircd.conf.ea65
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/ea65/lircrc.ea65
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/ea65/preview.jpg

diff --git a/abs/core-testing/system-templates/PKGBUILD b/abs/core-testing/system-templates/PKGBUILD
index b911335..ed6856f 100755
--- a/abs/core-testing/system-templates/PKGBUILD
+++ b/abs/core-testing/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=system-templates
 pkgver=1.0
-pkgrel=27
+pkgrel=28
 conflicts=( )
 pkgdesc="Templates used for system configuration"
 depends=()
diff --git a/abs/core-testing/system-templates/templates/remotes/AOpen-EA65/lircd.conf.ea65 b/abs/core-testing/system-templates/templates/remotes/AOpen-EA65/lircd.conf.ea65
new file mode 100644
index 0000000..a10181d
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/AOpen-EA65/lircd.conf.ea65
@@ -0,0 +1,73 @@
+#
+#  Config file for AOpen XC Cube EA65, EA65-II
+#  Max Krasnyanskiy <maxk@qualcomm.com>
+#
+
+begin remote
+  name  EA65
+  bits  24
+  eps   10
+  aeps  100
+
+  gap           960000
+  toggle_bit    0
+
+  begin codes
+	tv/pvr      0x0014814c
+        photo       0x0017810e
+        htpc        0x0011811b
+        dvd/vcd     0x00128100
+        cd/mp3      0x00138152
+        fm          0x00158111
+        video       0x0016810f
+
+        1           0x0041810b
+        2           0x00428115
+        3           0x00438112
+        4           0x00448141
+        5           0x00458119
+        6           0x00468116
+        7           0x00478150
+        8           0x0048811a
+        9           0x00498155
+        *           0x00328156
+        0           0x00408158
+        #           0x0030814d
+        
+        menu        0x00188104
+        exit        0x001d8154
+        enter       0x001e8101
+        up          0x00198159
+        down        0x001a811c
+        left        0x001c8102
+        right       0x001b815d
+
+ 	vol+        0x00298103
+ 	vol-        0x002a814e
+ 	ch+         0x002c8113
+ 	ch-         0x002d8117
+ 	mute        0x00288105
+ 	tune+       0x002e8144
+ 	tune-       0x002f8148
+ 	mem         0x00318145
+ 	scan        0x00278151
+
+ 	display     0x0034811f
+ 	eject       0x0035815c
+ 	rwnd        0x00228118
+ 	ffwd        0x00218110
+ 	rec         0x002b810a
+ 	repeate     0x0038815a
+ 	prev        0x00238107
+ 	next        0x00248114
+ 	time/shift  0x00338108
+ 	stop        0x0020811d
+ 	play/pause  0x001f8109
+
+        play-pause  0x0080811d
+        stop-eject  0x00238107
+        mode-       0x00ff1080
+        mode+       0x00ff1180
+  end codes
+end remote
+
diff --git a/abs/core-testing/system-templates/templates/remotes/AOpen-EA65/lircrc.ea65 b/abs/core-testing/system-templates/templates/remotes/AOpen-EA65/lircrc.ea65
new file mode 100644
index 0000000..fd96d42
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/AOpen-EA65/lircrc.ea65
@@ -0,0 +1,381 @@
+#
+# Max Krasnyanskiy <maxk@qualcomm.com>
+#
+
+#
+# Xine key bindings.
+#
+
+# start playback
+begin
+	button = dvd/vcd
+	prog   = xine
+	repeat = 1
+	config = Play
+end
+
+# playback pause toggle
+begin
+	button = play/pause
+	prog   = xine
+	repeat = 1
+	config = Pause
+end
+
+# stop playback
+begin
+	button = stop
+	prog   = xine
+	repeat = 1
+	config = Stop
+end
+
+# eject the current medium
+begin
+	button = eject
+	prog   = xine
+	repeat = 1
+	config = Eject
+end
+
+# scan playlist to grab stream infos
+begin
+	button = mem
+	prog   = xine
+	repeat = 1
+	config = ScanPlaylistInfo
+end
+
+# set position to -60 seconds in current stream
+begin
+	button = rwnd
+	prog   = xine
+	repeat = 1
+	config = SeekRelative-60
+end
+
+# set position to +60 seconds in current stream
+begin
+	button = ffwd
+	prog   = xine
+	repeat = 1
+	config = SeekRelative+60
+end
+
+# increment playback speed
+begin
+	button = tune+
+	prog   = xine
+	repeat = 1
+	config = SpeedFaster
+end
+
+# decrement playback speed
+begin
+	button = tune-
+	prog   = xine
+	repeat = 1
+	config = SpeedSlower
+end
+
+# increment audio volume
+begin
+	button = vol+
+	prog   = xine
+	repeat = 1
+	config = Volume+
+end
+
+# decrement audio volume
+begin
+	button = vol-
+	prog   = xine
+	repeat = 1
+	config = Volume-
+end
+
+# audio muting toggle
+begin
+	button = mute
+	prog   = xine
+	repeat = 1
+	config = Mute
+end
+
+# select next audio channel
+begin
+	button = ch+
+	prog   = xine
+	repeat = 1
+	config = AudioChannelNext
+end
+
+# select previous audio channel
+begin
+	button = ch-
+	prog   = xine
+	repeat = 1
+	config = AudioChannelPrior
+end
+
+# interlaced mode toggle
+begin
+	button = scan
+	prog   = xine
+	repeat = 1
+	config = ToggleInterleave
+end
+
+# cycle aspect ratio values
+begin
+	button = display
+	prog   = xine
+	repeat = 1
+	config = ToggleAspectRatio
+end
+
+# jump to Title Menu
+begin
+	button = menu
+	prog   = xine
+	repeat = 1
+	config = TitleMenu
+end
+
+# menu navigate up
+begin
+	button = up
+	prog   = xine
+	repeat = 1
+	config = EventUp
+end
+
+# menu navigate down
+begin
+	button = down
+	prog   = xine
+	repeat = 1
+	config = EventDown
+end
+
+# menu navigate left
+begin
+	button = left
+	prog   = xine
+	repeat = 1
+	config = EventLeft
+end
+
+# menu navigate right
+begin
+	button = right
+	prog   = xine
+	repeat = 1
+	config = EventRight
+end
+
+# menu select
+begin
+	button = enter
+	prog   = xine
+	repeat = 1
+	config = EventSelect
+end
+
+# jump to next chapter
+begin
+	button = next
+	prog   = xine
+	repeat = 1
+	config = EventNext
+end
+
+# jump to previous chapter
+begin
+	button = prev
+	prog   = xine
+	repeat = 1
+	config = EventPrior
+end
+
+# select a subtitle file
+begin
+	button = repeat
+	prog   = xine
+	repeat = 1
+	config = SubSelector
+end
+
+# enter the number 0
+begin
+	button = 0
+	prog   = xine
+	repeat = 1
+	config = Number0
+end
+
+# enter the number 1
+begin
+	button = 1
+	prog   = xine
+	repeat = 1
+	config = Number1
+end
+
+# enter the number 2
+begin
+	button = 2
+	prog   = xine
+	repeat = 1
+	config = Number2
+end
+
+# enter the number 3
+begin
+	button = 3
+	prog   = xine
+	repeat = 1
+	config = Number3
+end
+
+# enter the number 4
+begin
+	button = 4
+	prog   = xine
+	repeat = 1
+	config = Number4
+end
+
+# enter the number 5
+begin
+	button = 5
+	prog   = xine
+	repeat = 1
+	config = Number5
+end
+
+# enter the number 6
+begin
+	button = 6
+	prog   = xine
+	repeat = 1
+	config = Number6
+end
+
+# enter the number 7
+begin
+	button = 7
+	prog   = xine
+	repeat = 1
+	config = Number7
+end
+
+# enter the number 8
+begin
+	button = 8
+	prog   = xine
+	repeat = 1
+	config = Number8
+end
+
+# enter the number 9
+begin
+	button = 9
+	prog   = xine
+	repeat = 1
+	config = Number9
+end
+
+# quit the program
+begin
+	button = exit
+	prog   = xine
+	repeat = 1
+	config = Quit
+end
+
+##
+# End of xine key bindings.
+##
+
+## MPlayer lirc setup
+
+# Show OSD
+begin
+	prog = mplayer
+	button = menu
+	repeat = 1
+	config = osd
+end
+
+# Pause playback
+begin
+	prog = mplayer
+	button = play/pause
+	repeat = 1
+	config = pause
+end
+
+# Stop playback and exit
+begin
+	prog = mplayer
+	button = stop
+	repeat = 1
+	config = stop #quit
+end
+
+# Mute
+begin
+	prog = mplayer
+	button = mute
+	repeat = 1
+	config = mute
+end
+
+# Seek back 10 seconds
+begin
+	prog = mplayer
+	button = rwnd
+	repeat = 1
+	config = seek -10
+end
+
+# Seek forward 30 seconds
+begin
+	prog = mplayer
+	button = ffwd
+	repeat = 1
+	config = seek +10
+end
+
+# Quit
+begin
+	prog = mplayer
+	button = exit
+	repeat = 1
+	config = quit
+end
+
+# Seek forward 10 minutes
+begin
+	prog = mplayer
+	button = next
+	repeat = 1
+	config = seek +600
+end
+
+# Seek backward 10 minutes
+begin
+	prog = mplayer
+	button = prev
+	repeat = 1
+	config = seek -600
+end
+
+# Toggle full-screen
+begin
+	prog = mplayer
+	button = display
+	repeat = 1
+	config = vo_fullscreen
+end
diff --git a/abs/core-testing/system-templates/templates/remotes/AOpen-EA65/preview.jpg b/abs/core-testing/system-templates/templates/remotes/AOpen-EA65/preview.jpg
new file mode 100644
index 0000000..2fc223c
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/AOpen-EA65/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/lircd.conf.asus b/abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/lircd.conf.asus
new file mode 100644
index 0000000..ceadbf0
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/lircd.conf.asus
@@ -0,0 +1,56 @@
+#
+# contributed by Tibor Sipos <tibors@moravia-it.com> and 
+#                Stefan Jahn <stefan@lkcc.org>
+#
+# brand:	     Asus
+# model:	     Asus TV-Box Remote Control
+#
+
+begin remote
+
+  name		Asus TV-Box IR
+
+  bits		8
+  eps		30
+  aeps		100
+  one           0     0
+  zero          0     0
+  gap           1399999
+  toggle_bit	0
+
+	begin codes
+	  0			0x0000000000000000
+	  1			0x0000000000000008
+	  2			0x0000000000000010
+	  3			0x0000000000000018
+	  4			0x0000000000000020
+	  5			0x0000000000000028
+	  6			0x0000000000000030
+	  7			0x0000000000000038
+	  8			0x0000000000000040
+	  9			0x0000000000000048
+	  PREV			0x0000000000000050
+	  ENTER			0x0000000000000058
+	  CH+			0x0000000000000060
+	  CH-			0x0000000000000068
+	  VOL+			0x0000000000000070
+	  VOL-			0x0000000000000078
+	  MAXIMIZE		0x0000000000000080
+	  MUTE			0x0000000000000088
+	  POWER			0x0000000000000090
+	  MENU			0x0000000000000098
+	  UP			0x00000000000000A0
+	  DOWN			0x00000000000000A8
+	  LEFT			0x00000000000000B0
+	  RIGHT			0x00000000000000B8
+	  CAPTION		0x00000000000000C0
+	  MTS/SAP		0x00000000000000C8
+	  DISPLAY		0x00000000000000D0
+	  SCAN			0x00000000000000D8
+	  RED			0x00000000000000E0
+	  GREEN			0x00000000000000E8
+	  YELLOW		0x00000000000000F0
+	  BLUE			0x00000000000000F8
+        end codes
+
+end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/lircd.conf.digimatrix b/abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/lircd.conf.digimatrix
new file mode 100644
index 0000000..a6e9abd
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/lircd.conf.digimatrix
@@ -0,0 +1,152 @@
+#
+# this config file was automatically generated
+# using lirc-0.7.0pre7(it87) on Sun Aug 29 17:33:17 2004
+#
+# contributed by 
+#
+# brand:                       ASUS
+# model no. of remote control: DigiMatrix
+# devices being controlled by this remote:
+#
+
+begin remote
+
+  name  ASUS_DigiMatrix
+  bits           16
+  flags SPACE_ENC
+  eps            30
+  aeps          100
+
+  header       8057  4071
+  one           479  1534
+  zero          479   531
+  ptrail        491
+  pre_data_bits   8
+  pre_data       0x35
+  gap          25647
+  toggle_bit      0
+
+
+      begin codes
+          up                       0x000000000000E817
+          down                     0x00000000000018E7
+          enter                    0x000000000000D02F
+          left                     0x0000000000009867
+          right                    0x00000000000058A7
+          1                        0x00000000000000FF
+          2                        0x000000000000807F
+          3                        0x00000000000040BF
+          4                        0x000000000000C03F
+          5                        0x00000000000020DF
+          6                        0x000000000000A05F
+          7                        0x000000000000609F
+          8                        0x000000000000E01F
+          9                        0x00000000000010EF
+          0                        0x000000000000906F
+          on_off                   0x000000000000B04F
+          dvd_vcd                  0x000000000000F00F
+          tv                       0x00000000000008F7
+          os_start                 0x00000000000030CF
+          photo                    0x00000000000048B7
+          home                     0x00000000000044BB
+          back                     0x000000000000A857
+          ch+                      0x000000000000B847
+          stop                     0x000000000000946B
+          play                     0x000000000000C43B
+          vol+                     0x000000000000F807
+          ch-                      0x0000000000007887
+          step-                    0x000000000000E41B
+          step+                    0x000000000000649B
+          vol-                     0x00000000000004FB
+          pause                    0x00000000000024DB
+          pre                      0x00000000000014EB
+          next                     0x000000000000A45B
+          mute                     0x000000000000847B
+          rec                      0x000000000000D42B
+          subtitle                 0x000000000000C837
+          menu                     0x00000000000038C7
+          dvd_audio                0x00000000000050AF
+          ui_size                  0x0000000000008877
+          ui_on_off                0x00000000000028D7
+      end codes
+
+end remote
+
+
+#
+# this config file was automatically generated
+# using lirc-0.7.2(it87) on Sun Aug 28 18:13:15 2005
+#
+# contributed by 
+#
+# brand:                       ASUS
+# model no. of remote control: DigiMatrix Mark 2
+# devices being controlled by this remote:
+#
+
+begin remote
+
+  name  ASUS_DigiMatrixMk2
+  bits            8
+  flags SPACE_ENC
+  eps            30
+  aeps          100
+
+  header       2666  1378
+  one           260   741
+  zero          260   279
+  ptrail        251
+  pre_data_bits   1
+  pre_data       0x0
+  post_data_bits  8
+  post_data      0x3
+  gap          10826
+  min_repeat      1
+  toggle_bit      0
+
+
+      begin codes
+          power                    0x0000000000000084
+          tv_dvr                   0x0000000000000044
+          fm                       0x00000000000000C4
+          os_start                 0x0000000000000024
+          music                    0x00000000000000A4
+          pictures                 0x0000000000000064
+          video                    0x00000000000000E4
+          dvd_menu                 0x0000000000000014
+          up                       0x000000000000004C
+          down                     0x00000000000000E0
+          left                     0x0000000000000010
+          right                    0x0000000000000040
+          back                     0x00000000000000B4
+          ok                       0x0000000000000088
+          back_fwd                 0x0000000000000074
+          rew                      0x0000000000000094
+          play_pause               0x0000000000000054
+          fwd                      0x00000000000000D4
+          step-                    0x0000000000000098
+          stop                     0x0000000000000048
+          step+                    0x0000000000000090
+          vol+                     0x0000000000000058
+          vol-                     0x00000000000000D8
+          home                     0x00000000000000C8
+          ch+                      0x0000000000000050
+          ch-                      0x00000000000000D0
+          mute                     0x0000000000000038
+          rec                      0x0000000000000028
+          pc                       0x0000000000000030
+          1                        0x00000000000000B8
+          2                        0x00000000000000A8
+          3                        0x00000000000000B0
+          4                        0x0000000000000078
+          5                        0x0000000000000068
+          6                        0x0000000000000070
+          7                        0x00000000000000F8
+          8                        0x00000000000000E8
+          9                        0x00000000000000F0
+          0                        0x0000000000000018
+          ui_size                  0x0000000000000004
+          repeat                   0x0000000000000008
+      end codes
+
+end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/preview.jpg b/abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/preview.jpg
new file mode 100644
index 0000000..250d6a1
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/ASUS-DiGiMatrix/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/lircd.conf.dvico-dual-digital4 b/abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/lircd.conf.dvico-dual-digital4
new file mode 100644
index 0000000..2d2b9ac
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/lircd.conf.dvico-dual-digital4
@@ -0,0 +1,81 @@
+# Please make this file available to others
+# by sending it to <lirc@bartelmus.de>
+#
+# this config file was automatically generated
+# using lirc-0.8.0(userspace) on Mon Mar  5 16:00:35 2007
+#
+# contributed by: Soth
+#
+# brand:  DViCO FusionHDTV DVB-T Dual Digital
+# model no. of remote control: Fusion MCE
+# devices being controlled by this remote:
+#
+
+begin remote
+
+    name  DViCO_Dual_Digital
+    bits           16
+    eps            30
+    aeps          100
+  
+    one             0     0
+    zero            0     0
+    pre_data_bits   16
+    pre_data       0x1
+    gap            251756
+    toggle_bit      0   
+   
+    begin codes
+#starting at the top
+        dtv                      0x0179
+        mp3                      0x0187
+        dvd                      0x0185
+        cpf                      0x016C
+#outer circle clockwise from top
+        tvpower                  0x0164
+        guide                    0x016D
+        info                     0x0166
+        alttab                   0x000F
+        skip                     0x00A3
+        start                    0x001C
+        replay                   0x00A5
+        dvdmenu                  0x008B
+        back                     0x009E
+        setup                    0x008D
+#inner circle
+        up                       0x0067
+        down                     0x006C
+        left                     0x0069
+        right                    0x006A
+        ok                       0x0160
+#volume and channel
+        voldn                    0x0072
+        volup                    0x0073
+        chup                     0x0192
+        chdn                     0x0193
+#keypad
+        camera                   0x00D4
+        live                     0x0182
+        folder                   0x0086
+        1                        0x0002
+        2                        0x0003
+        3                        0x0004
+        4                        0x0005
+        5                        0x0006
+        6                        0x0007
+        7                        0x0008
+        8                        0x0009
+        9                        0x000A
+        aspect                   0x0173
+        0                        0x000B
+        zoom                     0x0174
+#play buttons
+        rew                      0x00A8
+        playpause                0x00A4
+        ff                       0x00D0
+        mute                     0x0071
+        stop                     0x0080
+        rec                      0x00A7
+        power                    0x0074
+    end codes 
+end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/lircrc.dvico-dual-digital4 b/abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/lircrc.dvico-dual-digital4
new file mode 100644
index 0000000..7c75f01
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/lircrc.dvico-dual-digital4
@@ -0,0 +1,430 @@
+# lircrc.example.DVICO-nativelirc
+# 2004-07-04, Chris Pascoe
+# mailto:linuxdvb@itee.uq.edu.au
+# Save this file in ~/.mythtv/lircrc
+#
+# Note the "repeat =" strings in the volume and channel.
+# This means that if you hold down the key, every nth instance will be
+# passed.  This depends on your system, so you may want to increase or
+# decrease this and see what happens.  repeat = 1 is probably too
+# fast.
+
+### Top 4 buttons ###
+ 
+# DTV - Change focus for PiP (to change channel in the other window)
+begin
+    prog = mythtv
+    button = dtv
+    config = B
+end    
+ 
+begin
+    prog = mythtv
+    button = mp3
+    config = Ctrl+M
+end
+ 
+begin
+    prog = mythtv
+    button = dvd
+    config = Ctrl+D
+end
+ 
+begin
+    prog = mythtv
+    button = cpf
+    config = 
+end
+ 
+### Outer Circle (clockwise from the top) ### 
+ 
+begin
+    prog = mythtv
+    button = tvpower
+    config = Esc
+end
+  
+begin
+    prog = mythtv
+    button = guide
+    config = S
+end
+  
+begin
+    prog = mythtv
+    button = info
+    config = I
+end
+ 
+#swap the pip windows
+begin 
+    prog = mythtv
+    button = alttab
+    config = N
+end
+ 
+#commercial skip forwards
+begin
+    prog = mythtv
+    button = skip
+    config = Z
+end
+  
+begin
+    prog = mythtv
+    button = start
+    config = Return
+end
+ 
+#commercial skip backwards
+begin
+    prog = mythtv
+    button = replay
+    config = Q
+end  
+ 
+begin
+    prog = mythtv
+    button = dvdmenu
+#    config = undefined
+end
+ 
+begin
+    prog = mythtv
+    button = back
+    config = Esc
+end
+    
+begin
+    prog = mythtv
+    button = setup
+    config = undefined
+end
+  
+### Inner Circle ###
+  
+begin
+    prog = mythtv
+    button = up
+    config = Up
+end
+  
+begin
+    prog = mythtv
+    button = down
+    config = Down
+end
+  
+begin
+    prog = mythtv
+    button = left
+    config = Left
+end
+  
+begin
+    prog = mythtv
+    button = right
+    config = Right
+end
+  
+begin
+    prog = mythtv
+    button = ok
+    config = Return
+end
+ 
+### Volume and Channel ###
+  
+begin
+  prog = mythtv
+  button = voldn
+  repeat = 1
+  config = F10
+end
+  
+begin
+    prog = mythtv
+    button = volup
+    repeat = 1
+    config = F11
+end
+  
+begin
+    prog = mythtv
+    button = chup
+    config = Up
+end
+  
+begin
+    prog = mythtv
+    button = chdn
+    config = Down
+end
+ 
+### Keypad ###
+ 
+begin
+    prog = mythtv
+    button = camera
+    config = P
+end
+ 
+begin
+    prog = mythtv
+    button = live
+#    config = undefined
+end
+ 
+begin
+    prog = mythtv
+    button = folder
+    config = C
+end
+  
+begin
+    prog = mythtv
+    button = 1
+    config = 1
+    config = return
+end
+  
+begin
+    prog = mythtv
+    button = 2
+    config = 2
+    config = return
+end
+  
+begin
+    prog = mythtv
+    button = 3
+    config = 3
+    config = return
+end
+  
+begin
+    prog = mythtv
+    button = 4
+    config = 4
+    config = return
+end
+  
+begin
+    prog = mythtv
+    button = 5
+    config = 5
+    config = return
+end
+  
+begin
+    prog = mythtv
+    button = 6
+    config = 6
+    config = return
+end
+  
+begin
+    prog = mythtv
+    button = 7
+    config = 7
+    config = return
+end
+  
+begin
+    prog = mythtv
+    button = 8
+    config = 8
+    config = return
+end
+  
+begin
+    prog = mythtv
+    button = 9
+    config = 9
+    config = return
+end
+ 
+begin
+    prog = mythtv
+    button = aspect
+    config = W
+end    
+ 
+begin
+    prog = mythtv
+    button = 0
+    config = 0
+    config = return
+end
+ 
+# Toggle PiP on/off
+begin
+    prog = mythtv
+    button = zoom
+    config = V
+end
+  
+### Play buttons ###
+  
+begin
+    prog = mythtv
+    button = rew
+    config = Left
+#    config = seek -180
+end
+  
+begin
+    prog = mythtv
+    button = playpause
+    config = ctrl+p
+end
+  
+begin
+    prog = mythtv
+    button = ff
+    config = Right
+#    config = seek +180
+end
+    
+begin
+    prog = mythtv
+    button = mute
+    config = |
+end
+  
+begin
+    prog = mythtv
+    button = stop
+    config = P
+end
+  
+begin
+    prog = mythtv
+    button = rec
+    config = R
+end
+  
+begin
+    prog = mythtv
+    button = power
+    config = Esc
+end
+ 
+# Xine
+  
+begin
+    prog = xine
+    button = playpause
+    repeat = 3
+    config = Play
+end
+  
+begin
+    prog = xine
+    button = stop
+    repeat = 3
+    config = Pause
+end
+  
+begin
+    prog = xine
+    button = back
+    config = Quit
+end
+  
+begin
+    prog = xine
+    button = tv_onoff
+    config = Quit
+end
+  
+begin
+    prog = xine
+    button = right
+    repeat = 3
+    config = SeekRelative+10
+end
+  
+begin
+    prog = xine
+    button = left
+    repeat = 3
+    config = SeekRelative-10
+end
+  
+begin
+    prog = xine
+    button = ff
+    repeat = 3
+    config = SeekRelative+30
+end
+  
+begin
+    prog = xine
+    button = rew
+    repeat = 3
+    config = SeekRelative-30
+end
+  
+begin
+    prog = xine
+    button = skip
+    repeat = 3
+    config = SeekRelative+300
+end
+  
+begin
+    prog = xine
+    button = replay
+    repeat = 3
+    config = SeekRelative-300
+end
+  
+begin
+    prog = xine
+    button = up
+    repeat = 1
+    config = EventUp
+end
+  
+begin
+    prog = xine
+    button = down
+    repeat = 1
+    config = EventDown
+end
+  
+begin
+    prog = xine
+    button = ok
+    repeat = 0
+    config = EventSelect
+end
+  
+begin
+    prog = xine
+    button = guide
+    repeat = 0
+    config = Menu
+end
+  
+begin
+    prog = xine
+    button = setup
+    repeat = 0
+    config = Menu
+end
+  
+begin
+    prog = xine
+    button = volup
+    repeat = 1
+    config = Volume+
+end
+  
+begin
+    prog = xine
+    button = voldn
+    repeat = 1
+    config = Volume-
+end
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/preview.jpg
new file mode 100644
index 0000000..f3956fa
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Dvico-Dual-Digital4-rev2/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/lircd.conf.asus b/abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/lircd.conf.asus
deleted file mode 100644
index ceadbf0..0000000
--- a/abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/lircd.conf.asus
+++ /dev/null
@@ -1,56 +0,0 @@
-#
-# contributed by Tibor Sipos <tibors@moravia-it.com> and 
-#                Stefan Jahn <stefan@lkcc.org>
-#
-# brand:	     Asus
-# model:	     Asus TV-Box Remote Control
-#
-
-begin remote
-
-  name		Asus TV-Box IR
-
-  bits		8
-  eps		30
-  aeps		100
-  one           0     0
-  zero          0     0
-  gap           1399999
-  toggle_bit	0
-
-	begin codes
-	  0			0x0000000000000000
-	  1			0x0000000000000008
-	  2			0x0000000000000010
-	  3			0x0000000000000018
-	  4			0x0000000000000020
-	  5			0x0000000000000028
-	  6			0x0000000000000030
-	  7			0x0000000000000038
-	  8			0x0000000000000040
-	  9			0x0000000000000048
-	  PREV			0x0000000000000050
-	  ENTER			0x0000000000000058
-	  CH+			0x0000000000000060
-	  CH-			0x0000000000000068
-	  VOL+			0x0000000000000070
-	  VOL-			0x0000000000000078
-	  MAXIMIZE		0x0000000000000080
-	  MUTE			0x0000000000000088
-	  POWER			0x0000000000000090
-	  MENU			0x0000000000000098
-	  UP			0x00000000000000A0
-	  DOWN			0x00000000000000A8
-	  LEFT			0x00000000000000B0
-	  RIGHT			0x00000000000000B8
-	  CAPTION		0x00000000000000C0
-	  MTS/SAP		0x00000000000000C8
-	  DISPLAY		0x00000000000000D0
-	  SCAN			0x00000000000000D8
-	  RED			0x00000000000000E0
-	  GREEN			0x00000000000000E8
-	  YELLOW		0x00000000000000F0
-	  BLUE			0x00000000000000F8
-        end codes
-
-end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/lircd.conf.digimatrix b/abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/lircd.conf.digimatrix
deleted file mode 100644
index a6e9abd..0000000
--- a/abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/lircd.conf.digimatrix
+++ /dev/null
@@ -1,152 +0,0 @@
-#
-# this config file was automatically generated
-# using lirc-0.7.0pre7(it87) on Sun Aug 29 17:33:17 2004
-#
-# contributed by 
-#
-# brand:                       ASUS
-# model no. of remote control: DigiMatrix
-# devices being controlled by this remote:
-#
-
-begin remote
-
-  name  ASUS_DigiMatrix
-  bits           16
-  flags SPACE_ENC
-  eps            30
-  aeps          100
-
-  header       8057  4071
-  one           479  1534
-  zero          479   531
-  ptrail        491
-  pre_data_bits   8
-  pre_data       0x35
-  gap          25647
-  toggle_bit      0
-
-
-      begin codes
-          up                       0x000000000000E817
-          down                     0x00000000000018E7
-          enter                    0x000000000000D02F
-          left                     0x0000000000009867
-          right                    0x00000000000058A7
-          1                        0x00000000000000FF
-          2                        0x000000000000807F
-          3                        0x00000000000040BF
-          4                        0x000000000000C03F
-          5                        0x00000000000020DF
-          6                        0x000000000000A05F
-          7                        0x000000000000609F
-          8                        0x000000000000E01F
-          9                        0x00000000000010EF
-          0                        0x000000000000906F
-          on_off                   0x000000000000B04F
-          dvd_vcd                  0x000000000000F00F
-          tv                       0x00000000000008F7
-          os_start                 0x00000000000030CF
-          photo                    0x00000000000048B7
-          home                     0x00000000000044BB
-          back                     0x000000000000A857
-          ch+                      0x000000000000B847
-          stop                     0x000000000000946B
-          play                     0x000000000000C43B
-          vol+                     0x000000000000F807
-          ch-                      0x0000000000007887
-          step-                    0x000000000000E41B
-          step+                    0x000000000000649B
-          vol-                     0x00000000000004FB
-          pause                    0x00000000000024DB
-          pre                      0x00000000000014EB
-          next                     0x000000000000A45B
-          mute                     0x000000000000847B
-          rec                      0x000000000000D42B
-          subtitle                 0x000000000000C837
-          menu                     0x00000000000038C7
-          dvd_audio                0x00000000000050AF
-          ui_size                  0x0000000000008877
-          ui_on_off                0x00000000000028D7
-      end codes
-
-end remote
-
-
-#
-# this config file was automatically generated
-# using lirc-0.7.2(it87) on Sun Aug 28 18:13:15 2005
-#
-# contributed by 
-#
-# brand:                       ASUS
-# model no. of remote control: DigiMatrix Mark 2
-# devices being controlled by this remote:
-#
-
-begin remote
-
-  name  ASUS_DigiMatrixMk2
-  bits            8
-  flags SPACE_ENC
-  eps            30
-  aeps          100
-
-  header       2666  1378
-  one           260   741
-  zero          260   279
-  ptrail        251
-  pre_data_bits   1
-  pre_data       0x0
-  post_data_bits  8
-  post_data      0x3
-  gap          10826
-  min_repeat      1
-  toggle_bit      0
-
-
-      begin codes
-          power                    0x0000000000000084
-          tv_dvr                   0x0000000000000044
-          fm                       0x00000000000000C4
-          os_start                 0x0000000000000024
-          music                    0x00000000000000A4
-          pictures                 0x0000000000000064
-          video                    0x00000000000000E4
-          dvd_menu                 0x0000000000000014
-          up                       0x000000000000004C
-          down                     0x00000000000000E0
-          left                     0x0000000000000010
-          right                    0x0000000000000040
-          back                     0x00000000000000B4
-          ok                       0x0000000000000088
-          back_fwd                 0x0000000000000074
-          rew                      0x0000000000000094
-          play_pause               0x0000000000000054
-          fwd                      0x00000000000000D4
-          step-                    0x0000000000000098
-          stop                     0x0000000000000048
-          step+                    0x0000000000000090
-          vol+                     0x0000000000000058
-          vol-                     0x00000000000000D8
-          home                     0x00000000000000C8
-          ch+                      0x0000000000000050
-          ch-                      0x00000000000000D0
-          mute                     0x0000000000000038
-          rec                      0x0000000000000028
-          pc                       0x0000000000000030
-          1                        0x00000000000000B8
-          2                        0x00000000000000A8
-          3                        0x00000000000000B0
-          4                        0x0000000000000078
-          5                        0x0000000000000068
-          6                        0x0000000000000070
-          7                        0x00000000000000F8
-          8                        0x00000000000000E8
-          9                        0x00000000000000F0
-          0                        0x0000000000000018
-          ui_size                  0x0000000000000004
-          repeat                   0x0000000000000008
-      end codes
-
-end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/preview.jpg b/abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/preview.jpg
deleted file mode 100644
index a034186..0000000
Binary files a/abs/core-testing/system-templates/templates/remotes/asus-digitmatrix/preview.jpg and /dev/null differ
diff --git a/abs/core-testing/system-templates/templates/remotes/ea65/lircd.conf.ea65 b/abs/core-testing/system-templates/templates/remotes/ea65/lircd.conf.ea65
deleted file mode 100644
index a10181d..0000000
--- a/abs/core-testing/system-templates/templates/remotes/ea65/lircd.conf.ea65
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-#  Config file for AOpen XC Cube EA65, EA65-II
-#  Max Krasnyanskiy <maxk@qualcomm.com>
-#
-
-begin remote
-  name  EA65
-  bits  24
-  eps   10
-  aeps  100
-
-  gap           960000
-  toggle_bit    0
-
-  begin codes
-	tv/pvr      0x0014814c
-        photo       0x0017810e
-        htpc        0x0011811b
-        dvd/vcd     0x00128100
-        cd/mp3      0x00138152
-        fm          0x00158111
-        video       0x0016810f
-
-        1           0x0041810b
-        2           0x00428115
-        3           0x00438112
-        4           0x00448141
-        5           0x00458119
-        6           0x00468116
-        7           0x00478150
-        8           0x0048811a
-        9           0x00498155
-        *           0x00328156
-        0           0x00408158
-        #           0x0030814d
-        
-        menu        0x00188104
-        exit        0x001d8154
-        enter       0x001e8101
-        up          0x00198159
-        down        0x001a811c
-        left        0x001c8102
-        right       0x001b815d
-
- 	vol+        0x00298103
- 	vol-        0x002a814e
- 	ch+         0x002c8113
- 	ch-         0x002d8117
- 	mute        0x00288105
- 	tune+       0x002e8144
- 	tune-       0x002f8148
- 	mem         0x00318145
- 	scan        0x00278151
-
- 	display     0x0034811f
- 	eject       0x0035815c
- 	rwnd        0x00228118
- 	ffwd        0x00218110
- 	rec         0x002b810a
- 	repeate     0x0038815a
- 	prev        0x00238107
- 	next        0x00248114
- 	time/shift  0x00338108
- 	stop        0x0020811d
- 	play/pause  0x001f8109
-
-        play-pause  0x0080811d
-        stop-eject  0x00238107
-        mode-       0x00ff1080
-        mode+       0x00ff1180
-  end codes
-end remote
-
diff --git a/abs/core-testing/system-templates/templates/remotes/ea65/lircrc.ea65 b/abs/core-testing/system-templates/templates/remotes/ea65/lircrc.ea65
deleted file mode 100644
index fd96d42..0000000
--- a/abs/core-testing/system-templates/templates/remotes/ea65/lircrc.ea65
+++ /dev/null
@@ -1,381 +0,0 @@
-#
-# Max Krasnyanskiy <maxk@qualcomm.com>
-#
-
-#
-# Xine key bindings.
-#
-
-# start playback
-begin
-	button = dvd/vcd
-	prog   = xine
-	repeat = 1
-	config = Play
-end
-
-# playback pause toggle
-begin
-	button = play/pause
-	prog   = xine
-	repeat = 1
-	config = Pause
-end
-
-# stop playback
-begin
-	button = stop
-	prog   = xine
-	repeat = 1
-	config = Stop
-end
-
-# eject the current medium
-begin
-	button = eject
-	prog   = xine
-	repeat = 1
-	config = Eject
-end
-
-# scan playlist to grab stream infos
-begin
-	button = mem
-	prog   = xine
-	repeat = 1
-	config = ScanPlaylistInfo
-end
-
-# set position to -60 seconds in current stream
-begin
-	button = rwnd
-	prog   = xine
-	repeat = 1
-	config = SeekRelative-60
-end
-
-# set position to +60 seconds in current stream
-begin
-	button = ffwd
-	prog   = xine
-	repeat = 1
-	config = SeekRelative+60
-end
-
-# increment playback speed
-begin
-	button = tune+
-	prog   = xine
-	repeat = 1
-	config = SpeedFaster
-end
-
-# decrement playback speed
-begin
-	button = tune-
-	prog   = xine
-	repeat = 1
-	config = SpeedSlower
-end
-
-# increment audio volume
-begin
-	button = vol+
-	prog   = xine
-	repeat = 1
-	config = Volume+
-end
-
-# decrement audio volume
-begin
-	button = vol-
-	prog   = xine
-	repeat = 1
-	config = Volume-
-end
-
-# audio muting toggle
-begin
-	button = mute
-	prog   = xine
-	repeat = 1
-	config = Mute
-end
-
-# select next audio channel
-begin
-	button = ch+
-	prog   = xine
-	repeat = 1
-	config = AudioChannelNext
-end
-
-# select previous audio channel
-begin
-	button = ch-
-	prog   = xine
-	repeat = 1
-	config = AudioChannelPrior
-end
-
-# interlaced mode toggle
-begin
-	button = scan
-	prog   = xine
-	repeat = 1
-	config = ToggleInterleave
-end
-
-# cycle aspect ratio values
-begin
-	button = display
-	prog   = xine
-	repeat = 1
-	config = ToggleAspectRatio
-end
-
-# jump to Title Menu
-begin
-	button = menu
-	prog   = xine
-	repeat = 1
-	config = TitleMenu
-end
-
-# menu navigate up
-begin
-	button = up
-	prog   = xine
-	repeat = 1
-	config = EventUp
-end
-
-# menu navigate down
-begin
-	button = down
-	prog   = xine
-	repeat = 1
-	config = EventDown
-end
-
-# menu navigate left
-begin
-	button = left
-	prog   = xine
-	repeat = 1
-	config = EventLeft
-end
-
-# menu navigate right
-begin
-	button = right
-	prog   = xine
-	repeat = 1
-	config = EventRight
-end
-
-# menu select
-begin
-	button = enter
-	prog   = xine
-	repeat = 1
-	config = EventSelect
-end
-
-# jump to next chapter
-begin
-	button = next
-	prog   = xine
-	repeat = 1
-	config = EventNext
-end
-
-# jump to previous chapter
-begin
-	button = prev
-	prog   = xine
-	repeat = 1
-	config = EventPrior
-end
-
-# select a subtitle file
-begin
-	button = repeat
-	prog   = xine
-	repeat = 1
-	config = SubSelector
-end
-
-# enter the number 0
-begin
-	button = 0
-	prog   = xine
-	repeat = 1
-	config = Number0
-end
-
-# enter the number 1
-begin
-	button = 1
-	prog   = xine
-	repeat = 1
-	config = Number1
-end
-
-# enter the number 2
-begin
-	button = 2
-	prog   = xine
-	repeat = 1
-	config = Number2
-end
-
-# enter the number 3
-begin
-	button = 3
-	prog   = xine
-	repeat = 1
-	config = Number3
-end
-
-# enter the number 4
-begin
-	button = 4
-	prog   = xine
-	repeat = 1
-	config = Number4
-end
-
-# enter the number 5
-begin
-	button = 5
-	prog   = xine
-	repeat = 1
-	config = Number5
-end
-
-# enter the number 6
-begin
-	button = 6
-	prog   = xine
-	repeat = 1
-	config = Number6
-end
-
-# enter the number 7
-begin
-	button = 7
-	prog   = xine
-	repeat = 1
-	config = Number7
-end
-
-# enter the number 8
-begin
-	button = 8
-	prog   = xine
-	repeat = 1
-	config = Number8
-end
-
-# enter the number 9
-begin
-	button = 9
-	prog   = xine
-	repeat = 1
-	config = Number9
-end
-
-# quit the program
-begin
-	button = exit
-	prog   = xine
-	repeat = 1
-	config = Quit
-end
-
-##
-# End of xine key bindings.
-##
-
-## MPlayer lirc setup
-
-# Show OSD
-begin
-	prog = mplayer
-	button = menu
-	repeat = 1
-	config = osd
-end
-
-# Pause playback
-begin
-	prog = mplayer
-	button = play/pause
-	repeat = 1
-	config = pause
-end
-
-# Stop playback and exit
-begin
-	prog = mplayer
-	button = stop
-	repeat = 1
-	config = stop #quit
-end
-
-# Mute
-begin
-	prog = mplayer
-	button = mute
-	repeat = 1
-	config = mute
-end
-
-# Seek back 10 seconds
-begin
-	prog = mplayer
-	button = rwnd
-	repeat = 1
-	config = seek -10
-end
-
-# Seek forward 30 seconds
-begin
-	prog = mplayer
-	button = ffwd
-	repeat = 1
-	config = seek +10
-end
-
-# Quit
-begin
-	prog = mplayer
-	button = exit
-	repeat = 1
-	config = quit
-end
-
-# Seek forward 10 minutes
-begin
-	prog = mplayer
-	button = next
-	repeat = 1
-	config = seek +600
-end
-
-# Seek backward 10 minutes
-begin
-	prog = mplayer
-	button = prev
-	repeat = 1
-	config = seek -600
-end
-
-# Toggle full-screen
-begin
-	prog = mplayer
-	button = display
-	repeat = 1
-	config = vo_fullscreen
-end
diff --git a/abs/core-testing/system-templates/templates/remotes/ea65/preview.jpg b/abs/core-testing/system-templates/templates/remotes/ea65/preview.jpg
deleted file mode 100644
index a034186..0000000
Binary files a/abs/core-testing/system-templates/templates/remotes/ea65/preview.jpg and /dev/null differ
diff --git a/abs/core-testing/system-templates/templates/remotes/imon-pad/preview.jpg b/abs/core-testing/system-templates/templates/remotes/imon-pad/preview.jpg
index a034186..a2e46a3 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/imon-pad/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/imon-pad/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/imon/preview.jpg b/abs/core-testing/system-templates/templates/remotes/imon/preview.jpg
index a034186..0829118 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/imon/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/imon/preview.jpg differ
-- 
cgit v0.12


From a8497f7436ef800137be60cf37a6907ba06b928e Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sun, 19 Jul 2009 13:58:05 +0930
Subject: runit-scripts: tidy lirc run script

---
 abs/core-testing/runit-scripts/PKGBUILD            |  2 +-
 .../runit-scripts/runitscripts/services/lircd/run  | 90 ++++++++++------------
 2 files changed, 43 insertions(+), 49 deletions(-)

diff --git a/abs/core-testing/runit-scripts/PKGBUILD b/abs/core-testing/runit-scripts/PKGBUILD
index 7fe22bf..4c84b82 100755
--- a/abs/core-testing/runit-scripts/PKGBUILD
+++ b/abs/core-testing/runit-scripts/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=runit-scripts
 pkgver=1.8.0
-pkgrel=91
+pkgrel=92
 pkgdesc="collection of startup scripts for runit"
 url="http://smarden.org/runit/"
 license="BSD"
diff --git a/abs/core-testing/runit-scripts/runitscripts/services/lircd/run b/abs/core-testing/runit-scripts/runitscripts/services/lircd/run
index 6d67537..3473fa6 100755
--- a/abs/core-testing/runit-scripts/runitscripts/services/lircd/run
+++ b/abs/core-testing/runit-scripts/runitscripts/services/lircd/run
@@ -1,26 +1,32 @@
 #!/bin/bash
+
 exec 2>&1
 export TERM=linux
+
 . /etc/rc.conf
 . /etc/rc.d/functions
 
 #since what we do may not be enough
 #if your one of those people, this is where you place your stuff
+
 LOG=/tmp/lirc.log
+
 if [ -f $LOG ]
 then
-	rm -f $LOG
+    rm -f $LOG
 fi
+
 if [ -f /etc/runit/lirc.sh ]
 then
     #program must not terminate.
 
-	stat_runit "Starting lirc"
+    stat_runit "Starting lirc"
 	
     /etc/runit/lirc.sh
 else
     . /etc/systemconfig
     stat_runit "Starting lirc"
+
     [ -e /etc/sv/lircd/.runtime ] || mkdir -p /etc/sv/lircd/.runtime
 
     function dvico_detect {
@@ -35,15 +41,26 @@ else
     num_lirc=`ls -la /dev/lirc[0-9] 2>/dev/null |wc -l `
     num_lirc=$((num_lirc-1))
 
-    #/dev/ttys0 (COM1), port 0x3f8, irq 4
-    #/dev/ttys1 (COM2), port 0x2f8, irq 3
-    #/dev/ttys2 (COM3), port 0x3e8, irq 4
-    #/dev/ttys3 (COM4), port 0x2e8, irq 3
+    serial_port=""
+
     if [ x$ReceiverType = xSerial ]
     then
-        case $ReceiverSerialport in
+        serial_port=$ReceiverSerialport
+    elid [ x$HostBlasterType = xSerial ]
+    then
+        serial_port=$HostSerialPort_blasterlirc
+    fi
+
+    if [ -n "$serial_port" ]
+    then
+        #/dev/ttyS0 (COM1), port 0x3f8, irq 4
+        #/dev/ttyS1 (COM2), port 0x2f8, irq 3
+    	#/dev/ttyS2 (COM3), port 0x3e8, irq 4
+    	#/dev/ttyS3 (COM4), port 0x2e8, irq 3
+
+        case $serial_port in
         ttyS0)
-                FLAGS="io=0x3f8  irq=4"
+               FLAGS="io=0x3f8  irq=4"
                ;;
         ttyS1)
                FLAGS="io=0x2f8  irq=3"
@@ -52,81 +69,58 @@ else
                FLAGS="io=0x3e8  irq=4"
                ;;
         ttyS3)
-               FLAGS="io=0x2f8  irq=3"
+               FLAGS="io=0x2e8  irq=3"
                ;;
         esac
-        /usr/bin/setserial /dev/$ReceiverSerialport uart none
-	sleep  .5
+        /usr/bin/setserial /dev/serial_port uart none
+	sleep 0.5
         /sbin/modprobe lirc_serial $FLAGS
-	sleep .5
-    elif [ x$HostBlasterType = xSerial ]
-    then
-            case $HostSerialPort_blasterlirc in
-            ttyS0)
-                    FLAGS="io=0x3f8  irq=4"
-                   ;;
-            ttyS1)
-                   FLAGS="io=0x2f8  irq=3"
-                   ;;
-            ttyS2)
-                   FLAGS="io=0x3e8  irq=4"
-                   ;;
-            ttyS3)
-                   FLAGS="io=0x2f8  irq=3"
-                   ;;
-            esac
-            /usr/bin/setserial /dev/$ReceiverSerialport uart none
-            sleep .5
-           /sbin/modprobe lirc_serial $FLAGS
-           sleep .5
+	sleep 0.5
     fi
 
     dvico_detect
+
     if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ]
     then
         CMD="/usr/sbin/lircd -n  --driver=commandir"
 	printhl "	Using commandir"
         $CMD >>$LOG 2>>$LOG
-   elif [  x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ]
-   then
+    elif [  x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ]
+    then
 	sv start igdaemon
         CMD="/usr/sbin/lircd -n  --driver=iguanaIR"
 	printhl "       Using iguanaIR usb"
         $CMD >>$LOG 2>>$LOG
     else
         LASTCMD=""
+
         for i in `seq 1 $num_lirc`
         do
             CMD="/usr/sbin/lircd -d /dev/lirc$i --output=/dev/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
-#            echo $CMD
 	    printhl "	Device $i"
             $CMD >>$LOG 2>>$LOG
             LASTCMD="--connect=localhost:876$i   $LASTCMD    "
         done
+
         if [ $RunDvico = "true" -a $num_lirc -lt 0 ]
         then
-	        #only run dvicio
-	        LCMD="/usr/sbin/lircd -n -d /dev/usb/dvicoIR --driver=dvico  --output /dev/lircd"
-	    #      echo $LCMD
-		printhl "	Device Dvicio"
-		
-	        exec $LCMD >>$LOG 2>>$LOG
+	    #only run Dvico
+	    LCMD="/usr/sbin/lircd -n -d /dev/usb/dvicoIR --driver=dvico  --output /dev/lircd"
+	    printhl "	Device Dvicio"
+	    exec $LCMD >>$LOG 2>>$LOG
         elif [ $RunDvico = true -a $num_lirc -gt -1  ]
         then
-            #chain them together
+            # Chain them together.
             i=$((i+1))
             CMD="/usr/sbin/lircd -d /dev/usb/dvicoIR --driver=dvico  --output=/dev/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
-    #        echo $CMD
             $CMD >> $LOG
             LASTCMD="--connect=localhost:876$i   $LASTCMD    "
-		printhl "	Device Dvicio"
+	    printhl "	Device Dvicio"
 		
             /usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD  >>$LOG 2>>$LOG
         else
-        LCMD="/usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD"
-    #       echo $LCMD
-        
-        exec $LCMD >>$LOG 2>>$LOG
+            LCMD="/usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD"
+            exec $LCMD >>$LOG 2>>$LOG
         fi
     fi
 fi
-- 
cgit v0.12


From 1a13bb8bdc2d9f727201113e234eecfd868eda03 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sun, 19 Jul 2009 14:34:33 +0930
Subject: runit-scripts: unbork and add Dvico dual4 rev2 support

---
 abs/core-testing/runit-scripts/PKGBUILD            |  2 +-
 .../runit-scripts/runitscripts/services/lircd/run  | 56 +++++++++++++---------
 2 files changed, 35 insertions(+), 23 deletions(-)

diff --git a/abs/core-testing/runit-scripts/PKGBUILD b/abs/core-testing/runit-scripts/PKGBUILD
index 4c84b82..aa26834 100755
--- a/abs/core-testing/runit-scripts/PKGBUILD
+++ b/abs/core-testing/runit-scripts/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=runit-scripts
 pkgver=1.8.0
-pkgrel=92
+pkgrel=93
 pkgdesc="collection of startup scripts for runit"
 url="http://smarden.org/runit/"
 license="BSD"
diff --git a/abs/core-testing/runit-scripts/runitscripts/services/lircd/run b/abs/core-testing/runit-scripts/runitscripts/services/lircd/run
index 3473fa6..7067b90 100755
--- a/abs/core-testing/runit-scripts/runitscripts/services/lircd/run
+++ b/abs/core-testing/runit-scripts/runitscripts/services/lircd/run
@@ -30,7 +30,7 @@ else
     [ -e /etc/sv/lircd/.runtime ] || mkdir -p /etc/sv/lircd/.runtime
 
     function dvico_detect {
-        if [ x$Remotetype = "xdvico" ]
+        if [ x$Remotetype = "xdvico" ] || [ x$Remotetype = "xDvico-Dual-Digital4-rev2" ]
         then
             RunDvico=true
         else
@@ -46,7 +46,7 @@ else
     if [ x$ReceiverType = xSerial ]
     then
         serial_port=$ReceiverSerialport
-    elid [ x$HostBlasterType = xSerial ]
+    elif [ x$HostBlasterType = xSerial ]
     then
         serial_port=$HostSerialPort_blasterlirc
     fi
@@ -85,11 +85,13 @@ else
         CMD="/usr/sbin/lircd -n  --driver=commandir"
 	printhl "	Using commandir"
         $CMD >>$LOG 2>>$LOG
+echo $CMD
     elif [  x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ]
     then
 	sv start igdaemon
         CMD="/usr/sbin/lircd -n  --driver=iguanaIR"
 	printhl "       Using iguanaIR usb"
+echo $CMD
         $CMD >>$LOG 2>>$LOG
     else
         LASTCMD=""
@@ -98,29 +100,39 @@ else
         do
             CMD="/usr/sbin/lircd -d /dev/lirc$i --output=/dev/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
 	    printhl "	Device $i"
+echo $CMD
             $CMD >>$LOG 2>>$LOG
             LASTCMD="--connect=localhost:876$i   $LASTCMD    "
         done
 
-        if [ $RunDvico = "true" -a $num_lirc -lt 0 ]
-        then
-	    #only run Dvico
-	    LCMD="/usr/sbin/lircd -n -d /dev/usb/dvicoIR --driver=dvico  --output /dev/lircd"
-	    printhl "	Device Dvicio"
-	    exec $LCMD >>$LOG 2>>$LOG
-        elif [ $RunDvico = true -a $num_lirc -gt -1  ]
-        then
-            # Chain them together.
-            i=$((i+1))
-            CMD="/usr/sbin/lircd -d /dev/usb/dvicoIR --driver=dvico  --output=/dev/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
-            $CMD >> $LOG
-            LASTCMD="--connect=localhost:876$i   $LASTCMD    "
-	    printhl "	Device Dvicio"
-		
-            /usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD  >>$LOG 2>>$LOG
-        else
-            LCMD="/usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD"
-            exec $LCMD >>$LOG 2>>$LOG
-        fi
+	if [ $RunDvico = "true" ]
+	then
+	    if [ x$Remotetype = "xdvico" ]
+            then
+                LCMD="/usr/sbin/lircd -n -d /dev/usb/dvicoIR --driver=dvico  --output /dev/lircd"
+            else
+                LCMD="/usr/sbin/lircd -n -d /dev/input/irremote --driver=devinput  --output /dev/lircd"
+            fi
+
+	    if [ $num_lirc -lt 0 ]
+	    then
+		# Only run Dvico
+		printhl "   Device $Remotetype"
+echo $LCMD
+            	exec $LCMD >>$LOG 2>>$LOG
+	    elif [ $num_lirc -gt -1  ]
+	    then
+                i=$((i+1))
+                CMD="$LCMD --output=/dev/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
+                $CMD >> $LOG
+                LASTCMD="--connect=localhost:876$i   $LASTCMD    "
+	        printhl "	Device Dvico"
+		/usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD  >>$LOG 2>>$LOG
+	    fi
+	else
+	    LCMD="/usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD"
+echo $LCMD
+     	    exec $LCMD >>$LOG 2>>$LOG
+	fi
     fi
 fi
-- 
cgit v0.12


From 4cb1ab858b9ad93a2bc16b3e9966dee4c2043ddd Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sun, 19 Jul 2009 15:43:04 +0930
Subject: system-templates: autodetection of Dvico DD4-rev2

---
 abs/core-testing/system-templates/PKGBUILD                          | 2 +-
 abs/core-testing/system-templates/templates/remotes/receiver_usb.id | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/abs/core-testing/system-templates/PKGBUILD b/abs/core-testing/system-templates/PKGBUILD
index ed6856f..904db3c 100755
--- a/abs/core-testing/system-templates/PKGBUILD
+++ b/abs/core-testing/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=system-templates
 pkgver=1.0
-pkgrel=28
+pkgrel=29
 conflicts=( )
 pkgdesc="Templates used for system configuration"
 depends=()
diff --git a/abs/core-testing/system-templates/templates/remotes/receiver_usb.id b/abs/core-testing/system-templates/templates/remotes/receiver_usb.id
index 71b37d1..f76442a 100644
--- a/abs/core-testing/system-templates/templates/remotes/receiver_usb.id
+++ b/abs/core-testing/system-templates/templates/remotes/receiver_usb.id
@@ -4,6 +4,7 @@
 0bc7:0004|ATI_Remote_Wonder|    " ATI Remote Wonder"
 0e9c:0000|streamzap|    "Streamzap Remote"
 0fe9:9010|dvico|   "DVICO Remote:"
+0fe9:db98|Dvico-Dual-Digital4-rev2| "Dvico Dual Digital4 rev2 0fe9/db98"
 6253:0100|Twinhan_USB|  "the VisionPlus is a Twinhan clone "
 1509:9242|mceusb|  "FIC eHome Infrared Transceiver 1509/9242"
 1934:0602|mceusb|  "Fintek eHome Infrared Transceiver 1934/0602"
@@ -31,3 +32,4 @@
 1784:0007|mceusb|  "Topseed HP eHome Infrared Transceiver 1784/0007"
 1784:0008|mceusb|  "Topseed eHome Infrared Transceiver 1784/0008"
 045e:006d|mceusb-old|  "USB Microsoft IR Transceiver Driver 045e/006d"
+
-- 
cgit v0.12


From 78d204762df37d87ac1b6139bb04d90ac863a9c1 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sat, 18 Jul 2009 23:42:13 -0700
Subject: Myth2Ipod:  More LinHES friendly.

---
 abs/extra-testing/myth2ipod/PKGBUILD               |   9 +-
 abs/extra-testing/myth2ipod/myth2ipod              | 310 +++++++++++++++++++++
 abs/extra-testing/myth2ipod/myth2ipod.install      |  14 +-
 abs/extra-testing/myth2ipod/myth2ipod.patch        |  35 ---
 abs/extra-testing/myth2ipod/myth2ipod.txt          | 310 ---------------------
 abs/extra-testing/myth2ipod/myth2ipod.txt.modified | 310 ---------------------
 6 files changed, 321 insertions(+), 667 deletions(-)
 create mode 100755 abs/extra-testing/myth2ipod/myth2ipod
 delete mode 100755 abs/extra-testing/myth2ipod/myth2ipod.patch
 delete mode 100755 abs/extra-testing/myth2ipod/myth2ipod.txt
 delete mode 100755 abs/extra-testing/myth2ipod/myth2ipod.txt.modified

diff --git a/abs/extra-testing/myth2ipod/PKGBUILD b/abs/extra-testing/myth2ipod/PKGBUILD
index ea55613..4a4f3bf 100755
--- a/abs/extra-testing/myth2ipod/PKGBUILD
+++ b/abs/extra-testing/myth2ipod/PKGBUILD
@@ -1,20 +1,19 @@
 pkgname=myth2ipod
 pkgver=0.2
-pkgrel=15
+pkgrel=16
 arch=("i686")
 pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
 url="myth2ipod.com"
 depends=('gpac' 'nuvexport' )
 install="myth2ipod.install"
-source=( http://myth2ipod.com/myth2ipod.txt  http://myth2ipod.com/iPod.pm  myth2ipod.patch myth2ipod-userjob.sh)
+source=( myth2ipod iPod.pm myth2ipod-userjob.sh)
 
 
 build() {
 	cd $startdir/src
-	patch -p0 < myth2ipod.patch 
-	install -D -m 755 myth2ipod.txt $startdir/pkg/usr/bin/myth2ipod
+	install -D -m 755 myth2ipod $startdir/pkg/usr/bin/myth2ipod
 	install -D -m 755 myth2ipod-userjob.sh /$startdir/pkg/usr/bin/myth2ipod-userjob.sh
-	install -D -m755 iPod.pm $startdir/pkg/usr/local/share/nuvexport/export/ffmpeg/iPod.pm
+	install -D -m755 iPod.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/iPod.pm
 
 
 }
diff --git a/abs/extra-testing/myth2ipod/myth2ipod b/abs/extra-testing/myth2ipod/myth2ipod
new file mode 100755
index 0000000..73ca886
--- /dev/null
+++ b/abs/extra-testing/myth2ipod/myth2ipod
@@ -0,0 +1,310 @@
+#!/usr/bin/perl -w
+# VERSION: 1.0b2 - myth2ipod
+# Get the latest version, and change log at myth2ipod.com
+# Author: Chris aka Wififun - email: wififun@myth2ipod.com 
+# Contributions and testing by Paul Egli
+# modified to use nuvexport by starv at juniks dot org
+
+# Includes
+	use DBI;
+	use Getopt::Long;
+	use File::Path;
+	
+# User variables
+	my $portable = "ipod";
+	my $feedfile = "/myth/ipodfeed/feed.php";
+	my $feedpath = "/myth/ipodfeed/";
+	my $wwwloc = "/var/www/";
+	my $feedurl = "http://REPLACEME/ipodfeed/";
+	my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
+	
+# Some variables
+	our ($dest, $format, $usage);
+	our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
+	our ($hostname, $db_handle, $sql, $statement, $row_ref);
+    our ($chanid, $start, $nuvfile, @nuvarray);	
+	my $rebuild = '0';
+	my $encode = '0';
+	my $debug = '0';
+	my $setup = '0';
+	my $cut = '0';
+	my( $rightnow ) = `date`; 
+
+GetOptions ("rebuild" => \$rebuild,
+			"encode"   => \$encode,
+			"debug"	=>	\$debug,
+			"setup" => \$setup,
+			"cut" => \$cut);
+
+if ($setup == 1){
+		system("clear");
+		print "Setup will do everything needed to run this script.\n";
+		print "This has only been tested on KnoppMyth R5A22.\n";
+		print "make sure you have edited the variables for your conguration.\n";
+		my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
+			if ($cksetup =~ "y") {
+				DoSetup();
+				exit;
+			}
+			print "Setup exited. Nothing done.\n";
+		exit;
+}
+elsif ($rebuild == 1){
+		GenerateRSSFeed();
+		print "Rebuilding of RSS feed is complete.\n";
+		exit;
+}
+else {
+		Encode4Portable();
+		print "$title is ready for your $portable\n";
+		
+		# Check to see if the feed file exists; if not, create it.
+		if (! -e $feedfile) { 
+		print "No feed file found. I will make one for you.\n";
+		GenerateRSSFeed();
+		print "All done.\n";
+		}
+}
+
+sub Encode4Portable{
+	if ($#ARGV != 1) { 
+		print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n"; 
+		exit; 
+	}
+	
+	# Get the show information
+	$directory = $ARGV[0]; 
+	$file = $ARGV[1]; 
+	@file = split(/_/, $file);
+		$chanid = $file[0];
+		$start = substr $file[1],0,14;
+		if($debug == 1){ print "$chanid\n$start\n"};
+	if (! -e $directory."/".$file){
+		print "Opps, the file ".$directory.$file." does not exist.\n";
+		exit;
+	}
+	
+	# Connect to the database
+	PrepSQLRead();
+	$db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
+	or die "Cannot connect to database: $!\n\n";
+		$sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
+
+		$statement = $db_handle->prepare($sql)
+			or die "Couldn't prepare query '$sql': $DBI::errstr\n";
+		
+		$statement->execute()
+		or die "Couldn't execute query '$sql': $DBI::errstr\n";
+		$row_ref = $statement->fetchrow_hashref();
+		if($debug == 1){ print "$row_ref->{starttime}\n"};
+	$title = $row_ref->{title}; 
+	$subtitle = $row_ref->{subtitle};
+	$recorddate = $row_ref->{starttime}; 
+	$description = $row_ref->{description};
+	$category = $row_ref->{category};
+	$filename = $title."-".$subtitle."-".substr $start, 0, 8;
+	$filename =~ s/ /_/g;
+	$filename =~ s/&/+/g;
+	$filename =~ s/\047//g;
+    $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
+    $filename =~ s/_$//g;
+		
+	printf("Starting nuvexport...\n"); 
+		EncodeIt(); 
+	printf("Nuvexport completed, starting xml generation...\n"); 
+		CreateItemXML(); 
+	printf("XML file created for \"$filename\" : Yipeee\n"); 
+	printf("Cleaning up temporary files\n"); 
+		$cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
+		print $cmd."\n";
+		if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
+		
+		# remove the cutlist incase we added it.
+		if ($cut == 1){
+		printf("Generating cutlist\n"); 
+		$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
+		print $cmd."\n"; 
+		if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
+		}
+	return 0;
+}
+
+#
+# Encode for Portable
+#
+sub EncodeIt { 
+	# Create cutlist from commercial flagging if -cut was passed to the script
+	if ($cut == 1){
+	printf("Generating cutlist\n"); 
+	$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
+	print $cmd."\n"; 
+	if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
+	}
+	
+	# Use nuvexport to do the work
+	$cmd = "/usr/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.temp --path=$feedpath";
+	print $cmd."\n"; 
+	if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } 
+	
+	# Now clean up the output so iPods with firmware 1.1 and above can use it
+	$cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
+	print $cmd."\n"; 
+	if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } 
+	return 0;
+}
+
+#
+# Create XML with <ITEM> tag for this video file
+#
+sub CreateItemXML {
+		open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
+			print ITEM "<item>\n";  
+			print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
+			print ITEM "<itunes:author>MythTV</itunes:author>\n";  
+			print ITEM "<author>MythTV</author>\n";  
+			print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+			print ITEM "<comments>".&encodeForXML($file)."</comments>\n";  
+			print ITEM "<description>".&encodeForXML($description)."</description>\n";  
+			print ITEM "<pubDate>".$recorddate."</pubDate>\n";  
+			print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.mp4")."\" type=\"video/quicktime\" />\n";  
+			print ITEM "<itunes:duration></itunes:duration>\n";  
+			print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
+			print ITEM "<category>".&encodeForXML($category)."</category>\n";			
+			print ITEM "</item>\n";
+			print "\"$filename\" has been added to the feed.\n";
+		close(ITEM);
+	return 0;
+}
+
+#
+# Generate the RSS feed by combining the ITEM XML Files
+#
+sub GenerateRSSFeed {
+
+	open(RSS, ">$feedfile");
+		print RSS "<?php\n"; 
+		print RSS "header(\"Content-Type: text/xml\");\n"; 
+		print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n"; 
+		print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n"; 
+		print RSS "<channel>\n"; 
+		print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
+		print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
+		print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n"; 
+		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+		print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n"; 
+		print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n"; 
+		print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n"; 
+		print RSS "<itunes:owner>\n"; 
+		print RSS "<itunes:name>MythTV</itunes:name>\n"; 
+		print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n"; 
+		print RSS "</itunes:owner>\n"; 
+		print RSS "<itunes:explicit>No</itunes:explicit>\n"; 
+		print RSS "<language>en-us</language>\n"; 
+		print RSS "<copyright>Copyright 2005.</copyright>\n"; 
+		print RSS "<webMaster>mythtv\@localhost</webMaster>\n"; 
+		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n"; 
+		print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n"; 
+		print RSS "<category>TV Shows</category>\n";
+		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
+		print RSS "<image>"; 
+		print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
+		print RSS "<title>MythTV 2 iPod</title>\n";
+		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";	
+		print RSS "<width>200</width>\n";		
+		print RSS "<height>200</height>\n";		
+		print RSS "</image>\n";
+		print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
+		print RSS "</channel>\n"; 
+		print RSS "</rss>\n";
+ 	close(RSS);
+	if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
+
+	return 0;
+}
+
+# substitute for XML entities
+sub encodeForXML {
+	local $result;
+	$result = $_[0];
+	$result =~ s/&/&amp;/g;
+	$result =~ s/</&lt;/g;
+	$result =~ s/>/&gt;/g;
+	$result;
+}
+
+
+#
+# This code taken from one of the mythlink.sh scripts to get MySQL information
+#
+sub PrepSQLRead{
+# Get the hostname of this machine
+    $hostname = `hostname`;
+    chomp($hostname);
+    
+# Read the mysql.txt file in use by MythTV.
+# could be in a couple places, so try the usual suspects
+    my $found = 0;
+    my @mysql = ('/usr/share/mythtv/mysql.txt',
+                 '/usr/share/mythtv/mysql.txt',
+                 '/etc/mythtv/mysql.txt',
+                 '/usr/local/etc/mythtv/mysql.txt',
+                 "$ENV{HOME}/.mythtv/mysql.txt",
+                 'mysql.txt'
+                );
+    foreach my $file (@mysql) {
+        next unless (-e $file);
+        $found = 1;
+        open(CONF, $file) or die "Unable to open $file:  $!\n\n";
+        while (my $line = <CONF>) {
+        # Cleanup
+            next if ($line =~ /^\s*#/);
+            $line =~ s/^str //;
+            chomp($line);
+        # Split off the var=val pairs
+            my ($var, $val) = split(/\=/, $line, 2);
+            next unless ($var && $var =~ /\w/);
+            if ($var eq 'DBHostName') {
+                $db_host = $val;
+            }
+            elsif ($var eq 'DBUserName') {
+                $db_user = $val;
+            }
+            elsif ($var eq 'DBName') {
+                $db_name = $val;
+            }
+            elsif ($var eq 'DBPassword') {
+                $db_pass = $val;
+            }
+        # Hostname override
+            elsif ($var eq 'LocalHostName') {
+                $hostname = $val;
+            }
+        }
+        close CONF;
+    }
+    die "Unable to locate mysql.txt:  $!\n\n" unless ($found && $db_host);
+    return 0;
+}
+
+sub promptUser {
+   local($promptString,$defaultValue) = @_;
+   if ($defaultValue) {
+      print $promptString, "[", $defaultValue, "]: ";
+   } else {
+      print $promptString, ": ";
+   }
+
+   $| = 1;               # force a flush after our print
+   $_ = <STDIN>;         # get the input from STDIN (presumably the keyboard)
+   chomp;
+   if ("$defaultValue") {
+      return $_ ? $_ : $defaultValue;    # return $_ if it has a value
+   } else {
+      return $_;
+   }
+}
+
+sub DoSetup {
+	print "\nNot ready yet. How do you send the cd command from perl?\n";
+	return 0;
+}
diff --git a/abs/extra-testing/myth2ipod/myth2ipod.install b/abs/extra-testing/myth2ipod/myth2ipod.install
index a1c1ce7..43e3e78 100755
--- a/abs/extra-testing/myth2ipod/myth2ipod.install
+++ b/abs/extra-testing/myth2ipod/myth2ipod.install
@@ -13,9 +13,9 @@ pre_remove() {
 
 post_install() {
 	. /etc/systemconfig
-	mkdir /data/media/ipodfeed
-	chown mythtv:users /data/media/ipodfeed
-	ln -s /data/media/ipodfeed /data/srv/httpd/htdocs/ipodfeed
+	mkdir /myth/ipodfeed
+	chown mythtv:users /myth/ipodfeed
+	ln -s /myth/ipodfeed /data/srv/httpd/htdocs/ipodfeed
 	cp /usr/bin/myth2ipod /tmp
 	sed -e "s/REPLACEME/$hostname/g" /tmp/myth2ipod > /usr/bin/myth2ipod
 	
@@ -25,9 +25,9 @@ post_install() {
 post_upgrade() {
  
 	
-	mkdir /data/media/ipodfeed
-	chown mythtv:users /data/media/ipodfeed
-	ln -s /data/media/ipodfeed /data/srv/httpd/htdocs/ipodfeed
+	mkdir /myth/ipodfeed
+	chown mythtv:users /myth/ipodfeed
+	ln -s /myth/ipodfeed /data/srv/httpd/htdocs/ipodfeed
 	 /usr/bin/myth2ipod -rebuild
 }
 
@@ -38,4 +38,4 @@ post_remove() {
 op=$1
 shift
 
-$op $*
\ No newline at end of file
+$op $*
diff --git a/abs/extra-testing/myth2ipod/myth2ipod.patch b/abs/extra-testing/myth2ipod/myth2ipod.patch
deleted file mode 100755
index 95785ab..0000000
--- a/abs/extra-testing/myth2ipod/myth2ipod.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- myth2ipod.txt	2007-06-01 10:00:02.000000000 -0500
-+++ myth2ipod.txt.modified	2007-06-01 11:24:26.000000000 -0500
-@@ -12,10 +12,10 @@
- 	
- # User variables
- 	my $portable = "ipod";
--	my $feedfile = "/myth/ipodfeed/feed.php";
--	my $feedpath = "/myth/ipodfeed/";
--	my $wwwloc = "/var/www/";
--	my $feedurl = "http://hostname/ipodfeed/";
-+	my $feedfile = "/data/media/ipodfeed/feed.php";
-+	my $feedpath = "/data/media/ipodfeed/";
-+	my $wwwloc = "/data/srv/httpd/htdocs/";
-+	my $feedurl = "http://REPLACEME/ipodfeed/";
- 	my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
- 	
- # Some variables
-@@ -136,7 +136,7 @@
- 	# Create cutlist from commercial flagging if -cut was passed to the script
- 	if ($cut == 1){
- 	printf("Generating cutlist\n"); 
--	$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
-+	$cmd = "/usr/local/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
- 	print $cmd."\n"; 
- 	if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
- 	}
-@@ -147,7 +147,7 @@
- 	if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } 
- 	
- 	# Now clean up the output so iPods with firmware 1.1 and above can use it
--	$cmd = "/usr/local/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
-+	$cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
- 	print $cmd."\n"; 
- 	if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } 
- 	return 0;
diff --git a/abs/extra-testing/myth2ipod/myth2ipod.txt b/abs/extra-testing/myth2ipod/myth2ipod.txt
deleted file mode 100755
index d3d0dab..0000000
--- a/abs/extra-testing/myth2ipod/myth2ipod.txt
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/usr/bin/perl -w
-# VERSION: 1.0b2 - myth2ipod
-# Get the latest version, and change log at myth2ipod.com
-# Author: Chris aka Wififun - email: wififun@myth2ipod.com 
-# Contributions and testing by Paul Egli
-# modified to use nuvexport by starv at juniks dot org
-
-# Includes
-	use DBI;
-	use Getopt::Long;
-	use File::Path;
-	
-# User variables
-	my $portable = "ipod";
-	my $feedfile = "/myth/ipodfeed/feed.php";
-	my $feedpath = "/myth/ipodfeed/";
-	my $wwwloc = "/var/www/";
-	my $feedurl = "http://hostname/ipodfeed/";
-	my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
-	
-# Some variables
-	our ($dest, $format, $usage);
-	our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
-	our ($hostname, $db_handle, $sql, $statement, $row_ref);
-    our ($chanid, $start, $nuvfile, @nuvarray);	
-	my $rebuild = '0';
-	my $encode = '0';
-	my $debug = '0';
-	my $setup = '0';
-	my $cut = '0';
-	my( $rightnow ) = `date`; 
-
-GetOptions ("rebuild" => \$rebuild,
-			"encode"   => \$encode,
-			"debug"	=>	\$debug,
-			"setup" => \$setup,
-			"cut" => \$cut);
-
-if ($setup == 1){
-		system("clear");
-		print "Setup will do everything needed to run this script.\n";
-		print "This has only been tested on KnoppMyth R5A22.\n";
-		print "make sure you have edited the variables for your conguration.\n";
-		my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
-			if ($cksetup =~ "y") {
-				DoSetup();
-				exit;
-			}
-			print "Setup exited. Nothing done.\n";
-		exit;
-}
-elsif ($rebuild == 1){
-		GenerateRSSFeed();
-		print "Rebuilding of RSS feed is complete.\n";
-		exit;
-}
-else {
-		Encode4Portable();
-		print "$title is ready for your $portable\n";
-		
-		# Check to see if the feed file exists; if not, create it.
-		if (! -e $feedfile) { 
-		print "No feed file found. I will make one for you.\n";
-		GenerateRSSFeed();
-		print "All done.\n";
-		}
-}
-
-sub Encode4Portable{
-	if ($#ARGV != 1) { 
-		print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n"; 
-		exit; 
-	}
-	
-	# Get the show information
-	$directory = $ARGV[0]; 
-	$file = $ARGV[1]; 
-	@file = split(/_/, $file);
-		$chanid = $file[0];
-		$start = substr $file[1],0,14;
-		if($debug == 1){ print "$chanid\n$start\n"};
-	if (! -e $directory."/".$file){
-		print "Opps, the file ".$directory.$file." does not exist.\n";
-		exit;
-	}
-	
-	# Connect to the database
-	PrepSQLRead();
-	$db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
-	or die "Cannot connect to database: $!\n\n";
-		$sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
-
-		$statement = $db_handle->prepare($sql)
-			or die "Couldn't prepare query '$sql': $DBI::errstr\n";
-		
-		$statement->execute()
-		or die "Couldn't execute query '$sql': $DBI::errstr\n";
-		$row_ref = $statement->fetchrow_hashref();
-		if($debug == 1){ print "$row_ref->{starttime}\n"};
-	$title = $row_ref->{title}; 
-	$subtitle = $row_ref->{subtitle};
-	$recorddate = $row_ref->{starttime}; 
-	$description = $row_ref->{description};
-	$category = $row_ref->{category};
-	$filename = $title."-".$subtitle."-".substr $start, 0, 8;
-	$filename =~ s/ /_/g;
-	$filename =~ s/&/+/g;
-	$filename =~ s/\047//g;
-    $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
-    $filename =~ s/_$//g;
-		
-	printf("Starting nuvexport...\n"); 
-		EncodeIt(); 
-	printf("Nuvexport completed, starting xml generation...\n"); 
-		CreateItemXML(); 
-	printf("XML file created for \"$filename\" : Yipeee\n"); 
-	printf("Cleaning up temporary files\n"); 
-		$cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
-		print $cmd."\n";
-		if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
-		
-		# remove the cutlist incase we added it.
-		if ($cut == 1){
-		printf("Generating cutlist\n"); 
-		$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
-		print $cmd."\n"; 
-		if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
-		}
-	return 0;
-}
-
-#
-# Encode for Portable
-#
-sub EncodeIt { 
-	# Create cutlist from commercial flagging if -cut was passed to the script
-	if ($cut == 1){
-	printf("Generating cutlist\n"); 
-	$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
-	print $cmd."\n"; 
-	if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
-	}
-	
-	# Use nuvexport to do the work
-	$cmd = "/usr/local/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.temp --path=$feedpath";
-	print $cmd."\n"; 
-	if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } 
-	
-	# Now clean up the output so iPods with firmware 1.1 and above can use it
-	$cmd = "/usr/local/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
-	print $cmd."\n"; 
-	if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } 
-	return 0;
-}
-
-#
-# Create XML with <ITEM> tag for this video file
-#
-sub CreateItemXML {
-		open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
-			print ITEM "<item>\n";  
-			print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
-			print ITEM "<itunes:author>MythTV</itunes:author>\n";  
-			print ITEM "<author>MythTV</author>\n";  
-			print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
-			print ITEM "<comments>".&encodeForXML($file)."</comments>\n";  
-			print ITEM "<description>".&encodeForXML($description)."</description>\n";  
-			print ITEM "<pubDate>".$recorddate."</pubDate>\n";  
-			print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.mp4")."\" type=\"video/quicktime\" />\n";  
-			print ITEM "<itunes:duration></itunes:duration>\n";  
-			print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
-			print ITEM "<category>".&encodeForXML($category)."</category>\n";			
-			print ITEM "</item>\n";
-			print "\"$filename\" has been added to the feed.\n";
-		close(ITEM);
-	return 0;
-}
-
-#
-# Generate the RSS feed by combining the ITEM XML Files
-#
-sub GenerateRSSFeed {
-
-	open(RSS, ">$feedfile");
-		print RSS "<?php\n"; 
-		print RSS "header(\"Content-Type: text/xml\");\n"; 
-		print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n"; 
-		print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n"; 
-		print RSS "<channel>\n"; 
-		print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
-		print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
-		print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n"; 
-		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
-		print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n"; 
-		print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n"; 
-		print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n"; 
-		print RSS "<itunes:owner>\n"; 
-		print RSS "<itunes:name>MythTV</itunes:name>\n"; 
-		print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n"; 
-		print RSS "</itunes:owner>\n"; 
-		print RSS "<itunes:explicit>No</itunes:explicit>\n"; 
-		print RSS "<language>en-us</language>\n"; 
-		print RSS "<copyright>Copyright 2005.</copyright>\n"; 
-		print RSS "<webMaster>mythtv\@localhost</webMaster>\n"; 
-		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n"; 
-		print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n"; 
-		print RSS "<category>TV Shows</category>\n";
-		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
-		print RSS "<image>"; 
-		print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
-		print RSS "<title>MythTV 2 iPod</title>\n";
-		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";	
-		print RSS "<width>200</width>\n";		
-		print RSS "<height>200</height>\n";		
-		print RSS "</image>\n";
-		print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
-		print RSS "</channel>\n"; 
-		print RSS "</rss>\n";
- 	close(RSS);
-	if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
-
-	return 0;
-}
-
-# substitute for XML entities
-sub encodeForXML {
-	local $result;
-	$result = $_[0];
-	$result =~ s/&/&amp;/g;
-	$result =~ s/</&lt;/g;
-	$result =~ s/>/&gt;/g;
-	$result;
-}
-
-
-#
-# This code taken from one of the mythlink.sh scripts to get MySQL information
-#
-sub PrepSQLRead{
-# Get the hostname of this machine
-    $hostname = `hostname`;
-    chomp($hostname);
-    
-# Read the mysql.txt file in use by MythTV.
-# could be in a couple places, so try the usual suspects
-    my $found = 0;
-    my @mysql = ('/usr/local/share/mythtv/mysql.txt',
-                 '/usr/share/mythtv/mysql.txt',
-                 '/etc/mythtv/mysql.txt',
-                 '/usr/local/etc/mythtv/mysql.txt',
-                 "$ENV{HOME}/.mythtv/mysql.txt",
-                 'mysql.txt'
-                );
-    foreach my $file (@mysql) {
-        next unless (-e $file);
-        $found = 1;
-        open(CONF, $file) or die "Unable to open $file:  $!\n\n";
-        while (my $line = <CONF>) {
-        # Cleanup
-            next if ($line =~ /^\s*#/);
-            $line =~ s/^str //;
-            chomp($line);
-        # Split off the var=val pairs
-            my ($var, $val) = split(/\=/, $line, 2);
-            next unless ($var && $var =~ /\w/);
-            if ($var eq 'DBHostName') {
-                $db_host = $val;
-            }
-            elsif ($var eq 'DBUserName') {
-                $db_user = $val;
-            }
-            elsif ($var eq 'DBName') {
-                $db_name = $val;
-            }
-            elsif ($var eq 'DBPassword') {
-                $db_pass = $val;
-            }
-        # Hostname override
-            elsif ($var eq 'LocalHostName') {
-                $hostname = $val;
-            }
-        }
-        close CONF;
-    }
-    die "Unable to locate mysql.txt:  $!\n\n" unless ($found && $db_host);
-    return 0;
-}
-
-sub promptUser {
-   local($promptString,$defaultValue) = @_;
-   if ($defaultValue) {
-      print $promptString, "[", $defaultValue, "]: ";
-   } else {
-      print $promptString, ": ";
-   }
-
-   $| = 1;               # force a flush after our print
-   $_ = <STDIN>;         # get the input from STDIN (presumably the keyboard)
-   chomp;
-   if ("$defaultValue") {
-      return $_ ? $_ : $defaultValue;    # return $_ if it has a value
-   } else {
-      return $_;
-   }
-}
-
-sub DoSetup {
-	print "\nNot ready yet. How do you send the cd command from perl?\n";
-	return 0;
-}
diff --git a/abs/extra-testing/myth2ipod/myth2ipod.txt.modified b/abs/extra-testing/myth2ipod/myth2ipod.txt.modified
deleted file mode 100755
index ab41a2f..0000000
--- a/abs/extra-testing/myth2ipod/myth2ipod.txt.modified
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/usr/bin/perl -w
-# VERSION: 1.0b2 - myth2ipod
-# Get the latest version, and change log at myth2ipod.com
-# Author: Chris aka Wififun - email: wififun@myth2ipod.com 
-# Contributions and testing by Paul Egli
-# modified to use nuvexport by starv at juniks dot org
-
-# Includes
-	use DBI;
-	use Getopt::Long;
-	use File::Path;
-	
-# User variables
-	my $portable = "ipod";
-	my $feedfile = "/data/media/feed.php";
-	my $feedpath = "/data/media/";
-	my $wwwloc = "/data/srv/httpd/htdocs/";
-	my $feedurl = "http://REPLACEME/ipodfeed/";
-	my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
-	
-# Some variables
-	our ($dest, $format, $usage);
-	our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
-	our ($hostname, $db_handle, $sql, $statement, $row_ref);
-    our ($chanid, $start, $nuvfile, @nuvarray);	
-	my $rebuild = '0';
-	my $encode = '0';
-	my $debug = '0';
-	my $setup = '0';
-	my $cut = '0';
-	my( $rightnow ) = `date`; 
-
-GetOptions ("rebuild" => \$rebuild,
-			"encode"   => \$encode,
-			"debug"	=>	\$debug,
-			"setup" => \$setup,
-			"cut" => \$cut);
-
-if ($setup == 1){
-		system("clear");
-		print "Setup will do everything needed to run this script.\n";
-		print "This has only been tested on KnoppMyth R5A22.\n";
-		print "make sure you have edited the variables for your conguration.\n";
-		my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
-			if ($cksetup =~ "y") {
-				DoSetup();
-				exit;
-			}
-			print "Setup exited. Nothing done.\n";
-		exit;
-}
-elsif ($rebuild == 1){
-		GenerateRSSFeed();
-		print "Rebuilding of RSS feed is complete.\n";
-		exit;
-}
-else {
-		Encode4Portable();
-		print "$title is ready for your $portable\n";
-		
-		# Check to see if the feed file exists; if not, create it.
-		if (! -e $feedfile) { 
-		print "No feed file found. I will make one for you.\n";
-		GenerateRSSFeed();
-		print "All done.\n";
-		}
-}
-
-sub Encode4Portable{
-	if ($#ARGV != 1) { 
-		print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n"; 
-		exit; 
-	}
-	
-	# Get the show information
-	$directory = $ARGV[0]; 
-	$file = $ARGV[1]; 
-	@file = split(/_/, $file);
-		$chanid = $file[0];
-		$start = substr $file[1],0,14;
-		if($debug == 1){ print "$chanid\n$start\n"};
-	if (! -e $directory."/".$file){
-		print "Opps, the file ".$directory.$file." does not exist.\n";
-		exit;
-	}
-	
-	# Connect to the database
-	PrepSQLRead();
-	$db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
-	or die "Cannot connect to database: $!\n\n";
-		$sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
-
-		$statement = $db_handle->prepare($sql)
-			or die "Couldn't prepare query '$sql': $DBI::errstr\n";
-		
-		$statement->execute()
-		or die "Couldn't execute query '$sql': $DBI::errstr\n";
-		$row_ref = $statement->fetchrow_hashref();
-		if($debug == 1){ print "$row_ref->{starttime}\n"};
-	$title = $row_ref->{title}; 
-	$subtitle = $row_ref->{subtitle};
-	$recorddate = $row_ref->{starttime}; 
-	$description = $row_ref->{description};
-	$category = $row_ref->{category};
-	$filename = $title."-".$subtitle."-".substr $start, 0, 8;
-	$filename =~ s/ /_/g;
-	$filename =~ s/&/+/g;
-	$filename =~ s/\047//g;
-    $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
-    $filename =~ s/_$//g;
-		
-	printf("Starting nuvexport...\n"); 
-		EncodeIt(); 
-	printf("Nuvexport completed, starting xml generation...\n"); 
-		CreateItemXML(); 
-	printf("XML file created for \"$filename\" : Yipeee\n"); 
-	printf("Cleaning up temporary files\n"); 
-		$cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
-		print $cmd."\n";
-		if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
-		
-		# remove the cutlist incase we added it.
-		if ($cut == 1){
-		printf("Generating cutlist\n"); 
-		$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
-		print $cmd."\n"; 
-		if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
-		}
-	return 0;
-}
-
-#
-# Encode for Portable
-#
-sub EncodeIt { 
-	# Create cutlist from commercial flagging if -cut was passed to the script
-	if ($cut == 1){
-	printf("Generating cutlist\n"); 
-	$cmd = "/usr/local/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
-	print $cmd."\n"; 
-	if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
-	}
-	
-	# Use nuvexport to do the work
-	$cmd = "/usr/local/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.temp --path=$feedpath";
-	print $cmd."\n"; 
-	if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } 
-	
-	# Now clean up the output so iPods with firmware 1.1 and above can use it
-	$cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
-	print $cmd."\n"; 
-	if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } 
-	return 0;
-}
-
-#
-# Create XML with <ITEM> tag for this video file
-#
-sub CreateItemXML {
-		open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
-			print ITEM "<item>\n";  
-			print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
-			print ITEM "<itunes:author>MythTV</itunes:author>\n";  
-			print ITEM "<author>MythTV</author>\n";  
-			print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
-			print ITEM "<comments>".&encodeForXML($file)."</comments>\n";  
-			print ITEM "<description>".&encodeForXML($description)."</description>\n";  
-			print ITEM "<pubDate>".$recorddate."</pubDate>\n";  
-			print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.mp4")."\" type=\"video/quicktime\" />\n";  
-			print ITEM "<itunes:duration></itunes:duration>\n";  
-			print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
-			print ITEM "<category>".&encodeForXML($category)."</category>\n";			
-			print ITEM "</item>\n";
-			print "\"$filename\" has been added to the feed.\n";
-		close(ITEM);
-	return 0;
-}
-
-#
-# Generate the RSS feed by combining the ITEM XML Files
-#
-sub GenerateRSSFeed {
-
-	open(RSS, ">$feedfile");
-		print RSS "<?php\n"; 
-		print RSS "header(\"Content-Type: text/xml\");\n"; 
-		print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n"; 
-		print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n"; 
-		print RSS "<channel>\n"; 
-		print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
-		print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
-		print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n"; 
-		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
-		print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n"; 
-		print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n"; 
-		print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n"; 
-		print RSS "<itunes:owner>\n"; 
-		print RSS "<itunes:name>MythTV</itunes:name>\n"; 
-		print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n"; 
-		print RSS "</itunes:owner>\n"; 
-		print RSS "<itunes:explicit>No</itunes:explicit>\n"; 
-		print RSS "<language>en-us</language>\n"; 
-		print RSS "<copyright>Copyright 2005.</copyright>\n"; 
-		print RSS "<webMaster>mythtv\@localhost</webMaster>\n"; 
-		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n"; 
-		print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n"; 
-		print RSS "<category>TV Shows</category>\n";
-		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
-		print RSS "<image>"; 
-		print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
-		print RSS "<title>MythTV 2 iPod</title>\n";
-		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";	
-		print RSS "<width>200</width>\n";		
-		print RSS "<height>200</height>\n";		
-		print RSS "</image>\n";
-		print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
-		print RSS "</channel>\n"; 
-		print RSS "</rss>\n";
- 	close(RSS);
-	if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
-
-	return 0;
-}
-
-# substitute for XML entities
-sub encodeForXML {
-	local $result;
-	$result = $_[0];
-	$result =~ s/&/&amp;/g;
-	$result =~ s/</&lt;/g;
-	$result =~ s/>/&gt;/g;
-	$result;
-}
-
-
-#
-# This code taken from one of the mythlink.sh scripts to get MySQL information
-#
-sub PrepSQLRead{
-# Get the hostname of this machine
-    $hostname = `hostname`;
-    chomp($hostname);
-    
-# Read the mysql.txt file in use by MythTV.
-# could be in a couple places, so try the usual suspects
-    my $found = 0;
-    my @mysql = ('/usr/local/share/mythtv/mysql.txt',
-                 '/usr/share/mythtv/mysql.txt',
-                 '/etc/mythtv/mysql.txt',
-                 '/usr/local/etc/mythtv/mysql.txt',
-                 "$ENV{HOME}/.mythtv/mysql.txt",
-                 'mysql.txt'
-                );
-    foreach my $file (@mysql) {
-        next unless (-e $file);
-        $found = 1;
-        open(CONF, $file) or die "Unable to open $file:  $!\n\n";
-        while (my $line = <CONF>) {
-        # Cleanup
-            next if ($line =~ /^\s*#/);
-            $line =~ s/^str //;
-            chomp($line);
-        # Split off the var=val pairs
-            my ($var, $val) = split(/\=/, $line, 2);
-            next unless ($var && $var =~ /\w/);
-            if ($var eq 'DBHostName') {
-                $db_host = $val;
-            }
-            elsif ($var eq 'DBUserName') {
-                $db_user = $val;
-            }
-            elsif ($var eq 'DBName') {
-                $db_name = $val;
-            }
-            elsif ($var eq 'DBPassword') {
-                $db_pass = $val;
-            }
-        # Hostname override
-            elsif ($var eq 'LocalHostName') {
-                $hostname = $val;
-            }
-        }
-        close CONF;
-    }
-    die "Unable to locate mysql.txt:  $!\n\n" unless ($found && $db_host);
-    return 0;
-}
-
-sub promptUser {
-   local($promptString,$defaultValue) = @_;
-   if ($defaultValue) {
-      print $promptString, "[", $defaultValue, "]: ";
-   } else {
-      print $promptString, ": ";
-   }
-
-   $| = 1;               # force a flush after our print
-   $_ = <STDIN>;         # get the input from STDIN (presumably the keyboard)
-   chomp;
-   if ("$defaultValue") {
-      return $_ ? $_ : $defaultValue;    # return $_ if it has a value
-   } else {
-      return $_;
-   }
-}
-
-sub DoSetup {
-	print "\nNot ready yet. How do you send the cd command from perl?\n";
-	return 0;
-}
-- 
cgit v0.12


From 0009bffd7067606a96b9354f8fc2e6ad7d8c0815 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 19 Jul 2009 00:14:44 -0700
Subject: Myth2Ipod:Fixed locate of htdocs.

---
 abs/extra-testing/myth2ipod/PKGBUILD  | 2 +-
 abs/extra-testing/myth2ipod/myth2ipod | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/extra-testing/myth2ipod/PKGBUILD b/abs/extra-testing/myth2ipod/PKGBUILD
index 4a4f3bf..80a8613 100755
--- a/abs/extra-testing/myth2ipod/PKGBUILD
+++ b/abs/extra-testing/myth2ipod/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=myth2ipod
 pkgver=0.2
-pkgrel=16
+pkgrel=17
 arch=("i686")
 pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
 url="myth2ipod.com"
diff --git a/abs/extra-testing/myth2ipod/myth2ipod b/abs/extra-testing/myth2ipod/myth2ipod
index 73ca886..84a3ac0 100755
--- a/abs/extra-testing/myth2ipod/myth2ipod
+++ b/abs/extra-testing/myth2ipod/myth2ipod
@@ -14,7 +14,7 @@
 	my $portable = "ipod";
 	my $feedfile = "/myth/ipodfeed/feed.php";
 	my $feedpath = "/myth/ipodfeed/";
-	my $wwwloc = "/var/www/";
+	my $wwwloc = "/data/srv/httpd/htdocs";
 	my $feedurl = "http://REPLACEME/ipodfeed/";
 	my $nuvoptions ="--mode=iPod --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
 	
-- 
cgit v0.12


From 3a6c9ac5490d235e388cbe2daf3196dfd0d5f3d8 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 19 Jul 2009 00:25:03 -0700
Subject: Myth2Xvid:Initial inclusion.

---
 abs/extra-testing/myth2xvid/PKGBUILD             |  18 ++
 abs/extra-testing/myth2xvid/myth2xvid            | 310 +++++++++++++++++++++++
 abs/extra-testing/myth2xvid/myth2xvid-userjob.sh |   6 +
 abs/extra-testing/myth2xvid/myth2xvid.install    |  41 +++
 4 files changed, 375 insertions(+)
 create mode 100755 abs/extra-testing/myth2xvid/PKGBUILD
 create mode 100755 abs/extra-testing/myth2xvid/myth2xvid
 create mode 100755 abs/extra-testing/myth2xvid/myth2xvid-userjob.sh
 create mode 100755 abs/extra-testing/myth2xvid/myth2xvid.install

diff --git a/abs/extra-testing/myth2xvid/PKGBUILD b/abs/extra-testing/myth2xvid/PKGBUILD
new file mode 100755
index 0000000..5e057dd
--- /dev/null
+++ b/abs/extra-testing/myth2xvid/PKGBUILD
@@ -0,0 +1,18 @@
+pkgname=myth2xvid
+pkgver=0.1
+pkgrel=1
+arch=("i686")
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+url="http://www.knoppmythwiki.org/index.php?page=XvidEncoding"
+depends=('nuvexport')
+install="myth2xvid.install"
+source=( myth2xvid myth2xvid-userjob.sh)
+
+
+build() {
+	cd $startdir/src
+	install -D -m 755 myth2xvid $startdir/pkg/usr/bin/myth2xvid
+	install -D -m 755 myth2xvid-userjob.sh /$startdir/pkg/usr/bin/myth2xvid-userjob.sh
+
+
+}
diff --git a/abs/extra-testing/myth2xvid/myth2xvid b/abs/extra-testing/myth2xvid/myth2xvid
new file mode 100755
index 0000000..6c24e08
--- /dev/null
+++ b/abs/extra-testing/myth2xvid/myth2xvid
@@ -0,0 +1,310 @@
+#!/usr/bin/perl -w
+# VERSION: 1.0b2 - myth2ipod
+# Get the latest version, and change log at myth2ipod.com
+# Author: Chris aka Wififun - email: wififun@myth2ipod.com 
+# Contributions and testing by Paul Egli
+# modified to use nuvexport by starv at juniks dot org
+
+# Includes
+	use DBI;
+	use Getopt::Long;
+	use File::Path;
+	
+# User variables
+	my $portable = "XviD";
+	my $feedfile = "/myth/video/archive/feed.php";
+	my $feedpath = "/myth/video/archive";
+	my $wwwloc = "/data/srv/httpd/htdocs";
+	my $feedurl = "http://REPLACEME/archive/";
+	my $nuvoptions ="--mode=XviD --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
+	
+# Some variables
+	our ($dest, $format, $usage);
+	our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
+	our ($hostname, $db_handle, $sql, $statement, $row_ref);
+    our ($chanid, $start, $nuvfile, @nuvarray);	
+	my $rebuild = '0';
+	my $encode = '0';
+	my $debug = '0';
+	my $setup = '0';
+	my $cut = '0';
+	my( $rightnow ) = `date`; 
+
+GetOptions ("rebuild" => \$rebuild,
+			"encode"   => \$encode,
+			"debug"	=>	\$debug,
+			"setup" => \$setup,
+			"cut" => \$cut);
+
+if ($setup == 1){
+		system("clear");
+		print "Setup will do everything needed to run this script.\n";
+		print "This has only been tested on KnoppMyth R5A22.\n";
+		print "make sure you have edited the variables for your conguration.\n";
+		my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
+			if ($cksetup =~ "y") {
+				DoSetup();
+				exit;
+			}
+			print "Setup exited. Nothing done.\n";
+		exit;
+}
+elsif ($rebuild == 1){
+		GenerateRSSFeed();
+		print "Rebuilding of RSS feed is complete.\n";
+		exit;
+}
+else {
+		Encode4Portable();
+		print "$title is ready for your $portable\n";
+		
+		# Check to see if the feed file exists; if not, create it.
+		if (! -e $feedfile) { 
+		print "No feed file found. I will make one for you.\n";
+		GenerateRSSFeed();
+		print "All done.\n";
+		}
+}
+
+sub Encode4Portable{
+	if ($#ARGV != 1) { 
+		print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n"; 
+		exit; 
+	}
+	
+	# Get the show information
+	$directory = $ARGV[0]; 
+	$file = $ARGV[1]; 
+	@file = split(/_/, $file);
+		$chanid = $file[0];
+		$start = substr $file[1],0,14;
+		if($debug == 1){ print "$chanid\n$start\n"};
+	if (! -e $directory."/".$file){
+		print "Opps, the file ".$directory.$file." does not exist.\n";
+		exit;
+	}
+	
+	# Connect to the database
+	PrepSQLRead();
+	$db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
+	or die "Cannot connect to database: $!\n\n";
+		$sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
+
+		$statement = $db_handle->prepare($sql)
+			or die "Couldn't prepare query '$sql': $DBI::errstr\n";
+		
+		$statement->execute()
+		or die "Couldn't execute query '$sql': $DBI::errstr\n";
+		$row_ref = $statement->fetchrow_hashref();
+		if($debug == 1){ print "$row_ref->{starttime}\n"};
+	$title = $row_ref->{title}; 
+	$subtitle = $row_ref->{subtitle};
+	$recorddate = $row_ref->{starttime}; 
+	$description = $row_ref->{description};
+	$category = $row_ref->{category};
+	$filename = $title."-".$subtitle."-".substr $start, 0, 8;
+	$filename =~ s/ /_/g;
+	$filename =~ s/&/+/g;
+	$filename =~ s/\047//g;
+    $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
+    $filename =~ s/_$//g;
+		
+	printf("Starting nuvexport...\n"); 
+		EncodeIt(); 
+	printf("Nuvexport completed, starting xml generation...\n"); 
+		CreateItemXML(); 
+	printf("XML file created for \"$filename\" : Yipeee\n"); 
+	printf("Cleaning up temporary files\n"); 
+		$cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
+		print $cmd."\n";
+		if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
+		
+		# remove the cutlist incase we added it.
+		if ($cut == 1){
+		printf("Generating cutlist\n"); 
+		$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
+		print $cmd."\n"; 
+		if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
+		}
+	return 0;
+}
+
+#
+# Encode for Portable
+#
+sub EncodeIt { 
+	# Create cutlist from commercial flagging if -cut was passed to the script
+	if ($cut == 1){
+	printf("Generating cutlist\n"); 
+	$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
+	print $cmd."\n"; 
+	if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
+	}
+	
+	# Use nuvexport to do the work
+	$cmd = "/usr/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.$portable --path=$feedpath";
+	print $cmd."\n"; 
+	if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } 
+	
+	# Now clean up the output so iPods with firmware 1.1 and above can use it
+#	$cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
+#	print $cmd."\n"; 
+#	if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } 
+	return 0;
+}
+
+#
+# Create XML with <ITEM> tag for this video file
+#
+sub CreateItemXML {
+		open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
+			print ITEM "<item>\n";  
+			print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
+			print ITEM "<itunes:author>MythTV</itunes:author>\n";  
+			print ITEM "<author>MythTV</author>\n";  
+			print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+			print ITEM "<comments>".&encodeForXML($file)."</comments>\n";  
+			print ITEM "<description>".&encodeForXML($description)."</description>\n";  
+			print ITEM "<pubDate>".$recorddate."</pubDate>\n";  
+			print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.avi")."\" type=\"video/quicktime\" />\n";  
+			print ITEM "<itunes:duration></itunes:duration>\n";  
+			print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
+			print ITEM "<category>".&encodeForXML($category)."</category>\n";			
+			print ITEM "</item>\n";
+			print "\"$filename\" has been added to the feed.\n";
+		close(ITEM);
+	return 0;
+}
+
+#
+# Generate the RSS feed by combining the ITEM XML Files
+#
+sub GenerateRSSFeed {
+
+	open(RSS, ">$feedfile");
+		print RSS "<?php\n"; 
+		print RSS "header(\"Content-Type: text/xml\");\n"; 
+		print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n"; 
+		print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n"; 
+		print RSS "<channel>\n"; 
+		print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
+		print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
+		print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n"; 
+		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+		print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n"; 
+		print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n"; 
+		print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n"; 
+		print RSS "<itunes:owner>\n"; 
+		print RSS "<itunes:name>MythTV</itunes:name>\n"; 
+		print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n"; 
+		print RSS "</itunes:owner>\n"; 
+		print RSS "<itunes:explicit>No</itunes:explicit>\n"; 
+		print RSS "<language>en-us</language>\n"; 
+		print RSS "<copyright>Copyright 2005.</copyright>\n"; 
+		print RSS "<webMaster>mythtv\@localhost</webMaster>\n"; 
+		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n"; 
+		print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n"; 
+		print RSS "<category>TV Shows</category>\n";
+		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
+		print RSS "<image>"; 
+		print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
+		print RSS "<title>MythTV 2 iPod</title>\n";
+		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";	
+		print RSS "<width>200</width>\n";		
+		print RSS "<height>200</height>\n";		
+		print RSS "</image>\n";
+		print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
+		print RSS "</channel>\n"; 
+		print RSS "</rss>\n";
+ 	close(RSS);
+	if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
+
+	return 0;
+}
+
+# substitute for XML entities
+sub encodeForXML {
+	local $result;
+	$result = $_[0];
+	$result =~ s/&/&amp;/g;
+	$result =~ s/</&lt;/g;
+	$result =~ s/>/&gt;/g;
+	$result;
+}
+
+
+#
+# This code taken from one of the mythlink.sh scripts to get MySQL information
+#
+sub PrepSQLRead{
+# Get the hostname of this machine
+    $hostname = `hostname`;
+    chomp($hostname);
+    
+# Read the mysql.txt file in use by MythTV.
+# could be in a couple places, so try the usual suspects
+    my $found = 0;
+    my @mysql = ('/usr/share/mythtv/mysql.txt',
+                 '/usr/share/mythtv/mysql.txt',
+                 '/etc/mythtv/mysql.txt',
+                 '/usr/local/etc/mythtv/mysql.txt',
+                 "$ENV{HOME}/.mythtv/mysql.txt",
+                 'mysql.txt'
+                );
+    foreach my $file (@mysql) {
+        next unless (-e $file);
+        $found = 1;
+        open(CONF, $file) or die "Unable to open $file:  $!\n\n";
+        while (my $line = <CONF>) {
+        # Cleanup
+            next if ($line =~ /^\s*#/);
+            $line =~ s/^str //;
+            chomp($line);
+        # Split off the var=val pairs
+            my ($var, $val) = split(/\=/, $line, 2);
+            next unless ($var && $var =~ /\w/);
+            if ($var eq 'DBHostName') {
+                $db_host = $val;
+            }
+            elsif ($var eq 'DBUserName') {
+                $db_user = $val;
+            }
+            elsif ($var eq 'DBName') {
+                $db_name = $val;
+            }
+            elsif ($var eq 'DBPassword') {
+                $db_pass = $val;
+            }
+        # Hostname override
+            elsif ($var eq 'LocalHostName') {
+                $hostname = $val;
+            }
+        }
+        close CONF;
+    }
+    die "Unable to locate mysql.txt:  $!\n\n" unless ($found && $db_host);
+    return 0;
+}
+
+sub promptUser {
+   local($promptString,$defaultValue) = @_;
+   if ($defaultValue) {
+      print $promptString, "[", $defaultValue, "]: ";
+   } else {
+      print $promptString, ": ";
+   }
+
+   $| = 1;               # force a flush after our print
+   $_ = <STDIN>;         # get the input from STDIN (presumably the keyboard)
+   chomp;
+   if ("$defaultValue") {
+      return $_ ? $_ : $defaultValue;    # return $_ if it has a value
+   } else {
+      return $_;
+   }
+}
+
+sub DoSetup {
+	print "\nNot ready yet. How do you send the cd command from perl?\n";
+	return 0;
+}
diff --git a/abs/extra-testing/myth2xvid/myth2xvid-userjob.sh b/abs/extra-testing/myth2xvid/myth2xvid-userjob.sh
new file mode 100755
index 0000000..9ed65b2
--- /dev/null
+++ b/abs/extra-testing/myth2xvid/myth2xvid-userjob.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+. /etc/profile
+#su  mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2"  >/tmp/logfile"
+su  mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2" "
+#or to also use commercial flagging cutlist
+#su  mythtv -c "TERM=vt100 /usr/bin/myth2ipod -cut "$1" "$2"  >/tmp/logfile"
diff --git a/abs/extra-testing/myth2xvid/myth2xvid.install b/abs/extra-testing/myth2xvid/myth2xvid.install
new file mode 100755
index 0000000..9e8ba23
--- /dev/null
+++ b/abs/extra-testing/myth2xvid/myth2xvid.install
@@ -0,0 +1,41 @@
+
+pre_install() {
+	echo ""
+}
+
+pre_upgrade() {
+  pre_install
+}
+
+pre_remove() {
+  pre_install
+}
+
+post_install() {
+	. /etc/systemconfig
+	mkdir /myth/video/archive
+	chown mythtv:users /myth/video/archive
+	ln -s /myth/video/archive /data/srv/httpd/htdocs/archive
+	cp /usr/bin/myth2xvid /tmp
+	sed -e "s/REPLACEME/$hostname/g" /tmp/myth2xvid > /usr/bin/myth2xvid
+	
+	
+}
+
+post_upgrade() {
+ 
+	
+	mkdir /myth/video/archive
+	chown mythtv:users /myth/video/archive
+	ln -s /myth/video/archive /data/srv/httpd/htdocs/archive
+	/usr/bin/myth2xvid -rebuild
+}
+
+post_remove() {
+  post_install
+}
+
+op=$1
+shift
+
+$op $*
-- 
cgit v0.12


From 2df2b7c51c97f29e45f0005bf77275fd5d208a65 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 19 Jul 2009 02:38:29 -0700
Subject: LinHES-config:Removes unichrome-dri.

---
 abs/core-testing/LinHES-config/PKGBUILD   | 2 +-
 abs/core-testing/LinHES-config/xconfig.sh | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index 0094f57..aba0adf 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.0
-pkgrel=58
+pkgrel=59
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
 pkgdesc="Install and configure your system"
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted sg3_utils nmbscan system-templates rsync python-parted ddcxinfo python-pexpect python-netifaces LinHES-timezone python-iplib)
diff --git a/abs/core-testing/LinHES-config/xconfig.sh b/abs/core-testing/LinHES-config/xconfig.sh
index b2b95f3..008d45e 100755
--- a/abs/core-testing/LinHES-config/xconfig.sh
+++ b/abs/core-testing/LinHES-config/xconfig.sh
@@ -3,7 +3,7 @@
 #SET DISPLAYRES to force Xres, ENV takes precendent over cmdline
 #displayres=cmdline
 #NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel unichrome-dri xf86-video-unichrome xf86-video-mga xf86-video-savage xf86-video-trident"
-NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel xf86-video-mga xf86-video-savage xf86-video-trident xf86-video-openchrome"
+NVPKGS="ati-dri xf86-video-ati xf86-video-radeonhd intel-dri xf86-video-intel xf86-video-mga xf86-video-savage xf86-video-trident unichrome-dri xf86-video-openchrome"
 BASE=""
 . /etc/profile
 NVIDIA_96XX="$TEMPLATES/xorg/96xx_supported.txt"
-- 
cgit v0.12


From b777da118a46c73f5dba3f47d302debd39bf94fa Mon Sep 17 00:00:00 2001
From: Unconfigured <Unconfigured>
Date: Sun, 19 Jul 2009 21:54:56 +0930
Subject: tweaker: add usb tuner support for Dvico DD4 rev2

---
 abs/core-testing/tweaker/PKGBUILD          |  2 +-
 abs/core-testing/tweaker/bin/twk_tuners.pl | 71 +++++++++++++++++++++++++++++-
 2 files changed, 70 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index 84f4f9e..dbbe914 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=tweaker
 pkgver=1
-pkgrel=42
+pkgrel=43
 pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/tweaker/bin/twk_tuners.pl b/abs/core-testing/tweaker/bin/twk_tuners.pl
index f928ea7..ff62b5e 100755
--- a/abs/core-testing/tweaker/bin/twk_tuners.pl
+++ b/abs/core-testing/tweaker/bin/twk_tuners.pl
@@ -109,6 +109,11 @@ my @capture_card_patterns = (
 
 # USB patterns
 
+my @usb_capture_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
@@ -151,6 +156,9 @@ sub implement_option {
 	# Get a list of all PCI devices for later processing
 	my @lspci = split('\n', execute_shell_command("lspci -mn"));
 
+	# Get a list of all USB devices for later processing
+	my @lsusb = split('\n', execute_shell_command("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.
@@ -339,7 +347,7 @@ sub implement_option {
 	# Configure each supported tuner/capture device detected on the system.
 
 	# built-in, PCI, or PCI Express
-	$logger->debug("Processing local devices...");
+	$logger->debug("Processing built-in, PCI, or PCI Express devices...");
 	for my $pci_device (@lspci) {
 	    $logger->debug("DEVICE: $pci_device");
 	    my $match=0;
@@ -459,7 +467,66 @@ sub implement_option {
 	
 	# USB devices
 	$logger->debug("Processing USB devices...");
-	$logger->debug("\t(no USB devices supported yet)");
+	for my $usb_device (@lsusb) {
+	    $logger->debug("DEVICE: $usb_device");
+	    my $match=0;
+
+	    for my $usb_device_data (@usb_capture_patterns) {
+		$logger->debug("\tIs there a @$usb_device_data[0] at this location?");
+
+		for my $patterns (@$usb_device_data[1]) {
+		    for my $pattern (@$patterns) {
+			if ($match) {
+			    next;
+			} else {
+			    $logger->debug("\t\tPATTERN: $pattern");
+			    $match += ($usb_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 (@$usb_device_data[2]) {
+				    my $usb_device_type = @$typeblock[0];
+				    $logger->debug("\t\tDEVICE TYPE: $usb_device_type"); # e.g. "DVB", "MPEG", etc.
+				    $cardtypes{$usb_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{$usb_device_type}-1, $usb_device_type, -1);
+
+				    #
+				    # POPULATE cardinput table
+				    #
+				    make_cardinput_SQL($global_device_count, $sourceid, $defaultinput, 0);
+				}
+			    }
+			}
+		    }
+		}
+	    }
+	}
 
 	# Filesystem Tweaks for tuners
 	# This only works with the Nova-T-500 card, but it doesn't hurt any other cards
-- 
cgit v0.12


From 53f8e3e3aefff6a11d7bdb4262436978532317a4 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 19 Jul 2009 16:47:51 -0700
Subject: faad2:Updated for new FFMPEG.

---
 abs/core-testing/faad2/ChangeLog | 12 ++++++++++++
 abs/core-testing/faad2/LICENSE   | 28 ++++++++++++++++++++-------
 abs/core-testing/faad2/PKGBUILD  | 41 +++++++++++-----------------------------
 3 files changed, 44 insertions(+), 37 deletions(-)

diff --git a/abs/core-testing/faad2/ChangeLog b/abs/core-testing/faad2/ChangeLog
index b4073ba..ed5548b 100644
--- a/abs/core-testing/faad2/ChangeLog
+++ b/abs/core-testing/faad2/ChangeLog
@@ -1,3 +1,15 @@
+2009-02-16  Eric Belanger  <eric@archlinux.org>
+
+	* faad2 2.7-1
+	* Upstream update
+	* Updated LICENSE file
+	* Compiled with -fPIC option
+
+2009-01-05  Eric Belanger  <eric@archlinux.org>
+
+	* faad2 2.6.1-2
+	* Applied security patch
+
 2008-07-19  Eric Belanger  <eric@archlinux.org>
 
 	* faad2 2.6.1-1
diff --git a/abs/core-testing/faad2/LICENSE b/abs/core-testing/faad2/LICENSE
index ecb2c75..a16abf6 100644
--- a/abs/core-testing/faad2/LICENSE
+++ b/abs/core-testing/faad2/LICENSE
@@ -1,19 +1,24 @@
-/*
+__________
+COPYRIGHTS
+
+For FAAD2 the following license applies:
+
+******************************************************************************
 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
 ** Copyright (C) 2003-2005 M. Bakker, Nero AG, http://www.nero.com
-**  
+**
 ** 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 2 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, write to the Free Software 
+** along with this program; if not, write to the Free Software
 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 **
 ** Any non-GPL usage of this software or parts of this software is strictly
@@ -24,5 +29,14 @@
 **
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Nero AG through Mpeg4AAClicense@nero.com.
-**
-*/
+******************************************************************************
+
+
+Please note that the use of this software may require the payment of
+patent royalties. You need to consider this issue before you start
+building derivative works. We are not warranting or indemnifying you in
+any way for patent royalities! YOU ARE SOLELY RESPONSIBLE FOR YOUR OWN
+ACTIONS!
+
+
+______
diff --git a/abs/core-testing/faad2/PKGBUILD b/abs/core-testing/faad2/PKGBUILD
index 227cc3b..729d69b 100644
--- a/abs/core-testing/faad2/PKGBUILD
+++ b/abs/core-testing/faad2/PKGBUILD
@@ -1,45 +1,26 @@
-# $Id: PKGBUILD 5668 2008-07-20 05:06:05Z eric $
+# $Id: PKGBUILD 27494 2009-02-22 04:26:47Z eric $
 # Maintainer: Eric Belanger <eric@archlinux.org>
 # Contributor: Sarah Hay <sarah@archlinux.org>
 
 pkgname=faad2
-pkgver=2.6.1
+pkgver=2.7
 pkgrel=1
 pkgdesc="ISO AAC audio decoder"
 arch=('i686' 'x86_64')
 url="http://www.audiocoding.com/"
 license=('custom:GPL')
 depends=('glibc')
-options=('!libtool')
-source=(http://downloads.sourceforge.net/sourceforge/faac/${pkgname}-${pkgver}.tar.gz 
-        faad2-2.6.1-libtool22.patch
-        faad2-2.6.1-broken-pipe.patch
-        faad2-2.6.1-implicitdeclar.patch
-	faad2-2.6.1-abi_has_changed.patch
-	LICENSE)
-md5sums=('74e92df40c270f216a8305fc87603c8a' 'ca9515b6617d7fd060d0d172616eb192'\
-         'bb6a345dd2e6c4df6609e6a374134066' 'bc43fd3f8cd582a8bc092b9b5e611865'\
-         '06e83633c609d20436794b62a382b3dc' 'b6a1c72534807b8a038b71e784f57e32')
-sha1sums=('b4ad33d3c4dfa6dbf3011a3da34c631926cabfad'
-          'ca4ee04aa1757b8f9deeef52b5bf35dc823da844'
-          '0b03728f40d00e552f738900e2f6215177af5417'
-          'd4ab5d38c9b75ed6417529c4d1a7ca204293c224'
-          'f7e9d89fc551e0b61a7b7555749ed7a3129a4ce8'
-          '6225fd997671206f5222c4a86d9e092359552c43')
+options=('!libtool' '!makeflags')
+source=(http://downloads.sourceforge.net/sourceforge/faac/${pkgname}-${pkgver}.tar.bz2 LICENSE)
+md5sums=('4c332fa23febc0e4648064685a3d4332' 'ec95f38142e14fb46c849503897a37a0')
+sha1sums=('b0e80481d27ae9faf9e46c8c8dfb617a0adb91b5' '00edd9b30d8d5098b5e91c03c595d96a3bbe56fd')
 
 build() {
-  cd ${srcdir}/${pkgname}
-  patch -p1 < ../faad2-2.6.1-libtool22.patch || return 1
-  patch -p1 < ../faad2-2.6.1-broken-pipe.patch || return 1
-  patch -p1 < ../faad2-2.6.1-implicitdeclar.patch || return 1
-  patch -p1 < ../faad2-2.6.1-abi_has_changed.patch || return 1
-
-  autoreconf -vif || return 1
+  cd ${srcdir}/${pkgname}-${pkgver}
   ./configure --prefix=/usr || return 1
-  make || return 1
-  make DESTDIR=${pkgdir} install || return 1
-  install -m644 ${srcdir}/${pkgname}/common/mp4ff/mp4ff.h ${pkgdir}/usr/include/ || return 1
-  install -m644 ${srcdir}/${pkgname}/common/mp4ff/mp4ff_int_types.h ${pkgdir}/usr/include/ || return 1
-  install -m644 ${srcdir}/${pkgname}/common/mp4ff/.libs/*.a ${pkgdir}/usr/lib/ || return 1
+  make CFLAGS="${CFLAGS} -fPIC" || return 1
+  make DESTDIR=${pkgdir} manmdir=/usr/share/man/man1 install || return 1
+  install -m644 common/mp4ff/mp4ff_int_types.h ${pkgdir}/usr/include/mp4ff_int_types.h || return 1
   install -D -m644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+  mv ${pkgdir}/usr/share/man/man1/faad.man ${pkgdir}/usr/share/man/man1/faad.1
 }
-- 
cgit v0.12


From a711f6e028feb3ce805390c14026f213b6b50bbb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 19 Jul 2009 16:48:14 -0700
Subject: x264: Update for newer ffmpeg.

---
 abs/core-testing/x264/PKGBUILD | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/x264/PKGBUILD b/abs/core-testing/x264/PKGBUILD
index 8d85cb5..4f1756b 100644
--- a/abs/core-testing/x264/PKGBUILD
+++ b/abs/core-testing/x264/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 24030 2009-01-11 23:42:22Z eric $
+# $Id: PKGBUILD 36085 2009-04-19 22:58:09Z eric $
 # Contributor: damir <damir@archlinux.org>
 # Maintainer: Paul Mattal <paul@archlinux.org>
 
 pkgname=x264
-pkgver=20090108
+pkgver=20090416
 pkgrel=1
 pkgdesc="free library for encoding H264/AVC video streams"
 arch=(i686 x86_64)
@@ -12,7 +12,7 @@ license=('GPL')
 depends=('libx11')
 makedepends=('yasm')
 source=(ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-$pkgver-2245.tar.bz2)
-md5sums=('27129d3cc2e93899069f3caf6eb51f68')
+md5sums=('f5730feaa6175539e8227e48e38b7d67')
 
 build() {
     cd "$srcdir/$pkgname-snapshot-$pkgver-2245" || return 1
-- 
cgit v0.12


From f5681911497798ddd74e9ac46c04ca9923a7805b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 19 Jul 2009 16:48:57 -0700
Subject: nuvexport:modification to work with newer FFMPEG.

---
 abs/core-testing/nuvexport/MP4.pm   | 316 ++++++++++++++++++++++++++++++++++++
 abs/core-testing/nuvexport/PKGBUILD |   5 +-
 2 files changed, 319 insertions(+), 2 deletions(-)
 create mode 100755 abs/core-testing/nuvexport/MP4.pm

diff --git a/abs/core-testing/nuvexport/MP4.pm b/abs/core-testing/nuvexport/MP4.pm
new file mode 100755
index 0000000..e13d44b
--- /dev/null
+++ b/abs/core-testing/nuvexport/MP4.pm
@@ -0,0 +1,316 @@
+#!/usr/bin/perl -w
+#
+# ffmpeg-based MP4 (iPod) video module for nuvexport.
+#
+# Many thanks to cartman in #ffmpeg, and for the instructions at
+# http://rob.opendot.cl/index.php?active=3&subactive=1
+# http://videotranscoding.wikispaces.com/EncodeForIPodorPSP
+#
+# @url       $URL: svn+ssh://xris@svn.mythtv.org/var/lib/svn/trunk/mythextras/nuvexport/export/ffmpeg/MP4.pm $
+# @date      $Date: 2008-02-16 20:54:43 -0800 (Sat, 16 Feb 2008) $
+# @version   $Revision: 16110 $
+# @author    $Author: xris $
+# @copyright Silicon Mechanics
+#
+
+package export::ffmpeg::MP4;
+    use base 'export::ffmpeg';
+
+# Load the myth and nuv utilities, and make sure we're connected to the database
+    use nuv_export::shared_utils;
+    use nuv_export::cli;
+    use nuv_export::ui;
+    use mythtv::recordings;
+
+# Load the following extra parameters from the commandline
+    add_arg('quantisation|q=i', 'Quantisation');
+    add_arg('a_bitrate|a=i',    'Audio bitrate');
+    add_arg('v_bitrate|v=i',    'Video bitrate');
+    add_arg('multipass!',       'Enable two-pass encoding.');
+    add_arg('mp4_codec=s',      'Video codec to use for MP4/iPod video (mpeg4 or h264).');
+    add_arg('mp4_fps=s',        'Framerate to use:  auto, 25, 23.97, 29.97.');
+    add_arg('ipod!',            'Produce ipod-compatible output.');
+
+    sub new {
+        my $class = shift;
+        my $self  = {
+                     'cli'      => qr/\b(?:mp4|ipod)\b/i,
+                     'name'     => 'Export to MP4 (iPod)',
+                     'enabled'  => 1,
+                     'errors'   => [],
+                     'defaults' => {},
+                    };
+        bless($self, $class);
+
+    # Initialize the default parameters
+        $self->load_defaults();
+
+    # Verify any commandline or config file options
+        die "Audio bitrate must be > 0\n" unless (!defined $self->val('a_bitrate') || $self->{'a_bitrate'} > 0);
+        die "Video bitrate must be > 0\n" unless (!defined $self->val('v_bitrate') || $self->{'v_bitrate'} > 0);
+        die "Width must be > 0\n"         unless (!defined $self->val('width')     || $self->{'width'} =~ /^\s*\D/  || $self->{'width'}  > 0);
+        die "Height must be > 0\n"        unless (!defined $self->val('height')    || $self->{'height'} =~ /^\s*\D/ || $self->{'height'} > 0);
+
+    # VBR, multipass, etc.
+        if ($self->val('multipass')) {
+            $self->{'vbr'} = 1;
+        }
+        elsif ($self->val('quantisation')) {
+            die "Quantisation must be a number between 1 and 31 (lower means better quality).\n" if ($self->{'quantisation'} < 1 || $self->{'quantisation'} > 31);
+            $self->{'vbr'} = 1;
+        }
+
+    # Initialize and check for ffmpeg
+        $self->init_ffmpeg();
+
+    # Can we even encode mp4?
+        if (!$self->can_encode('mp4')) {
+            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to mp4 file formats.";
+        }
+        if (!$self->can_encode('aac') && !$self->can_encode('libfaac')) {
+            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to aac audio.";
+        }
+        if (!$self->can_encode('mpeg4') && !$self->can_encode('h264') && !$self->can_encode('libx264')) {
+            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to either mpeg4 or h264 video.";
+        }
+    # Any errors?  disable this function
+        $self->{'enabled'} = 0 if ($self->{'errors'} && @{$self->{'errors'}} > 0);
+    # Return
+        return $self;
+    }
+
+# Load default settings
+    sub load_defaults {
+        my $self = shift;
+    # Load the parent module's settings
+        $self->SUPER::load_defaults();
+    # Default settings
+        $self->{'defaults'}{'v_bitrate'}  = 384;
+        $self->{'defaults'}{'a_bitrate'}  = 64;
+        $self->{'defaults'}{'width'}      = 320;
+        $self->{'defaults'}{'mp4_codec'}  = 'mpeg4';
+    # Verify commandline options
+        if ($self->val('mp4_codec') !~ /^(?:mpeg4|h264)$/i) {
+            die "mp4_codec must be either mpeg4 or h264.\n";
+        }
+        $self->{'mp4_codec'} =~ tr/A-Z/a-z/;
+
+    }
+
+# Gather settings from the user
+    sub gather_settings {
+        my $self = shift;
+    # Load the parent module's settings
+        $self->SUPER::gather_settings();
+    # Audio Bitrate
+        $self->{'a_bitrate'} = query_text('Audio bitrate?',
+                                          'int',
+                                          $self->val('a_bitrate'));
+    # Video options
+        if (!$is_cli) {
+        # iPod compatibility mode?
+            $self->{'ipod'} = query_text('Enable iPod compatibility?',
+                                         'yesno',
+                                         $self->val('ipod'));
+        # Video codec
+            if ($self->{'ffmpeg_vers'} eq 'svn') {
+                while (1) {
+                    my $codec = query_text('Video codec (mpeg4 or h264)?',
+                                           'string',
+                                           $self->{'mp4_codec'});
+                    if ($codec =~ /^m/) {
+                        $self->{'mp4_codec'} = 'mpeg4';
+                        last;
+                    }
+                    elsif ($codec =~ /^h/) {
+                        $self->{'mp4_codec'} = 'h264';
+                        last;
+                    }
+                    print "Please choose either mpeg4 or h264\n";
+                }
+            }
+            else {
+                $self->{'mp4_codec'} = 'mpeg4';
+                print "Using the mpeg4 codec (h.264 mp4/ipod encoding requires the svn version of ffmpeg.)\n";
+            }
+        # Video bitrate options
+            $self->{'vbr'} = query_text('Variable bitrate video?',
+                                        'yesno',
+                                        $self->val('vbr'));
+            if ($self->{'vbr'}) {
+                $self->{'multipass'} = query_text('Multi-pass (slower, but better quality)?',
+                                                  'yesno',
+                                                  $self->val('multipass'));
+                if (!$self->{'multipass'}) {
+                    while (1) {
+                        my $quantisation = query_text('VBR quality/quantisation (1-31)?',
+                                                      'float',
+                                                      $self->val('quantisation'));
+                        if ($quantisation < 1) {
+                            print "Too low; please choose a number between 1 and 31.\n";
+                        }
+                        elsif ($quantisation > 31) {
+                            print "Too high; please choose a number between 1 and 31\n";
+                        }
+                        else {
+                            $self->{'quantisation'} = $quantisation;
+                            last;
+                        }
+                    }
+                }
+            } else {
+                $self->{'multipass'} = 0;
+            }
+        # Ask the user what video bitrate he/she wants
+            $self->{'v_bitrate'} = query_text('Video bitrate?',
+                                              'int',
+                                              $self->val('v_bitrate'));
+        }
+    # Complain about h264
+        if ($self->{'mp4_codec'} eq 'h264' && $self->{'ffmpeg_vers'} ne 'svn') {
+            die "h.264 mp4/ipod encoding requires the svn version of ffmpeg.\n";
+        }
+    # Loop, in case we need to verify ipod compatibility
+        while (1) {
+        # Query the resolution
+            $self->query_resolution();
+        # Warn about ipod resolution
+            if ($self->val('ipod') && ($self->{'height'} > 480 || $self->{'width'} > 640)) {
+                my $note = "WARNING:  Video larger than 640x480 will not play on an iPod.\n";
+                die $note if ($is_cli);
+                print $note;
+                next;
+            }
+        # Done looping
+            last;
+        }
+    }
+
+    sub export {
+        my $self    = shift;
+        my $episode = shift;
+    # Make sure this is set to anamorphic mode
+        $self->{'aspect_stretched'} = 1;
+    # Framerate
+        my $standard = ($episode->{'finfo'}{'fps'} =~ /^2(?:5|4\.9)/) ? 'PAL' : 'NTSC';
+        if ($standard eq 'PAL') {
+            $self->{'out_fps'} = 25;
+        }
+        elsif ($self->val('mp4_fps') =~ /^23/) {
+            $self->{'out_fps'} = 23.97;
+        }
+        elsif ($self->val('mp4_fps') =~ /^29/) {
+            $self->{'out_fps'} = 29.97;
+        }
+        else {
+            $self->{'out_fps'} = ($self->{'width'} > 320 || $self->{'height'} > 288) ? 29.97 : 23.97;
+        }
+    # Embed the title
+        $safe_title = $episode->{'title'};
+        if ($episode->{'subtitle'} ne 'Untitled') {
+            $safe_title .= ' - '.$episode->{'subtitle'};
+        }
+        my $safe_title = shell_escape($safe_title);
+    # Codec name changes between ffmpeg versions
+        my $codec = $self->{'mp4_codec'};
+        if ($codec eq 'h264' && $self->can_encode('libx264')) {
+            $codec = 'libx264';
+        }
+    # Build the common ffmpeg string
+        my $ffmpeg_xtra  = ' -vcodec '.$codec
+                           .$self->param('bit_rate', $self->{'v_bitrate'})
+    ;###                      ." -title $safe_title";
+    # Options required for the codecs separately
+        if ($self->{'mp4_codec'} eq 'h264') {
+            $ffmpeg_xtra .= ' -level 30'
+	    ###                    .' -loop 1'
+                           .' -g 250 -keyint_min 25'
+                           .' -sc_threshold 40'
+			   ###             .' -rc_eq \'blurCplx^(1-qComp)\''
+                           .$self->param('bit_rate_tolerance', $self->{'v_bitrate'})
+                           .$self->param('rc_max_rate',        1500 - $self->{'a_bitrate'})
+                           .$self->param('rc_buffer_size',     2000)
+                           .$self->param('i_quant_factor',     0.71428572)
+                           .$self->param('b_quant_factor',     0.76923078)
+                           .$self->param('max_b_frames',       0)
+			   ### .' -me umh'   # this will eventually be me_method, but not all ffmpeg versions support it yet
+                           ;
+        }
+        else {
+           $ffmpeg_xtra .= ' -flags +mv4' ## +trell+loop'
+	   ###                      .' -aic 1'
+                          .' -mbd 1'
+                          .' -cmp 2 -subcmp 2'
+                          ;
+        }
+    # Some shared options
+        if ($self->{'multipass'} || $self->{'vbr'}) {
+            $ffmpeg_xtra .= $self->param('qcompress', 0.6)
+                           .$self->param('qmax',      51)
+                           .$self->param('max_qdiff', 4)
+                           ;
+        }
+    # Dual pass?
+        if ($self->{'multipass'}) {
+        # Apparently, the -passlogfile option doesn't work for h264, so we need
+        # to be aware of other processes that might be working in this directory
+            if ($self->{'mp4_codec'} eq 'h264' && (-e 'x264_2pass.log.temp' || -e 'x264_2pass.log')) {
+                die "ffmpeg does not allow us to specify the name of the multi-pass log\n"
+                   ."file, and x264_2pass.log exists in this directory already.  Please\n"
+                   ."wait for the other process to finish, or remove the stale file.\n";
+            }
+        # Add all possible temporary files to the list
+            push @tmpfiles, 'x264_2pass.log',
+                            'x264_2pass.log.temp',
+                            'ffmpeg2pass-0.log';
+        # Build the ffmpeg string
+            print "First pass...\n";
+            $self->{'ffmpeg_xtra'} = ' -pass 1'
+                                    .$ffmpeg_xtra
+                                    .' -f mp4';
+            if ($self->{'mp4_codec'} eq 'h264') {
+                $self->{'ffmpeg_xtra'} .= ' -refs 1 -subq 1'
+                                         .' -trellis 0'
+                                         ;
+            }
+            $self->SUPER::export($episode, '', 1);
+        # Second Pass
+            print "Final pass...\n";
+            $ffmpeg_xtra = ' -pass 2 '
+                          .$ffmpeg_xtra;
+        }
+    # Single Pass
+        else {
+            if ($self->{'vbr'}) {
+                $ffmpeg_xtra .= ' -qmin '.$self->{'quantisation'};
+            }
+        }
+    # Single/final pass options
+        if ($self->{'mp4_codec'} eq 'h264') {
+            $ffmpeg_xtra .= ' -refs '.($self->val('ipod') ? 2 : 7)
+                           .' -subq 7'
+                           .' -partitions parti4x4+parti8x8+partp4x4+partp8x8+partb8x8'
+                           .' -flags2 +bpyramid+wpred+mixed_refs+8x8dct' ##+brdo'
+                           .' -me_range 21'
+                           .' -trellis 2'
+                           .' -chromaoffset 1'
+			   ###         .' -slice 2'
+			   ###         .' -cmp 1'
+                           # These should match the defaults:
+                           .' -deblockalpha 0 -deblockbeta 0'
+                           ;
+        }
+    # Audio codec name changes between ffmpeg versions
+        my $acodec = $self->can_encode('libfaac') ? 'libfaac' : 'aac';
+    # Don't forget the audio, etc.
+        $self->{'ffmpeg_xtra'} = $ffmpeg_xtra
+                                ." -acodec $acodec -ar 48000 -async 1"
+                                .$self->param('ab', $self->{'a_bitrate'});
+    # Execute the (final pass) encode
+        $self->SUPER::export($episode, '.mp4');
+    }
+
+1;  #return true
+
+# vim:ts=4:sw=4:ai:et:si:sts=4
+
diff --git a/abs/core-testing/nuvexport/PKGBUILD b/abs/core-testing/nuvexport/PKGBUILD
index e414b1e..9db2c4e 100644
--- a/abs/core-testing/nuvexport/PKGBUILD
+++ b/abs/core-testing/nuvexport/PKGBUILD
@@ -4,7 +4,7 @@
 pkgname=nuvexport
 pkgver=20080311
 relnum=0.5
-pkgrel=1
+pkgrel=2
 pkgdesc="Export for MythTV nuv files to other formats (DVD/SVCD/DivX,etc.)"
 arch=(i686 x86_64)
 url="http://forevermore.net/files/nuvexport"
@@ -15,7 +15,7 @@ conflicts=()
 replaces=()
 backup=()
 install=
-source=(http://forevermore.net/files/nuvexport/$pkgname-$relnum-0.$pkgver.svn.tar.bz2 $pkgname-ipod-disable.patch)
+source=(http://forevermore.net/files/nuvexport/archive/$pkgname-$relnum-0.$pkgver.svn.tar.bz2 $pkgname-ipod-disable.patch MP4.pm)
 md5sums=('2d0a99623f06394daf3bf8769536d3cd' 'acd2dad9987e68359ead8b0be5e5797c')
 
 build() {
@@ -28,4 +28,5 @@ build() {
   mkdir $startdir/pkg/usr || return 1
   make install || return 1
   sed -i "s|/tmp/fifodir|/var/tmp/fifodir|g" $startdir/pkg/usr/share/nuvexport/export/*.pm || return 1
+  cp $startdir/src/MP4.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/MP4.pm
 }
-- 
cgit v0.12


From 2d8910d6514e8943df18e9fff9019b9971e71721 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 19 Jul 2009 16:49:12 -0700
Subject: FFMPEG from SVN.

---
 abs/core-testing/ffmpeg-svn/PKGBUILD | 59 ++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)
 create mode 100644 abs/core-testing/ffmpeg-svn/PKGBUILD

diff --git a/abs/core-testing/ffmpeg-svn/PKGBUILD b/abs/core-testing/ffmpeg-svn/PKGBUILD
new file mode 100644
index 0000000..3144dfb
--- /dev/null
+++ b/abs/core-testing/ffmpeg-svn/PKGBUILD
@@ -0,0 +1,59 @@
+# Contributor: raubkopierer <mail[dot]sensenmann[at]googlemail[dot]com>
+
+pkgname=ffmpeg-svn
+pkgver=18717
+pkgrel=1
+pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
+arch=('i686' 'x86_64')
+url="http://ffmpeg.mplayerhq.hu/"
+license=('GPL')
+depends=('lame' 'sdl' 'faad2' 'faac' 'zlib' 'imlib2' 'x264' 'libtheora')
+makedepends=('subversion')
+provides=("ffmpeg=`date +%Y%m%d`")
+conflicts=('ffmpeg')
+source=()
+md5sums=()
+
+_svntrunk=svn://svn.ffmpeg.org/ffmpeg/trunk
+_svnmod=ffmpeg
+
+build() {
+  cd "$srcdir"
+
+  if [ -d $_svnmod/.svn ]; then
+    (cd $_svnmod && svn up -r $pkgver)
+  else
+    svn co $_svntrunk --config-dir ./ -r $pkgver $_svnmod
+  fi
+
+  msg "SVN checkout done or server timeout"
+  msg "Starting make..."
+
+  rm -rf "$_svnmod-build"
+  mkdir "$_svnmod-build"
+  cd "$_svnmod-build"
+
+  "$srcdir/$_svnmod/configure" \
+  --prefix=/usr \
+  --enable-gpl \
+  --enable-nonfree \
+  --enable-libmp3lame \
+  --enable-libfaac \
+  --enable-libfaad \
+  --enable-libx264 \
+  --enable-libtheora \
+  --enable-postproc \
+  --enable-shared \
+  --enable-pthreads \
+  --enable-x11grab \
+  --arch=`uname -m` \
+  --enable-libxvid \
+  || return 1
+
+  make || return 1
+  make doc/ff{mpeg,play,server}.1 || return 1
+
+  make DESTDIR="$pkgdir" install || return 1
+  make DESTDIR="$pkgdir" install-man || return 1
+
+}
-- 
cgit v0.12


From 5ab926984c6f18fcff5fa95bb8708a89fa708b79 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 19 Jul 2009 16:49:27 -0700
Subject: Removed ffmpeg.

---
 abs/core-testing/ffmpeg/PKGBUILD    | 48 -------------------------------------
 abs/core-testing/ffmpeg/__changelog |  2 --
 2 files changed, 50 deletions(-)
 delete mode 100644 abs/core-testing/ffmpeg/PKGBUILD
 delete mode 100644 abs/core-testing/ffmpeg/__changelog

diff --git a/abs/core-testing/ffmpeg/PKGBUILD b/abs/core-testing/ffmpeg/PKGBUILD
deleted file mode 100644
index 2b63545..0000000
--- a/abs/core-testing/ffmpeg/PKGBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# $Id: PKGBUILD 24006 2009-01-11 23:04:11Z eric $
-# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
-# Maintainer: Paul Mattal <paul@archlinux.org>
-
-pkgname=ffmpeg
-pkgver=20081220
-pkgrel=3
-pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
-arch=(i686 x86_64)
-url="http://ffmpeg.mplayerhq.hu/"
-license=('LGPL')
-depends=('lame' 'sdl' 'libvorbis' 'faad2>=2.6.1' 'faac' 'xvidcore' 'zlib' 'imlib2' 'x264>=20090108' 'libtheora')
-#remake snapshot with: svn export svn://svn.mplayerhq.hu/ffmpeg/trunk@14236
-source=(ftp://ftp.archlinux.org/other/ffmpeg/ffmpeg-${pkgver}-16503.tar.bz2)
-md5sums=('3df85782e9fbbb4a40c6b807baaf6808')
-
-build() {
-  cd "$srcdir/$pkgname" || return 1
-
-  ./configure \
-  --prefix=/usr \
-  --enable-gpl \
-  --enable-libmp3lame \
-  --enable-libvorbis \
-  --enable-libfaac \
-  --enable-libfaad \
-  --enable-libxvid \
-  --enable-libx264 \
-  --enable-libtheora \
-  --enable-postproc \
-  --enable-shared \
-  --enable-pthreads \
-  --enable-x11grab \
-  --enable-swscale \
-  || return 1
-
-  make || return 1
-  make doc/ff{mpeg,play,server}.1 || return 1
-
-  make DESTDIR="$pkgdir" install install-man || return 1
-
-  # since makepkg currently declines to strip .a files, do this for now
-  strip --strip-debug $startdir/pkg/usr/lib/*.a || return 1
-  mkdir $startdir/pkg/usr/share/ffmpeg
-  cp $startdir/src/ffmpeg/ffpresets/* $startdir/pkg/usr/share/ffmpeg
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/abs/core-testing/ffmpeg/__changelog b/abs/core-testing/ffmpeg/__changelog
deleted file mode 100644
index b27f318..0000000
--- a/abs/core-testing/ffmpeg/__changelog
+++ /dev/null
@@ -1,2 +0,0 @@
-CHW 5/25/09
-Added ffpresets to package.
-- 
cgit v0.12


From 0cad0430a88a9790163896e44e1c86f5d1bbb553 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Mon, 20 Jul 2009 20:27:46 +0930
Subject: zoneminder: fix error in logrotate

---
 abs/core-testing/zoneminder/PKGBUILD       |  4 ++--
 abs/core-testing/zoneminder/zmupdate.patch | 12 ++++++++++++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/zoneminder/PKGBUILD b/abs/core-testing/zoneminder/PKGBUILD
index bdd1669..ad7037e 100644
--- a/abs/core-testing/zoneminder/PKGBUILD
+++ b/abs/core-testing/zoneminder/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=zoneminder
 pkgver=1.23.3
-pkgrel=4
+pkgrel=5
 pkgdesc="Capture, analyse, record and monitor video security cameras."
 arch=('i686')
 url="http://www.zoneminder.com"
@@ -31,7 +31,7 @@ noextract=()
 md5sums=('ee803f0f71d6e67adf602c3557fb6bc9'
          'af8631abe20cd7dcab1a023af7d4f3e8'
          '246852035905589617b9e0dc63759d27'
-         '0e91bbfddbed78ffe1c968d11af49ccb'
+         '320dd41725945218de0672f899e1d739'
          '818cec2eba7e1efb3f5c410f6dd8d528'
          'f9720872736f26d17bc49d8725b75ae4'
          'f0c4b80b3c2f1e0fe90d7b52191b7e51'
diff --git a/abs/core-testing/zoneminder/zmupdate.patch b/abs/core-testing/zoneminder/zmupdate.patch
index 2c94d89..913a6ec 100644
--- a/abs/core-testing/zoneminder/zmupdate.patch
+++ b/abs/core-testing/zoneminder/zmupdate.patch
@@ -9,3 +9,15 @@
  
  		print( "Executing '$command'\n" ) if ( DBG_LEVEL > 0 );
  		my $output = qx($command);
+diff -Naru ZoneMinder-1.23.3-orig/scripts/zmlogrotate.conf.in ZoneMinder-1.23.3/scripts/zmlogrotate.conf.in
+--- ZoneMinder-1.23.3-orig/scripts/zmlogrotate.conf.in	2008-02-25 20:19:52.000000000 +1030
++++ ZoneMinder-1.23.3/scripts/zmlogrotate.conf.in	2009-07-20 20:18:16.000000000 +0930
+@@ -7,7 +7,7 @@
+     missingok
+ }
+ 
+-Now the weekly db backup
++# Now the weekly db backup
+ 
+ /var/lib/zm/zm_backup.sql {
+ weekly
-- 
cgit v0.12


From 4927ed2c4a887a482be810bc13f8ffee03d20dcf Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Mon, 20 Jul 2009 22:09:12 +0930
Subject: dvb-firmware: add xc3028-v27.fw

---
 abs/core-testing/dvb-firmware/PKGBUILD      |   6 ++++--
 abs/core-testing/dvb-firmware/xc3028-v27.fw | Bin 0 -> 66220 bytes
 2 files changed, 4 insertions(+), 2 deletions(-)
 create mode 100644 abs/core-testing/dvb-firmware/xc3028-v27.fw

diff --git a/abs/core-testing/dvb-firmware/PKGBUILD b/abs/core-testing/dvb-firmware/PKGBUILD
index bbcf1cf..8504d90 100644
--- a/abs/core-testing/dvb-firmware/PKGBUILD
+++ b/abs/core-testing/dvb-firmware/PKGBUILD
@@ -3,16 +3,18 @@
 
 pkgname=dvb-firmware
 pkgver=1
-pkgrel=5
+pkgrel=6
 pkgdesc="Firmware for DVB cards"
 arch=('i586' 'i686' 'x86_64')
 license=('GPL2')
 url="http://linuxtv.org/"
-source=(ftp://ftp.knoppmyth.net/R6/sources/dvb-firmware.tar.bz2)
+source=(ftp://ftp.knoppmyth.net/R6/sources/dvb-firmware.tar.bz2
+	xc3028-v27.fw)
 md5sums=('6932d0b4f763424e35b7fa3a6cc82a2e')
 
 build() {
   cd $startdir/src/
   mkdir -p $startdir/pkg/lib/firmware
   cp -a dvb-fw/* $startdir/pkg/lib/firmware
+  cp $startdir/src/xc3028-v27.fw $startdir/pkg/lib/firmware
 }
diff --git a/abs/core-testing/dvb-firmware/xc3028-v27.fw b/abs/core-testing/dvb-firmware/xc3028-v27.fw
new file mode 100644
index 0000000..76f46ab
Binary files /dev/null and b/abs/core-testing/dvb-firmware/xc3028-v27.fw differ
-- 
cgit v0.12


From d2c0cc268b8bfec676398defbdd65e4755e16512 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Mon, 20 Jul 2009 22:43:09 +0930
Subject: LinHES-config: lirc update: jams please build with mythinstall.bin

---
 abs/core-testing/LinHES-config/PKGBUILD             | 2 +-
 abs/core-testing/LinHES-config/install_functions.sh | 7 +++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index aba0adf..ec34308 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.0
-pkgrel=59
+pkgrel=60
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
 pkgdesc="Install and configure your system"
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted sg3_utils nmbscan system-templates rsync python-parted ddcxinfo python-pexpect python-netifaces LinHES-timezone python-iplib)
diff --git a/abs/core-testing/LinHES-config/install_functions.sh b/abs/core-testing/LinHES-config/install_functions.sh
index ea9e61c..29f57cc 100755
--- a/abs/core-testing/LinHES-config/install_functions.sh
+++ b/abs/core-testing/LinHES-config/install_functions.sh
@@ -74,9 +74,12 @@ function setupremote {
         printhl "Starting with support for $Remotetype"
         if [ "$Remotetype" == "dvico" ]
         then
-                /usr/sbin/lircd  -d /dev/usb/hiddev0
+            /usr/sbin/lircd  -d /dev/usb/hiddev0 --driver=dvico
+        elif [ "$Remotetype" == "Dvico-Dual-Digital4-rev2" ]
+        then
+            /usr/sbin/lircd -d /dev/input/irremote --driver=devinput
         else
-                /usr/sbin/lircd  -d /dev/lirc0
+            /usr/sbin/lircd -d /dev/lirc0
         fi
         [ -e /root/.mythtv ] ||  mkdir /root/.mythtv 2>/dev/null
         ln -s /etc/lircrc /root/.mythtv/lircrc 2>/dev/null
-- 
cgit v0.12


From 9d4e645d15f3619696b0363d7e4f351e7217a18b Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Tue, 21 Jul 2009 07:31:32 +0930
Subject: qt3: bump pkgrel to rebiuld

---
 abs/core-testing/qt3/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/qt3/PKGBUILD b/abs/core-testing/qt3/PKGBUILD
index 870305a..131cbb1 100644
--- a/abs/core-testing/qt3/PKGBUILD
+++ b/abs/core-testing/qt3/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: John Proctor <jproctor@prium.net>
 pkgname=qt3
 pkgver=3.3.8
-pkgrel=8
+pkgrel=9
 pkgdesc="The QT gui toolkit."
 arch=(i686 x86_64)
 license=('GPL')
-- 
cgit v0.12


From 55a84d52159af0cda77cea387393aee19d666265 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Tue, 21 Jul 2009 21:25:57 +0930
Subject: mythtv: bump to recompile - also had to remove hdhomerun changeset
 80877

---
 abs/core-testing/mythtv/stable/mythtv/PKGBUILD     |   10 +-
 .../mythtv/stable/mythtv/changeset-20877.patch     | 5910 ++++++++++++++++++++
 2 files changed, 5918 insertions(+), 2 deletions(-)
 create mode 100644 abs/core-testing/mythtv/stable/mythtv/changeset-20877.patch

diff --git a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
index cd8e276..454e36b 100644
--- a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
@@ -1,13 +1,15 @@
 pkgname=mythtv
 pkgver=0.21
-pkgrel=74
+pkgrel=75
 pkgdesc="A Homebrew PVR project"
 arch=('i686' 'x86_64')
 depends=('bash' 'mysql-clients>=5.0' 'qt3' 'lame' 'lirc-utils' 'ffmpeg' \
 	'libxvmc' 'libavc1394' 'libdc1394' 'libiec61883' 'perl-net-upnp' 'perl-time-format')
 backup=(etc/mythtv/mythbackend.conf etc/mythtv/mysql.txt usr/share/mythtv/is.xmlusr/share/mythtv/media_settings.xml ) 
 source=(ftp://ftp.knoppmyth.net/R6/sources/${pkgname}-${pkgver}-fixes.tar.bz2 \
-	mythbackend myththemedmenu.cpp.patch myththemedmenu.h.patch  smolt_jump.patch pretty gnome_screensaver.patch mpegpspatch mythbackend.lr mythfrontend.lr)
+	mythbackend myththemedmenu.cpp.patch myththemedmenu.h.patch  smolt_jump.patch pretty gnome_screensaver.patch mpegpspatch mythbackend.lr mythfrontend.lr
+	changeset-20877.patch)
+
 
 #md5sums=('e316ed18d7ac837cf8c4af54b1478793' '7ef6de58240e7aad389a0b13d91b1cf6'\
 #         'a0ecb7f476cb71c0c1ac90d349fc7695')
@@ -33,6 +35,10 @@ build() {
 #	 cd libs/libavformat
 #	 patch -p0 < $startdir/src/mpegpspatch
 #	 cd -
+
+#	Remove the hdhomerun changeset 20877 that prevents things from compiling.
+	patch -p3 < ../changeset-20877.patch
+
    . /etc/profile.d/qt3.sh
 
    # use QT3 qmake
diff --git a/abs/core-testing/mythtv/stable/mythtv/changeset-20877.patch b/abs/core-testing/mythtv/stable/mythtv/changeset-20877.patch
new file mode 100644
index 0000000..b92f0c1
--- /dev/null
+++ b/abs/core-testing/mythtv/stable/mythtv/changeset-20877.patch
@@ -0,0 +1,5910 @@
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/Makefile src/mythtv-0.21/libs/libmythtv/hdhomerun/Makefile
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/Makefile	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/Makefile	2009-01-09 13:14:56.000000000 +1030
+@@ -1,52 +1,21 @@
+-LIBSRCS += hdhomerun_pkt.c
+-LIBSRCS += hdhomerun_debug.c
+-LIBSRCS += hdhomerun_discover.c
+-LIBSRCS += hdhomerun_channels.c
+-LIBSRCS += hdhomerun_channelscan.c
+-LIBSRCS += hdhomerun_control.c
+-LIBSRCS += hdhomerun_video.c
+-LIBSRCS += hdhomerun_device.c
+-LIBSRCS += hdhomerun_device_selector.c
+ 
+-CC    := $(CROSS_COMPILE)gcc
+-STRIP := $(CROSS_COMPILE)strip
++SRCS += hdhomerun_pkt.c
++SRCS += hdhomerun_discover.c
++SRCS += hdhomerun_control.c
++SRCS += hdhomerun_video.c
++SRCS += hdhomerun_device.c
++SRCS += hdhomerun_config.c
+ 
+ CFLAGS += -Wall -O2 -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
+-LDFLAGS += -lpthread
+-SHARED = -shared -Wl,-soname,libhdhomerun$(LIBEXT)
+ 
+-ifeq ($(OS),Windows_NT)
+-  BINEXT := .exe
+-  LIBEXT := .dll
+-  LDFLAGS += -liphlpapi
+-else
+-  LIBEXT := .so
+-  ifneq ($(findstring solaris,$(shell echo $$OSTYPE)),)
+-    LDFLAGS += -lns -lsocket
+-  endif
+-  ifneq ($(findstring darwin,$(shell echo $$OSTYPE)),)
+-    CFLAGS += -arch i386 -arch ppc
+-    LIBEXT := .dylib
+-    SHARED := -dynamiclib -install_name libhdhomerun$(LIBEXT)
+-  endif
+-endif
+-
+-all : hdhomerun_config$(BINEXT) libhdhomerun$(LIBEXT)
+-
+-hdhomerun_config$(BINEXT) : hdhomerun_config.c $(LIBSRCS)
+-	$(CC) $(CFLAGS) $+ $(LDFLAGS) -o $@
+-	$(STRIP) $@
+-
+-libhdhomerun$(LIBEXT) : $(LIBSRCS)
+-	$(CC) $(CFLAGS) -fPIC -DDLL_EXPORT $(SHARED) $+ $(LDFLAGS) -o $@
++hdhomerun_config : $(SRCS)
++	gcc $(CFLAGS) $(SRCS) -lpthread -o $@
++	strip $@
++
++hdhomerun_config.exe : $(SRCS)
++	gcc $(CFLAGS) $(SRCS) -lpthread -liphlpapi -o $@
++	strip $@
+ 
+ clean :
+-	-rm -f hdhomerun_config$(BINEXT)
+-	-rm -f libhdhomerun$(LIBEXT)
+-
+-distclean : clean
+-
+-%:
+-	@echo "(ignoring request to make $@)"
+-
+-.PHONY: all list clean distclean
++	rm -f hdhomerun_config
++	rm -f hdhomerun_config.exe
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun.h src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun.h
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun.h	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun.h	2009-01-09 13:14:56.000000000 +1030
+@@ -1,14 +1,12 @@
+-#ifndef __HDHOMERUN_INCLUDES__
+-#define __HDHOMERUN_INCLUDES__
+ /*
+- * hdhomerun.h
++ * hdhomerun_device.h
+  *
+- * Copyright � 2006-2008 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -16,33 +14,13 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
+ #include "hdhomerun_os.h"
+-#include "hdhomerun_types.h"
+ #include "hdhomerun_pkt.h"
+-#include "hdhomerun_debug.h"
+ #include "hdhomerun_discover.h"
+ #include "hdhomerun_control.h"
+ #include "hdhomerun_video.h"
+-#include "hdhomerun_channels.h"
+-#include "hdhomerun_channelscan.h"
+ #include "hdhomerun_device.h"
+-#include "hdhomerun_device_selector.h"
+-
+-#endif /* __HDHOMERUN_INCLUDES__ */
+-
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_channels.c
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_channels.h
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_channelscan.c
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_channelscan.h
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_config.c src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_config.c
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_config.c	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_config.c	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_config.c
+  *
+- * Copyright � 2006-2008 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,34 +14,12 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
+ #include "hdhomerun.h"
+ 
+-/*
+- * The console output format should be set to UTF-8, however in XP and Vista this breaks batch file processing.
+- * Attempting to restore on exit fails to restore if the program is terminated by the user.
+- * Solution - set the output format each printf.
+- */
+-#if defined(__WINDOWS__)
+-#define printf console_printf
+-#define vprintf console_vprintf
+-#endif
+-
+ static const char *appname;
+ 
+ struct hdhomerun_device_t *hd;
+@@ -53,8 +31,7 @@
+ 	printf("\t%s <id> get help\n", appname);
+ 	printf("\t%s <id> get <item>\n", appname);
+ 	printf("\t%s <id> set <item> <value>\n", appname);
+-	printf("\t%s <id> scan <tuner> [<filename>]\n", appname);
+-	printf("\t%s <id> save <tuner> <filename>\n", appname);
++	printf("\t%s <id> scan <tuner> <starting channel>\n", appname);
+ 	printf("\t%s <id> upgrade <filename>\n", appname);
+ 	return -1;
+ }
+@@ -91,29 +68,10 @@
+ 	return FALSE;
+ }
+ 
+-static uint32_t parse_ip_addr(const char *str)
+-{
+-	unsigned long a[4];
+-	if (sscanf(str, "%lu.%lu.%lu.%lu", &a[0], &a[1], &a[2], &a[3]) != 4) {
+-		return 0;
+-	}
+-
+-	return (uint32_t)((a[0] << 24) | (a[1] << 16) | (a[2] << 8) | (a[3] << 0));
+-}
+-
+-static int discover_print(char *target_ip_str)
++static int discover_print(void)
+ {
+-	uint32_t target_ip = 0;
+-	if (target_ip_str) {
+-		target_ip = parse_ip_addr(target_ip_str);
+-		if (target_ip == 0) {
+-			fprintf(stderr, "invalid ip address: %s\n", target_ip_str);
+-			return -1;
+-		}
+-	}
+-
+ 	struct hdhomerun_discover_device_t result_list[64];
+-	int count = hdhomerun_discover_find_devices_custom(target_ip, HDHOMERUN_DEVICE_TYPE_TUNER, HDHOMERUN_DEVICE_ID_WILDCARD, result_list, 64);
++	int count = hdhomerun_discover_find_devices(HDHOMERUN_DEVICE_TYPE_TUNER, result_list, 64);
+ 	if (count < 0) {
+ 		fprintf(stderr, "error sending discover request\n");
+ 		return -1;
+@@ -136,6 +94,32 @@
+ 	return count;
+ }
+ 
++static bool_t parse_device_id_str(const char *s, uint32_t *pdevice_id, uint32_t *pdevice_ip)
++{
++	unsigned long a[4];
++	if (sscanf(s, "%lu.%lu.%lu.%lu", &a[0], &a[1], &a[2], &a[3]) == 4) {
++		*pdevice_id = HDHOMERUN_DEVICE_ID_WILDCARD;
++		*pdevice_ip = (uint32_t)((a[0] << 24) | (a[1] << 16) | (a[2] << 8) | (a[3] << 0));
++		return TRUE;
++	}
++
++	unsigned long device_id_raw;
++	if (sscanf(s, "%lx", &device_id_raw) != 1) {
++		fprintf(stderr, "invalid device id: %s\n", s);
++		return FALSE;
++	}
++
++	uint32_t device_id = (uint32_t)device_id_raw;
++	if (!hdhomerun_discover_validate_device_id(device_id)) {
++		fprintf(stderr, "invalid device id: %s\n", s);
++		return FALSE;
++	}
++
++	*pdevice_id = device_id;
++	*pdevice_ip = 0;
++	return TRUE;
++}
++
+ static int cmd_get(const char *item)
+ {
+ 	char *ret_value;
+@@ -154,7 +138,7 @@
+ 	return 1;
+ }
+ 
+-static int cmd_set_internal(const char *item, const char *value)
++static int cmd_set(const char *item, const char *value)
+ {
+ 	char *ret_error;
+ 	if (hdhomerun_device_set_var(hd, item, value, NULL, &ret_error) < 0) {
+@@ -170,260 +154,118 @@
+ 	return 1;
+ }
+ 
+-static int cmd_set(const char *item, const char *value)
++static int cmd_streaminfo(const char *tuner_str)
+ {
+-	if (strcmp(value, "-") == 0) {
+-		char *buffer = NULL;
+-		size_t pos = 0;
+-
+-		while (1) {
+-			buffer = (char *)realloc(buffer, pos + 1024);
+-			if (!buffer) {
+-				fprintf(stderr, "out of memory\n");
+-				return -1;
+-			}
+-
+-			size_t size = fread(buffer + pos, 1, 1024, stdin);
+-			pos += size;
+-
+-			if (size < 1024) {
+-				break;
+-			}
+-		}
+-
+-		buffer[pos] = 0;
+-
+-		int ret = cmd_set_internal(item, buffer);
+-
+-		free(buffer);
+-		return ret;
+-	}
+-
+-	return cmd_set_internal(item, value);
+-}
+-
+-static bool_t sigabort = FALSE;
+-
+-static void signal_abort(int arg)
+-{
+-	sigabort = TRUE;
+-}
+-
+-static void cmd_scan_printf(FILE *fp, const char *fmt, ...)
+-{
+-	va_list ap;
+-	va_start(ap, fmt);
+-
+-	if (fp) {
+-		va_list apc;
+-		va_copy(apc, ap);
+-
+-		vfprintf(fp, fmt, apc);
+-		fflush(fp);
+-
+-		va_end(apc);
+-	}
+-
+-	vprintf(fmt, ap);
+-	fflush(stdout);
+-
+-	va_end(ap);
++	fprintf(stderr, "streaminfo: use \"get /tuner<n>/streaminfo\"\n");
++	return -1;
+ }
+ 
+-static int cmd_scan(const char *tuner_str, const char *filename)
++static int cmd_scan(const char *tuner_str, const char *start_value)
+ {
+-	if (hdhomerun_device_set_tuner_from_str(hd, tuner_str) <= 0) {
++	unsigned int tuner;
++	if (sscanf(tuner_str, "%u", &tuner) != 1) {
+ 		fprintf(stderr, "invalid tuner number\n");
+ 		return -1;
+ 	}
+ 
+-	char *ret_error;
+-	if (hdhomerun_device_tuner_lockkey_request(hd, &ret_error) <= 0) {
+-		fprintf(stderr, "failed to lock tuner\n");
+-		if (ret_error) {
+-			fprintf(stderr, "%s\n", ret_error);
+-		}
+-		return -1;
+-	}
++	hdhomerun_device_set_tuner(hd, tuner);
+ 
+-	hdhomerun_device_set_tuner_target(hd, "none");
+-
+-	char *channelmap;
+-	if (hdhomerun_device_get_tuner_channelmap(hd, &channelmap) <= 0) {
+-		fprintf(stderr, "failed to query channelmap from device\n");
+-		return -1;
++	char channel_str[64];
++	strncpy(channel_str, start_value, sizeof(channel_str));
++	channel_str[sizeof(channel_str) - 8] = 0;
++
++	char *channel_number_ptr = strrchr(channel_str, ':');
++	if (!channel_number_ptr) {
++		channel_number_ptr = channel_str;
++	} else {
++		channel_number_ptr++;
+ 	}
+ 
+-	const char *channelmap_scan_group = hdhomerun_channelmap_get_channelmap_scan_group(channelmap);
+-	if (!channelmap_scan_group) {
+-		fprintf(stderr, "unknown channelmap '%s'\n", channelmap);
++	unsigned int channel_number = atol(channel_number_ptr);
++	if (channel_number == 0) {
++		fprintf(stderr, "invalid starting channel\n");
+ 		return -1;
+ 	}
+ 
+-	if (hdhomerun_device_channelscan_init(hd, channelmap_scan_group) <= 0) {
+-		fprintf(stderr, "failed to initialize channel scan\n");
++	/* Test starting channel. */
++	int ret = hdhomerun_device_set_tuner_channel(hd, channel_str);
++	if (ret < 0) {
++		fprintf(stderr, "communication error sending request to hdhomerun device\n");
+ 		return -1;
+ 	}
+-
+-	FILE *fp = NULL;
+-	if (filename) {
+-		fp = fopen(filename, "w");
+-		if (!fp) {
+-			fprintf(stderr, "unable to create file: %s\n", filename);
+-			return -1;
+-		}
++	if (ret == 0) {
++		fprintf(stderr, "invalid starting channel\n");
++		return -1;
+ 	}
+ 
+-	signal(SIGINT, signal_abort);
+-	signal(SIGPIPE, signal_abort);
++	while (1) {
++		/* Update channel value */
++		sprintf(channel_number_ptr, "%u", channel_number);
+ 
+-	int ret = 0;
+-	while (!sigabort) {
+-		struct hdhomerun_channelscan_result_t result;
+-		ret = hdhomerun_device_channelscan_advance(hd, &result);
+-		if (ret <= 0) {
+-			break;
++		/* Set channel. */
++		ret = hdhomerun_device_set_tuner_channel(hd, channel_str);
++		if (ret < 0) {
++			fprintf(stderr, "communication error sending request to hdhomerun device\n");
++			return -1;
+ 		}
+-
+-		cmd_scan_printf(fp, "SCANNING: %lu (%s)\n",
+-			result.frequency, result.channel_str
+-		);
+-
+-		ret = hdhomerun_device_channelscan_detect(hd, &result);
+-		if (ret <= 0) {
+-			break;
++		if (ret == 0) {
++			return 0;
+ 		}
+ 
+-		cmd_scan_printf(fp, "LOCK: %s (ss=%u snq=%u seq=%u)\n",
+-			result.status.lock_str, result.status.signal_strength,
+-			result.status.signal_to_noise_quality, result.status.symbol_error_quality
+-		);
++		/* Wait 1.5s for lock (qam auto is the slowest to lock). */
++		usleep(HDHOMERUN_DEVICE_MAX_TUNE_TO_LOCK_TIME * 1000);
+ 
+-		if (result.transport_stream_id_detected) {
+-			cmd_scan_printf(fp, "TSID: 0x%04X\n", result.transport_stream_id);
++		/* Get status to check for signal. Quality numbers will not be valid yet. */
++		struct hdhomerun_tuner_status_t status;
++		if (hdhomerun_device_get_tuner_status(hd, &status) < 0) {
++			fprintf(stderr, "communication error sending request to hdhomerun device\n");
++			return -1;
+ 		}
+ 
+-		int i;
+-		for (i = 0; i < result.program_count; i++) {
+-			struct hdhomerun_channelscan_program_t *program = &result.programs[i];
+-			cmd_scan_printf(fp, "PROGRAM %s\n", program->program_str);
++		/* If no signal then advance to next channel. */
++		if (status.signal_strength == 0) {
++			printf("%s: no signal\n", channel_str);
++			channel_number++;
++			continue;
+ 		}
+-	}
+-
+-	hdhomerun_device_tuner_lockkey_release(hd);
+ 
+-	if (fp) {
+-		fclose(fp);
+-	}
+-	if (ret < 0) {
+-		fprintf(stderr, "communication error sending request to hdhomerun device\n");
+-	}
+-	return ret;
+-}
+-
+-static int cmd_save(const char *tuner_str, const char *filename)
+-{
+-	if (hdhomerun_device_set_tuner_from_str(hd, tuner_str) <= 0) {
+-		fprintf(stderr, "invalid tuner number\n");
+-		return -1;
+-	}
++		/* Wait for 2s. */
++		usleep(HDHOMERUN_DEVICE_MAX_LOCK_TO_DATA_TIME * 1000);
+ 
+-	FILE *fp;
+-	if (strcmp(filename, "null") == 0) {
+-		fp = NULL;
+-	} else if (strcmp(filename, "-") == 0) {
+-		fp = stdout;
+-	} else {
+-		fp = fopen(filename, "wb");
+-		if (!fp) {
+-			fprintf(stderr, "unable to create file %s\n", filename);
++		/* Get status to check quality numbers. */
++		if (hdhomerun_device_get_tuner_status(hd, &status) < 0) {
++			fprintf(stderr, "communication error sending request to hdhomerun device\n");
+ 			return -1;
+ 		}
+-	}
+-
+-	int ret = hdhomerun_device_stream_start(hd);
+-	if (ret <= 0) {
+-		fprintf(stderr, "unable to start stream\n");
+-		if (fp && fp != stdout) {
+-			fclose(fp);
+-		}
+-		return ret;
+-	}
+-
+-	signal(SIGINT, signal_abort);
+-	signal(SIGPIPE, signal_abort);
+-
+-	struct hdhomerun_video_stats_t stats_old, stats_cur;
+-	hdhomerun_device_get_video_stats(hd, &stats_old);
+-
+-	uint64_t next_progress = getcurrenttime() + 1000;
+-
+-	while (!sigabort) {
+-		uint64_t loop_start_time = getcurrenttime();
+-
+-		size_t actual_size;
+-		uint8_t *ptr = hdhomerun_device_stream_recv(hd, VIDEO_DATA_BUFFER_SIZE_1S, &actual_size);
+-		if (!ptr) {
+-			msleep(64);
++		if (status.signal_strength == 0) {
++			printf("%s: no signal\n", channel_str);
++			channel_number++;
+ 			continue;
+ 		}
++		printf("%s: ss=%u snq=%u seq=%u\n", channel_str, status.signal_strength, status.signal_to_noise_quality, status.symbol_error_quality);
+ 
+-		if (fp) {
+-			if (fwrite(ptr, 1, actual_size, fp) != actual_size) {
+-				fprintf(stderr, "error writing output\n");
+-				return -1;
+-			}
++		/* Detect sub channels. */
++		usleep(4 * 1000000);
++		char *streaminfo;
++		if (hdhomerun_device_get_tuner_streaminfo(hd, &streaminfo) <= 0) {
++			channel_number++;
++			continue;
+ 		}
+-
+-		if (loop_start_time >= next_progress) {
+-			next_progress += 1000;
+-			if (loop_start_time >= next_progress) {
+-				next_progress = loop_start_time + 1000;
+-			}
+-
+-			hdhomerun_device_get_video_stats(hd, &stats_cur);
+-
+-			if (stats_cur.overflow_error_count > stats_old.overflow_error_count) {
+-				fprintf(stderr, "o");
+-			} else if (stats_cur.network_error_count > stats_old.network_error_count) {
+-				fprintf(stderr, "n");
+-			} else if (stats_cur.transport_error_count > stats_old.transport_error_count) {
+-				fprintf(stderr, "t");
+-			} else if (stats_cur.sequence_error_count > stats_old.sequence_error_count) {
+-				fprintf(stderr, "s");
+-			} else {
+-				fprintf(stderr, ".");
++		while (1) {
++			char *end = strchr(streaminfo, '\n');
++			if (!end) {
++				break;
+ 			}
+ 
+-			stats_old = stats_cur;
+-			fflush(stderr);
+-		}
++			*end++ = 0;
++			printf("program %s\n", streaminfo);
+ 
+-		int32_t delay = 64 - (int32_t)(getcurrenttime() - loop_start_time);
+-		if (delay <= 0) {
+-			continue;
++			streaminfo = end;
+ 		}
+ 
+-		msleep(delay);
+-	}
+-
+-	if (fp) {
+-		fclose(fp);
++		/* Advance to next channel. */
++		channel_number++;
+ 	}
+-
+-	hdhomerun_device_stream_stop(hd);
+-	hdhomerun_device_get_video_stats(hd, &stats_cur);
+-
+-	fprintf(stderr, "\n");
+-	fprintf(stderr, "-- Video statistics --\n");
+-	fprintf(stderr, "%u packets received, %u overflow errors, %u network errors, %u transport errors, %u sequence errors\n",
+-		(unsigned int)stats_cur.packet_count, 
+-		(unsigned int)stats_cur.overflow_error_count,
+-		(unsigned int)stats_cur.network_error_count, 
+-		(unsigned int)stats_cur.transport_error_count, 
+-		(unsigned int)stats_cur.sequence_error_count);
+-
+-	return 0;
+ }
+ 
+ static int cmd_upgrade(const char *filename)
+@@ -434,98 +276,16 @@
+ 		return -1;
+ 	}
+ 
+-	printf("uploading firmware...\n");
+ 	if (hdhomerun_device_upgrade(hd, fp) <= 0) {
+ 		fprintf(stderr, "error sending upgrade file to hdhomerun device\n");
+ 		fclose(fp);
+ 		return -1;
+ 	}
+-	sleep(2);
+-
+-	printf("upgrading firmware...\n");
+-	sleep(8);
+-
+-	printf("rebooting...\n");
+-	int count = 0;
+-	char *version_str;
+-	while (1) {
+-		if (hdhomerun_device_get_version(hd, &version_str, NULL) >= 0) {
+-			break;
+-		}
+-
+-		count++;
+-		if (count > 30) {
+-			fprintf(stderr, "error finding device after firmware upgrade\n");
+-			fclose(fp);
+-			return -1;
+-		}
+ 
+-		sleep(1);
+-	}
+-
+-	printf("upgrade complete - now running firmware %s\n", version_str);
++	printf("upgrade complete\n");
+ 	return 0;
+ }
+ 
+-static int cmd_execute(void)
+-{
+-	char *ret_value;
+-	char *ret_error;
+-	if (hdhomerun_device_get_var(hd, "/sys/boot", &ret_value, &ret_error) < 0) {
+-		fprintf(stderr, "communication error sending request to hdhomerun device\n");
+-		return -1;
+-	}
+-
+-	if (ret_error) {
+-		printf("%s\n", ret_error);
+-		return 0;
+-	}
+-
+-	char *end = ret_value + strlen(ret_value);
+-	char *pos = ret_value;
+-
+-	while (1) {
+-		if (pos >= end) {
+-			break;
+-		}
+-
+-		char *eol_r = strchr(pos, '\r');
+-		if (!eol_r) {
+-			eol_r = end;
+-		}
+-
+-		char *eol_n = strchr(pos, '\n');
+-		if (!eol_n) {
+-			eol_n = end;
+-		}
+-
+-		char *eol = eol_r;
+-		if (eol_n < eol) {
+-			eol = eol_n;
+-		}
+-
+-		char *sep = strchr(pos, ' ');
+-		if (!sep || sep > eol) {
+-			pos = eol + 1;
+-			continue;
+-		}
+-
+-		*sep = 0;
+-		*eol = 0;
+-
+-		char *item = pos;
+-		char *value = sep + 1;
+-
+-		printf("set %s \"%s\"\n", item, value);
+-
+-		cmd_set_internal(item, value);
+-
+-		pos = eol + 1;
+-	}
+-
+-	return 1;
+-}
+-
+ static int main_cmd(int argc, char *argv[])
+ {
+ 	if (argc < 1) {
+@@ -534,17 +294,6 @@
+ 
+ 	char *cmd = *argv++; argc--;
+ 
+-	if (contains(cmd, "key")) {
+-		if (argc < 2) {
+-			return help();
+-		}
+-		uint32_t lockkey = strtoul(argv[0], NULL, 0);
+-		hdhomerun_device_tuner_lockkey_use_value(hd, lockkey);
+-
+-		cmd = argv[1];
+-		argv+=2; argc-=2;
+-	}
+-
+ 	if (contains(cmd, "get")) {
+ 		if (argc < 1) {
+ 			return help();
+@@ -559,22 +308,18 @@
+ 		return cmd_set(argv[0], argv[1]);
+ 	}
+ 
+-	if (contains(cmd, "scan")) {
++	if (contains(cmd, "streaminfo")) {
+ 		if (argc < 1) {
+ 			return help();
+ 		}
+-		if (argc < 2) {
+-			return cmd_scan(argv[0], NULL);
+-		} else {
+-			return cmd_scan(argv[0], argv[1]);
+-		}
++		return cmd_streaminfo(argv[0]);
+ 	}
+ 
+-	if (contains(cmd, "save")) {
++	if (contains(cmd, "scan")) {
+ 		if (argc < 2) {
+ 			return help();
+ 		}
+-		return cmd_save(argv[0], argv[1]);
++		return cmd_scan(argv[0], argv[1]);
+ 	}
+ 
+ 	if (contains(cmd, "upgrade")) {
+@@ -584,17 +329,16 @@
+ 		return cmd_upgrade(argv[0]);
+ 	}
+ 
+-	if (contains(cmd, "execute")) {
+-		return cmd_execute();
+-	}
+-
+ 	return help();
+ }
+ 
+ static int main_internal(int argc, char *argv[])
+ {
+ #if defined(__WINDOWS__)
+-	/* Initialize network socket support. */
++	//Start pthreads
++	pthread_win32_process_attach_np();
++
++	// Start WinSock
+ 	WORD wVersionRequested = MAKEWORD(2, 0);
+ 	WSADATA wsaData;
+ 	WSAStartup(wVersionRequested, &wsaData);
+@@ -613,36 +357,35 @@
+ 		return help();
+ 	}
+ 	if (contains(id_str, "discover")) {
+-		if (argc < 1) {
+-			return discover_print(NULL);
+-		} else {
+-			return discover_print(argv[0]);
+-		}
++		return discover_print();
+ 	}
+ 
+-	/* Device object. */
+-	hd = hdhomerun_device_create_from_str(id_str, NULL);
+-	if (!hd) {
+-		fprintf(stderr, "invalid device id: %s\n", id_str);
++	/* Device ID. */
++	uint32_t device_id, device_ip;
++	if (!parse_device_id_str(id_str, &device_id, &device_ip)) {
+ 		return -1;
+ 	}
+ 
+-	/* Device ID check. */
+-	uint32_t device_id_requested = hdhomerun_device_get_device_id_requested(hd);
+-	if (!hdhomerun_discover_validate_device_id(device_id_requested)) {
+-		fprintf(stderr, "invalid device id: %08lX\n", (unsigned long)device_id_requested);
++	/* Device object. */
++	hd = hdhomerun_device_create(device_id, device_ip, 0);
++	if (!hd) {
++		fprintf(stderr, "unable to create device\n");
++		return -1;
+ 	}
+ 
+-	/* Connect to device and check model. */
+-	const char *model = hdhomerun_device_get_model_str(hd);
+-	if (!model) {
++	/* Connect to device and check firmware version. */
++	int ret = hdhomerun_device_firmware_version_check(hd, 0);
++	if (ret < 0) {
+ 		fprintf(stderr, "unable to connect to device\n");
+ 		hdhomerun_device_destroy(hd);
+ 		return -1;
+ 	}
++	if (ret == 0) {
++		fprintf(stderr, "WARNING: firmware upgrade needed for all operations to function\n");
++	}
+ 
+ 	/* Command. */
+-	int ret = main_cmd(argc, argv);
++	ret = main_cmd(argc, argv);
+ 
+ 	/* Cleanup. */
+ 	hdhomerun_device_destroy(hd);
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_control.c src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_control.c
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_control.c	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_control.c	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_control.c
+  *
+- * Copyright � 2006 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,119 +14,83 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
+-#include "hdhomerun.h"
+-
+-#define HDHOMERUN_CONTROL_SEND_TIMEOUT 5000
+-#define HDHOMERUN_CONTROL_RECV_TIMEOUT 5000
+-#define HDHOMERUN_CONTROL_UPGRADE_TIMEOUT 20000
++#include "hdhomerun_os.h"
++#include "hdhomerun_pkt.h"
++#include "hdhomerun_discover.h"
++#include "hdhomerun_control.h"
+ 
+ struct hdhomerun_control_sock_t {
+-	uint32_t desired_device_id;
+-	uint32_t desired_device_ip;
+-	uint32_t actual_device_id;
+-	uint32_t actual_device_ip;
++	uint32_t device_id;
++	uint32_t device_ip;
+ 	int sock;
+-	struct hdhomerun_debug_t *dbg;
+-	struct hdhomerun_pkt_t tx_pkt;
+-	struct hdhomerun_pkt_t rx_pkt;
++	uint8_t buffer[16384];
+ };
+ 
+-static void hdhomerun_control_close_sock(struct hdhomerun_control_sock_t *cs)
+-{
+-	if (cs->sock == -1) {
+-		return;
+-	}
+-
+-	close(cs->sock);
+-	cs->sock = -1;
+-}
+-
+-void hdhomerun_control_set_device(struct hdhomerun_control_sock_t *cs, uint32_t device_id, uint32_t device_ip)
+-{
+-	hdhomerun_control_close_sock(cs);
+-
+-	cs->desired_device_id = device_id;
+-	cs->desired_device_ip = device_ip;
+-	cs->actual_device_id = 0;
+-	cs->actual_device_ip = 0;
+-}
+-
+-struct hdhomerun_control_sock_t *hdhomerun_control_create(uint32_t device_id, uint32_t device_ip, struct hdhomerun_debug_t *dbg)
++struct hdhomerun_control_sock_t *hdhomerun_control_create(uint32_t device_id, uint32_t device_ip)
+ {
+-	struct hdhomerun_control_sock_t *cs = (struct hdhomerun_control_sock_t *)calloc(1, sizeof(struct hdhomerun_control_sock_t));
++	struct hdhomerun_control_sock_t *cs = (struct hdhomerun_control_sock_t *)malloc(sizeof(struct hdhomerun_control_sock_t));
+ 	if (!cs) {
+-		hdhomerun_debug_printf(dbg, "hdhomerun_control_create: failed to allocate control object\n");
+ 		return NULL;
+ 	}
+-
+-	cs->dbg = dbg;
++	
++	cs->device_id = device_id;
++	cs->device_ip = device_ip;
+ 	cs->sock = -1;
+-	hdhomerun_control_set_device(cs, device_id, device_ip);
+ 
+ 	return cs;
+ }
+ 
+ void hdhomerun_control_destroy(struct hdhomerun_control_sock_t *cs)
+ {
+-	hdhomerun_control_close_sock(cs);
++	if (cs->sock != -1) {
++		close(cs->sock);
++	}
+ 	free(cs);
+ }
+ 
++static void hdhomerun_control_close_sock(struct hdhomerun_control_sock_t *cs)
++{
++	close(cs->sock);
++	cs->sock = -1;
++}
++
+ static bool_t hdhomerun_control_connect_sock(struct hdhomerun_control_sock_t *cs)
+ {
+ 	if (cs->sock != -1) {
+ 		return TRUE;
+ 	}
+ 
+-	if ((cs->desired_device_id == 0) && (cs->desired_device_ip == 0)) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_connect_sock: no device specified\n");
+-		return FALSE;
+-	}
+-
+-	/* Find device. */
+-	struct hdhomerun_discover_device_t result;
+-	if (hdhomerun_discover_find_devices_custom(cs->desired_device_ip, HDHOMERUN_DEVICE_TYPE_WILDCARD, cs->desired_device_id, &result, 1) <= 0) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_connect_sock: device not found\n");
+-		return FALSE;
++	/* Find ip address. */
++	uint32_t device_ip = cs->device_ip;
++	if (device_ip == 0) {
++		struct hdhomerun_discover_device_t result;
++		if (hdhomerun_discover_find_device(cs->device_id, &result) <= 0) {
++			return FALSE;
++		}
++		device_ip = result.ip_addr;
+ 	}
+-	cs->actual_device_ip = result.ip_addr;
+-	cs->actual_device_id = result.device_id;
+ 
+ 	/* Create socket. */
+ 	cs->sock = (int)socket(AF_INET, SOCK_STREAM, 0);
+ 	if (cs->sock == -1) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_connect_sock: failed to create socket (%d)\n", sock_getlasterror);
+ 		return FALSE;
+ 	}
+ 
+ 	/* Set timeouts. */
+-	setsocktimeout(cs->sock, SOL_SOCKET, SO_SNDTIMEO, HDHOMERUN_CONTROL_SEND_TIMEOUT);
+-	setsocktimeout(cs->sock, SOL_SOCKET, SO_RCVTIMEO, HDHOMERUN_CONTROL_RECV_TIMEOUT);
++	setsocktimeout(cs->sock, SOL_SOCKET, SO_SNDTIMEO, 1000);
++	setsocktimeout(cs->sock, SOL_SOCKET, SO_RCVTIMEO, 1000);
+ 
+ 	/* Initiate connection. */
+ 	struct sockaddr_in sock_addr;
+ 	memset(&sock_addr, 0, sizeof(sock_addr));
+ 	sock_addr.sin_family = AF_INET;
+-	sock_addr.sin_addr.s_addr = htonl(cs->actual_device_ip);
++	sock_addr.sin_addr.s_addr = htonl(device_ip);
+ 	sock_addr.sin_port = htons(HDHOMERUN_CONTROL_TCP_PORT);
+ 	if (connect(cs->sock, (struct sockaddr *)&sock_addr, sizeof(sock_addr)) != 0) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_connect_sock: failed to connect (%d)\n", sock_getlasterror);
+ 		hdhomerun_control_close_sock(cs);
+ 		return FALSE;
+ 	}
+@@ -135,215 +99,125 @@
+ 	return TRUE;
+ }
+ 
+-uint32_t hdhomerun_control_get_device_id(struct hdhomerun_control_sock_t *cs)
+-{
+-	if (!hdhomerun_control_connect_sock(cs)) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_device_id: connect failed\n");
+-		return 0;
+-	}
+-
+-	return cs->actual_device_id;
+-}
+-
+-uint32_t hdhomerun_control_get_device_ip(struct hdhomerun_control_sock_t *cs)
+-{
+-	if (!hdhomerun_control_connect_sock(cs)) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_device_ip: connect failed\n");
+-		return 0;
+-	}
+-
+-	return cs->actual_device_ip;
+-}
+-
+-uint32_t hdhomerun_control_get_device_id_requested(struct hdhomerun_control_sock_t *cs)
+-{
+-	return cs->desired_device_id;
+-}
+-
+-uint32_t hdhomerun_control_get_device_ip_requested(struct hdhomerun_control_sock_t *cs)
+-{
+-	return cs->desired_device_ip;
+-}
+-
+ uint32_t hdhomerun_control_get_local_addr(struct hdhomerun_control_sock_t *cs)
+ {
+ 	if (!hdhomerun_control_connect_sock(cs)) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_local_addr: connect failed\n");
+ 		return 0;
+ 	}
+ 
+ 	struct sockaddr_in sock_addr;
+ 	socklen_t sockaddr_size = sizeof(sock_addr);
+ 	if (getsockname(cs->sock, (struct sockaddr*)&sock_addr, &sockaddr_size) != 0) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_local_addr: getsockname failed (%d)\n", sock_getlasterror);
+ 		return 0;
+ 	}
+ 
+ 	return ntohl(sock_addr.sin_addr.s_addr);
+ }
+ 
+-static int hdhomerun_control_send_sock(struct hdhomerun_control_sock_t *cs, struct hdhomerun_pkt_t *tx_pkt)
++static int hdhomerun_control_send(struct hdhomerun_control_sock_t *cs, uint8_t *start, uint8_t *end)
+ {
+-	int length = (int)(tx_pkt->end - tx_pkt->start);
+-	if (send(cs->sock, (char *)tx_pkt->start, (int)length, 0) != length) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_send_sock: send failed (%d)\n", sock_getlasterror);
+-		hdhomerun_control_close_sock(cs);
++	int length = (int)(end - start);
++	if (send(cs->sock, (char *)start, (int)length, 0) != length) {
+ 		return -1;
+ 	}
+ 
+-	return 1;
++	return length;
+ }
+ 
+-static int hdhomerun_control_recv_sock(struct hdhomerun_control_sock_t *cs, struct hdhomerun_pkt_t *rx_pkt, uint16_t *ptype, uint64_t recv_timeout)
++static int hdhomerun_control_recv_sock(struct hdhomerun_control_sock_t *cs, uint8_t *buffer, uint8_t *limit)
+ {
+-	uint64_t stop_time = getcurrenttime() + recv_timeout;
+-	hdhomerun_pkt_reset(rx_pkt);
++	struct timeval t;
++	t.tv_sec = 0;
++	t.tv_usec = 250000;
+ 
+-	while (getcurrenttime() < stop_time) {
+-		struct timeval t;
+-		t.tv_sec = 0;
+-		t.tv_usec = 250000;
+-	
+-		fd_set readfds;
+-		FD_ZERO(&readfds);
+-		FD_SET(cs->sock, &readfds);
+-	
+-		if (select(cs->sock+1, &readfds, NULL, NULL, &t) < 0) {
+-			hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_recv_sock: select failed (%d)\n", sock_getlasterror);
+-			hdhomerun_control_close_sock(cs);
+-			return -1;
+-		}
+-	
+-		if (!FD_ISSET(cs->sock, &readfds)) {
+-			continue;
+-		}
+-	
+-		int rx_length = recv(cs->sock, (char *)rx_pkt->end, (int)(rx_pkt->limit - rx_pkt->end), 0);
+-		if (rx_length <= 0) {
+-			hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_recv_sock: recv failed (%d)\n", sock_getlasterror);
+-			hdhomerun_control_close_sock(cs);
+-			return -1;
+-		}
+-		rx_pkt->end += rx_length;
++	fd_set readfds;
++	FD_ZERO(&readfds);
++	FD_SET(cs->sock, &readfds);
+ 
+-		int ret = hdhomerun_pkt_open_frame(rx_pkt, ptype);
+-		if (ret < 0) {
+-			hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_recv_sock: frame error\n");
+-			hdhomerun_control_close_sock(cs);
+-			return -1;
+-		}
+-		if (ret == 0) {
+-			continue;
+-		}
++	if (select(cs->sock+1, &readfds, NULL, NULL, &t) < 0) {
++		return -1;
++	}
+ 
+-		return 1;
++	if (!FD_ISSET(cs->sock, &readfds)) {
++		return 0;
+ 	}
+ 
+-	hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_recv_sock: timeout\n");
+-	hdhomerun_control_close_sock(cs);
+-	return -1;
++	int length = recv(cs->sock, (char *)buffer, (int)(limit - buffer), 0);
++	if (length <= 0) {
++		return -1;
++	}
++
++	return length;
+ }
+ 
+-static int hdhomerun_control_send_recv_internal(struct hdhomerun_control_sock_t *cs, struct hdhomerun_pkt_t *tx_pkt, struct hdhomerun_pkt_t *rx_pkt, uint16_t type, uint64_t recv_timeout)
++static int hdhomerun_control_recv(struct hdhomerun_control_sock_t *cs, uint8_t *buffer, uint8_t *limit)
+ {
+-	hdhomerun_pkt_seal_frame(tx_pkt, type);
++	uint64_t timeout = getcurrenttime() + 1000;
++	uint8_t *ptr = buffer;
+ 
+-	int i;
+-	for (i = 0; i < 2; i++) {
+-		if (cs->sock == -1) {
+-			if (!hdhomerun_control_connect_sock(cs)) {
+-				hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_send_recv: connect failed\n");
+-				return -1;
+-			}
++	while (getcurrenttime() < timeout) {
++		int length = hdhomerun_control_recv_sock(cs, ptr, limit);
++		if (length < 0) {
++			return -1;
+ 		}
+-
+-		if (hdhomerun_control_send_sock(cs, tx_pkt) < 0) {
++		if (length == 0) {
+ 			continue;
+ 		}
+-		if (!rx_pkt) {
+-			return 1;
+-		}
++		ptr += length;
+ 
+-		uint16_t rsp_type;
+-		if (hdhomerun_control_recv_sock(cs, rx_pkt, &rsp_type, recv_timeout) < 0) {
++		if (buffer + HDHOMERUN_MIN_PEEK_LENGTH > limit) {
+ 			continue;
+ 		}
+-		if (rsp_type != type + 1) {
+-			hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_send_recv: unexpected frame type\n");
+-			hdhomerun_control_close_sock(cs);
++
++		length = (int)hdhomerun_peek_packet_length(buffer);
++		if (buffer + length > limit) {
+ 			continue;
+ 		}
+ 
+-		return 1;
++		return length;
+ 	}
+ 
+-	hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_send_recv: failed\n");
+ 	return -1;
+ }
+ 
+-int hdhomerun_control_send_recv(struct hdhomerun_control_sock_t *cs, struct hdhomerun_pkt_t *tx_pkt, struct hdhomerun_pkt_t *rx_pkt, uint16_t type)
++static int hdhomerun_control_get_set(struct hdhomerun_control_sock_t *cs, const char *name, const char *value, char **pvalue, char **perror)
+ {
+-	return hdhomerun_control_send_recv_internal(cs, tx_pkt, rx_pkt, type, HDHOMERUN_CONTROL_RECV_TIMEOUT);
+-}
+-
+-static int hdhomerun_control_get_set(struct hdhomerun_control_sock_t *cs, const char *name, const char *value, uint32_t lockkey, char **pvalue, char **perror)
+-{
+-	struct hdhomerun_pkt_t *tx_pkt = &cs->tx_pkt;
+-	struct hdhomerun_pkt_t *rx_pkt = &cs->rx_pkt;
+-
+-	/* Request. */
+-	hdhomerun_pkt_reset(tx_pkt);
+-
+-	int name_len = (int)strlen(name) + 1;
+-	if (tx_pkt->end + 3 + name_len > tx_pkt->limit) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_set: request too long\n");
++	/* Send request. */
++	uint8_t *ptr = cs->buffer;
++	hdhomerun_write_get_set_request(&ptr, name, value);
++	if (hdhomerun_control_send(cs, cs->buffer, ptr) < 0) {
+ 		return -1;
+ 	}
+-	hdhomerun_pkt_write_u8(tx_pkt, HDHOMERUN_TAG_GETSET_NAME);
+-	hdhomerun_pkt_write_var_length(tx_pkt, name_len);
+-	hdhomerun_pkt_write_mem(tx_pkt, (void *)name, name_len);
+ 
+-	if (value) {
+-		int value_len = (int)strlen(value) + 1;
+-		if (tx_pkt->end + 3 + value_len > tx_pkt->limit) {
+-			hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_set: request too long\n");
+-			return -1;
+-		}
+-		hdhomerun_pkt_write_u8(tx_pkt, HDHOMERUN_TAG_GETSET_VALUE);
+-		hdhomerun_pkt_write_var_length(tx_pkt, value_len);
+-		hdhomerun_pkt_write_mem(tx_pkt, (void *)value, value_len);
++	/* Receive response. */
++	int length = hdhomerun_control_recv(cs, cs->buffer, cs->buffer + sizeof(cs->buffer));
++	if (length <= 0) {
++		return -1;
+ 	}
+ 
+-	if (lockkey != 0) {
+-		if (tx_pkt->end + 6 > tx_pkt->limit) {
+-			hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_set: request too long\n");
+-			return -1;
+-		}
+-		hdhomerun_pkt_write_u8(tx_pkt, HDHOMERUN_TAG_GETSET_LOCKKEY);
+-		hdhomerun_pkt_write_var_length(tx_pkt, 4);
+-		hdhomerun_pkt_write_u32(tx_pkt, lockkey);
++	/* Parse response. */
++	ptr = cs->buffer;
++	uint8_t *end = ptr + length;
++	int type = hdhomerun_process_packet(&ptr, &end);
++	if (type < 0) {
++		return -1;
+ 	}
+-
+-	/* Send/Recv. */
+-	if (hdhomerun_control_send_recv_internal(cs, tx_pkt, rx_pkt, HDHOMERUN_TYPE_GETSET_REQ, HDHOMERUN_CONTROL_RECV_TIMEOUT) < 0) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_set: send/recv error\n");
++	if (type != HDHOMERUN_TYPE_GETSET_RPY) {
+ 		return -1;
+ 	}
+ 
+-	/* Response. */
+-	while (1) {
++	while (ptr < end) {
+ 		uint8_t tag;
+ 		size_t len;
+-		uint8_t *next = hdhomerun_pkt_read_tlv(rx_pkt, &tag, &len);
+-		if (!next) {
++		uint8_t *val;
++		if (hdhomerun_read_tlv(&ptr, end, &tag, &len, &val) < 0) {
+ 			break;
+ 		}
+-
+ 		switch (tag) {
+ 		case HDHOMERUN_TAG_GETSET_VALUE:
+ 			if (pvalue) {
+-				*pvalue = (char *)rx_pkt->pos;
+-				rx_pkt->pos[len] = 0;
++				*pvalue = (char *)val;
++				val[len] = 0;
+ 			}
+ 			if (perror) {
+ 				*perror = NULL;
+@@ -351,48 +225,59 @@
+ 			return 1;
+ 
+ 		case HDHOMERUN_TAG_ERROR_MESSAGE:
+-			rx_pkt->pos[len] = 0;
+-			hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_set: %s\n", rx_pkt->pos);
+-
+ 			if (pvalue) {
+ 				*pvalue = NULL;
+ 			}
+ 			if (perror) {
+-				*perror = (char *)rx_pkt->pos;
++				*perror = (char *)val;
++				val[len] = 0;
+ 			}
+-
+ 			return 0;
+ 		}
+-
+-		rx_pkt->pos = next;
+ 	}
+ 
+-	hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_get_set: missing response tags\n");
+ 	return -1;
+ }
+ 
+ int hdhomerun_control_get(struct hdhomerun_control_sock_t *cs, const char *name, char **pvalue, char **perror)
+ {
+-	return hdhomerun_control_get_set(cs, name, NULL, 0, pvalue, perror);
++	if (!hdhomerun_control_connect_sock(cs)) {
++		return -1;
++	}
++
++	int ret = hdhomerun_control_get_set(cs, name, NULL, pvalue, perror);
++	if (ret < 0) {
++		hdhomerun_control_close_sock(cs);
++		return -1;
++	}
++
++	return ret;
+ }
+ 
+ int hdhomerun_control_set(struct hdhomerun_control_sock_t *cs, const char *name, const char *value, char **pvalue, char **perror)
+ {
+-	return hdhomerun_control_get_set(cs, name, value, 0, pvalue, perror);
+-}
++	if (!hdhomerun_control_connect_sock(cs)) {
++		return -1;
++	}
+ 
+-int hdhomerun_control_set_with_lockkey(struct hdhomerun_control_sock_t *cs, const char *name, const char *value, uint32_t lockkey, char **pvalue, char **perror)
+-{
+-	return hdhomerun_control_get_set(cs, name, value, lockkey, pvalue, perror);
++	int ret = hdhomerun_control_get_set(cs, name, value, pvalue, perror);
++	if (ret < 0) {
++		hdhomerun_control_close_sock(cs);
++		return -1;
++	}
++
++	return ret;
+ }
+ 
+ int hdhomerun_control_upgrade(struct hdhomerun_control_sock_t *cs, FILE *upgrade_file)
+ {
+-	struct hdhomerun_pkt_t *tx_pkt = &cs->tx_pkt;
+-	struct hdhomerun_pkt_t *rx_pkt = &cs->rx_pkt;
++	if (!hdhomerun_control_connect_sock(cs)) {
++		return -1;
++	}
++
+ 	uint32_t sequence = 0;
++	uint8_t *ptr;
+ 
+-	/* Upload. */
+ 	while (1) {
+ 		uint8_t data[256];
+ 		size_t length = fread(data, 1, 256, upgrade_file);
+@@ -400,12 +285,10 @@
+ 			break;
+ 		}
+ 
+-		hdhomerun_pkt_reset(tx_pkt);
+-		hdhomerun_pkt_write_u32(tx_pkt, sequence);
+-		hdhomerun_pkt_write_mem(tx_pkt, data, length);
+-
+-		if (hdhomerun_control_send_recv_internal(cs, tx_pkt, NULL, HDHOMERUN_TYPE_UPGRADE_REQ, 0) < 0) {
+-			hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_upgrade: send/recv failed\n");
++		ptr = cs->buffer;
++		hdhomerun_write_upgrade_request(&ptr, sequence, data, length);
++		if (hdhomerun_control_send(cs, cs->buffer, ptr) < 0) {
++			hdhomerun_control_close_sock(cs);
+ 			return -1;
+ 		}
+ 
+@@ -414,40 +297,15 @@
+ 
+ 	if (sequence == 0) {
+ 		/* No data in file. Error, but no need to close connection. */
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_upgrade: zero length file\n");
+ 		return 0;
+ 	}
+ 
+-	/* Execute upgrade. */
+-	hdhomerun_pkt_reset(tx_pkt);
+-	hdhomerun_pkt_write_u32(tx_pkt, 0xFFFFFFFF);
+-
+-	if (hdhomerun_control_send_recv_internal(cs, tx_pkt, rx_pkt, HDHOMERUN_TYPE_UPGRADE_REQ, HDHOMERUN_CONTROL_UPGRADE_TIMEOUT) < 0) {
+-		hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_upgrade: send/recv failed\n");
++	ptr = cs->buffer;
++	hdhomerun_write_upgrade_request(&ptr, 0xFFFFFFFF, NULL, 0);
++	if (hdhomerun_control_send(cs, cs->buffer, ptr) < 0) {
++		hdhomerun_control_close_sock(cs);
+ 		return -1;
+ 	}
+ 
+-	/* Check response. */
+-	while (1) {
+-		uint8_t tag;
+-		size_t len;
+-		uint8_t *next = hdhomerun_pkt_read_tlv(rx_pkt, &tag, &len);
+-		if (!next) {
+-			break;
+-		}
+-
+-		switch (tag) {
+-		case HDHOMERUN_TAG_ERROR_MESSAGE:
+-			rx_pkt->pos[len] = 0;
+-			hdhomerun_debug_printf(cs->dbg, "hdhomerun_control_upgrade: %s\n", (char *)rx_pkt->pos);
+-			return 0;
+-
+-		default:
+-			break;
+-		}
+-
+-		rx_pkt->pos = next;
+-	}
+-
+ 	return 1;
+ }
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_control.h src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_control.h
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_control.h	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_control.h	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_control.h
+  *
+- * Copyright � 2006 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,20 +14,8 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ #ifdef __cplusplus
+ extern "C" {
+@@ -43,26 +31,13 @@
+  *
+  * uint32_t device_id = 32-bit device id of device. Set to HDHOMERUN_DEVICE_ID_WILDCARD to match any device ID.
+  * uint32_t device_ip = IP address of device. Set to 0 to auto-detect.
+- * struct hdhomerun_debug_t *dbg: Pointer to debug logging object. May be NULL.
+  *
+  * Returns a pointer to the newly created control socket.
+  *
+  * When no longer needed, the socket should be destroyed by calling hdhomerun_control_destroy.
+  */
+-extern LIBTYPE struct hdhomerun_control_sock_t *hdhomerun_control_create(uint32_t device_id, uint32_t device_ip, struct hdhomerun_debug_t *dbg);
+-extern LIBTYPE void hdhomerun_control_destroy(struct hdhomerun_control_sock_t *cs);
+-
+-/*
+- * Get the actual device id or ip of the device.
+- *
+- * Returns 0 if the device id cannot be determined.
+- */
+-extern LIBTYPE uint32_t hdhomerun_control_get_device_id(struct hdhomerun_control_sock_t *cs);
+-extern LIBTYPE uint32_t hdhomerun_control_get_device_ip(struct hdhomerun_control_sock_t *cs);
+-extern LIBTYPE uint32_t hdhomerun_control_get_device_id_requested(struct hdhomerun_control_sock_t *cs);
+-extern LIBTYPE uint32_t hdhomerun_control_get_device_ip_requested(struct hdhomerun_control_sock_t *cs);
+-
+-extern LIBTYPE void hdhomerun_control_set_device(struct hdhomerun_control_sock_t *cs, uint32_t device_id, uint32_t device_ip);
++extern struct hdhomerun_control_sock_t *hdhomerun_control_create(uint32_t device_id, uint32_t device_ip);
++extern void hdhomerun_control_destroy(struct hdhomerun_control_sock_t *cs);
+ 
+ /*
+  * Get the local machine IP address used when communicating with the device.
+@@ -71,12 +46,7 @@
+  *
+  * Returns 32-bit IP address with native endianness, or 0 on error.
+  */
+-extern LIBTYPE uint32_t hdhomerun_control_get_local_addr(struct hdhomerun_control_sock_t *cs);
+-
+-/*
+- * Low-level communication.
+- */
+-extern LIBTYPE int hdhomerun_control_send_recv(struct hdhomerun_control_sock_t *cs, struct hdhomerun_pkt_t *tx_pkt, struct hdhomerun_pkt_t *rx_pkt, uint16_t type);
++extern uint32_t hdhomerun_control_get_local_addr(struct hdhomerun_control_sock_t *cs);
+ 
+ /*
+  * Get/set a control variable on the device.
+@@ -95,9 +65,8 @@
+  * Returns 0 if the operation was rejected (pvalue NULL, perror set).
+  * Returns -1 if a communication error occurs.
+  */
+-extern LIBTYPE int hdhomerun_control_get(struct hdhomerun_control_sock_t *cs, const char *name, char **pvalue, char **perror);
+-extern LIBTYPE int hdhomerun_control_set(struct hdhomerun_control_sock_t *cs, const char *name, const char *value, char **pvalue, char **perror);
+-extern LIBTYPE int hdhomerun_control_set_with_lockkey(struct hdhomerun_control_sock_t *cs, const char *name, const char *value, uint32_t lockkey, char **pvalue, char **perror);
++extern int hdhomerun_control_get(struct hdhomerun_control_sock_t *cs, const char *name, char **pvalue, char **perror);
++extern int hdhomerun_control_set(struct hdhomerun_control_sock_t *cs, const char *name, const char *value, char **pvalue, char **perror);
+ 
+ /*
+  * Upload new firmware to the device.
+@@ -108,7 +77,7 @@
+  * Returns 0 if the upload was rejected.
+  * Returns -1 if an error occurs.
+  */
+-extern LIBTYPE int hdhomerun_control_upgrade(struct hdhomerun_control_sock_t *cs, FILE *upgrade_file);
++extern int hdhomerun_control_upgrade(struct hdhomerun_control_sock_t *cs, FILE *upgrade_file);
+ 
+ #ifdef __cplusplus
+ }
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_debug.c
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_debug.h
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_device.c src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_device.c
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_device.c	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_device.c	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+- * hdhomerun_device.c
++ * hdhomerun_record.c
+  *
+- * Copyright � 2006-2008 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,92 +14,43 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
+-#include "hdhomerun.h"
++#include "hdhomerun_os.h"
++#include "hdhomerun_pkt.h"
++#include "hdhomerun_control.h"
++#include "hdhomerun_video.h"
++#include "hdhomerun_device.h"
+ 
+ struct hdhomerun_device_t {
+ 	struct hdhomerun_control_sock_t *cs;
+ 	struct hdhomerun_video_sock_t *vs;
+-	struct hdhomerun_debug_t *dbg;
+-	struct hdhomerun_channelscan_t *scan;
+-	uint32_t device_id;
+ 	unsigned int tuner;
+-	uint32_t lockkey;
+-	char name[32];
+-	char model[32];
++	char result_buffer[1024];
+ };
+ 
+-static void hdhomerun_device_set_update(struct hdhomerun_device_t *hd)
+-{
+-	/* Clear cached information. */
+-	*hd->model = 0;
+-
+-	/* New name. */
+-	sprintf(hd->name, "%08lX-%u", (unsigned long)hd->device_id, hd->tuner);
+-}
+-
+-void hdhomerun_device_set_device(struct hdhomerun_device_t *hd, uint32_t device_id, uint32_t device_ip)
+-{
+-	hdhomerun_control_set_device(hd->cs, device_id, device_ip);
+-
+-	if ((device_id == 0) || (device_id == HDHOMERUN_DEVICE_ID_WILDCARD)) {
+-		device_id = hdhomerun_control_get_device_id(hd->cs);
+-	}
+-
+-	hd->device_id = device_id;
+-	hdhomerun_device_set_update(hd);
+-}
+-
+-void hdhomerun_device_set_tuner(struct hdhomerun_device_t *hd, unsigned int tuner)
+-{
+-	hd->tuner = tuner;
+-	hdhomerun_device_set_update(hd);
+-}
+-
+-struct hdhomerun_device_t *hdhomerun_device_create(uint32_t device_id, uint32_t device_ip, unsigned int tuner, struct hdhomerun_debug_t *dbg)
++struct hdhomerun_device_t *hdhomerun_device_create(uint32_t device_id, uint32_t device_ip, unsigned int tuner)
+ {
+ 	struct hdhomerun_device_t *hd = (struct hdhomerun_device_t *)calloc(1, sizeof(struct hdhomerun_device_t));
+ 	if (!hd) {
+-		hdhomerun_debug_printf(dbg, "hdhomerun_device_create: failed to allocate device object\n");
+ 		return NULL;
+ 	}
+ 
+-	hd->dbg = dbg;
++	hd->tuner = tuner;
+ 
+-	hd->cs = hdhomerun_control_create(0, 0, hd->dbg);
++	hd->cs = hdhomerun_control_create(device_id, device_ip);
+ 	if (!hd->cs) {
+-		hdhomerun_debug_printf(hd->dbg, "hdhomerun_device_create: failed to create control object\n");
+ 		free(hd);
+ 		return NULL;
+ 	}
+ 
+-	hdhomerun_device_set_device(hd, device_id, device_ip);
+-	hdhomerun_device_set_tuner(hd, tuner);
+-
+ 	return hd;
+ }
+ 
+ void hdhomerun_device_destroy(struct hdhomerun_device_t *hd)
+ {
+-	if (hd->scan) {
+-		channelscan_destroy(hd->scan);
+-	}
+-
+ 	if (hd->vs) {
+ 		hdhomerun_video_destroy(hd->vs);
+ 	}
+@@ -109,152 +60,9 @@
+ 	free(hd);
+ }
+ 
+-static bool_t is_hex_char(char c)
+-{
+-	if ((c >= '0') && (c <= '9')) {
+-		return TRUE;
+-	}
+-	if ((c >= 'A') && (c <= 'F')) {
+-		return TRUE;
+-	}
+-	if ((c >= 'a') && (c <= 'f')) {
+-		return TRUE;
+-	}
+-	return FALSE;
+-}
+-
+-static struct hdhomerun_device_t *hdhomerun_device_create_from_str_device_id(const char *device_str, struct hdhomerun_debug_t *dbg)
+-{
+-	int i;
+-	const char *ptr = device_str;
+-	for (i = 0; i < 8; i++) {
+-		if (!is_hex_char(*ptr++)) {
+-			return NULL;
+-		}
+-	}
+-
+-	if (*ptr == 0) {
+-		unsigned long device_id;
+-		if (sscanf(device_str, "%lx", &device_id) != 1) {
+-			return NULL;
+-		}
+-		return hdhomerun_device_create((uint32_t)device_id, 0, 0, dbg);
+-	}
+-
+-	if (*ptr == '-') {
+-		unsigned long device_id;
+-		unsigned int tuner;
+-		if (sscanf(device_str, "%lx-%u", &device_id, &tuner) != 2) {
+-			return NULL;
+-		}
+-		return hdhomerun_device_create((uint32_t)device_id, 0, tuner, dbg);
+-	}
+-
+-	return NULL;
+-}
+-
+-static struct hdhomerun_device_t *hdhomerun_device_create_from_str_ip(const char *device_str, struct hdhomerun_debug_t *dbg)
+-{
+-	unsigned long a[4];
+-	if (sscanf(device_str, "%lu.%lu.%lu.%lu", &a[0], &a[1], &a[2], &a[3]) != 4) {
+-		return NULL;
+-	}
+-
+-	unsigned long device_ip = (a[0] << 24) | (a[1] << 16) | (a[2] << 8) | (a[3] << 0);
+-	return hdhomerun_device_create(HDHOMERUN_DEVICE_ID_WILDCARD, (uint32_t)device_ip, 0, dbg);
+-}
+-
+-static struct hdhomerun_device_t *hdhomerun_device_create_from_str_dns(const char *device_str, struct hdhomerun_debug_t *dbg)
+-{
+-#if defined(__CYGWIN__)
+-	return NULL;
+-#else
+-	struct addrinfo hints;
+-	memset(&hints, 0, sizeof(hints));
+-	hints.ai_family = AF_INET;
+-	hints.ai_socktype = SOCK_STREAM;
+-	hints.ai_protocol = IPPROTO_TCP;
+-
+-	struct addrinfo *sock_info;
+-	if (getaddrinfo(device_str, "65001", &hints, &sock_info) != 0) {
+-		return NULL;
+-	}
+-
+-	struct sockaddr_in *sock_addr = (struct sockaddr_in *)sock_info->ai_addr;
+-	uint32_t device_ip = ntohl(sock_addr->sin_addr.s_addr);
+-	freeaddrinfo(sock_info);
+-
+-	if (device_ip == 0) {
+-		return NULL;
+-	}
+-
+-	return hdhomerun_device_create(HDHOMERUN_DEVICE_ID_WILDCARD, (uint32_t)device_ip, 0, dbg);
+-#endif
+-}
+-
+-struct hdhomerun_device_t *hdhomerun_device_create_from_str(const char *device_str, struct hdhomerun_debug_t *dbg)
+-{
+-	struct hdhomerun_device_t *device = hdhomerun_device_create_from_str_device_id(device_str, dbg);
+-	if (device) {
+-		return device;
+-	}
+-
+-	device = hdhomerun_device_create_from_str_ip(device_str, dbg);
+-	if (device) {
+-		return device;
+-	}
+-
+-	device = hdhomerun_device_create_from_str_dns(device_str, dbg);
+-	if (device) {
+-		return device;
+-	}
+-
+-	return NULL;
+-}
+-
+-int hdhomerun_device_set_tuner_from_str(struct hdhomerun_device_t *hd, const char *tuner_str)
+-{
+-	unsigned int tuner;
+-	if (sscanf(tuner_str, "%u", &tuner) == 1) {
+-		hdhomerun_device_set_tuner(hd, tuner);
+-		return 1;
+-	}
+-	if (sscanf(tuner_str, "/tuner%u", &tuner) == 1) {
+-		hdhomerun_device_set_tuner(hd, tuner);
+-		return 1;
+-	}
+-
+-	return -1;
+-}
+-
+-const char *hdhomerun_device_get_name(struct hdhomerun_device_t *hd)
+-{
+-	return hd->name;
+-}
+-
+-uint32_t hdhomerun_device_get_device_id(struct hdhomerun_device_t *hd)
+-{
+-	return hdhomerun_control_get_device_id(hd->cs);
+-}
+-
+-uint32_t hdhomerun_device_get_device_ip(struct hdhomerun_device_t *hd)
+-{
+-	return hdhomerun_control_get_device_ip(hd->cs);
+-}
+-
+-uint32_t hdhomerun_device_get_device_id_requested(struct hdhomerun_device_t *hd)
+-{
+-	return hdhomerun_control_get_device_id_requested(hd->cs);
+-}
+-
+-uint32_t hdhomerun_device_get_device_ip_requested(struct hdhomerun_device_t *hd)
+-{
+-	return hdhomerun_control_get_device_ip_requested(hd->cs);
+-}
+-
+-unsigned int hdhomerun_device_get_tuner(struct hdhomerun_device_t *hd)
++void hdhomerun_device_set_tuner(struct hdhomerun_device_t *hd, unsigned int tuner)
+ {
+-	return hd->tuner;
++	hd->tuner = tuner;
+ }
+ 
+ struct hdhomerun_control_sock_t *hdhomerun_device_get_control_sock(struct hdhomerun_device_t *hd)
+@@ -264,16 +72,9 @@
+ 
+ struct hdhomerun_video_sock_t *hdhomerun_device_get_video_sock(struct hdhomerun_device_t *hd)
+ {
+-	if (hd->vs) {
+-		return hd->vs;
+-	}
+-
+-	hd->vs = hdhomerun_video_create(0, VIDEO_DATA_BUFFER_SIZE_1S * 2, hd->dbg);
+ 	if (!hd->vs) {
+-		hdhomerun_debug_printf(hd->dbg, "hdhomerun_device_get_video_sock: failed to create video object\n");
+-		return NULL;
++		hd->vs = hdhomerun_video_create(0, VIDEO_DATA_BUFFER_SIZE_1S);
+ 	}
+-
+ 	return hd->vs;
+ }
+ 
+@@ -295,73 +96,7 @@
+ 	return (uint32_t)value;
+ }
+ 
+-static bool_t hdhomerun_device_get_tuner_status_lock_is_bcast(struct hdhomerun_tuner_status_t *status)
+-{
+-	if (strcmp(status->lock_str, "8vsb") == 0) {
+-		return TRUE;
+-	}
+-	if (strncmp(status->lock_str, "t8", 2) == 0) {
+-		return TRUE;
+-	}
+-	if (strncmp(status->lock_str, "t7", 2) == 0) {
+-		return TRUE;
+-	}
+-	if (strncmp(status->lock_str, "t6", 2) == 0) {
+-		return TRUE;
+-	}
+-
+-	return FALSE;
+-}
+-
+-uint32_t hdhomerun_device_get_tuner_status_ss_color(struct hdhomerun_tuner_status_t *status)
+-{
+-	unsigned int ss_yellow_min;
+-	unsigned int ss_green_min;
+-
+-	if (!status->lock_supported) {
+-		return HDHOMERUN_STATUS_COLOR_NEUTRAL;
+-	}
+-
+-	if (hdhomerun_device_get_tuner_status_lock_is_bcast(status)) {
+-		ss_yellow_min = 50;	/* -30dBmV */
+-		ss_green_min = 75;	/* -15dBmV */
+-	} else {
+-		ss_yellow_min = 80;	/* -12dBmV */
+-		ss_green_min = 90;	/* -6dBmV */
+-	}
+-
+-	if (status->signal_strength >= ss_green_min) {
+-		return HDHOMERUN_STATUS_COLOR_GREEN;
+-	}
+-	if (status->signal_strength >= ss_yellow_min) {
+-		return HDHOMERUN_STATUS_COLOR_YELLOW;
+-	}
+-
+-	return HDHOMERUN_STATUS_COLOR_RED;
+-}
+-
+-uint32_t hdhomerun_device_get_tuner_status_snq_color(struct hdhomerun_tuner_status_t *status)
+-{
+-	if (status->signal_to_noise_quality >= 70) {
+-		return HDHOMERUN_STATUS_COLOR_GREEN;
+-	}
+-	if (status->signal_to_noise_quality >= 50) {
+-		return HDHOMERUN_STATUS_COLOR_YELLOW;
+-	}
+-
+-	return HDHOMERUN_STATUS_COLOR_RED;
+-}
+-
+-uint32_t hdhomerun_device_get_tuner_status_seq_color(struct hdhomerun_tuner_status_t *status)
+-{
+-	if (status->symbol_error_quality >= 100) {
+-		return HDHOMERUN_STATUS_COLOR_GREEN;
+-	}
+-
+-	return HDHOMERUN_STATUS_COLOR_RED;
+-}
+-
+-int hdhomerun_device_get_tuner_status(struct hdhomerun_device_t *hd, char **pstatus_str, struct hdhomerun_tuner_status_t *status)
++int hdhomerun_device_get_tuner_status(struct hdhomerun_device_t *hd, struct hdhomerun_tuner_status_t *status)
+ {
+ 	memset(status, 0, sizeof(struct hdhomerun_tuner_status_t));
+ 
+@@ -374,18 +109,9 @@
+ 		return ret;
+ 	}
+ 
+-	if (pstatus_str) {
+-		*pstatus_str = status_str;
+-	}
+-
+ 	char *channel = strstr(status_str, "ch=");
+ 	if (channel) {
+-		sscanf(channel + 3, "%31s", status->channel);
+-	}
+-
+-	char *lock = strstr(status_str, "lock=");
+-	if (lock) {
+-		sscanf(lock + 5, "%31s", status->lock_str);
++		sscanf(channel + 3, "%s", status->channel);
+ 	}
+ 
+ 	status->signal_strength = (unsigned int)hdhomerun_device_get_status_parse(status_str, "ss=");
+@@ -394,16 +120,6 @@
+ 	status->raw_bits_per_second = hdhomerun_device_get_status_parse(status_str, "bps=");
+ 	status->packets_per_second = hdhomerun_device_get_status_parse(status_str, "pps=");
+ 
+-	status->signal_present = status->signal_strength >= 45;
+-
+-	if (strcmp(status->lock_str, "none") != 0) {
+-		if (status->lock_str[0] == '(') {
+-			status->lock_unsupported = TRUE;
+-		} else {
+-			status->lock_supported = TRUE;
+-		}
+-	}
+-
+ 	return 1;
+ }
+ 
+@@ -435,74 +151,26 @@
+ 	return hdhomerun_control_get(hd->cs, name, pfilter, NULL);
+ }
+ 
+-int hdhomerun_device_get_tuner_program(struct hdhomerun_device_t *hd, char **pprogram)
++int hdhomerun_device_get_tuner_program(struct hdhomerun_device_t *hd, uint16_t *pprogram_number)
+ {
+ 	char name[32];
+ 	sprintf(name, "/tuner%u/program", hd->tuner);
+-	return hdhomerun_control_get(hd->cs, name, pprogram, NULL);
+-}
+-
+-int hdhomerun_device_get_tuner_target(struct hdhomerun_device_t *hd, char **ptarget)
+-{
+-	char name[32];
+-	sprintf(name, "/tuner%u/target", hd->tuner);
+-	return hdhomerun_control_get(hd->cs, name, ptarget, NULL);
+-}
+-
+-int hdhomerun_device_get_tuner_plotsample(struct hdhomerun_device_t *hd, struct hdhomerun_plotsample_t **psamples, size_t *pcount)
+-{
+-	char name[32];
+-	sprintf(name, "/tuner%u/plotsample", hd->tuner);
+ 
+-	char *result;
+-	int ret = hdhomerun_control_get(hd->cs, name, &result, NULL);
++	char *program_str;
++	int ret = hdhomerun_control_get(hd->cs, name, &program_str, NULL);
+ 	if (ret <= 0) {
+ 		return ret;
+ 	}
+ 
+-	struct hdhomerun_plotsample_t *samples = (struct hdhomerun_plotsample_t *)result;
+-	*psamples = samples;
+-	size_t count = 0;
+-
+-	while (1) {
+-		char *ptr = strchr(result, ' ');
+-		if (!ptr) {
+-			break;
+-		}
+-		*ptr++ = 0;
+-
+-		unsigned long raw;
+-		if (sscanf(result, "%lx", &raw) != 1) {
+-			break;
+-		}
+-
+-		uint16_t real = (raw >> 12) & 0x0FFF;
+-		if (real & 0x0800) {
+-			real |= 0xF000;
+-		}
+-
+-		uint16_t imag = (raw >> 0) & 0x0FFF;
+-		if (imag & 0x0800) {
+-			imag |= 0xF000;
+-		}
+-
+-		samples->real = (int16_t)real;
+-		samples->imag = (int16_t)imag;
+-		samples++;
+-		count++;
+-
+-		result = ptr;
+-	}
+-
+-	*pcount = count;
++	*pprogram_number = (uint16_t)atol(program_str);
+ 	return 1;
+ }
+ 
+-int hdhomerun_device_get_tuner_lockkey_owner(struct hdhomerun_device_t *hd, char **powner)
++int hdhomerun_device_get_tuner_target(struct hdhomerun_device_t *hd, char **ptarget)
+ {
+ 	char name[32];
+-	sprintf(name, "/tuner%u/lockkey", hd->tuner);
+-	return hdhomerun_control_get(hd->cs, name, powner, NULL);
++	sprintf(name, "/tuner%u/target", hd->tuner);
++	return hdhomerun_control_get(hd->cs, name, ptarget, NULL);
+ }
+ 
+ int hdhomerun_device_get_ir_target(struct hdhomerun_device_t *hd, char **ptarget)
+@@ -510,11 +178,6 @@
+ 	return hdhomerun_control_get(hd->cs, "/ir/target", ptarget, NULL);
+ }
+ 
+-int hdhomerun_device_get_lineup_location(struct hdhomerun_device_t *hd, char **plocation)
+-{
+-	return hdhomerun_control_get(hd->cs, "/lineup/location", plocation, NULL);
+-}
+-
+ int hdhomerun_device_get_version(struct hdhomerun_device_t *hd, char **pversion_str, uint32_t *pversion_num)
+ {
+ 	char *version_str;
+@@ -543,119 +206,44 @@
+ {
+ 	char name[32];
+ 	sprintf(name, "/tuner%u/channel", hd->tuner);
+-	return hdhomerun_control_set_with_lockkey(hd->cs, name, channel, hd->lockkey, NULL, NULL);
++	return hdhomerun_control_set(hd->cs, name, channel, NULL, NULL);
+ }
+ 
+ int hdhomerun_device_set_tuner_channelmap(struct hdhomerun_device_t *hd, const char *channelmap)
+ {
+ 	char name[32];
+ 	sprintf(name, "/tuner%u/channelmap", hd->tuner);
+-	return hdhomerun_control_set_with_lockkey(hd->cs, name, channelmap, hd->lockkey, NULL, NULL);
++	return hdhomerun_control_set(hd->cs, name, channelmap, NULL, NULL);
+ }
+ 
+ int hdhomerun_device_set_tuner_filter(struct hdhomerun_device_t *hd, const char *filter)
+ {
+ 	char name[32];
+ 	sprintf(name, "/tuner%u/filter", hd->tuner);
+-	return hdhomerun_control_set_with_lockkey(hd->cs, name, filter, hd->lockkey, NULL, NULL);
+-}
+-
+-static int hdhomerun_device_set_tuner_filter_by_array_append(char **pptr, char *end, uint16_t range_begin, uint16_t range_end)
+-{
+-	char *ptr = *pptr;
+-
+-	size_t available = end - ptr;
+-	size_t required;
+-
+-	if (range_begin == range_end) {
+-		required = snprintf(ptr, available, "0x%04x ", range_begin) + 1;
+-	} else {
+-		required = snprintf(ptr, available, "0x%04x-0x%04x ", range_begin, range_end) + 1;
+-	}
+-
+-	if (required > available) {
+-		return FALSE;
+-	}
+-
+-	*pptr = strchr(ptr, 0);
+-	return TRUE;
+-}
+-
+-int hdhomerun_device_set_tuner_filter_by_array(struct hdhomerun_device_t *hd, unsigned char filter_array[0x2000])
+-{
+-	char filter[1024];
+-	char *ptr = filter;
+-	char *end = filter + sizeof(filter);
+-
+-	uint16_t range_begin = 0xFFFF;
+-	uint16_t range_end = 0xFFFF;
+-
+-	uint16_t i;
+-	for (i = 0; i <= 0x1FFF; i++) {
+-		if (!filter_array[i]) {
+-			if (range_begin == 0xFFFF) {
+-				continue;
+-			}
+-			if (!hdhomerun_device_set_tuner_filter_by_array_append(&ptr, end, range_begin, range_end)) {
+-				return 0;
+-			}
+-			range_begin = 0xFFFF;
+-			range_end = 0xFFFF;
+-			continue;
+-		}
+-
+-		if (range_begin == 0xFFFF) {
+-			range_begin = i;
+-			range_end = i;
+-			continue;
+-		}
+-
+-		range_end = i;
+-	}
+-
+-	if (range_begin != 0xFFFF) {
+-		if (!hdhomerun_device_set_tuner_filter_by_array_append(&ptr, end, range_begin, range_end)) {
+-			return 0;
+-		}
+-	}
+-
+-	/* Remove trailing space. */
+-	if (ptr > filter) {
+-		ptr--;
+-	}
+-	*ptr = 0;
+-
+-	return hdhomerun_device_set_tuner_filter(hd, filter);
++	return hdhomerun_control_set(hd->cs, name, filter, NULL, NULL);
+ }
+ 
+-int hdhomerun_device_set_tuner_program(struct hdhomerun_device_t *hd, const char *program)
++int hdhomerun_device_set_tuner_program(struct hdhomerun_device_t *hd, uint16_t program_number)
+ {
+-	char name[32];
++	char name[32], value[32];
+ 	sprintf(name, "/tuner%u/program", hd->tuner);
+-	return hdhomerun_control_set_with_lockkey(hd->cs, name, program, hd->lockkey, NULL, NULL);
++	sprintf(value, "%u", program_number);
++	return hdhomerun_control_set(hd->cs, name, value, NULL, NULL);
+ }
+ 
+-int hdhomerun_device_set_tuner_target(struct hdhomerun_device_t *hd, const char *target)
++int hdhomerun_device_set_tuner_target(struct hdhomerun_device_t *hd, char *target)
+ {
+ 	char name[32];
+ 	sprintf(name, "/tuner%u/target", hd->tuner);
+-	return hdhomerun_control_set_with_lockkey(hd->cs, name, target, hd->lockkey, NULL, NULL);
++	return hdhomerun_control_set(hd->cs, name, target, NULL, NULL);
+ }
+ 
+-int hdhomerun_device_set_tuner_target_to_local_protocol(struct hdhomerun_device_t *hd, const char *protocol)
++static int hdhomerun_device_set_tuner_target_to_local(struct hdhomerun_device_t *hd)
+ {
+-	/* Create video socket. */
+-	hdhomerun_device_get_video_sock(hd);
+-	if (!hd->vs) {
+-		return -1;
+-	}
+-
+-	/* Set target. */
+ 	char target[64];
+ 	uint32_t local_ip = hdhomerun_control_get_local_addr(hd->cs);
+ 	uint16_t local_port = hdhomerun_video_get_local_port(hd->vs);
+-	sprintf(target, "%s://%u.%u.%u.%u:%u",
+-		protocol,
++	sprintf(target, "%u.%u.%u.%u:%u",
+ 		(unsigned int)(local_ip >> 24) & 0xFF, (unsigned int)(local_ip >> 16) & 0xFF,
+ 		(unsigned int)(local_ip >> 8) & 0xFF, (unsigned int)(local_ip >> 0) & 0xFF,
+ 		(unsigned int)local_port
+@@ -664,21 +252,11 @@
+ 	return hdhomerun_device_set_tuner_target(hd, target);
+ }
+ 
+-int hdhomerun_device_set_tuner_target_to_local(struct hdhomerun_device_t *hd)
+-{
+-	return hdhomerun_device_set_tuner_target_to_local_protocol(hd, HDHOMERUN_TARGET_PROTOCOL_UDP); 
+-}
+-
+ int hdhomerun_device_set_ir_target(struct hdhomerun_device_t *hd, const char *target)
+ {
+ 	return hdhomerun_control_set(hd->cs, "/ir/target", target, NULL, NULL);
+ }
+ 
+-int hdhomerun_device_set_lineup_location(struct hdhomerun_device_t *hd, const char *location)
+-{
+-	return hdhomerun_control_set(hd->cs, "/lineup/location", location, NULL, NULL);
+-}
+-
+ int hdhomerun_device_get_var(struct hdhomerun_device_t *hd, const char *name, char **pvalue, char **perror)
+ {
+ 	return hdhomerun_control_get(hd->cs, name, pvalue, perror);
+@@ -686,183 +264,41 @@
+ 
+ int hdhomerun_device_set_var(struct hdhomerun_device_t *hd, const char *name, const char *value, char **pvalue, char **perror)
+ {
+-	return hdhomerun_control_set_with_lockkey(hd->cs, name, value, hd->lockkey, pvalue, perror);
+-}
+-
+-int hdhomerun_device_tuner_lockkey_request(struct hdhomerun_device_t *hd, char **perror)
+-{
+-	uint32_t new_lockkey = (uint32_t)getcurrenttime();
+-
+-	char name[32];
+-	sprintf(name, "/tuner%u/lockkey", hd->tuner);
+-
+-	char new_lockkey_str[64];
+-	sprintf(new_lockkey_str, "%u", (unsigned int)new_lockkey);
+-
+-	int ret = hdhomerun_control_set_with_lockkey(hd->cs, name, new_lockkey_str, hd->lockkey, NULL, perror);
+-	if (ret <= 0) {
+-		hd->lockkey = 0;
+-		return ret;
+-	}
+-
+-	hd->lockkey = new_lockkey;
+-	return ret;
+-}
+-
+-int hdhomerun_device_tuner_lockkey_release(struct hdhomerun_device_t *hd)
+-{
+-	if (hd->lockkey == 0) {
+-		return 1;
+-	}
+-
+-	char name[32];
+-	sprintf(name, "/tuner%u/lockkey", hd->tuner);
+-	int ret = hdhomerun_control_set_with_lockkey(hd->cs, name, "none", hd->lockkey, NULL, NULL);
+-
+-	hd->lockkey = 0;
+-	return ret;
+-}
+-
+-int hdhomerun_device_tuner_lockkey_force(struct hdhomerun_device_t *hd)
+-{
+-	char name[32];
+-	sprintf(name, "/tuner%u/lockkey", hd->tuner);
+-	int ret = hdhomerun_control_set(hd->cs, name, "force", NULL, NULL);
+-
+-	hd->lockkey = 0;
+-	return ret;
+-}
+-
+-void hdhomerun_device_tuner_lockkey_use_value(struct hdhomerun_device_t *hd, uint32_t lockkey)
+-{
+-	hd->lockkey = lockkey;
++	return hdhomerun_control_set(hd->cs, name, value, pvalue, perror);
+ }
+ 
+-int hdhomerun_device_wait_for_lock(struct hdhomerun_device_t *hd, struct hdhomerun_tuner_status_t *status)
++int hdhomerun_device_stream_start(struct hdhomerun_device_t *hd)
+ {
+-	/* Delay for SS reading to be valid (signal present). */
+-	msleep(250);
+-
+-	/* Wait for up to 2.5 seconds for lock. */
+-	uint64_t timeout = getcurrenttime() + 2500;
+-	while (1) {
+-		/* Get status to check for lock. Quality numbers will not be valid yet. */
+-		int ret = hdhomerun_device_get_tuner_status(hd, NULL, status);
+-		if (ret <= 0) {
+-			return ret;
+-		}
+-
+-		if (!status->signal_present) {
+-			return 1;
+-		}
+-		if (status->lock_supported || status->lock_unsupported) {
+-			return 1;
+-		}
+-
+-		if (getcurrenttime() >= timeout) {
+-			return 1;
+-		}
+-
+-		msleep(250);
++	/* Create video socket. */
++	hdhomerun_device_get_video_sock(hd);
++	if (!hd->vs) {
++		return -1;
+ 	}
+-}
+ 
+-int hdhomerun_device_stream_start(struct hdhomerun_device_t *hd)
+-{
+ 	/* Set target. */
+-	int ret = hdhomerun_device_stream_refresh_target(hd);
++	int ret = hdhomerun_device_set_tuner_target_to_local(hd);
+ 	if (ret <= 0) {
+ 		return ret;
+ 	}
+ 
+ 	/* Flush video buffer. */
+-	msleep(64);
++	usleep(64000);
+ 	hdhomerun_video_flush(hd->vs);
+ 
+ 	/* Success. */
+ 	return 1;
+ }
+ 
+-int hdhomerun_device_stream_refresh_target(struct hdhomerun_device_t *hd)
+-{
+-	int ret = hdhomerun_device_set_tuner_target_to_local_protocol(hd, HDHOMERUN_TARGET_PROTOCOL_RTP);
+-	if (ret == 0) {
+-		ret = hdhomerun_device_set_tuner_target_to_local_protocol(hd, HDHOMERUN_TARGET_PROTOCOL_UDP);
+-	}
+-	return ret;
+-}
+-
+ uint8_t *hdhomerun_device_stream_recv(struct hdhomerun_device_t *hd, size_t max_size, size_t *pactual_size)
+ {
+-	if (!hd->vs) {
+-		return NULL;
+-	}
+ 	return hdhomerun_video_recv(hd->vs, max_size, pactual_size);
+ }
+ 
+-void hdhomerun_device_stream_flush(struct hdhomerun_device_t *hd)
+-{
+-	hdhomerun_video_flush(hd->vs);
+-}
+-
+ void hdhomerun_device_stream_stop(struct hdhomerun_device_t *hd)
+ {
+ 	hdhomerun_device_set_tuner_target(hd, "none");
+ }
+ 
+-int hdhomerun_device_channelscan_init(struct hdhomerun_device_t *hd, const char *channelmap)
+-{
+-	if (hd->scan) {
+-		channelscan_destroy(hd->scan);
+-	}
+-
+-	hd->scan = channelscan_create(hd, channelmap);
+-	if (!hd->scan) {
+-		return -1;
+-	}
+-
+-	return 1;
+-}
+-
+-int hdhomerun_device_channelscan_advance(struct hdhomerun_device_t *hd, struct hdhomerun_channelscan_result_t *result)
+-{
+-	if (!hd->scan) {
+-		return 0;
+-	}
+-
+-	int ret = channelscan_advance(hd->scan, result);
+-	if (ret <= 0) {
+-		channelscan_destroy(hd->scan);
+-		hd->scan = NULL;
+-	}
+-
+-	return ret;
+-}
+-
+-int hdhomerun_device_channelscan_detect(struct hdhomerun_device_t *hd, struct hdhomerun_channelscan_result_t *result)
+-{
+-	if (!hd->scan) {
+-		return 0;
+-	}
+-
+-	int ret = channelscan_detect(hd->scan, result);
+-	if (ret <= 0) {
+-		channelscan_destroy(hd->scan);
+-		hd->scan = NULL;
+-	}
+-
+-	return ret;
+-}
+-
+-uint8_t hdhomerun_device_channelscan_get_progress(struct hdhomerun_device_t *hd)
+-{
+-	if (!hd->scan) {
+-		return 0;
+-	}
+-
+-	return channelscan_get_progress(hd->scan);
+-}
+-
+ int hdhomerun_device_firmware_version_check(struct hdhomerun_device_t *hd, uint32_t features)
+ {
+ 	uint32_t version;
+@@ -870,74 +306,16 @@
+ 		return -1;
+ 	}
+ 
+-	if (version < 20070219) {
+-		return 0;
++	if (version >= 20061213) {
++		return 1;
+ 	}
+ 
+-	return 1;
+-}
+-
+-const char *hdhomerun_device_get_model_str(struct hdhomerun_device_t *hd)
+-{
+-	if (*hd->model) {
+-		return hd->model;
+-	}
+-
+-	char *model_str;
+-	int ret = hdhomerun_control_get(hd->cs, "/sys/model", &model_str, NULL);
+-	if (ret < 0) {
+-		return NULL;
+-	}
+-	if (ret == 0) {
+-		model_str = "hdhomerun_atsc";
+-	}
+-
+-	strncpy(hd->model, model_str, sizeof(hd->model) - 1);
+-	hd->model[sizeof(hd->model) - 1] = 0;
+-
+-	return hd->model;
++	return 0;
+ }
+ 
+ int hdhomerun_device_upgrade(struct hdhomerun_device_t *hd, FILE *upgrade_file)
+ {
+-	hdhomerun_control_set(hd->cs, "/tuner0/lockkey", "force", NULL, NULL);
+ 	hdhomerun_control_set(hd->cs, "/tuner0/channel", "none", NULL, NULL);
+-
+-	hdhomerun_control_set(hd->cs, "/tuner1/lockkey", "force", NULL, NULL);
+ 	hdhomerun_control_set(hd->cs, "/tuner1/channel", "none", NULL, NULL);
+-
+ 	return hdhomerun_control_upgrade(hd->cs, upgrade_file);
+ }
+-
+-void hdhomerun_device_debug_print_video_stats(struct hdhomerun_device_t *hd)
+-{
+-	if (!hdhomerun_debug_enabled(hd->dbg)) {
+-		return;
+-	}
+-
+-	char name[32];
+-	sprintf(name, "/tuner%u/debug", hd->tuner);
+-
+-	char *debug_str;
+-	char *error_str;
+-	int ret = hdhomerun_control_get(hd->cs, name, &debug_str, &error_str);
+-	if (ret < 0) {
+-		hdhomerun_debug_printf(hd->dbg, "video dev: communication error getting debug stats\n");
+-		return;
+-	}
+-
+-	if (error_str) {
+-		hdhomerun_debug_printf(hd->dbg, "video dev: %s\n", error_str);
+-	} else {
+-		hdhomerun_debug_printf(hd->dbg, "video dev: %s\n", debug_str);
+-	}
+-
+-	if (hd->vs) {
+-		hdhomerun_video_debug_print_stats(hd->vs);
+-	}
+-}
+-
+-void hdhomerun_device_get_video_stats(struct hdhomerun_device_t *hd, struct hdhomerun_video_stats_t *stats)
+-{
+-	hdhomerun_video_get_stats(hd->vs, stats);
+-}
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_device.h src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_device.h
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_device.h	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_device.h	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_device.h
+  *
+- * Copyright � 2006-2008 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,20 +14,8 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
+ #ifdef __cplusplus
+@@ -38,8 +26,16 @@
+ #define HDHOMERUN_DEVICE_MAX_LOCK_TO_DATA_TIME 2000
+ #define HDHOMERUN_DEVICE_MAX_TUNE_TO_DATA_TIME (HDHOMERUN_DEVICE_MAX_TUNE_TO_LOCK_TIME + HDHOMERUN_DEVICE_MAX_LOCK_TO_DATA_TIME)
+ 
+-#define HDHOMERUN_TARGET_PROTOCOL_UDP "udp"
+-#define HDHOMERUN_TARGET_PROTOCOL_RTP "rtp"
++struct hdhomerun_device_t;
++
++struct hdhomerun_tuner_status_t {
++	char channel[32];
++	unsigned int signal_strength;
++	unsigned int signal_to_noise_quality;
++	unsigned int symbol_error_quality;
++	uint32_t raw_bits_per_second;
++	uint32_t packets_per_second;
++};
+ 
+ /*
+  * Create a device object.
+@@ -49,49 +45,22 @@
+  *
+  * For example, a threaded application that streams video from 4 tuners (2 HDHomeRun devices) and has
+  * GUI feedback to the user of the selected tuner might use 5 device objects: 4 for streaming video
+- * (one per thread) and one for the GUI display that can switch between tuners.
++ * (one per thread) and one for the GUI display that can just between tuners.
+  *
+- * This function will not attempt to connect to the device. The connection will be established when first used.
++ * This function will not attempt to connect to the device.
++ * The connection will be established when first used.
+  *
+  * uint32_t device_id = 32-bit device id of device. Set to HDHOMERUN_DEVICE_ID_WILDCARD to match any device ID.
+  * uint32_t device_ip = IP address of device. Set to 0 to auto-detect.
+  * unsigned int tuner = tuner index (0 or 1). Can be changed later by calling hdhomerun_device_set_tuner.
+- * struct hdhomerun_debug_t *dbg: Pointer to debug logging object. May be NULL.
+  *
+  * Returns a pointer to the newly created device object.
+  *
+  * When no longer needed, the socket should be destroyed by calling hdhomerun_device_destroy.
+- *
+- * The hdhomerun_device_create_from_str function creates a device object from the given device_str.
+- * The device_str parameter can be any of the following forms:
+- *     <device id>
+- *     <device id>-<tuner index>
+- *     <ip address>
+- * If the tuner index is not included in the device_str then it is set to zero. Use hdhomerun_device_set_tuner
+- * or hdhomerun_device_set_tuner_from_str to set the tuner.
+- *
+- * The hdhomerun_device_set_tuner_from_str function sets the tuner from the given tuner_str.
+- * The tuner_str parameter can be any of the following forms:
+- *     <tuner index>
+- *     /tuner<tuner index>
+  */
+-extern LIBTYPE struct hdhomerun_device_t *hdhomerun_device_create(uint32_t device_id, uint32_t device_ip, unsigned int tuner, struct hdhomerun_debug_t *dbg);
+-extern LIBTYPE struct hdhomerun_device_t *hdhomerun_device_create_from_str(const char *device_str, struct hdhomerun_debug_t *dbg);
+-extern LIBTYPE void hdhomerun_device_destroy(struct hdhomerun_device_t *hd);
+-
+-/*
+- * Get the device id, ip, or tuner of the device instance.
+- */
+-extern LIBTYPE const char *hdhomerun_device_get_name(struct hdhomerun_device_t *hd);
+-extern LIBTYPE uint32_t hdhomerun_device_get_device_id(struct hdhomerun_device_t *hd);
+-extern LIBTYPE uint32_t hdhomerun_device_get_device_ip(struct hdhomerun_device_t *hd);
+-extern LIBTYPE uint32_t hdhomerun_device_get_device_id_requested(struct hdhomerun_device_t *hd);
+-extern LIBTYPE uint32_t hdhomerun_device_get_device_ip_requested(struct hdhomerun_device_t *hd);
+-extern LIBTYPE unsigned int hdhomerun_device_get_tuner(struct hdhomerun_device_t *hd);
+-
+-extern LIBTYPE void hdhomerun_device_set_device(struct hdhomerun_device_t *hd, uint32_t device_id, uint32_t device_ip);
+-extern LIBTYPE void hdhomerun_device_set_tuner(struct hdhomerun_device_t *hd, unsigned int tuner);
+-extern LIBTYPE int hdhomerun_device_set_tuner_from_str(struct hdhomerun_device_t *hd, const char *tuner_str);
++extern struct hdhomerun_device_t *hdhomerun_device_create(uint32_t device_id, uint32_t device_ip, unsigned int tuner);
++extern void hdhomerun_device_destroy(struct hdhomerun_device_t *hd);
++extern void hdhomerun_device_set_tuner(struct hdhomerun_device_t *hd, unsigned int tuner);
+ 
+ /*
+  * Get the local machine IP address used when communicating with the device.
+@@ -100,7 +69,7 @@
+  *
+  * Returns 32-bit IP address with native endianness, or 0 on error.
+  */
+-extern LIBTYPE uint32_t hdhomerun_device_get_local_machine_addr(struct hdhomerun_device_t *hd);
++extern uint32_t hdhomerun_device_get_local_machine_addr(struct hdhomerun_device_t *hd);
+ 
+ /*
+  * Get operations.
+@@ -113,24 +82,15 @@
+  * Returns 0 if the operation was rejected.
+  * Returns -1 if a communication error occurred.
+  */
+-extern LIBTYPE int hdhomerun_device_get_tuner_status(struct hdhomerun_device_t *hd, char **pstatus_str, struct hdhomerun_tuner_status_t *status);
+-extern LIBTYPE int hdhomerun_device_get_tuner_streaminfo(struct hdhomerun_device_t *hd, char **pstreaminfo);
+-extern LIBTYPE int hdhomerun_device_get_tuner_channel(struct hdhomerun_device_t *hd, char **pchannel);
+-extern LIBTYPE int hdhomerun_device_get_tuner_channelmap(struct hdhomerun_device_t *hd, char **pchannelmap);
+-extern LIBTYPE int hdhomerun_device_get_tuner_filter(struct hdhomerun_device_t *hd, char **pfilter);
+-extern LIBTYPE int hdhomerun_device_get_tuner_program(struct hdhomerun_device_t *hd, char **pprogram);
+-extern LIBTYPE int hdhomerun_device_get_tuner_target(struct hdhomerun_device_t *hd, char **ptarget);
+-extern LIBTYPE int hdhomerun_device_get_tuner_plotsample(struct hdhomerun_device_t *hd, struct hdhomerun_plotsample_t **psamples, size_t *pcount);
+-extern LIBTYPE int hdhomerun_device_get_tuner_lockkey_owner(struct hdhomerun_device_t *hd, char **powner);
+-extern LIBTYPE int hdhomerun_device_get_ir_target(struct hdhomerun_device_t *hd, char **ptarget);
+-extern LIBTYPE int hdhomerun_device_get_lineup_location(struct hdhomerun_device_t *hd, char **plocation);
+-extern LIBTYPE int hdhomerun_device_get_version(struct hdhomerun_device_t *hd, char **pversion_str, uint32_t *pversion_num);
+-
+-extern LIBTYPE uint32_t hdhomerun_device_get_tuner_status_ss_color(struct hdhomerun_tuner_status_t *status);
+-extern LIBTYPE uint32_t hdhomerun_device_get_tuner_status_snq_color(struct hdhomerun_tuner_status_t *status);
+-extern LIBTYPE uint32_t hdhomerun_device_get_tuner_status_seq_color(struct hdhomerun_tuner_status_t *status);
+-
+-extern LIBTYPE const char *hdhomerun_device_get_model_str(struct hdhomerun_device_t *hd);
++extern int hdhomerun_device_get_tuner_status(struct hdhomerun_device_t *hd, struct hdhomerun_tuner_status_t *status);
++extern int hdhomerun_device_get_tuner_streaminfo(struct hdhomerun_device_t *hd, char **pstreaminfo);
++extern int hdhomerun_device_get_tuner_channel(struct hdhomerun_device_t *hd, char **pchannel);
++extern int hdhomerun_device_get_tuner_channelmap(struct hdhomerun_device_t *hd, char **pchannelmap);
++extern int hdhomerun_device_get_tuner_filter(struct hdhomerun_device_t *hd, char **pfilter);
++extern int hdhomerun_device_get_tuner_program(struct hdhomerun_device_t *hd, uint16_t *pprogram_number);
++extern int hdhomerun_device_get_tuner_target(struct hdhomerun_device_t *hd, char **ptarget);
++extern int hdhomerun_device_get_ir_target(struct hdhomerun_device_t *hd, char **ptarget);
++extern int hdhomerun_device_get_version(struct hdhomerun_device_t *hd, char **pversion_str, uint32_t *pversion_num);
+ 
+ /*
+  * Set operations.
+@@ -141,16 +101,12 @@
+  * Returns 0 if the operation was rejected.
+  * Returns -1 if a communication error occurred.
+  */
+-extern LIBTYPE int hdhomerun_device_set_tuner_channel(struct hdhomerun_device_t *hd, const char *channel);
+-extern LIBTYPE int hdhomerun_device_set_tuner_channelmap(struct hdhomerun_device_t *hd, const char *channelmap);
+-extern LIBTYPE int hdhomerun_device_set_tuner_filter(struct hdhomerun_device_t *hd, const char *filter);
+-extern LIBTYPE int hdhomerun_device_set_tuner_filter_by_array(struct hdhomerun_device_t *hd, unsigned char filter_array[0x2000]);
+-extern LIBTYPE int hdhomerun_device_set_tuner_program(struct hdhomerun_device_t *hd, const char *program);
+-extern LIBTYPE int hdhomerun_device_set_tuner_target(struct hdhomerun_device_t *hd, const char *target);
+-extern LIBTYPE int hdhomerun_device_set_tuner_target_to_local_protocol(struct hdhomerun_device_t *hd, const char *protocol);
+-extern LIBTYPE int hdhomerun_device_set_tuner_target_to_local(struct hdhomerun_device_t *hd);
+-extern LIBTYPE int hdhomerun_device_set_ir_target(struct hdhomerun_device_t *hd, const char *target);
+-extern LIBTYPE int hdhomerun_device_set_lineup_location(struct hdhomerun_device_t *hd, const char *location);
++extern int hdhomerun_device_set_tuner_channel(struct hdhomerun_device_t *hd, const char *channel);
++extern int hdhomerun_device_set_tuner_channelmap(struct hdhomerun_device_t *hd, const char *channelmap);
++extern int hdhomerun_device_set_tuner_filter(struct hdhomerun_device_t *hd, const char *filter);
++extern int hdhomerun_device_set_tuner_program(struct hdhomerun_device_t *hd, uint16_t program_number);
++extern int hdhomerun_device_set_tuner_target(struct hdhomerun_device_t *hd, char *target);
++extern int hdhomerun_device_set_ir_target(struct hdhomerun_device_t *hd, const char *target);
+ 
+ /*
+  * Get/set a named control variable on the device.
+@@ -169,42 +125,8 @@
+  * Returns 0 if the operation was rejected (pvalue NULL, perror set).
+  * Returns -1 if a communication error occurs.
+  */
+-extern LIBTYPE int hdhomerun_device_get_var(struct hdhomerun_device_t *hd, const char *name, char **pvalue, char **perror);
+-extern LIBTYPE int hdhomerun_device_set_var(struct hdhomerun_device_t *hd, const char *name, const char *value, char **pvalue, char **perror);
+-
+-/*
+- * Tuner locking.
+- *
+- * The hdhomerun_device_tuner_lockkey_request function is used to obtain a lock
+- * or to verify that the hdhomerun_device object still holds the lock.
+- * Returns 1 if the lock request was successful and the lock was obtained.
+- * Returns 0 if the lock request was rejected.
+- * Returns -1 if a communication error occurs.
+- *
+- * The hdhomerun_device_tuner_lockkey_release function is used to release a
+- * previously held lock. If locking is used then this function must be called
+- * before destroying the hdhomerun_device object.
+- */
+-extern LIBTYPE int hdhomerun_device_tuner_lockkey_request(struct hdhomerun_device_t *hd, char **perror);
+-extern LIBTYPE int hdhomerun_device_tuner_lockkey_release(struct hdhomerun_device_t *hd);
+-extern LIBTYPE int hdhomerun_device_tuner_lockkey_force(struct hdhomerun_device_t *hd);
+-
+-/*
+- * Intended only for non persistent connections; eg, hdhomerun_config.
+- */
+-extern LIBTYPE void hdhomerun_device_tuner_lockkey_use_value(struct hdhomerun_device_t *hd, uint32_t lockkey);
+-
+-/*
+- * Wait for tuner lock after channel change.
+- *
+- * The hdhomerun_device_wait_for_lock function is used to detect/wait for a lock vs no lock indication
+- * after a channel change.
+- *
+- * It will return quickly if a lock is aquired.
+- * It will return quickly if there is no signal detected.
+- * Worst case it will time out after 1.5 seconds - the case where there is signal but no lock.
+- */
+-extern LIBTYPE int hdhomerun_device_wait_for_lock(struct hdhomerun_device_t *hd, struct hdhomerun_tuner_status_t *status);
++extern int hdhomerun_device_get_var(struct hdhomerun_device_t *hd, const char *name, char **pvalue, char **perror);
++extern int hdhomerun_device_set_var(struct hdhomerun_device_t *hd, const char *name, const char *value, char **pvalue, char **perror);
+ 
+ /*
+  * Stream a filtered program or the unfiltered stream.
+@@ -222,19 +144,9 @@
+  *
+  * The hdhomerun_device_stream_stop function tells the device to stop streaming data.
+  */
+-extern LIBTYPE int hdhomerun_device_stream_start(struct hdhomerun_device_t *hd);
+-extern LIBTYPE int hdhomerun_device_stream_refresh_target(struct hdhomerun_device_t *hd);
+-extern LIBTYPE uint8_t *hdhomerun_device_stream_recv(struct hdhomerun_device_t *hd, size_t max_size, size_t *pactual_size);
+-extern LIBTYPE void hdhomerun_device_stream_flush(struct hdhomerun_device_t *hd);
+-extern LIBTYPE void hdhomerun_device_stream_stop(struct hdhomerun_device_t *hd);
+-
+-/*
+- * Channel scan API.
+- */
+-extern LIBTYPE int hdhomerun_device_channelscan_init(struct hdhomerun_device_t *hd, const char *channelmap);
+-extern LIBTYPE int hdhomerun_device_channelscan_advance(struct hdhomerun_device_t *hd, struct hdhomerun_channelscan_result_t *result);
+-extern LIBTYPE int hdhomerun_device_channelscan_detect(struct hdhomerun_device_t *hd, struct hdhomerun_channelscan_result_t *result);
+-extern LIBTYPE uint8_t hdhomerun_device_channelscan_get_progress(struct hdhomerun_device_t *hd);
++extern int hdhomerun_device_stream_start(struct hdhomerun_device_t *hd);
++extern uint8_t *hdhomerun_device_stream_recv(struct hdhomerun_device_t *hd, size_t max_size, size_t *pactual_size);
++extern void hdhomerun_device_stream_stop(struct hdhomerun_device_t *hd);
+ 
+ /*
+  * Check that the device is running the recommended firmware.
+@@ -245,7 +157,7 @@
+  * Returns 0 if th firmware does not meet the minimum requriements for all operations.
+  * Returns -1 if an error occurs.
+  */
+-extern LIBTYPE int hdhomerun_device_firmware_version_check(struct hdhomerun_device_t *hd, uint32_t features);
++extern int hdhomerun_device_firmware_version_check(struct hdhomerun_device_t *hd, uint32_t features);
+ 
+ /*
+  * Upload new firmware to the device.
+@@ -256,19 +168,13 @@
+  * Returns 0 if the upload was rejected.
+  * Returns -1 if an error occurs.
+  */
+-extern LIBTYPE int hdhomerun_device_upgrade(struct hdhomerun_device_t *hd, FILE *upgrade_file);
++extern int hdhomerun_device_upgrade(struct hdhomerun_device_t *hd, FILE *upgrade_file);
+ 
+ /*
+  * Low level accessor functions. 
+  */
+-extern LIBTYPE struct hdhomerun_control_sock_t *hdhomerun_device_get_control_sock(struct hdhomerun_device_t *hd);
+-extern LIBTYPE struct hdhomerun_video_sock_t *hdhomerun_device_get_video_sock(struct hdhomerun_device_t *hd);
+-
+-/*
+- * Debug print internal stats.
+- */
+-extern LIBTYPE void hdhomerun_device_debug_print_video_stats(struct hdhomerun_device_t *hd);
+-extern LIBTYPE void hdhomerun_device_get_video_stats(struct hdhomerun_device_t *hd, struct hdhomerun_video_stats_t *stats);
++extern struct hdhomerun_control_sock_t *hdhomerun_device_get_control_sock(struct hdhomerun_device_t *hd);
++extern struct hdhomerun_video_sock_t *hdhomerun_device_get_video_sock(struct hdhomerun_device_t *hd);
+ 
+ #ifdef __cplusplus
+ }
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_device_selector.c
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_device_selector.h
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_dhcp.c
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_dhcp.h
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_discover.c src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_discover.c
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_discover.c	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_discover.c	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_discover.c
+  *
+- * Copyright � 2006-2007 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,93 +14,206 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
+-#include "hdhomerun.h"
++#include "hdhomerun_os.h"
++#include "hdhomerun_pkt.h"
++#include "hdhomerun_discover.h"
+ 
+ #if defined(__CYGWIN__) || defined(__WINDOWS__)
+ #include <windows.h>
++#include <iptypes.h>
+ #include <iphlpapi.h>
+-#define USE_IPHLPAPI 1
+-#else
+-#include <net/if.h>
+-#include <sys/ioctl.h>
+-#ifndef _SIZEOF_ADDR_IFREQ
+-#define _SIZEOF_ADDR_IFREQ(x) sizeof(x)
+-#endif
+ #endif
+ 
+-#define HDHOMERUN_DISOCVER_MAX_SOCK_COUNT 16
++// for OSX
++#include <unistd.h>    // execl, pipe, sysconf
++#include <sys/types.h> // waitpid
++#include <sys/wait.h>  // waitpid
+ 
+ struct hdhomerun_discover_sock_t {
+ 	int sock;
+-	uint32_t local_ip;
+-	uint32_t subnet_mask;
+ };
+ 
+-struct hdhomerun_discover_t {
+-	struct hdhomerun_discover_sock_t socks[HDHOMERUN_DISOCVER_MAX_SOCK_COUNT];
+-	unsigned int sock_count;
+-	struct hdhomerun_pkt_t tx_pkt;
+-	struct hdhomerun_pkt_t rx_pkt;
+-};
+-
+-static bool_t hdhomerun_discover_sock_create(struct hdhomerun_discover_t *ds, uint32_t local_ip, uint32_t subnet_mask)
++static struct hdhomerun_discover_sock_t *hdhomerun_discover_create(void)
+ {
+-	if (ds->sock_count >= HDHOMERUN_DISOCVER_MAX_SOCK_COUNT) {
+-		return FALSE;
++	struct hdhomerun_discover_sock_t *ds = (struct hdhomerun_discover_sock_t *)malloc(sizeof(struct hdhomerun_discover_sock_t));
++	if (!ds) {
++		return NULL;
+ 	}
+-
++	
+ 	/* Create socket. */
+-	int sock = (int)socket(AF_INET, SOCK_DGRAM, 0);
+-	if (sock == -1) {
+-		return FALSE;
++	ds->sock = (int)socket(AF_INET, SOCK_DGRAM, 0);
++	if (ds->sock == -1) {
++		free(ds);
++		return NULL;
+ 	}
+ 
+ 	/* Set timeouts. */
+-	setsocktimeout(sock, SOL_SOCKET, SO_SNDTIMEO, 1000);
+-	setsocktimeout(sock, SOL_SOCKET, SO_RCVTIMEO, 1000);
++	setsocktimeout(ds->sock, SOL_SOCKET, SO_SNDTIMEO, 1000);
++	setsocktimeout(ds->sock, SOL_SOCKET, SO_RCVTIMEO, 1000);
+ 
+ 	/* Allow broadcast. */
+ 	int sock_opt = 1;
+-	setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char *)&sock_opt, sizeof(sock_opt));
++	setsockopt(ds->sock, SOL_SOCKET, SO_BROADCAST, (char *)&sock_opt, sizeof(sock_opt));
+ 
+ 	/* Bind socket. */
+ 	struct sockaddr_in sock_addr;
+ 	memset(&sock_addr, 0, sizeof(sock_addr));
+ 	sock_addr.sin_family = AF_INET;
+-	sock_addr.sin_addr.s_addr = htonl(local_ip);
++	sock_addr.sin_addr.s_addr = htonl(INADDR_ANY);
+ 	sock_addr.sin_port = htons(0);
+-	if (bind(sock, (struct sockaddr *)&sock_addr, sizeof(sock_addr)) != 0) {
+-		close(sock);
+-		return FALSE;
++	if (bind(ds->sock, (struct sockaddr *)&sock_addr, sizeof(sock_addr)) != 0) {
++		close(ds->sock);
++		free(ds);
++		return NULL;
+ 	}
+ 
+-	/* Write sock entry. */
+-	struct hdhomerun_discover_sock_t *dss = &ds->socks[ds->sock_count++];
+-	dss->sock = sock;
+-	dss->local_ip = local_ip;
+-	dss->subnet_mask = subnet_mask;
++	/* Success. */
++	return ds;
++}
+ 
+-	return TRUE;
++static void hdhomerun_discover_destroy(struct hdhomerun_discover_sock_t *ds)
++{
++	close(ds->sock);
++	free(ds);
+ }
+ 
+-#if defined(USE_IPHLPAPI)
+-static void hdhomerun_discover_sock_detect(struct hdhomerun_discover_t *ds)
++static int hdhomerun_discover_send_packet(struct hdhomerun_discover_sock_t *ds, uint32_t ip_addr, uint32_t device_type, uint32_t device_id)
++{
++	uint8_t buffer[1024];
++	uint8_t *ptr = buffer;
++	hdhomerun_write_discover_request(&ptr, device_type, device_id);
++
++	struct sockaddr_in sock_addr;
++	memset(&sock_addr, 0, sizeof(sock_addr));
++	sock_addr.sin_family = AF_INET;
++	sock_addr.sin_addr.s_addr = htonl(ip_addr);
++	sock_addr.sin_port = htons(HDHOMERUN_DISCOVER_UDP_PORT);
++
++	int length = (int)(ptr - buffer);
++	if (sendto(ds->sock, (char *)buffer, (int)length, 0, (struct sockaddr *)&sock_addr, sizeof(sock_addr)) != length) {
++		return -1;
++	}
++
++	return 0;
++}
++
++#if defined(__APPLE__)
++static int hdhomerun_discover_send_internal(struct hdhomerun_discover_sock_t *ds, unsigned long device_type, unsigned long device_id)
++{
++    /* printf("Looking for 0x%lx with id 0x%lx\n", device_type, device_id); */
++    int fds[2];
++    if (pipe(fds) < 0)
++    {
++        printf("Pipe Failed\n");
++        return -1;
++    }
++
++    pid_t child = fork();
++    if (child < 0)
++    {
++        printf("Fork Failed\n");
++        return -1;
++    }
++    else if (child == 0)
++    {
++        /* Child */
++        int i = 0;
++
++        /* Attach stdout to pipe */
++        close(1);
++        dup2(fds[1], 1);
++
++        /* Close all open file descriptors except stdout/stderr */
++        for (i = sysconf(_SC_OPEN_MAX) - 1; i > 2; i--)
++            close(i);
++
++        /* Run command */
++        execl("/bin/sh", "sh", "-c", "ifconfig", NULL);
++
++        /* Failed to exec */
++        _exit(1); /* this exit is ok */
++    }
++    else
++    {
++        /* Parent */
++        int send_count = 0;
++        int status;
++        FILE *fp;
++        char line[1024];
++        char adaptor[1024];
++
++        close(fds[1]);
++
++        if (waitpid(child, &status, 0) < 0)
++            return -1;
++
++        if (WEXITSTATUS(status))
++            return -1;
++
++        fp = fdopen(fds[0], "r");
++        while (1)
++        {
++            char *ptr = NULL;
++            int netmask, broadcast;
++            int a,b,c,d;
++
++            if (!fgets(line, sizeof(line) - 1, fp))
++            {
++                break;
++            }
++
++            line[1023] = 0;
++
++            /* find ": flags" */
++            ptr = strnstr(line, ": flags", 1024 - 1);
++            if (ptr >= line)
++            {
++                /* grab adaptor before that */
++                strncpy(adaptor, line, ptr-line);
++                adaptor[ptr-line] = 0;
++            }
++
++            /* find "netmask " */
++            ptr = strnstr(line, "netmask ", 1024 - 1);
++            if (ptr <= line)
++                continue;
++            ptr += strlen("netmask ");
++            sscanf(ptr, "%x", &netmask);
++
++            /* find "broadcast " */
++            ptr = strnstr(ptr, "broadcast ", 1024 - 1);
++            if (ptr <= line)
++                continue;
++            ptr += strlen("broadcast ");
++            sscanf(ptr, "%i.%i.%i.%i", &a, &b, &c, &d);
++            broadcast = a<<24 | b<<16 | c<<8 | d;
++            /*
++            printf("Adaptor: '%s' 0x%08x %i.%i.%i.%i\n",
++                   adaptor, broadcast, a,b,c,d);
++            */
++
++            /* send discover packet this adaptor */
++            if (hdhomerun_discover_send_packet(
++                    ds, broadcast, device_type, device_id) >= 0)
++            {
++                send_count++;
++            }
++        }
++
++        fclose(fp); /* this closes fds[0] as well */
++
++        /* printf("send_count: %i\n\n", send_count); */
++        return (send_count == 0) ? -1 : 0;
++    }
++}
++
++#elif defined(__CYGWIN__) || defined(__WINDOWS__)
++
++static int hdhomerun_discover_send_internal(struct hdhomerun_discover_sock_t *ds, uint32_t device_type, uint32_t device_id)
+ {
+ 	PIP_ADAPTER_INFO pAdapterInfo = (IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));
+ 	ULONG ulOutBufLen = sizeof(IP_ADAPTER_INFO);
+@@ -109,29 +222,37 @@
+ 	if (Ret != NO_ERROR) {
+ 		free(pAdapterInfo);
+ 		if (Ret != ERROR_BUFFER_OVERFLOW) {
+-			return;
++			return -1;
+ 		}
+ 		pAdapterInfo = (IP_ADAPTER_INFO *)malloc(ulOutBufLen); 
+ 		Ret = GetAdaptersInfo(pAdapterInfo, &ulOutBufLen);
+ 		if (Ret != NO_ERROR) {
+ 			free(pAdapterInfo);
+-			return;
++			return -1;
+ 		}
+ 	}
+ 
++	unsigned int send_count = 0;
+ 	PIP_ADAPTER_INFO pAdapter = pAdapterInfo;
+ 	while (pAdapter) {
+ 		IP_ADDR_STRING *pIPAddr = &pAdapter->IpAddressList;
+ 		while (pIPAddr) {
+-			uint32_t local_ip = ntohl(inet_addr(pIPAddr->IpAddress.String));
++			uint32_t addr = ntohl(inet_addr(pIPAddr->IpAddress.String));
+ 			uint32_t mask = ntohl(inet_addr(pIPAddr->IpMask.String));
++			
++			uint32_t broadcast = addr | ~mask;
++			if ((broadcast == 0x00000000) || (broadcast == 0xFFFFFFFF)) {
++				pIPAddr = pIPAddr->Next;
++				continue;
++			}
+ 
+-			if (local_ip == 0) {
++			if (hdhomerun_discover_send_packet(ds, broadcast, device_type, device_id) < 0) {
+ 				pIPAddr = pIPAddr->Next;
+ 				continue;
+ 			}
+ 
+-			hdhomerun_discover_sock_create(ds, local_ip, mask);
++			send_count++;
++
+ 			pIPAddr = pIPAddr->Next;
+ 		}
+ 
+@@ -139,198 +260,111 @@
+ 	}
+ 
+ 	free(pAdapterInfo);
+-}
+-
+-#else
+ 
+-static void hdhomerun_discover_sock_detect(struct hdhomerun_discover_t *ds)
+-{
+-	int fd = socket(AF_INET, SOCK_DGRAM, 0);
+-	if (fd == -1) {
+-		return;
++	if (send_count == 0) {
++		return -1;
+ 	}
++	return 0;
++}
+ 
+-	struct ifconf ifc;
+-	uint8_t buf[8192];
+-	ifc.ifc_len = sizeof(buf);
+-	ifc.ifc_buf = (char *)buf;
+-
+-	memset(buf, 0, sizeof(buf));
++#elif defined(__linux__)
+ 
+-	if (ioctl(fd, SIOCGIFCONF, &ifc) != 0) {
+-		close(fd);
+-		return;
++static int hdhomerun_discover_send_internal(struct hdhomerun_discover_sock_t *ds, uint32_t device_type, uint32_t device_id)
++{
++	FILE *fp = fopen("/proc/net/route", "r");
++	if (!fp) {
++		return -1;
+ 	}
+ 
+-	uint8_t *ptr = (uint8_t *)ifc.ifc_req;
+-	uint8_t	*end = (uint8_t *)&ifc.ifc_buf[ifc.ifc_len];
+-
+-	while (ptr <= end) {
+-		struct ifreq *ifr = (struct ifreq *)ptr;
+-		ptr += _SIZEOF_ADDR_IFREQ(*ifr);
++	unsigned int send_count = 0;
++	while (1) {
++		char line[256];
++		if (!fgets(line, sizeof(line), fp)) {
++			break;
++		}
++		line[255] = 0;
+ 
+-		if (ioctl(fd, SIOCGIFADDR, ifr) != 0) {
++		uint32_t dest;
++		uint32_t mask;
++		if (sscanf(line, "%*s %x %*x %*x %*d %*d %*d %x", &dest, &mask) != 2) {
+ 			continue;
+ 		}
+-		struct sockaddr_in *addr_in = (struct sockaddr_in *)&(ifr->ifr_addr);
+-		uint32_t local_ip = ntohl(addr_in->sin_addr.s_addr);
+-		if (local_ip == 0) {
++		dest = ntohl(dest);
++		mask = ntohl(mask);
++		
++		uint32_t broadcast = dest | ~mask;
++
++		if ((broadcast == 0x00000000) || (broadcast == 0xFFFFFFFF)) {
+ 			continue;
+ 		}
+ 
+-		if (ioctl(fd, SIOCGIFNETMASK, ifr) != 0) {
++		if (hdhomerun_discover_send_packet(ds, broadcast, device_type, device_id) < 0) {
+ 			continue;
+ 		}
+-		struct sockaddr_in *mask_in = (struct sockaddr_in *)&(ifr->ifr_addr);
+-		uint32_t mask = ntohl(mask_in->sin_addr.s_addr);
+ 
+-		hdhomerun_discover_sock_create(ds, local_ip, mask);
++		send_count++;
+ 	}
+-}
+-#endif
+ 
+-static struct hdhomerun_discover_t *hdhomerun_discover_create(void)
+-{
+-	struct hdhomerun_discover_t *ds = (struct hdhomerun_discover_t *)calloc(1, sizeof(struct hdhomerun_discover_t));
+-	if (!ds) {
+-		return NULL;
+-	}
+-
+-	/* Create a routable socket. */
+-	if (!hdhomerun_discover_sock_create(ds, 0, 0)) {
+-		free(ds);
+-		return NULL;
++	fclose(fp);
++	if (send_count == 0) {
++		return -1;
+ 	}
+-
+-	/* Detect & create local sockets. */
+-	hdhomerun_discover_sock_detect(ds);
+-
+-	/* Success. */
+-	return ds;
++	return 0;
+ }
+ 
+-static void hdhomerun_discover_destroy(struct hdhomerun_discover_t *ds)
+-{
+-	unsigned int i;
+-	for (i = 0; i < ds->sock_count; i++) {
+-		struct hdhomerun_discover_sock_t *dss = &ds->socks[i];
+-		close(dss->sock);
+-	}
+-
+-	free(ds);
+-}
++#else
+ 
+-static bool_t hdhomerun_discover_send_internal(struct hdhomerun_discover_t *ds, struct hdhomerun_discover_sock_t *dss, uint32_t target_ip, uint32_t device_type, uint32_t device_id)
++static int hdhomerun_discover_send_internal(struct hdhomerun_discover_sock_t *ds, uint32_t device_type, uint32_t device_id)
+ {
+-	struct hdhomerun_pkt_t *tx_pkt = &ds->tx_pkt;
+-	hdhomerun_pkt_reset(tx_pkt);
+-
+-	hdhomerun_pkt_write_u8(tx_pkt, HDHOMERUN_TAG_DEVICE_TYPE);
+-	hdhomerun_pkt_write_var_length(tx_pkt, 4);
+-	hdhomerun_pkt_write_u32(tx_pkt, device_type);
+-	hdhomerun_pkt_write_u8(tx_pkt, HDHOMERUN_TAG_DEVICE_ID);
+-	hdhomerun_pkt_write_var_length(tx_pkt, 4);
+-	hdhomerun_pkt_write_u32(tx_pkt, device_id);
+-	hdhomerun_pkt_seal_frame(tx_pkt, HDHOMERUN_TYPE_DISCOVER_REQ);
+-
+-	struct sockaddr_in sock_addr;
+-	memset(&sock_addr, 0, sizeof(sock_addr));
+-	sock_addr.sin_family = AF_INET;
+-	sock_addr.sin_addr.s_addr = htonl(target_ip);
+-	sock_addr.sin_port = htons(HDHOMERUN_DISCOVER_UDP_PORT);
+-
+-	int length = (int)(tx_pkt->end - tx_pkt->start);
+-	if (sendto(dss->sock, (char *)tx_pkt->start, length, 0, (struct sockaddr *)&sock_addr, sizeof(sock_addr)) != length) {
+-		return FALSE;
+-	}
+-
+-	return TRUE;
++	return -1;
+ }
++#endif
+ 
+-static bool_t hdhomerun_discover_send_wildcard_ip(struct hdhomerun_discover_t *ds, uint32_t device_type, uint32_t device_id)
++static int hdhomerun_discover_send(struct hdhomerun_discover_sock_t *ds, uint32_t device_type, uint32_t device_id)
+ {
+-	bool_t result = FALSE;
+-
+-	/*
+-	 * Send subnet broadcast using each local ip socket.
+-	 * This will work with multiple separate 169.254.x.x interfaces.
+-	 */
+-	unsigned int i;
+-	for (i = 1; i < ds->sock_count; i++) {
+-		struct hdhomerun_discover_sock_t *dss = &ds->socks[i];
+-		uint32_t target_ip = dss->local_ip | ~dss->subnet_mask;
+-		result |= hdhomerun_discover_send_internal(ds, dss, target_ip, device_type, device_id);
+-	}
+-
+-	/*
+-	 * If no local ip sockets then fall back to sending a global broadcast letting the OS choose the interface.
+-	 */
+-	if (!result) {
+-		struct hdhomerun_discover_sock_t *dss = &ds->socks[0];
+-		result = hdhomerun_discover_send_internal(ds, dss, 0xFFFFFFFF, device_type, device_id);
++	if (hdhomerun_discover_send_internal(ds, device_type, device_id) < 0) {
++		return hdhomerun_discover_send_packet(ds, 0xFFFFFFFF, device_type, device_id);
+ 	}
+-
+-	return result;
++	return 0;
+ }
+ 
+-static bool_t hdhomerun_discover_send_target_ip(struct hdhomerun_discover_t *ds, uint32_t target_ip, uint32_t device_type, uint32_t device_id)
++static int hdhomerun_discover_recv(struct hdhomerun_discover_sock_t *ds, struct hdhomerun_discover_device_t *result)
+ {
+-	bool_t result = FALSE;
+-
+-	/*
+-	 * Send targeted packet from any local ip that is in the same subnet.
+-	 * This will work with multiple separate 169.254.x.x interfaces.
+-	 */
+-	unsigned int i;
+-	for (i = 1; i < ds->sock_count; i++) {
+-		struct hdhomerun_discover_sock_t *dss = &ds->socks[i];
+-		if ((target_ip & dss->subnet_mask) != (dss->local_ip & dss->subnet_mask)) {
+-			continue;
+-		}
++	struct timeval t;
++	t.tv_sec = 0;
++	t.tv_usec = 250000;
+ 
+-		result |= hdhomerun_discover_send_internal(ds, dss, target_ip, device_type, device_id);
+-	}
++	fd_set readfds;
++	FD_ZERO(&readfds);
++	FD_SET(ds->sock, &readfds);
+ 
+-	/*
+-	 * If target IP does not match a local subnet then fall back to letting the OS choose the gateway interface.
+-	 */
+-	if (!result) {
+-		struct hdhomerun_discover_sock_t *dss = &ds->socks[0];
+-		result = hdhomerun_discover_send_internal(ds, dss, target_ip, device_type, device_id);
++	if (select(ds->sock+1, &readfds, NULL, NULL, &t) < 0) {
++		return -1;
+ 	}
+-
+-	return result;
+-}
+-
+-static bool_t hdhomerun_discover_send(struct hdhomerun_discover_t *ds, uint32_t target_ip, uint32_t device_type, uint32_t device_id)
+-{
+-	if (target_ip != 0) {
+-		return hdhomerun_discover_send_target_ip(ds, target_ip, device_type, device_id);
++	if (!FD_ISSET(ds->sock, &readfds)) {
++		return 0;
+ 	}
+ 
+-	return hdhomerun_discover_send_wildcard_ip(ds, device_type, device_id);
+-}
+-
+-static int hdhomerun_discover_recv_internal(struct hdhomerun_discover_t *ds, struct hdhomerun_discover_sock_t *dss, struct hdhomerun_discover_device_t *result)
+-{
+-	struct hdhomerun_pkt_t *rx_pkt = &ds->rx_pkt;
+-	hdhomerun_pkt_reset(rx_pkt);
+-
++	uint8_t buffer[1024];
+ 	struct sockaddr_in sock_addr;
+-	memset(&sock_addr, 0, sizeof(sock_addr));
+ 	socklen_t sockaddr_size = sizeof(sock_addr);
+-
+-	int rx_length = recvfrom(dss->sock, (char *)rx_pkt->end, (int)(rx_pkt->limit - rx_pkt->end), 0, (struct sockaddr *)&sock_addr, &sockaddr_size);
++	int rx_length = recvfrom(ds->sock, (char *)buffer, sizeof(buffer), 0, (struct sockaddr *)&sock_addr, &sockaddr_size);
+ 	if (rx_length <= 0) {
+ 		/* Don't return error - windows machine on VPN can sometimes cause a sock error here but otherwise works. */
+ 		return 0;
+ 	}
+-	rx_pkt->end += rx_length;
++	if (rx_length < HDHOMERUN_MIN_PEEK_LENGTH) {
++		return 0;
++	}
+ 
+-	uint16_t type;
+-	if (hdhomerun_pkt_open_frame(rx_pkt, &type) <= 0) {
++	size_t length = hdhomerun_peek_packet_length(buffer);
++	if (length > (size_t)rx_length) {
+ 		return 0;
+ 	}
++
++	uint8_t *ptr = buffer;
++	uint8_t *end = buffer + length;
++	int type = hdhomerun_process_packet(&ptr, &end);
+ 	if (type != HDHOMERUN_TYPE_DISCOVER_RPY) {
+ 		return 0;
+ 	}
+@@ -338,12 +372,11 @@
+ 	result->ip_addr = ntohl(sock_addr.sin_addr.s_addr);
+ 	result->device_type = 0;
+ 	result->device_id = 0;
+-
+ 	while (1) {
+ 		uint8_t tag;
+ 		size_t len;
+-		uint8_t *next = hdhomerun_pkt_read_tlv(rx_pkt, &tag, &len);
+-		if (!next) {
++		uint8_t *value;
++		if (hdhomerun_read_tlv(&ptr, end, &tag, &len, &value) < 0) {
+ 			break;
+ 		}
+ 
+@@ -352,71 +385,28 @@
+ 			if (len != 4) {
+ 				break;
+ 			}
+-			result->device_type = hdhomerun_pkt_read_u32(rx_pkt);
++			result->device_type = hdhomerun_read_u32(&value);
+ 			break;
+-
+ 		case HDHOMERUN_TAG_DEVICE_ID:
+ 			if (len != 4) {
+ 				break;
+ 			}
+-			result->device_id = hdhomerun_pkt_read_u32(rx_pkt);
++			result->device_id = hdhomerun_read_u32(&value);
+ 			break;
+-
+ 		default:
+ 			break;
+ 		}
+-
+-		rx_pkt->pos = next;
+ 	}
+ 
+ 	return 1;
+ }
+ 
+-static int hdhomerun_discover_recv(struct hdhomerun_discover_t *ds, struct hdhomerun_discover_device_t *result)
+-{
+-	struct timeval t;
+-	t.tv_sec = 0;
+-	t.tv_usec = 250000;
+-
+-	fd_set readfds;
+-	FD_ZERO(&readfds);
+-	int max_sock = -1;
+-
+-	unsigned int i;
+-	for (i = 0; i < ds->sock_count; i++) {
+-		struct hdhomerun_discover_sock_t *dss = &ds->socks[i];
+-		FD_SET(dss->sock, &readfds);
+-		if (dss->sock > max_sock) {
+-			max_sock = dss->sock;
+-		}
+-	}
+-
+-	if (select(max_sock+1, &readfds, NULL, NULL, &t) < 0) {
+-		return -1;
+-	}
+-
+-	for (i = 0; i < ds->sock_count; i++) {
+-		struct hdhomerun_discover_sock_t *dss = &ds->socks[i];
+-		if (!FD_ISSET(dss->sock, &readfds)) {
+-			continue;
+-		}
+-
+-		if (hdhomerun_discover_recv_internal(ds, dss, result) <= 0) {
+-			continue;
+-		}
+-
+-		return 1;
+-	}
+-
+-	return 0;
+-}
+-
+-static struct hdhomerun_discover_device_t *hdhomerun_discover_find_in_list(struct hdhomerun_discover_device_t result_list[], int count, uint32_t ip_addr)
++static struct hdhomerun_discover_device_t *hdhomerun_discover_find_in_list(struct hdhomerun_discover_device_t result_list[], int count, uint32_t device_id)
+ {
+ 	int index;
+ 	for (index = 0; index < count; index++) {
+ 		struct hdhomerun_discover_device_t *result = &result_list[index];
+-		if (result->ip_addr == ip_addr) {
++		if (result->device_id == device_id) {
+ 			return result;
+ 		}
+ 	}
+@@ -424,12 +414,13 @@
+ 	return NULL;
+ }
+ 
+-static int hdhomerun_discover_find_devices_internal(struct hdhomerun_discover_t *ds, uint32_t target_ip, uint32_t device_type, uint32_t device_id, struct hdhomerun_discover_device_t result_list[], int max_count)
++static int hdhomerun_discover_find_devices_internal(struct hdhomerun_discover_sock_t *ds, uint32_t device_type, uint32_t device_id, struct hdhomerun_discover_device_t result_list[], int max_count)
+ {
+ 	int count = 0;
++
+ 	int attempt;
+ 	for (attempt = 0; attempt < 4; attempt++) {
+-		if (!hdhomerun_discover_send(ds, target_ip, device_type, device_id)) {
++		if (hdhomerun_discover_send(ds, device_type, device_id) < 0) {
+ 			return -1;
+ 		}
+ 
+@@ -442,7 +433,7 @@
+ 				return -1;
+ 			}
+ 			if (ret == 0) {
+-				continue;
++				break;
+ 			}
+ 
+ 			/* Filter. */
+@@ -458,7 +449,7 @@
+ 			}
+ 
+ 			/* Ensure not already in list. */
+-			if (hdhomerun_discover_find_in_list(result_list, count, result->ip_addr)) {
++			if (hdhomerun_discover_find_in_list(result_list, count, result->device_id)) {
+ 				continue;
+ 			}
+ 
+@@ -473,14 +464,27 @@
+ 	return count;
+ }
+ 
+-int hdhomerun_discover_find_devices_custom(uint32_t target_ip, uint32_t device_type, uint32_t device_id, struct hdhomerun_discover_device_t result_list[], int max_count)
++int hdhomerun_discover_find_device(uint32_t device_id, struct hdhomerun_discover_device_t *result)
++{
++	struct hdhomerun_discover_sock_t *ds = hdhomerun_discover_create();
++	if (!ds) {
++		return -1;
++	}
++
++	int ret = hdhomerun_discover_find_devices_internal(ds, HDHOMERUN_DEVICE_TYPE_WILDCARD, device_id, result, 1);
++
++	hdhomerun_discover_destroy(ds);
++	return ret;
++}
++
++int hdhomerun_discover_find_devices(uint32_t device_type, struct hdhomerun_discover_device_t result_list[], int max_count)
+ {
+-	struct hdhomerun_discover_t *ds = hdhomerun_discover_create();
++	struct hdhomerun_discover_sock_t *ds = hdhomerun_discover_create();
+ 	if (!ds) {
+ 		return -1;
+ 	}
+ 
+-	int ret = hdhomerun_discover_find_devices_internal(ds, target_ip, device_type, device_id, result_list, max_count);
++	int ret = hdhomerun_discover_find_devices_internal(ds, device_type, HDHOMERUN_DEVICE_ID_WILDCARD, result_list, max_count);
+ 
+ 	hdhomerun_discover_destroy(ds);
+ 	return ret;
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_discover.h src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_discover.h
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_discover.h	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_discover.h	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_discover.h
+  *
+- * Copyright � 2006-2007 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,20 +14,8 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ #ifdef __cplusplus
+ extern "C" {
+@@ -40,18 +28,29 @@
+ };
+ 
+ /*
+- * Find devices.
++ * Find a device by device ID.
++ *
++ * The device information is stored in caller-supplied hdhomerun_discover_device_t var.
++ * Multiple attempts are made to find the device.
++ * Worst-case execution time is 1 second.
++ *
++ * Returns 1 on success.
++ * Returns 0 if not found.
++ * Retruns -1 on error.
++ */
++extern int hdhomerun_discover_find_device(uint32_t device_id, struct hdhomerun_discover_device_t *result);
++
++/*
++ * Find all devices of a given type.
+  *
+  * The device information is stored in caller-supplied array of hdhomerun_discover_device_t vars.
+  * Multiple attempts are made to find devices.
+  * Execution time is 1 second.
+  *
+- * Set target_ip to zero to auto-detect IP address.
+- *
+  * Returns the number of devices found.
+  * Retruns -1 on error.
+  */
+-extern LIBTYPE int hdhomerun_discover_find_devices_custom(uint32_t target_ip, uint32_t device_type, uint32_t device_id, struct hdhomerun_discover_device_t result_list[], int max_count);
++extern int hdhomerun_discover_find_devices(uint32_t device_type, struct hdhomerun_discover_device_t result_list[], int max_count);
+ 
+ /*
+  * Verify that the device ID given is valid.
+@@ -62,7 +61,7 @@
+  * Returns TRUE if valid.
+  * Returns FALSE if not valid.
+  */
+-extern LIBTYPE bool_t hdhomerun_discover_validate_device_id(uint32_t device_id);
++extern bool_t hdhomerun_discover_validate_device_id(uint32_t device_id);
+ 
+ #ifdef __cplusplus
+ }
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_os.h src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_os.h
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_os.h	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_os.h	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_os.h
+  *
+- * Copyright � 2006-2008 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,36 +14,97 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
+-#if defined(_WIN32) || defined(_WIN64)
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++
++#if defined(WIN32)
+ #define __WINDOWS__
+ #endif
+ 
+ #if defined(__WINDOWS__)
+-#include "hdhomerun_os_windows.h"
++#include <windows.h>
++#include <sys/types.h>
++#include <sys/timeb.h>
+ #else
+-#include "hdhomerun_os_posix.h"
++#include <unistd.h>
++#include <errno.h>
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
++#include <netdb.h>
++#include <sys/time.h>
++#include <sys/timeb.h>
++#include <fcntl.h>
+ #endif
+ 
++#include <pthread.h>
++
+ #if !defined(TRUE)
+ #define TRUE 1
+ #endif
+-
+ #if !defined(FALSE)
+ #define FALSE 0
+ #endif
++
++#if defined(__WINDOWS__)
++
++typedef int bool_t;
++typedef unsigned __int8 uint8_t;
++typedef unsigned __int16 uint16_t;
++typedef unsigned __int32 uint32_t;
++typedef unsigned __int64 uint64_t;
++
++#define socklen_t int
++#define close closesocket
++#define sock_getlasterror WSAGetLastError()
++#define sock_getlasterror_socktimeout (WSAGetLastError() == WSAETIMEDOUT)
++#define atoll _atoi64
++#define strcasecmp _stricmp
++#define fseeko _fseeki64
++#define ftello _ftelli64
++#define usleep(us) Sleep((us)/1000)
++#define sleep(sec) Sleep((sec)*1000)
++
++static inline uint64_t getcurrenttime(void)
++{
++	struct timeb tb;
++	ftime(&tb);
++	return ((uint64_t)tb.time * 1000) + tb.millitm;
++}
++
++static inline int setsocktimeout(int s, int level, int optname, uint64_t timeout)
++{
++	int t = (int)timeout;
++	return setsockopt(s, level, optname, (char *)&t, sizeof(t));
++}
++
++#else
++
++typedef int bool_t;
++
++#define sock_getlasterror errno
++#define sock_getlasterror_socktimeout (errno == EAGAIN)
++
++static inline uint64_t getcurrenttime(void)
++{
++	struct timeval t;
++	gettimeofday(&t, NULL);
++	return ((uint64_t)t.tv_sec * 1000) + (t.tv_usec / 1000);
++}
++
++static inline int setsocktimeout(int s, int level, int optname, uint64_t timeout)
++{
++	struct timeval t;
++	t.tv_sec = timeout / 1000;
++	t.tv_usec = (timeout % 1000) * 1000;
++	return setsockopt(s, level, optname, (char *)&t, sizeof(t));
++}
++
++#endif
++
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_os_posix.h
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_os_windows.h
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_pkt.c src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_pkt.c
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_pkt.c	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_pkt.c	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_pkt.c
+  *
+- * Copyright � 2005-2006 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2005-2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,232 +14,255 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
+-#include "hdhomerun.h"
++#include "hdhomerun_os.h"
++#include "hdhomerun_pkt.h"
+ 
+-struct hdhomerun_pkt_t *hdhomerun_pkt_create(void)
++uint8_t hdhomerun_read_u8(uint8_t **pptr)
+ {
+-	struct hdhomerun_pkt_t *pkt = (struct hdhomerun_pkt_t *)calloc(1, sizeof(struct hdhomerun_pkt_t));
+-	if (!pkt) {
+-		return NULL;
+-	}
+-
+-	hdhomerun_pkt_reset(pkt);
+-
+-	return pkt;
+-}
+-
+-void hdhomerun_pkt_destroy(struct hdhomerun_pkt_t *pkt)
+-{
+-	free(pkt);
+-}
+-
+-void hdhomerun_pkt_reset(struct hdhomerun_pkt_t *pkt)
+-{
+-	pkt->limit = pkt->buffer + sizeof(pkt->buffer) - 4;
+-	pkt->start = pkt->buffer + 1024;
+-	pkt->end = pkt->start;
+-	pkt->pos = pkt->start;
+-}
+-
+-static uint32_t hdhomerun_pkt_calc_crc(uint8_t *start, uint8_t *end)
+-{
+-	uint8_t *pos = start;
+-	uint32_t crc = 0xFFFFFFFF;
+-	while (pos < end) {
+-		uint8_t x = (uint8_t)(crc) ^ *pos++;
+-		crc >>= 8;
+-		if (x & 0x01) crc ^= 0x77073096;
+-		if (x & 0x02) crc ^= 0xEE0E612C;
+-		if (x & 0x04) crc ^= 0x076DC419;
+-		if (x & 0x08) crc ^= 0x0EDB8832;
+-		if (x & 0x10) crc ^= 0x1DB71064;
+-		if (x & 0x20) crc ^= 0x3B6E20C8;
+-		if (x & 0x40) crc ^= 0x76DC4190;
+-		if (x & 0x80) crc ^= 0xEDB88320;
+-	}
+-	return crc ^ 0xFFFFFFFF;
+-}
+-
+-uint8_t hdhomerun_pkt_read_u8(struct hdhomerun_pkt_t *pkt)
+-{
+-	uint8_t v = *pkt->pos++;
++	uint8_t *ptr = *pptr;
++	uint8_t v = *ptr++;
++	*pptr = ptr;
+ 	return v;
+ }
+ 
+-uint16_t hdhomerun_pkt_read_u16(struct hdhomerun_pkt_t *pkt)
++uint16_t hdhomerun_read_u16(uint8_t **pptr)
+ {
++	uint8_t *ptr = *pptr;
+ 	uint16_t v;
+-	v =  (uint16_t)*pkt->pos++ << 8;
+-	v |= (uint16_t)*pkt->pos++ << 0;
++	v =  (uint16_t)*ptr++ << 8;
++	v |= (uint16_t)*ptr++ << 0;
++	*pptr = ptr;
+ 	return v;
+ }
+ 
+-uint32_t hdhomerun_pkt_read_u32(struct hdhomerun_pkt_t *pkt)
++uint32_t hdhomerun_read_u32(uint8_t **pptr)
+ {
++	uint8_t *ptr = *pptr;
+ 	uint32_t v;
+-	v =  (uint32_t)*pkt->pos++ << 24;
+-	v |= (uint32_t)*pkt->pos++ << 16;
+-	v |= (uint32_t)*pkt->pos++ << 8;
+-	v |= (uint32_t)*pkt->pos++ << 0;
++	v =  (uint32_t)*ptr++ << 24;
++	v |= (uint32_t)*ptr++ << 16;
++	v |= (uint32_t)*ptr++ << 8;
++	v |= (uint32_t)*ptr++ << 0;
++	*pptr = ptr;
+ 	return v;
+ }
+ 
+-size_t hdhomerun_pkt_read_var_length(struct hdhomerun_pkt_t *pkt)
++size_t hdhomerun_read_var_length(uint8_t **pptr, uint8_t *end)
+ {
++	uint8_t *ptr = *pptr;
+ 	size_t length;
+ 	
+-	if (pkt->pos + 1 > pkt->end) {
+-		return (size_t)-1;
++	if (ptr + 1 > end) {
++		return -1;
+ 	}
+ 
+-	length = (size_t)*pkt->pos++;
++	length = (size_t)*ptr++;
+ 	if (length & 0x0080) {
+-		if (pkt->pos + 1 > pkt->end) {
+-			return (size_t)-1;
++		if (ptr + 1 > end) {
++			return -1;
+ 		}
+ 
+ 		length &= 0x007F;
+-		length |= (size_t)*pkt->pos++ << 7;
++		length |= (size_t)*ptr++ << 7;
+ 	}
+ 	
++	*pptr = ptr;
+ 	return length; 
+ }
+ 
+-uint8_t *hdhomerun_pkt_read_tlv(struct hdhomerun_pkt_t *pkt, uint8_t *ptag, size_t *plength)
++int hdhomerun_read_tlv(uint8_t **pptr, uint8_t *end, uint8_t *ptag, size_t *plength, uint8_t **pvalue)
+ {
+-	if (pkt->pos + 2 > pkt->end) {
+-		return NULL;
++	if (end - *pptr < 2) {
++		return -1;
+ 	}
+ 	
+-	*ptag = hdhomerun_pkt_read_u8(pkt);
+-	*plength = hdhomerun_pkt_read_var_length(pkt);
+-
+-	if (pkt->pos + *plength > pkt->end) {
+-		return NULL;
++	*ptag = hdhomerun_read_u8(pptr);
++	*plength = hdhomerun_read_var_length(pptr, end);
++	*pvalue = *pptr;
++	
++	if ((size_t)(end - *pptr) < *plength) {
++		return -1;
+ 	}
+ 	
+-	return pkt->pos + *plength;
++	*pptr += *plength;
++	return 0;
+ }
+ 
+-void hdhomerun_pkt_write_u8(struct hdhomerun_pkt_t *pkt, uint8_t v)
++void hdhomerun_write_u8(uint8_t **pptr, uint8_t v)
+ {
+-	*pkt->pos++ = v;
++	uint8_t *ptr = *pptr;
++	*ptr++ = v;
++	*pptr = ptr;
++}
+ 
+-	if (pkt->pos > pkt->end) {
+-		pkt->end = pkt->pos;
+-	}
++void hdhomerun_write_u16(uint8_t **pptr, uint16_t v)
++{
++	uint8_t *ptr = *pptr;
++	*ptr++ = (uint8_t)(v >> 8);
++	*ptr++ = (uint8_t)(v >> 0);
++	*pptr = ptr;
+ }
+ 
+-void hdhomerun_pkt_write_u16(struct hdhomerun_pkt_t *pkt, uint16_t v)
++void hdhomerun_write_u32(uint8_t **pptr, uint32_t v)
+ {
+-	*pkt->pos++ = (uint8_t)(v >> 8);
+-	*pkt->pos++ = (uint8_t)(v >> 0);
++	uint8_t *ptr = *pptr;
++	*ptr++ = (uint8_t)(v >> 24);
++	*ptr++ = (uint8_t)(v >> 16);
++	*ptr++ = (uint8_t)(v >> 8);
++	*ptr++ = (uint8_t)(v >> 0);
++	*pptr = ptr;
++}
+ 
+-	if (pkt->pos > pkt->end) {
+-		pkt->end = pkt->pos;
++void hdhomerun_write_var_length(uint8_t **pptr, size_t v)
++{
++	uint8_t *ptr = *pptr;
++	if (v <= 127) {
++		*ptr++ = (uint8_t)v;
++	} else {
++		*ptr++ = (uint8_t)(v | 0x80);
++		*ptr++ = (uint8_t)(v >> 7);
+ 	}
++	*pptr = ptr;
+ }
+ 
+-void hdhomerun_pkt_write_u32(struct hdhomerun_pkt_t *pkt, uint32_t v)
++static void hdhomerun_write_mem(uint8_t **pptr, void *mem, size_t length)
+ {
+-	*pkt->pos++ = (uint8_t)(v >> 24);
+-	*pkt->pos++ = (uint8_t)(v >> 16);
+-	*pkt->pos++ = (uint8_t)(v >> 8);
+-	*pkt->pos++ = (uint8_t)(v >> 0);
++	uint8_t *ptr = *pptr;
++	memcpy(ptr, mem, length);
++	ptr += length;
++	*pptr = ptr;
++}
+ 
+-	if (pkt->pos > pkt->end) {
+-		pkt->end = pkt->pos;
++static uint32_t hdhomerun_calc_crc(uint8_t *start, uint8_t *end)
++{
++	uint8_t *ptr = start;
++	uint32_t crc = 0xFFFFFFFF;
++	while (ptr < end) {
++		uint8_t x = (uint8_t)(crc) ^ *ptr++;
++		crc >>= 8;
++		if (x & 0x01) crc ^= 0x77073096;
++		if (x & 0x02) crc ^= 0xEE0E612C;
++		if (x & 0x04) crc ^= 0x076DC419;
++		if (x & 0x08) crc ^= 0x0EDB8832;
++		if (x & 0x10) crc ^= 0x1DB71064;
++		if (x & 0x20) crc ^= 0x3B6E20C8;
++		if (x & 0x40) crc ^= 0x76DC4190;
++		if (x & 0x80) crc ^= 0xEDB88320;
+ 	}
++	return crc ^ 0xFFFFFFFF;
+ }
+ 
+-void hdhomerun_pkt_write_var_length(struct hdhomerun_pkt_t *pkt, size_t v)
++static int hdhomerun_check_crc(uint8_t *start, uint8_t *end)
+ {
+-	if (v <= 127) {
+-		*pkt->pos++ = (uint8_t)v;
+-	} else {
+-		*pkt->pos++ = (uint8_t)(v | 0x80);
+-		*pkt->pos++ = (uint8_t)(v >> 7);
++	if (end - start < 8) {
++		return -1;
+ 	}
+-
+-	if (pkt->pos > pkt->end) {
+-		pkt->end = pkt->pos;
++	uint8_t *ptr = end -= 4;
++	uint32_t actual_crc = hdhomerun_calc_crc(start, ptr);
++	uint32_t packet_crc;
++	packet_crc =  (uint32_t)*ptr++ << 0;
++	packet_crc |= (uint32_t)*ptr++ << 8;
++	packet_crc |= (uint32_t)*ptr++ << 16;
++	packet_crc |= (uint32_t)*ptr++ << 24;
++	if (actual_crc != packet_crc) {
++		return -1;
+ 	}
++	return 0;
+ }
+ 
+-void hdhomerun_pkt_write_mem(struct hdhomerun_pkt_t *pkt, const void *mem, size_t length)
++static void hdhomerun_write_header_length(uint8_t *ptr, size_t length)
+ {
+-	memcpy(pkt->pos, mem, length);
+-	pkt->pos += length;
++	hdhomerun_write_u16(&ptr, (uint16_t)length);
++}
+ 
+-	if (pkt->pos > pkt->end) {
+-		pkt->end = pkt->pos;
+-	}
++void hdhomerun_write_crc(uint8_t **pptr, uint8_t *start)
++{
++	uint8_t *ptr = *pptr;
++	uint32_t crc = hdhomerun_calc_crc(start, ptr);
++	*ptr++ = (uint8_t)(crc >> 0);
++	*ptr++ = (uint8_t)(crc >> 8);
++	*ptr++ = (uint8_t)(crc >> 16);
++	*ptr++ = (uint8_t)(crc >> 24);
++	*pptr = ptr;
+ }
+ 
+-int hdhomerun_pkt_open_frame(struct hdhomerun_pkt_t *pkt, uint16_t *ptype)
++void hdhomerun_write_discover_request(uint8_t **pptr, uint32_t device_type, uint32_t device_id)
+ {
+-	pkt->pos = pkt->start;
++	uint8_t *start = *pptr;
++	hdhomerun_write_u16(pptr, HDHOMERUN_TYPE_DISCOVER_REQ);
++	hdhomerun_write_u16(pptr, 0);
+ 
+-	if (pkt->pos + 4 > pkt->end) {
+-		return 0;
+-	}
++	hdhomerun_write_u8(pptr, HDHOMERUN_TAG_DEVICE_TYPE);
++	hdhomerun_write_var_length(pptr, 4);
++	hdhomerun_write_u32(pptr, device_type);
++	hdhomerun_write_u8(pptr, HDHOMERUN_TAG_DEVICE_ID);
++	hdhomerun_write_var_length(pptr, 4);
++	hdhomerun_write_u32(pptr, device_id);
+ 
+-	*ptype = hdhomerun_pkt_read_u16(pkt);
+-	size_t length = hdhomerun_pkt_read_u16(pkt);
+-	pkt->pos += length;
++	hdhomerun_write_header_length(start + 2, (int)(*pptr - start - 4));
++	hdhomerun_write_crc(pptr, start);
++}
+ 
+-	if (pkt->pos + 4 > pkt->end) {
+-		pkt->pos = pkt->start;
+-		return 0;
+-	}
++void hdhomerun_write_get_set_request(uint8_t **pptr, const char *name, const char *value)
++{
++	uint8_t *start = *pptr;
++	hdhomerun_write_u16(pptr, HDHOMERUN_TYPE_GETSET_REQ);
++	hdhomerun_write_u16(pptr, 0);
+ 
+-	uint32_t calc_crc = hdhomerun_pkt_calc_crc(pkt->start, pkt->pos);
++	int name_len = (int)strlen(name) + 1;
++	hdhomerun_write_u8(pptr, HDHOMERUN_TAG_GETSET_NAME);
++	hdhomerun_write_var_length(pptr, name_len);
++	hdhomerun_write_mem(pptr, (void *)name, name_len);
+ 
+-	uint32_t packet_crc;
+-	packet_crc =  (uint32_t)*pkt->pos++ << 0;
+-	packet_crc |= (uint32_t)*pkt->pos++ << 8;
+-	packet_crc |= (uint32_t)*pkt->pos++ << 16;
+-	packet_crc |= (uint32_t)*pkt->pos++ << 24;
+-	if (calc_crc != packet_crc) {
+-		return -1;
++	if (value) {
++		int value_len = (int)strlen(value) + 1;
++		hdhomerun_write_u8(pptr, HDHOMERUN_TAG_GETSET_VALUE);
++		hdhomerun_write_var_length(pptr, value_len);
++		hdhomerun_write_mem(pptr, (void *)value, value_len);
+ 	}
+ 
+-	pkt->start += 4;
+-	pkt->end = pkt->start + length;
+-	pkt->pos = pkt->start;
+-	return 1;
++	hdhomerun_write_header_length(start + 2, (int)(*pptr - start - 4));
++	hdhomerun_write_crc(pptr, start);
+ }
+ 
+-void hdhomerun_pkt_seal_frame(struct hdhomerun_pkt_t *pkt, uint16_t frame_type)
++void hdhomerun_write_upgrade_request(uint8_t **pptr, uint32_t sequence, void *data, size_t length)
+ {
+-	size_t length = pkt->end - pkt->start;
++	uint8_t *start = *pptr;
++	hdhomerun_write_u16(pptr, HDHOMERUN_TYPE_UPGRADE_REQ);
++	hdhomerun_write_u16(pptr, 0);
+ 
+-	pkt->start -= 4;
+-	pkt->pos = pkt->start;
+-	hdhomerun_pkt_write_u16(pkt, frame_type);
+-	hdhomerun_pkt_write_u16(pkt, (uint16_t)length);
++	hdhomerun_write_u32(pptr, sequence);
++	if (length > 0) {
++		hdhomerun_write_mem(pptr, data, length);
++	}
+ 
+-	uint32_t crc = hdhomerun_pkt_calc_crc(pkt->start, pkt->end);
+-	*pkt->end++ = (uint8_t)(crc >> 0);
+-	*pkt->end++ = (uint8_t)(crc >> 8);
+-	*pkt->end++ = (uint8_t)(crc >> 16);
+-	*pkt->end++ = (uint8_t)(crc >> 24);
++	hdhomerun_write_header_length(start + 2, *pptr - start - 4);
++	hdhomerun_write_crc(pptr, start);
++}
+ 
+-	pkt->pos = pkt->start;
++size_t hdhomerun_peek_packet_length(uint8_t *ptr)
++{
++	ptr += 2;
++	return (size_t)hdhomerun_read_u16(&ptr) + 8;
+ }
++
++int hdhomerun_process_packet(uint8_t **pptr, uint8_t **pend)
++{
++	if (hdhomerun_check_crc(*pptr, *pend) < 0) {
++		return -1;
++	}
++	*pend -= 4;
++	
++	uint16_t type = hdhomerun_read_u16(pptr);
++	uint16_t length = hdhomerun_read_u16(pptr);
++	if ((*pend - *pptr) < length) {
++		return -1;
++	}
++	*pend = *pptr + length;
++	return (int)type;
++}
++
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_pkt.h src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_pkt.h
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_pkt.h	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_pkt.h	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_pkt.h
+  *
+- * Copyright � 2005-2006 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2005-2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,20 +14,8 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ #ifdef __cplusplus
+ extern "C" {
+@@ -122,9 +110,6 @@
+ #define HDHOMERUN_DISCOVER_UDP_PORT 65001
+ #define HDHOMERUN_CONTROL_TCP_PORT 65001
+ 
+-#define HDHOMERUN_MAX_PACKET_SIZE 1460
+-#define HDHOMERUN_MAX_PAYLOAD_SIZE 1452
+-
+ #define HDHOMERUN_TYPE_DISCOVER_REQ 0x0002
+ #define HDHOMERUN_TYPE_DISCOVER_RPY 0x0003
+ #define HDHOMERUN_TYPE_GETSET_REQ 0x0004
+@@ -136,7 +121,6 @@
+ #define HDHOMERUN_TAG_DEVICE_ID 0x02
+ #define HDHOMERUN_TAG_GETSET_NAME 0x03
+ #define HDHOMERUN_TAG_GETSET_VALUE 0x04
+-#define HDHOMERUN_TAG_GETSET_LOCKKEY 0x15
+ #define HDHOMERUN_TAG_ERROR_MESSAGE 0x05
+ 
+ #define HDHOMERUN_DEVICE_TYPE_WILDCARD 0xFFFFFFFF
+@@ -145,33 +129,25 @@
+ 
+ #define HDHOMERUN_MIN_PEEK_LENGTH 4
+ 
+-struct hdhomerun_pkt_t {
+-	uint8_t *pos;
+-	uint8_t *start;
+-	uint8_t *end;
+-	uint8_t *limit;
+-	uint8_t buffer[3074];
+-};
+-
+-extern LIBTYPE struct hdhomerun_pkt_t *hdhomerun_pkt_create(void);
+-extern LIBTYPE void hdhomerun_pkt_destroy(struct hdhomerun_pkt_t *pkt);
+-extern LIBTYPE void hdhomerun_pkt_reset(struct hdhomerun_pkt_t *pkt);
+-
+-extern LIBTYPE uint8_t hdhomerun_pkt_read_u8(struct hdhomerun_pkt_t *pkt);
+-extern LIBTYPE uint16_t hdhomerun_pkt_read_u16(struct hdhomerun_pkt_t *pkt);
+-extern LIBTYPE uint32_t hdhomerun_pkt_read_u32(struct hdhomerun_pkt_t *pkt);
+-extern LIBTYPE size_t hdhomerun_pkt_read_var_length(struct hdhomerun_pkt_t *pkt);
+-extern LIBTYPE uint8_t *hdhomerun_pkt_read_tlv(struct hdhomerun_pkt_t *pkt, uint8_t *ptag, size_t *plength);
+-
+-extern LIBTYPE void hdhomerun_pkt_write_u8(struct hdhomerun_pkt_t *pkt, uint8_t v);
+-extern LIBTYPE void hdhomerun_pkt_write_u16(struct hdhomerun_pkt_t *pkt, uint16_t v);
+-extern LIBTYPE void hdhomerun_pkt_write_u32(struct hdhomerun_pkt_t *pkt, uint32_t v);
+-extern LIBTYPE void hdhomerun_pkt_write_var_length(struct hdhomerun_pkt_t *pkt, size_t v);
+-extern LIBTYPE void hdhomerun_pkt_write_mem(struct hdhomerun_pkt_t *pkt, const void *mem, size_t length);
+-
+-extern LIBTYPE bool_t hdhomerun_pkt_open_frame(struct hdhomerun_pkt_t *pkt, uint16_t *ptype);
+-extern LIBTYPE void hdhomerun_pkt_seal_frame(struct hdhomerun_pkt_t *pkt, uint16_t frame_type);
++extern uint8_t hdhomerun_read_u8(uint8_t **pptr);
++extern uint16_t hdhomerun_read_u16(uint8_t **pptr);
++extern uint32_t hdhomerun_read_u32(uint8_t **pptr);
++extern size_t hdhomerun_read_var_length(uint8_t **pptr, uint8_t *end);
++extern void hdhomerun_write_u8(uint8_t **pptr, uint8_t v);
++extern void hdhomerun_write_u16(uint8_t **pptr, uint16_t v);
++extern void hdhomerun_write_u32(uint8_t **pptr, uint32_t v);
++extern void hdhomerun_write_var_length(uint8_t **pptr, size_t v);
++extern void hdhomerun_write_crc(uint8_t **pptr, uint8_t *start);
++
++extern size_t hdhomerun_peek_packet_length(uint8_t *ptr);
++extern int hdhomerun_process_packet(uint8_t **pptr, uint8_t **pend);
++extern int hdhomerun_read_tlv(uint8_t **pptr, uint8_t *end, uint8_t *ptag, size_t *plength, uint8_t **pvalue);
++
++extern void hdhomerun_write_discover_request(uint8_t **pptr, uint32_t device_type, uint32_t device_id);
++extern void hdhomerun_write_get_set_request(uint8_t **pptr, const char *name, const char *value);
++extern void hdhomerun_write_upgrade_request(uint8_t **pptr, uint32_t sequence, void *data, size_t length);
+ 
+ #ifdef __cplusplus
+ }
+ #endif
++
+Only in branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun: hdhomerun_types.h
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_video.c src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_video.c
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_video.c	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_video.c	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_video.c
+  *
+- * Copyright � 2006 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,82 +14,93 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ 
+-#include "hdhomerun.h"
++#include "hdhomerun_os.h"
++#include "hdhomerun_pkt.h"
++#include "hdhomerun_video.h"
+ 
+ struct hdhomerun_video_sock_t {
+-	pthread_mutex_t lock;
+ 	uint8_t *buffer;
+ 	size_t buffer_size;
+ 	volatile size_t head;
+ 	volatile size_t tail;
+ 	size_t advance;
++	volatile bool_t running;
+ 	volatile bool_t terminate;
+ 	pthread_t thread;
+ 	int sock;
+-	uint32_t rtp_sequence;
+-	struct hdhomerun_debug_t *dbg;
+-	volatile uint32_t packet_count;
+-	volatile uint32_t transport_error_count;
+-	volatile uint32_t network_error_count;
+-	volatile uint32_t sequence_error_count;
+-	volatile uint32_t overflow_error_count;
+-	volatile uint8_t sequence[0x2000];
+ };
+ 
+-static THREAD_FUNC_PREFIX hdhomerun_video_thread_execute(void *arg);
++static void *hdhomerun_video_thread(void *arg);
+ 
+-struct hdhomerun_video_sock_t *hdhomerun_video_create(uint16_t listen_port, size_t buffer_size, struct hdhomerun_debug_t *dbg)
++static bool_t hdhomerun_video_bind_sock_internal(struct hdhomerun_video_sock_t *vs, uint16_t listen_port)
++{
++	struct sockaddr_in sock_addr;
++	memset(&sock_addr, 0, sizeof(sock_addr));
++	sock_addr.sin_family = AF_INET;
++	sock_addr.sin_addr.s_addr = htonl(INADDR_ANY);
++	sock_addr.sin_port = htons(listen_port);
++	if (bind(vs->sock, (struct sockaddr *)&sock_addr, sizeof(sock_addr)) != 0) {
++		return FALSE;
++	}
++	return TRUE;
++}
++
++static bool_t hdhomerun_video_bind_sock(struct hdhomerun_video_sock_t *vs, uint16_t listen_port)
++{
++	if (listen_port != 0) {
++		return hdhomerun_video_bind_sock_internal(vs, listen_port);
++	}
++
++#if defined(__CYGWIN__) || defined(__WINDOWS__)
++	/* Windows firewall silently blocks a listening port if the port number is not explicitly given. */
++	/* Workaround - pick a random port number. The port may already be in use to try multiple port numbers. */
++	srand((int)getcurrenttime());
++	int retry;
++	for (retry = 8; retry > 0; retry--) {
++		uint16_t listen_port = (uint16_t)((rand() % 32768) + 32768);
++		if (hdhomerun_video_bind_sock_internal(vs, listen_port)) {
++			return TRUE;
++		}
++	}
++	return FALSE;
++#else
++	return hdhomerun_video_bind_sock_internal(vs, listen_port);
++#endif
++}
++
++struct hdhomerun_video_sock_t *hdhomerun_video_create(uint16_t listen_port, size_t buffer_size)
+ {
+ 	/* Create object. */
+ 	struct hdhomerun_video_sock_t *vs = (struct hdhomerun_video_sock_t *)calloc(1, sizeof(struct hdhomerun_video_sock_t));
+ 	if (!vs) {
+-		hdhomerun_debug_printf(dbg, "hdhomerun_video_create: failed to allocate video object\n");
+ 		return NULL;
+ 	}
+ 
+-	vs->dbg = dbg;
+-	vs->sock = -1;
+-	pthread_mutex_init(&vs->lock, NULL);
+-
+-	/* Reset sequence tracking. */
+-	hdhomerun_video_flush(vs);
+-
+ 	/* Buffer size. */
+ 	vs->buffer_size = (buffer_size / VIDEO_DATA_PACKET_SIZE) * VIDEO_DATA_PACKET_SIZE;
+ 	if (vs->buffer_size == 0) {
+-		hdhomerun_debug_printf(dbg, "hdhomerun_video_create: invalid buffer size (%lu bytes)\n", (unsigned long)buffer_size);
+-		goto error;
++		free(vs);
++		return NULL;
+ 	}
+ 	vs->buffer_size += VIDEO_DATA_PACKET_SIZE;
+ 
+ 	/* Create buffer. */
+ 	vs->buffer = (uint8_t *)malloc(vs->buffer_size);
+ 	if (!vs->buffer) {
+-		hdhomerun_debug_printf(dbg, "hdhomerun_video_create: failed to allocate buffer (%lu bytes)\n", (unsigned long)vs->buffer_size);
+-		goto error;
++		free(vs);
++		return NULL;
+ 	}
+ 	
+ 	/* Create socket. */
+ 	vs->sock = (int)socket(AF_INET, SOCK_DGRAM, 0);
+ 	if (vs->sock == -1) {
+-		hdhomerun_debug_printf(dbg, "hdhomerun_video_create: failed to allocate socket\n");
+-		goto error;
++		free(vs->buffer);
++		free(vs);
++		return NULL;
+ 	}
+ 
+ 	/* Expand socket buffer size. */
+@@ -101,44 +112,30 @@
+ 	setsocktimeout(vs->sock, SOL_SOCKET, SO_RCVTIMEO, 1000);
+ 
+ 	/* Bind socket. */
+-	struct sockaddr_in sock_addr;
+-	memset(&sock_addr, 0, sizeof(sock_addr));
+-	sock_addr.sin_family = AF_INET;
+-	sock_addr.sin_addr.s_addr = htonl(INADDR_ANY);
+-	sock_addr.sin_port = htons(listen_port);
+-	if (bind(vs->sock, (struct sockaddr *)&sock_addr, sizeof(sock_addr)) != 0) {
+-		hdhomerun_debug_printf(dbg, "hdhomerun_video_create: failed to bind socket (port %u)\n", listen_port);
+-		goto error;
++	if (!hdhomerun_video_bind_sock(vs, listen_port)) {
++		hdhomerun_video_destroy(vs);
++		return NULL;
+ 	}
+ 
+ 	/* Start thread. */
+-	if (pthread_create(&vs->thread, NULL, &hdhomerun_video_thread_execute, vs) != 0) {
+-		hdhomerun_debug_printf(dbg, "hdhomerun_video_create: failed to start thread\n");
+-		goto error;
++	if (pthread_create(&vs->thread, NULL, &hdhomerun_video_thread, vs) != 0) {
++		hdhomerun_video_destroy(vs);
++		return NULL;
+ 	}
++	vs->running = 1;
+ 
+ 	/* Success. */
+ 	return vs;
+-
+-error:
+-	if (vs->sock != -1) {
+-		close(vs->sock);
+-	}
+-	if (vs->buffer) {
+-		free(vs->buffer);
+-	}
+-	free(vs);
+-	return NULL;
+ }
+ 
+ void hdhomerun_video_destroy(struct hdhomerun_video_sock_t *vs)
+ {
+-	vs->terminate = TRUE;
+-	pthread_join(vs->thread, NULL);
+-
++	if (vs->running) {
++		vs->terminate = 1;
++		pthread_join(vs->thread, NULL);
++	}
+ 	close(vs->sock);
+ 	free(vs->buffer);
+-
+ 	free(vs);
+ }
+ 
+@@ -147,85 +144,25 @@
+ 	struct sockaddr_in sock_addr;
+ 	socklen_t sockaddr_size = sizeof(sock_addr);
+ 	if (getsockname(vs->sock, (struct sockaddr*)&sock_addr, &sockaddr_size) != 0) {
+-		hdhomerun_debug_printf(vs->dbg, "hdhomerun_video_get_local_port: getsockname failed (%d)\n", sock_getlasterror);
+ 		return 0;
+ 	}
+-
+ 	return ntohs(sock_addr.sin_port);
+ }
+ 
+-static void hdhomerun_video_stats_ts_pkt(struct hdhomerun_video_sock_t *vs, uint8_t *ptr)
+-{
+-	uint16_t packet_identifier = ((uint16_t)(ptr[1] & 0x1F) << 8) | (uint16_t)ptr[2];
+-	if (packet_identifier == 0x1FFF) {
+-		return;
+-	}
+-
+-	bool_t transport_error = ptr[1] >> 7;
+-	if (transport_error) {
+-		vs->transport_error_count++;
+-		vs->sequence[packet_identifier] = 0xFF;
+-		return;
+-	}
+-
+-	uint8_t continuity_counter = ptr[3] & 0x0F;
+-	uint8_t previous_sequence = vs->sequence[packet_identifier];
+-
+-	if (continuity_counter == ((previous_sequence + 1) & 0x0F)) {
+-		vs->sequence[packet_identifier] = continuity_counter;
+-		return;
+-	}
+-	if (previous_sequence == 0xFF) {
+-		vs->sequence[packet_identifier] = continuity_counter;
+-		return;
+-	}
+-	if (continuity_counter == previous_sequence) {
+-		return;
+-	}
+-
+-	vs->sequence_error_count++;
+-	vs->sequence[packet_identifier] = continuity_counter;
+-}
+-
+-static void hdhomerun_video_parse_rtp(struct hdhomerun_video_sock_t *vs, struct hdhomerun_pkt_t *pkt)
++int hdhomerun_video_get_sock(struct hdhomerun_video_sock_t *vs)
+ {
+-	pkt->pos += 2;
+-	uint32_t rtp_sequence = hdhomerun_pkt_read_u16(pkt);
+-	pkt->pos += 8;
+-
+-	if (rtp_sequence != ((vs->rtp_sequence + 1) & 0xFFFF)) {
+-		if (vs->rtp_sequence != 0xFFFFFFFF) {
+-			vs->network_error_count++;
+-
+-			/* restart pid sequence check */
+-			/* can't use memset bcs sequence is volatile */
+-			int i;
+-			for (i = 0; i < sizeof(vs->sequence) / sizeof(uint8_t) ; i++)
+-				vs->sequence[i] = 0xFF;
+-		}
+-	}
+-
+-	vs->rtp_sequence = rtp_sequence;
++	return vs->sock;
+ }
+ 
+-static THREAD_FUNC_PREFIX hdhomerun_video_thread_execute(void *arg)
++static void *hdhomerun_video_thread(void *arg)
+ {
+ 	struct hdhomerun_video_sock_t *vs = (struct hdhomerun_video_sock_t *)arg;
+-	struct hdhomerun_pkt_t pkt_inst;
+ 
+ 	while (!vs->terminate) {
+-		struct hdhomerun_pkt_t *pkt = &pkt_inst;
+-		hdhomerun_pkt_reset(pkt);
++		size_t head = vs->head;
+ 
+ 		/* Receive. */
+-		int length = recv(vs->sock, (char *)pkt->end, VIDEO_RTP_DATA_PACKET_SIZE, 0);
+-		pkt->end += length;
+-
+-		if (length == VIDEO_RTP_DATA_PACKET_SIZE) {
+-			hdhomerun_video_parse_rtp(vs, pkt);
+-			length = (int)(pkt->end - pkt->pos);
+-		}
+-
++		int length = recv(vs->sock, (char *)vs->buffer + head, VIDEO_DATA_PACKET_SIZE, 0);
+ 		if (length != VIDEO_DATA_PACKET_SIZE) {
+ 			if (length > 0) {
+ 				/* Data received but not valid - ignore. */
+@@ -235,27 +172,10 @@
+ 				/* Wait for more data. */
+ 				continue;
+ 			}
+-			vs->terminate = TRUE;
++			vs->terminate = 1;
+ 			return NULL;
+ 		}
+ 
+-		pthread_mutex_lock(&vs->lock);
+-
+-		/* Store in ring buffer. */
+-		size_t head = vs->head;
+-		uint8_t *ptr = vs->buffer + head;
+-		memcpy(ptr, pkt->pos, length);
+-
+-		/* Stats. */
+-		vs->packet_count++;
+-		hdhomerun_video_stats_ts_pkt(vs, ptr + TS_PACKET_SIZE * 0);
+-		hdhomerun_video_stats_ts_pkt(vs, ptr + TS_PACKET_SIZE * 1);
+-		hdhomerun_video_stats_ts_pkt(vs, ptr + TS_PACKET_SIZE * 2);
+-		hdhomerun_video_stats_ts_pkt(vs, ptr + TS_PACKET_SIZE * 3);
+-		hdhomerun_video_stats_ts_pkt(vs, ptr + TS_PACKET_SIZE * 4);
+-		hdhomerun_video_stats_ts_pkt(vs, ptr + TS_PACKET_SIZE * 5);
+-		hdhomerun_video_stats_ts_pkt(vs, ptr + TS_PACKET_SIZE * 6);
+-
+ 		/* Calculate new head. */
+ 		head += length;
+ 		if (head >= vs->buffer_size) {
+@@ -264,15 +184,11 @@
+ 
+ 		/* Check for buffer overflow. */
+ 		if (head == vs->tail) {
+-			vs->overflow_error_count++;
+-			pthread_mutex_unlock(&vs->lock);
+ 			continue;
+ 		}
+ 
+ 		/* Atomic update. */
+ 		vs->head = head;
+-
+-		pthread_mutex_unlock(&vs->lock);
+ 	}
+ 
+ 	return NULL;
+@@ -280,8 +196,6 @@
+ 
+ uint8_t *hdhomerun_video_recv(struct hdhomerun_video_sock_t *vs, size_t max_size, size_t *pactual_size)
+ {
+-	pthread_mutex_lock(&vs->lock);
+-
+ 	size_t head = vs->head;
+ 	size_t tail = vs->tail;
+ 
+@@ -298,7 +212,6 @@
+ 	if (head == tail) {
+ 		vs->advance = 0;
+ 		*pactual_size = 0;
+-		pthread_mutex_unlock(&vs->lock);
+ 		return NULL;
+ 	}
+ 
+@@ -306,7 +219,6 @@
+ 	if (size == 0) {
+ 		vs->advance = 0;
+ 		*pactual_size = 0;
+-		pthread_mutex_unlock(&vs->lock);
+ 		return NULL;
+ 	}
+ 
+@@ -321,58 +233,13 @@
+ 	}
+ 	vs->advance = size;
+ 	*pactual_size = size;
+-	uint8_t *result = vs->buffer + tail;
+-
+-	pthread_mutex_unlock(&vs->lock);
+-	return result;
++	return vs->buffer + tail;
+ }
+ 
+ void hdhomerun_video_flush(struct hdhomerun_video_sock_t *vs)
+ {
+-	pthread_mutex_lock(&vs->lock);
+-
++	/* Atomic update of tail. */
+ 	vs->tail = vs->head;
+ 	vs->advance = 0;
+-
+-	/* can't use memset bcs sequence is volatile */
+-	int i;
+-	for (i = 0; i < sizeof(vs->sequence) / sizeof(uint8_t) ; i++)
+-		vs->sequence[i] = 0xFF;
+-
+-	vs->rtp_sequence = 0xFFFFFFFF;
+-
+-	vs->packet_count = 0;
+-	vs->transport_error_count = 0;
+-	vs->network_error_count = 0;
+-	vs->sequence_error_count = 0;
+-	vs->overflow_error_count = 0;
+-
+-	pthread_mutex_unlock(&vs->lock);
+ }
+ 
+-void hdhomerun_video_debug_print_stats(struct hdhomerun_video_sock_t *vs)
+-{
+-	struct hdhomerun_video_stats_t stats;
+-	hdhomerun_video_get_stats(vs, &stats);
+-
+-	hdhomerun_debug_printf(vs->dbg, "video sock: pkt=%ld net=%ld te=%ld miss=%ld drop=%ld\n",
+-		stats.packet_count, stats.network_error_count,
+-		stats.transport_error_count, stats.sequence_error_count,
+-		stats.overflow_error_count
+-	);
+-}
+-
+-void hdhomerun_video_get_stats(struct hdhomerun_video_sock_t *vs, struct hdhomerun_video_stats_t *stats)
+-{
+-	memset(stats, 0, sizeof(struct hdhomerun_video_stats_t));
+-
+-	pthread_mutex_lock(&vs->lock);
+-
+-	stats->packet_count = vs->packet_count;
+-	stats->network_error_count = vs->network_error_count;
+-	stats->transport_error_count = vs->transport_error_count;
+-	stats->sequence_error_count = vs->sequence_error_count;
+-	stats->overflow_error_count = vs->overflow_error_count;
+-
+-	pthread_mutex_unlock(&vs->lock);
+-}
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_video.h src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_video.h
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/hdhomerun_video.h	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/hdhomerun_video.h	2009-01-09 13:14:56.000000000 +1030
+@@ -1,12 +1,12 @@
+ /*
+  * hdhomerun_video.h
+  *
+- * Copyright � 2006 Silicondust USA Inc. <www.silicondust.com>.
++ * Copyright � 2006 Silicondust Engineering Ltd. <www.silicondust.com>.
+  *
+- * This library is free software; you can redistribute it and/or 
++ * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+- * version 3 of the License, or (at your option) any later version.
++ * version 2.1 of the License, or (at your option) any later version.
+  *
+  * This library is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+@@ -14,20 +14,8 @@
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+- * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+- * 
+- * As a special exception to the GNU Lesser General Public License,
+- * you may link, statically or dynamically, an application with a
+- * publicly distributed version of the Library to produce an
+- * executable file containing portions of the Library, and
+- * distribute that executable file under terms of your choice,
+- * without any of the additional requirements listed in clause 4 of
+- * the GNU Lesser General Public License.
+- * 
+- * By "a publicly distributed version of the Library", we mean
+- * either the unmodified Library as distributed by Silicondust, or a
+- * modified version of the Library that is distributed under the
+- * conditions defined in the GNU Lesser General Public License.
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  */
+ #ifdef __cplusplus
+ extern "C" {
+@@ -35,40 +23,34 @@
+ 
+ struct hdhomerun_video_sock_t;
+ 
+-struct hdhomerun_video_stats_t {
+-	uint32_t packet_count;
+-	uint32_t network_error_count;
+-	uint32_t transport_error_count;
+-	uint32_t sequence_error_count;
+-	uint32_t overflow_error_count;
+-};
+-
+ #define TS_PACKET_SIZE 188
+ #define VIDEO_DATA_PACKET_SIZE (188 * 7)
+ #define VIDEO_DATA_BUFFER_SIZE_1S (20000000 / 8)
+ 
+-#define VIDEO_RTP_DATA_PACKET_SIZE ((188 * 7) + 12)
+-
+ /*
+  * Create a video/data socket.
+  *
+  * uint16_t listen_port: Port number to listen on. Set to 0 to auto-select.
+  * size_t buffer_size: Size of receive buffer. For 1 second of buffer use VIDEO_DATA_BUFFER_SIZE_1S. 
+- * struct hdhomerun_debug_t *dbg: Pointer to debug logging object. May be NULL.
+  *
+  * Returns a pointer to the newly created control socket.
+  *
+  * When no longer needed, the socket should be destroyed by calling hdhomerun_control_destroy.
+  */
+-extern LIBTYPE struct hdhomerun_video_sock_t *hdhomerun_video_create(uint16_t listen_port, size_t buffer_size, struct hdhomerun_debug_t *dbg);
+-extern LIBTYPE void hdhomerun_video_destroy(struct hdhomerun_video_sock_t *vs);
++extern struct hdhomerun_video_sock_t *hdhomerun_video_create(uint16_t listen_port, size_t buffer_size);
++extern void hdhomerun_video_destroy(struct hdhomerun_video_sock_t *vs);
+ 
+ /*
+  * Get the port the socket is listening on.
+  *
+  * Returns 16-bit port with native endianness, or 0 on error.
+  */
+-extern LIBTYPE uint16_t hdhomerun_video_get_local_port(struct hdhomerun_video_sock_t *vs);
++extern uint16_t hdhomerun_video_get_local_port(struct hdhomerun_video_sock_t *vs);
++
++/*
++ * Get the low-level socket handle.
++ */
++extern int hdhomerun_video_get_sock(struct hdhomerun_video_sock_t *vs);
+ 
+ /*
+  * Read data from buffer.
+@@ -87,18 +69,12 @@
+  * The buffer is implemented as a ring buffer. It is possible for this function to return a small
+  * amount of data when more is available due to the wrap-around case.
+  */
+-extern LIBTYPE uint8_t *hdhomerun_video_recv(struct hdhomerun_video_sock_t *vs, size_t max_size, size_t *pactual_size);
++extern uint8_t *hdhomerun_video_recv(struct hdhomerun_video_sock_t *vs, size_t max_size, size_t *pactual_size);
+ 
+ /*
+  * Flush the buffer.
+  */
+-extern LIBTYPE void hdhomerun_video_flush(struct hdhomerun_video_sock_t *vs);
+-
+-/*
+- * Debug print internal stats.
+- */
+-extern LIBTYPE void hdhomerun_video_debug_print_stats(struct hdhomerun_video_sock_t *vs);
+-extern LIBTYPE void hdhomerun_video_get_stats(struct hdhomerun_video_sock_t *vs, struct hdhomerun_video_stats_t *stats);
++extern void hdhomerun_video_flush(struct hdhomerun_video_sock_t *vs);
+ 
+ #ifdef __cplusplus
+ }
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/lgpl.txt src/mythtv-0.21/libs/libmythtv/hdhomerun/lgpl.txt
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhomerun/lgpl.txt	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhomerun/lgpl.txt	2009-01-09 13:14:56.000000000 +1030
+@@ -1,165 +1,504 @@
+-		   GNU LESSER GENERAL PUBLIC LICENSE
+-                       Version 3, 29 June 2007
++		  GNU LESSER GENERAL PUBLIC LICENSE
++		       Version 2.1, February 1999
+ 
+- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
++ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
++ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+  Everyone is permitted to copy and distribute verbatim copies
+  of this license document, but changing it is not allowed.
+ 
+-
+-  This version of the GNU Lesser General Public License incorporates
+-the terms and conditions of version 3 of the GNU General Public
+-License, supplemented by the additional permissions listed below.
+-
+-  0. Additional Definitions. 
+-
+-  As used herein, "this License" refers to version 3 of the GNU Lesser
+-General Public License, and the "GNU GPL" refers to version 3 of the GNU
+-General Public License.
+-
+-  "The Library" refers to a covered work governed by this License,
+-other than an Application or a Combined Work as defined below.
+-
+-  An "Application" is any work that makes use of an interface provided
+-by the Library, but which is not otherwise based on the Library.
+-Defining a subclass of a class defined by the Library is deemed a mode
+-of using an interface provided by the Library.
+-
+-  A "Combined Work" is a work produced by combining or linking an
+-Application with the Library.  The particular version of the Library
+-with which the Combined Work was made is also called the "Linked
+-Version".
+-
+-  The "Minimal Corresponding Source" for a Combined Work means the
+-Corresponding Source for the Combined Work, excluding any source code
+-for portions of the Combined Work that, considered in isolation, are
+-based on the Application, and not on the Linked Version.
+-
+-  The "Corresponding Application Code" for a Combined Work means the
+-object code and/or source code for the Application, including any data
+-and utility programs needed for reproducing the Combined Work from the
+-Application, but excluding the System Libraries of the Combined Work.
+-
+-  1. Exception to Section 3 of the GNU GPL.
+-
+-  You may convey a covered work under sections 3 and 4 of this License
+-without being bound by section 3 of the GNU GPL.
+-
+-  2. Conveying Modified Versions.
+-
+-  If you modify a copy of the Library, and, in your modifications, a
+-facility refers to a function or data to be supplied by an Application
+-that uses the facility (other than as an argument passed when the
+-facility is invoked), then you may convey a copy of the modified
+-version:
+-
+-   a) under this License, provided that you make a good faith effort to
+-   ensure that, in the event an Application does not supply the
+-   function or data, the facility still operates, and performs
+-   whatever part of its purpose remains meaningful, or
+-
+-   b) under the GNU GPL, with none of the additional permissions of
+-   this License applicable to that copy.
+-
+-  3. Object Code Incorporating Material from Library Header Files.
+-
+-  The object code form of an Application may incorporate material from
+-a header file that is part of the Library.  You may convey such object
+-code under terms of your choice, provided that, if the incorporated
+-material is not limited to numerical parameters, data structure
+-layouts and accessors, or small macros, inline functions and templates
+-(ten or fewer lines in length), you do both of the following:
+-
+-   a) Give prominent notice with each copy of the object code that the
+-   Library is used in it and that the Library and its use are
+-   covered by this License.
+-
+-   b) Accompany the object code with a copy of the GNU GPL and this license
+-   document.
+-
+-  4. Combined Works.
+-
+-  You may convey a Combined Work under terms of your choice that,
+-taken together, effectively do not restrict modification of the
+-portions of the Library contained in the Combined Work and reverse
+-engineering for debugging such modifications, if you also do each of
+-the following:
+-
+-   a) Give prominent notice with each copy of the Combined Work that
+-   the Library is used in it and that the Library and its use are
+-   covered by this License.
+-
+-   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+-   document.
+-
+-   c) For a Combined Work that displays copyright notices during
+-   execution, include the copyright notice for the Library among
+-   these notices, as well as a reference directing the user to the
+-   copies of the GNU GPL and this license document.
+-
+-   d) Do one of the following:
+-
+-       0) Convey the Minimal Corresponding Source under the terms of this
+-       License, and the Corresponding Application Code in a form
+-       suitable for, and under terms that permit, the user to
+-       recombine or relink the Application with a modified version of
+-       the Linked Version to produce a modified Combined Work, in the
+-       manner specified by section 6 of the GNU GPL for conveying
+-       Corresponding Source.
+-
+-       1) Use a suitable shared library mechanism for linking with the
+-       Library.  A suitable mechanism is one that (a) uses at run time
+-       a copy of the Library already present on the user's computer
+-       system, and (b) will operate properly with a modified version
+-       of the Library that is interface-compatible with the Linked
+-       Version. 
+-
+-   e) Provide Installation Information, but only if you would otherwise
+-   be required to provide such information under section 6 of the
+-   GNU GPL, and only to the extent that such information is
+-   necessary to install and execute a modified version of the
+-   Combined Work produced by recombining or relinking the
+-   Application with a modified version of the Linked Version. (If
+-   you use option 4d0, the Installation Information must accompany
+-   the Minimal Corresponding Source and Corresponding Application
+-   Code. If you use option 4d1, you must provide the Installation
+-   Information in the manner specified by section 6 of the GNU GPL
+-   for conveying Corresponding Source.)
+-
+-  5. Combined Libraries.
+-
+-  You may place library facilities that are a work based on the
+-Library side by side in a single library together with other library
+-facilities that are not Applications and are not covered by this
+-License, and convey such a combined library under terms of your
+-choice, if you do both of the following:
+-
+-   a) Accompany the combined library with a copy of the same work based
+-   on the Library, uncombined with any other library facilities,
+-   conveyed under the terms of this License.
+-
+-   b) Give prominent notice with the combined library that part of it
+-   is a work based on the Library, and explaining where to find the
+-   accompanying uncombined form of the same work.
+-
+-  6. Revised Versions of the GNU Lesser General Public License.
+-
+-  The Free Software Foundation may publish revised and/or new versions
+-of the GNU Lesser General Public License from time to time. Such new
+-versions will be similar in spirit to the present version, but may
+-differ in detail to address new problems or concerns.
+-
+-  Each version is given a distinguishing version number. If the
+-Library as you received it specifies that a certain numbered version
+-of the GNU Lesser General Public License "or any later version"
+-applies to it, you have the option of following the terms and
+-conditions either of that published version or of any later version
+-published by the Free Software Foundation. If the Library as you
+-received it does not specify a version number of the GNU Lesser
+-General Public License, you may choose any version of the GNU Lesser
+-General Public License ever published by the Free Software Foundation.
+-
+-  If the Library as you received it specifies that a proxy can decide
+-whether future versions of the GNU Lesser General Public License shall
+-apply, that proxy's public statement of acceptance of any version is
+-permanent authorization for you to choose that version for the
++[This is the first released version of the Lesser GPL.  It also counts
++ as the successor of the GNU Library Public License, version 2, hence
++ the version number 2.1.]
++
++			    Preamble
++
++  The licenses for most software are designed to take away your
++freedom to share and change it.  By contrast, the GNU General Public
++Licenses are intended to guarantee your freedom to share and change
++free software--to make sure the software is free for all its users.
++
++  This license, the Lesser General Public License, applies to some
++specially designated software packages--typically libraries--of the
++Free Software Foundation and other authors who decide to use it.  You
++can use it too, but we suggest you first think carefully about whether
++this license or the ordinary General Public License is the better
++strategy to use in any particular case, based on the explanations below.
++
++  When we speak of free software, we are referring to freedom of use,
++not price.  Our General Public Licenses are designed to make sure that
++you have the freedom to distribute copies of free software (and charge
++for this service if you wish); that you receive source code or can get
++it if you want it; that you can change the software and use pieces of
++it in new free programs; and that you are informed that you can do
++these things.
++
++  To protect your rights, we need to make restrictions that forbid
++distributors to deny you these rights or to ask you to surrender these
++rights.  These restrictions translate to certain responsibilities for
++you if you distribute copies of the library or if you modify it.
++
++  For example, if you distribute copies of the library, whether gratis
++or for a fee, you must give the recipients all the rights that we gave
++you.  You must make sure that they, too, receive or can get the source
++code.  If you link other code with the library, you must provide
++complete object files to the recipients, so that they can relink them
++with the library after making changes to the library and recompiling
++it.  And you must show them these terms so they know their rights.
++
++  We protect your rights with a two-step method: (1) we copyright the
++library, and (2) we offer you this license, which gives you legal
++permission to copy, distribute and/or modify the library.
++
++  To protect each distributor, we want to make it very clear that
++there is no warranty for the free library.  Also, if the library is
++modified by someone else and passed on, the recipients should know
++that what they have is not the original version, so that the original
++author's reputation will not be affected by problems that might be
++introduced by others.
++
++  Finally, software patents pose a constant threat to the existence of
++any free program.  We wish to make sure that a company cannot
++effectively restrict the users of a free program by obtaining a
++restrictive license from a patent holder.  Therefore, we insist that
++any patent license obtained for a version of the library must be
++consistent with the full freedom of use specified in this license.
++
++  Most GNU software, including some libraries, is covered by the
++ordinary GNU General Public License.  This license, the GNU Lesser
++General Public License, applies to certain designated libraries, and
++is quite different from the ordinary General Public License.  We use
++this license for certain libraries in order to permit linking those
++libraries into non-free programs.
++
++  When a program is linked with a library, whether statically or using
++a shared library, the combination of the two is legally speaking a
++combined work, a derivative of the original library.  The ordinary
++General Public License therefore permits such linking only if the
++entire combination fits its criteria of freedom.  The Lesser General
++Public License permits more lax criteria for linking other code with
++the library.
++
++  We call this license the "Lesser" General Public License because it
++does Less to protect the user's freedom than the ordinary General
++Public License.  It also provides other free software developers Less
++of an advantage over competing non-free programs.  These disadvantages
++are the reason we use the ordinary General Public License for many
++libraries.  However, the Lesser license provides advantages in certain
++special circumstances.
++
++  For example, on rare occasions, there may be a special need to
++encourage the widest possible use of a certain library, so that it becomes
++a de-facto standard.  To achieve this, non-free programs must be
++allowed to use the library.  A more frequent case is that a free
++library does the same job as widely used non-free libraries.  In this
++case, there is little to gain by limiting the free library to free
++software only, so we use the Lesser General Public License.
++
++  In other cases, permission to use a particular library in non-free
++programs enables a greater number of people to use a large body of
++free software.  For example, permission to use the GNU C Library in
++non-free programs enables many more people to use the whole GNU
++operating system, as well as its variant, the GNU/Linux operating
++system.
++
++  Although the Lesser General Public License is Less protective of the
++users' freedom, it does ensure that the user of a program that is
++linked with the Library has the freedom and the wherewithal to run
++that program using a modified version of the Library.
++
++  The precise terms and conditions for copying, distribution and
++modification follow.  Pay close attention to the difference between a
++"work based on the library" and a "work that uses the library".  The
++former contains code derived from the library, whereas the latter must
++be combined with the library in order to run.
++
++		  GNU LESSER GENERAL PUBLIC LICENSE
++   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
++
++  0. This License Agreement applies to any software library or other
++program which contains a notice placed by the copyright holder or
++other authorized party saying it may be distributed under the terms of
++this Lesser General Public License (also called "this License").
++Each licensee is addressed as "you".
++
++  A "library" means a collection of software functions and/or data
++prepared so as to be conveniently linked with application programs
++(which use some of those functions and data) to form executables.
++
++  The "Library", below, refers to any such software library or work
++which has been distributed under these terms.  A "work based on the
++Library" means either the Library or any derivative work under
++copyright law: that is to say, a work containing the Library or a
++portion of it, either verbatim or with modifications and/or translated
++straightforwardly into another language.  (Hereinafter, translation is
++included without limitation in the term "modification".)
++
++  "Source code" for a work means the preferred form of the work for
++making modifications to it.  For a library, complete source code means
++all the source code for all modules it contains, plus any associated
++interface definition files, plus the scripts used to control compilation
++and installation of the library.
++
++  Activities other than copying, distribution and modification are not
++covered by this License; they are outside its scope.  The act of
++running a program using the Library is not restricted, and output from
++such a program is covered only if its contents constitute a work based
++on the Library (independent of the use of the Library in a tool for
++writing it).  Whether that is true depends on what the Library does
++and what the program that uses the Library does.
++  
++  1. You may copy and distribute verbatim copies of the Library's
++complete source code as you receive it, in any medium, provided that
++you conspicuously and appropriately publish on each copy an
++appropriate copyright notice and disclaimer of warranty; keep intact
++all the notices that refer to this License and to the absence of any
++warranty; and distribute a copy of this License along with the
+ Library.
++
++  You may charge a fee for the physical act of transferring a copy,
++and you may at your option offer warranty protection in exchange for a
++fee.
++
++  2. You may modify your copy or copies of the Library or any portion
++of it, thus forming a work based on the Library, and copy and
++distribute such modifications or work under the terms of Section 1
++above, provided that you also meet all of these conditions:
++
++    a) The modified work must itself be a software library.
++
++    b) You must cause the files modified to carry prominent notices
++    stating that you changed the files and the date of any change.
++
++    c) You must cause the whole of the work to be licensed at no
++    charge to all third parties under the terms of this License.
++
++    d) If a facility in the modified Library refers to a function or a
++    table of data to be supplied by an application program that uses
++    the facility, other than as an argument passed when the facility
++    is invoked, then you must make a good faith effort to ensure that,
++    in the event an application does not supply such function or
++    table, the facility still operates, and performs whatever part of
++    its purpose remains meaningful.
++
++    (For example, a function in a library to compute square roots has
++    a purpose that is entirely well-defined independent of the
++    application.  Therefore, Subsection 2d requires that any
++    application-supplied function or table used by this function must
++    be optional: if the application does not supply it, the square
++    root function must still compute square roots.)
++
++These requirements apply to the modified work as a whole.  If
++identifiable sections of that work are not derived from the Library,
++and can be reasonably considered independent and separate works in
++themselves, then this License, and its terms, do not apply to those
++sections when you distribute them as separate works.  But when you
++distribute the same sections as part of a whole which is a work based
++on the Library, the distribution of the whole must be on the terms of
++this License, whose permissions for other licensees extend to the
++entire whole, and thus to each and every part regardless of who wrote
++it.
++
++Thus, it is not the intent of this section to claim rights or contest
++your rights to work written entirely by you; rather, the intent is to
++exercise the right to control the distribution of derivative or
++collective works based on the Library.
++
++In addition, mere aggregation of another work not based on the Library
++with the Library (or with a work based on the Library) on a volume of
++a storage or distribution medium does not bring the other work under
++the scope of this License.
++
++  3. You may opt to apply the terms of the ordinary GNU General Public
++License instead of this License to a given copy of the Library.  To do
++this, you must alter all the notices that refer to this License, so
++that they refer to the ordinary GNU General Public License, version 2,
++instead of to this License.  (If a newer version than version 2 of the
++ordinary GNU General Public License has appeared, then you can specify
++that version instead if you wish.)  Do not make any other change in
++these notices.
++
++  Once this change is made in a given copy, it is irreversible for
++that copy, so the ordinary GNU General Public License applies to all
++subsequent copies and derivative works made from that copy.
++
++  This option is useful when you wish to copy part of the code of
++the Library into a program that is not a library.
++
++  4. You may copy and distribute the Library (or a portion or
++derivative of it, under Section 2) in object code or executable form
++under the terms of Sections 1 and 2 above provided that you accompany
++it with the complete corresponding machine-readable source code, which
++must be distributed under the terms of Sections 1 and 2 above on a
++medium customarily used for software interchange.
++
++  If distribution of object code is made by offering access to copy
++from a designated place, then offering equivalent access to copy the
++source code from the same place satisfies the requirement to
++distribute the source code, even though third parties are not
++compelled to copy the source along with the object code.
++
++  5. A program that contains no derivative of any portion of the
++Library, but is designed to work with the Library by being compiled or
++linked with it, is called a "work that uses the Library".  Such a
++work, in isolation, is not a derivative work of the Library, and
++therefore falls outside the scope of this License.
++
++  However, linking a "work that uses the Library" with the Library
++creates an executable that is a derivative of the Library (because it
++contains portions of the Library), rather than a "work that uses the
++library".  The executable is therefore covered by this License.
++Section 6 states terms for distribution of such executables.
++
++  When a "work that uses the Library" uses material from a header file
++that is part of the Library, the object code for the work may be a
++derivative work of the Library even though the source code is not.
++Whether this is true is especially significant if the work can be
++linked without the Library, or if the work is itself a library.  The
++threshold for this to be true is not precisely defined by law.
++
++  If such an object file uses only numerical parameters, data
++structure layouts and accessors, and small macros and small inline
++functions (ten lines or less in length), then the use of the object
++file is unrestricted, regardless of whether it is legally a derivative
++work.  (Executables containing this object code plus portions of the
++Library will still fall under Section 6.)
++
++  Otherwise, if the work is a derivative of the Library, you may
++distribute the object code for the work under the terms of Section 6.
++Any executables containing that work also fall under Section 6,
++whether or not they are linked directly with the Library itself.
++
++  6. As an exception to the Sections above, you may also combine or
++link a "work that uses the Library" with the Library to produce a
++work containing portions of the Library, and distribute that work
++under terms of your choice, provided that the terms permit
++modification of the work for the customer's own use and reverse
++engineering for debugging such modifications.
++
++  You must give prominent notice with each copy of the work that the
++Library is used in it and that the Library and its use are covered by
++this License.  You must supply a copy of this License.  If the work
++during execution displays copyright notices, you must include the
++copyright notice for the Library among them, as well as a reference
++directing the user to the copy of this License.  Also, you must do one
++of these things:
++
++    a) Accompany the work with the complete corresponding
++    machine-readable source code for the Library including whatever
++    changes were used in the work (which must be distributed under
++    Sections 1 and 2 above); and, if the work is an executable linked
++    with the Library, with the complete machine-readable "work that
++    uses the Library", as object code and/or source code, so that the
++    user can modify the Library and then relink to produce a modified
++    executable containing the modified Library.  (It is understood
++    that the user who changes the contents of definitions files in the
++    Library will not necessarily be able to recompile the application
++    to use the modified definitions.)
++
++    b) Use a suitable shared library mechanism for linking with the
++    Library.  A suitable mechanism is one that (1) uses at run time a
++    copy of the library already present on the user's computer system,
++    rather than copying library functions into the executable, and (2)
++    will operate properly with a modified version of the library, if
++    the user installs one, as long as the modified version is
++    interface-compatible with the version that the work was made with.
++
++    c) Accompany the work with a written offer, valid for at
++    least three years, to give the same user the materials
++    specified in Subsection 6a, above, for a charge no more
++    than the cost of performing this distribution.
++
++    d) If distribution of the work is made by offering access to copy
++    from a designated place, offer equivalent access to copy the above
++    specified materials from the same place.
++
++    e) Verify that the user has already received a copy of these
++    materials or that you have already sent this user a copy.
++
++  For an executable, the required form of the "work that uses the
++Library" must include any data and utility programs needed for
++reproducing the executable from it.  However, as a special exception,
++the materials to be distributed need not include anything that is
++normally distributed (in either source or binary form) with the major
++components (compiler, kernel, and so on) of the operating system on
++which the executable runs, unless that component itself accompanies
++the executable.
++
++  It may happen that this requirement contradicts the license
++restrictions of other proprietary libraries that do not normally
++accompany the operating system.  Such a contradiction means you cannot
++use both them and the Library together in an executable that you
++distribute.
++
++  7. You may place library facilities that are a work based on the
++Library side-by-side in a single library together with other library
++facilities not covered by this License, and distribute such a combined
++library, provided that the separate distribution of the work based on
++the Library and of the other library facilities is otherwise
++permitted, and provided that you do these two things:
++
++    a) Accompany the combined library with a copy of the same work
++    based on the Library, uncombined with any other library
++    facilities.  This must be distributed under the terms of the
++    Sections above.
++
++    b) Give prominent notice with the combined library of the fact
++    that part of it is a work based on the Library, and explaining
++    where to find the accompanying uncombined form of the same work.
++
++  8. You may not copy, modify, sublicense, link with, or distribute
++the Library except as expressly provided under this License.  Any
++attempt otherwise to copy, modify, sublicense, link with, or
++distribute the Library is void, and will automatically terminate your
++rights under this License.  However, parties who have received copies,
++or rights, from you under this License will not have their licenses
++terminated so long as such parties remain in full compliance.
++
++  9. You are not required to accept this License, since you have not
++signed it.  However, nothing else grants you permission to modify or
++distribute the Library or its derivative works.  These actions are
++prohibited by law if you do not accept this License.  Therefore, by
++modifying or distributing the Library (or any work based on the
++Library), you indicate your acceptance of this License to do so, and
++all its terms and conditions for copying, distributing or modifying
++the Library or works based on it.
++
++  10. Each time you redistribute the Library (or any work based on the
++Library), the recipient automatically receives a license from the
++original licensor to copy, distribute, link with or modify the Library
++subject to these terms and conditions.  You may not impose any further
++restrictions on the recipients' exercise of the rights granted herein.
++You are not responsible for enforcing compliance by third parties with
++this License.
++
++  11. If, as a consequence of a court judgment or allegation of patent
++infringement or for any other reason (not limited to patent issues),
++conditions are imposed on you (whether by court order, agreement or
++otherwise) that contradict the conditions of this License, they do not
++excuse you from the conditions of this License.  If you cannot
++distribute so as to satisfy simultaneously your obligations under this
++License and any other pertinent obligations, then as a consequence you
++may not distribute the Library at all.  For example, if a patent
++license would not permit royalty-free redistribution of the Library by
++all those who receive copies directly or indirectly through you, then
++the only way you could satisfy both it and this License would be to
++refrain entirely from distribution of the Library.
++
++If any portion of this section is held invalid or unenforceable under any
++particular circumstance, the balance of the section is intended to apply,
++and the section as a whole is intended to apply in other circumstances.
++
++It is not the purpose of this section to induce you to infringe any
++patents or other property right claims or to contest validity of any
++such claims; this section has the sole purpose of protecting the
++integrity of the free software distribution system which is
++implemented by public license practices.  Many people have made
++generous contributions to the wide range of software distributed
++through that system in reliance on consistent application of that
++system; it is up to the author/donor to decide if he or she is willing
++to distribute software through any other system and a licensee cannot
++impose that choice.
++
++This section is intended to make thoroughly clear what is believed to
++be a consequence of the rest of this License.
++
++  12. If the distribution and/or use of the Library is restricted in
++certain countries either by patents or by copyrighted interfaces, the
++original copyright holder who places the Library under this License may add
++an explicit geographical distribution limitation excluding those countries,
++so that distribution is permitted only in or among countries not thus
++excluded.  In such case, this License incorporates the limitation as if
++written in the body of this License.
++
++  13. The Free Software Foundation may publish revised and/or new
++versions of the Lesser General Public License from time to time.
++Such new versions will be similar in spirit to the present version,
++but may differ in detail to address new problems or concerns.
++
++Each version is given a distinguishing version number.  If the Library
++specifies a version number of this License which applies to it and
++"any later version", you have the option of following the terms and
++conditions either of that version or of any later version published by
++the Free Software Foundation.  If the Library does not specify a
++license version number, you may choose any version ever published by
++the Free Software Foundation.
++
++  14. If you wish to incorporate parts of the Library into other free
++programs whose distribution conditions are incompatible with these,
++write to the author to ask for permission.  For software which is
++copyrighted by the Free Software Foundation, write to the Free
++Software Foundation; we sometimes make exceptions for this.  Our
++decision will be guided by the two goals of preserving the free status
++of all derivatives of our free software and of promoting the sharing
++and reuse of software generally.
++
++			    NO WARRANTY
++
++  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
++WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
++EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
++OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
++KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
++IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
++PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
++LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
++THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
++
++  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
++WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
++AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
++FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
++CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
++LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
++RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
++FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
++SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
++DAMAGES.
++
++		     END OF TERMS AND CONDITIONS
++
++           How to Apply These Terms to Your New Libraries
++
++  If you develop a new library, and you want it to be of the greatest
++possible use to the public, we recommend making it free software that
++everyone can redistribute and change.  You can do so by permitting
++redistribution under these terms (or, alternatively, under the terms of the
++ordinary General Public License).
++
++  To apply these terms, attach the following notices to the library.  It is
++safest to attach them to the start of each source file to most effectively
++convey the exclusion of warranty; and each file should have at least the
++"copyright" line and a pointer to where the full notice is found.
++
++    <one line to give the library's name and a brief idea of what it does.>
++    Copyright (C) <year>  <name of author>
++
++    This library is free software; you can redistribute it and/or
++    modify it under the terms of the GNU Lesser General Public
++    License as published by the Free Software Foundation; either
++    version 2.1 of the License, or (at your option) any later version.
++
++    This library 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
++    Lesser General Public License for more details.
++
++    You should have received a copy of the GNU Lesser General Public
++    License along with this library; if not, write to the Free Software
++    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
++
++Also add information on how to contact you by electronic and paper mail.
++
++You should also get your employer (if you work as a programmer) or your
++school, if any, to sign a "copyright disclaimer" for the library, if
++necessary.  Here is a sample; alter the names:
++
++  Yoyodyne, Inc., hereby disclaims all copyright interest in the
++  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
++
++  <signature of Ty Coon>, 1 April 1990
++  Ty Coon, President of Vice
++
++That's all there is to it!
++
++
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhrchannel.cpp src/mythtv-0.21/libs/libmythtv/hdhrchannel.cpp
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhrchannel.cpp	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhrchannel.cpp	2009-01-09 13:14:58.000000000 +1030
+@@ -1,6 +1,6 @@
+ /**
+- *  HDHRChannel
+- *  Copyright (c) 2006-2009 by Silicondust Engineering Ltd.
++ *  DBox2Channel
++ *  Copyright (c) 2006 by Silicondust Engineering Ltd.
+  *  Distributed as part of MythTV under GPL v2 and later.
+  */
+ 
+@@ -24,6 +24,7 @@
+ #include "hdhrchannel.h"
+ #include "videosource.h"
+ #include "channelutil.h"
++#include "frequencytables.h"
+ 
+ #define DEBUG_PID_FILTERS
+ 
+@@ -31,7 +32,7 @@
+ #define LOC_ERR QString("HDHRChan(%1), Error: ").arg(GetDevice())
+ 
+ HDHRChannel::HDHRChannel(TVRec *parent, const QString &device, uint tuner)
+-    : DTVChannel(parent),       _hdhomerun_device(NULL),
++    : DTVChannel(parent),       _control_socket(NULL),
+       _device_id(0),            _device_ip(0),
+       _tuner(tuner),            _lock(true)
+ {
+@@ -41,8 +42,6 @@
+     if (valid && hdhomerun_discover_validate_device_id(_device_id))
+ 	return;
+ 
+-    _device_id = HDHOMERUN_DEVICE_ID_WILDCARD;
+-
+     /* Otherwise, is it a valid IP address? */
+     struct in_addr address;
+     if (inet_aton(device, &address)) 
+@@ -55,6 +54,7 @@
+     VERBOSE(VB_IMPORTANT, LOC_ERR + QString("Invalid DeviceID '%1'")
+ 	    .arg(device));
+ 
++    _device_id = HDHOMERUN_DEVICE_ID_WILDCARD;
+ }
+ 
+ HDHRChannel::~HDHRChannel(void)
+@@ -67,38 +67,77 @@
+     if (IsOpen())
+         return true;
+ 
++    if (!FindDevice())
++        return false;
++
+     if (!InitializeInputs())
+         return false;
+ 
+-    return Connect();
++    return (_device_ip != 0) && Connect();
+ }
+ 
+ void HDHRChannel::Close(void)
+ {
+-    if (_hdhomerun_device)
++    if (_control_socket)
+     {
+-        hdhomerun_device_destroy(_hdhomerun_device);
+-        _hdhomerun_device = NULL;
++        hdhomerun_control_destroy(_control_socket);
++        _control_socket = NULL;
+     }
+ }
+ 
+ bool HDHRChannel::EnterPowerSavingMode(void)
+ {
+-    return hdhomerun_device_set_tuner_channel(_hdhomerun_device, "none") > 0;
++    return QString::null != TunerSet("channel", "none", false);
++}
++
++bool HDHRChannel::FindDevice(void)
++{
++    if (!_device_id)
++        return _device_ip;
++
++    _device_ip = 0;
++
++    /* Discover. */
++    struct hdhomerun_discover_device_t result;
++    int ret = hdhomerun_discover_find_device(_device_id, &result);
++    if (ret < 0)
++    {
++        VERBOSE(VB_IMPORTANT, LOC_ERR + "Unable to send discovery request" + ENO);
++        return false;
++    }
++    if (ret == 0)
++    {
++        VERBOSE(VB_IMPORTANT, LOC_ERR + QString("device not found"));
++        return false;
++    }
++
++    /* Found. */
++    _device_ip = result.ip_addr;
++
++    VERBOSE(VB_IMPORTANT, LOC +
++            QString("device found at address %1.%2.%3.%4")
++            .arg((_device_ip>>24) & 0xFF).arg((_device_ip>>16) & 0xFF)
++            .arg((_device_ip>> 8) & 0xFF).arg((_device_ip>> 0) & 0xFF));
++
++    return true;
+ }
+ 
+ bool HDHRChannel::Connect(void)
+ {
+-    _hdhomerun_device = hdhomerun_device_create(
+-        _device_id, _device_ip, _tuner, NULL);
++    _control_socket = hdhomerun_control_create(_device_id, _device_ip);
++    if (!_control_socket)
++    {
++        VERBOSE(VB_IMPORTANT, LOC_ERR + "Unable to create control socket");
++        return false;
++    }
+ 
+-    if (!_hdhomerun_device)
++    if (hdhomerun_control_get_local_addr(_control_socket) == 0)
+     {
+-        VERBOSE(VB_IMPORTANT,
+-                LOC_ERR + "Unable to create hdhomerun device object");
++        VERBOSE(VB_IMPORTANT, LOC_ERR + "Unable to connect to device");
+         return false;
+     }
+ 
++    VERBOSE(VB_CHANNEL, LOC + "Successfully connected to device");
+     return true;
+ }
+ 
+@@ -106,7 +145,7 @@
+ {
+     QMutexLocker locker(&_lock);
+ 
+-    if (!_hdhomerun_device)
++    if (!_control_socket)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_ERR + "Get request failed (not connected)");
+         return QString::null;
+@@ -114,7 +153,7 @@
+ 
+     char *value = NULL;
+     char *error = NULL;
+-    if (hdhomerun_device_get_var(_hdhomerun_device, name, &value, &error) < 0)
++    if (hdhomerun_control_get(_control_socket, name, &value, &error) < 0)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_ERR + "Get request failed" + ENO);
+         return QString::null;
+@@ -136,7 +175,7 @@
+ {
+     QMutexLocker locker(&_lock);
+ 
+-    if (!_hdhomerun_device)
++    if (!_control_socket)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_ERR + "Set request failed (not connected)");
+         return QString::null;
+@@ -144,8 +183,7 @@
+ 
+     char *value = NULL;
+     char *error = NULL;
+-    if (hdhomerun_device_set_var(
+-            _hdhomerun_device, name, val, &value, &error) < 0)
++    if (hdhomerun_control_set(_control_socket, name, val, &value, &error) < 0)
+     {
+         VERBOSE(VB_IMPORTANT, LOC_ERR + "Set request failed" + ENO);
+ 
+@@ -163,11 +201,6 @@
+     return QString(value);
+ }
+ 
+-struct hdhomerun_device_t *HDHRChannel::GetHDHRDevice(void)
+-{
+-	return _hdhomerun_device;
+-}
+-
+ QString HDHRChannel::TunerGet(const QString &name, bool report_error_return)
+ {
+     return DeviceGet(QString("/tuner%1/%2").arg(_tuner).arg(name),
+@@ -188,8 +221,7 @@
+         return false;
+     }
+ 
+-    unsigned long localIP = hdhomerun_device_get_local_machine_addr(
+-        _hdhomerun_device);
++    unsigned long localIP = hdhomerun_control_get_local_addr(_control_socket);
+     if (localIP == 0)
+     {
+         return false;
+@@ -200,7 +232,7 @@
+         .arg((localIP >>  8) & 0xFF).arg((localIP >>  0) & 0xFF)
+         .arg(localPort);
+ 
+-    if (hdhomerun_device_set_tuner_target(_hdhomerun_device, configValue) <= 0) 
++    if (!TunerSet("target", configValue))
+     {
+         return false;
+     }
+@@ -208,9 +240,9 @@
+     return true;
+ }
+ 
+-bool HDHRChannel::DeviceClearTarget(void)
++bool HDHRChannel::DeviceClearTarget()
+ {
+-    return hdhomerun_device_set_tuner_target(_hdhomerun_device, "none") > 0;
++    return TunerSet("target", "0.0.0.0:0");
+ }
+ 
+ bool HDHRChannel::SetChannelByString(const QString &channum)
+@@ -316,8 +348,7 @@
+     if (mpeg_prog_num && (GetTuningMode() == "mpeg"))
+     {
+         QString pnum = QString::number(mpeg_prog_num);
+-        _ignore_filters = (hdhomerun_device_set_tuner_program(
+-                               _hdhomerun_device, pnum) > 0);
++        _ignore_filters = QString::null != TunerSet("program", pnum, false);
+     }
+ 
+     return true;
+@@ -360,27 +391,22 @@
+ bool HDHRChannel::Tune(uint frequency, QString /*input*/,
+                        QString modulation, QString si_std)
+ {
+-    // Convert dtv_multiplex.modulation strings to something the HDHR can use:
+-    modulation.replace("qam_", "qam");  // e.g. qam_256 -> qam256
+-#if 0
+-    if (modulation == "qamauto")
+-        modulation = "qam";             // "auto" works just as well?
+-#endif
+-
+-    if (modulation.isEmpty())
+-        modulation = "auto";
++    bool ok = false;
+ 
+-    QString chan = modulation + ':' + QString::number(frequency);
++    VERBOSE(VB_CHANNEL, LOC +
++            QString("TuneTo(%1,%2)").arg(frequency).arg(modulation));
+ 
+-    VERBOSE(VB_CHANNEL, LOC + "Tune()ing to " + chan);
++    if (modulation == "8vsb")
++        ok = TunerSet("channel", QString("8vsb:%1").arg(frequency));
++    else if (modulation == "qam_64")
++        ok = TunerSet("channel", QString("qam64:%1").arg(frequency));
++    else if (modulation == "qam_256")
++        ok = TunerSet("channel", QString("qam256:%1").arg(frequency));
+ 
+-    if (hdhomerun_device_set_tuner_channel(_hdhomerun_device, chan) > 0)
+-    {
++    if (ok)
+         SetSIStandard(si_std);
+-        return true;
+-    }
+ 
+-    return false;
++    return ok;
+ }
+ 
+ bool HDHRChannel::AddPID(uint pid, bool do_update)
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhrchannel.h src/mythtv-0.21/libs/libmythtv/hdhrchannel.h
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhrchannel.h	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhrchannel.h	2009-01-09 13:14:58.000000000 +1030
+@@ -39,7 +39,7 @@
+     bool SetChannelByString(const QString &chan);
+ 
+     // Gets
+-    bool IsOpen(void) const { return (_hdhomerun_device != NULL); }
++    bool IsOpen(void) const { return (_control_socket != NULL); }
+     QString GetDevice(void) const
+         { return QString("%1/%2").arg(_device_id, 8, 16).arg(_tuner); }
+     vector<uint> GetPIDs(void) const
+@@ -57,13 +57,11 @@
+     bool Tune(const DTVMultiplex &tuning, QString inputname);
+ 
+   private:
++    bool FindDevice(void);
+     bool Connect(void);
+     bool Tune(uint frequency, QString inputname,
+               QString modulation, QString si_std);
+ 
+-
+-    struct hdhomerun_device_t *GetHDHRDevice(void);
+-
+     bool DeviceSetTarget(unsigned short localPort);
+     bool DeviceClearTarget(void);
+ 
+@@ -76,7 +74,7 @@
+                      bool report_error_return = true);
+ 
+   private:
+-    struct hdhomerun_device_t *_hdhomerun_device;
++    hdhr_socket_t  *_control_socket;
+     uint            _device_id;
+     uint            _device_ip;
+     uint            _tuner;
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhrrecorder.cpp src/mythtv-0.21/libs/libmythtv/hdhrrecorder.cpp
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhrrecorder.cpp	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhrrecorder.cpp	2009-01-22 18:52:43.000000000 +1030
+@@ -1,6 +1,6 @@
+ /** -*- Mode: c++ -*-
+  *  HDHRRecorder
+- *  Copyright (c) 2006-2009 by Silicondust Engineering Ltd, and
++ *  Copyright (c) 2006 by Silicondust Engineering Ltd, and
+  *    Daniel Thor Kristjansson
+  *  Distributed as part of MythTV under GPL v2 and later.
+  */
+@@ -27,7 +27,6 @@
+ #include "hdhrrecorder.h"
+ #include "atsctables.h"
+ #include "atscstreamdata.h"
+-#include "dvbstreamdata.h"
+ #include "eithelper.h"
+ #include "tv_rec.h"
+ 
+@@ -110,7 +109,7 @@
+     buffersize = max(49 * TSPacket::SIZE * 128, buffersize);
+ 
+     /* Create TS socket. */
+-    _video_socket = hdhomerun_video_create(0, buffersize, NULL);
++    _video_socket = hdhomerun_video_create(0, buffersize);
+     if (!_video_socket)
+     {
+         VERBOSE(VB_IMPORTANT, LOC + "Open() failed to open socket");
+@@ -177,13 +176,10 @@
+         data->AddMPEGListener(this);
+ 
+         ATSCStreamData *atsc = dynamic_cast<ATSCStreamData*>(data);
+-        DVBStreamData  *dvb  = dynamic_cast<DVBStreamData*>(data);
+ 
+         if (atsc && atsc->DesiredMinorChannel())
+             atsc->SetDesiredChannel(atsc->DesiredMajorChannel(),
+                                     atsc->DesiredMinorChannel());
+-        else if (dvb)
+-            dvb->AddDVBMainListener(this);
+         else if (data->DesiredProgram() >= 0)
+             data->SetDesiredProgram(data->DesiredProgram());
+     }
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhrsignalmonitor.cpp src/mythtv-0.21/libs/libmythtv/hdhrsignalmonitor.cpp
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/hdhrsignalmonitor.cpp	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/hdhrsignalmonitor.cpp	2009-01-09 13:14:58.000000000 +1030
+@@ -139,17 +139,19 @@
+ {
+     dtvMonitorRunning = true;
+ 
+-    HDHRChannel *hdrc = dynamic_cast<HDHRChannel*>(channel);
+-    struct hdhomerun_device_t *_hdhomerun_device = hdrc->GetHDHRDevice();
+-
+-    if (!_hdhomerun_device)
++    struct hdhomerun_video_sock_t *_video_socket;
++    _video_socket = hdhomerun_video_create(0, VIDEO_DATA_BUFFER_SIZE_1S);
++    if (!_video_socket)
+     {
+-        VERBOSE(VB_IMPORTANT, "Failed to get HDHomeRun device handle");
++        VERBOSE(VB_IMPORTANT, LOC_ERR + "Failed to get video socket");
+         return;
+     }
+ 
+-    if (!hdhomerun_device_stream_start(_hdhomerun_device))
++    HDHRChannel *hdrc = dynamic_cast<HDHRChannel*>(channel);
++    uint localPort = hdhomerun_video_get_local_port(_video_socket);
++    if (!hdrc->DeviceSetTarget(localPort))
+     {
++        hdhomerun_video_destroy(_video_socket);
+         VERBOSE(VB_IMPORTANT, LOC_ERR + "Failed to set target");
+         return;
+     }
+@@ -164,7 +166,7 @@
+ 
+         size_t data_length;
+         unsigned char *data_buffer =
+-            hdhomerun_device_stream_recv(_hdhomerun_device,
++            hdhomerun_video_recv(_video_socket,
+                                          VIDEO_DATA_BUFFER_SIZE_1S / 5,
+                                          &data_length);
+ 
+@@ -177,7 +179,8 @@
+         usleep(2500);
+     }
+ 
+-    hdhomerun_device_stream_stop(_hdhomerun_device);
++    hdrc->DeviceClearTarget();
++    hdhomerun_video_destroy(_video_socket);
+ 
+     VERBOSE(VB_CHANNEL, LOC + "RunTableMonitor(): -- shutdown");
+ 
+@@ -212,15 +215,16 @@
+         return;
+     }
+ 
+-    HDHRChannel *hdrc = dynamic_cast<HDHRChannel*>(channel);
+-    struct hdhomerun_device_t *_hdhomerun_device = hdrc->GetHDHRDevice();
+-    struct hdhomerun_tuner_status_t status;
+-    hdhomerun_device_get_tuner_status(_hdhomerun_device, NULL, &status);
+-
+-    uint sig = status.signal_strength;
+-    uint snq = status.signal_to_noise_quality;
+-    uint seq = status.symbol_error_quality;
+-
++    QString msg = ((HDHRChannel*)channel)->TunerGet("status");
++    //ss  = signal strength,        [0,100]
++    //snq = signal to noise quality [0,100]
++    //seq = signal error quality    [0,100]
++    int loc_sig = msg.find("ss="),  loc_snq = msg.find("snq=");
++    int loc_seq = msg.find("seq="), loc_end = msg.length();
++    bool ok0, ok1, ok2;
++    uint sig = msg.mid(loc_sig + 3, loc_snq - loc_sig - 4).toUInt(&ok0);
++    uint snq = msg.mid(loc_snq + 4, loc_seq - loc_snq - 5).toUInt(&ok1);
++    uint seq = msg.mid(loc_seq + 4, loc_end - loc_seq - 4).toUInt(&ok2);
+     (void) snq; // TODO should convert to S/N
+     (void) seq; // TODO should report this...
+ 
+@@ -232,8 +236,9 @@
+     bool isLocked = false;
+     {
+         QMutexLocker locker(&statusLock);
+-        signalStrength.SetValue(sig);
+-        signalLock.SetValue(status.lock_supported);
++        if (loc_sig > 0 && loc_snq > 0 && ok0)
++            signalStrength.SetValue(sig);
++        signalLock.SetValue(signalStrength.IsGood() ? 1 : 0);
+         isLocked = signalLock.IsGood();
+     }
+ 
+diff -aur branches/release-0-21-fixes/mythtv/libs/libmythtv/libmythtv.pro src/mythtv-0.21/libs/libmythtv/libmythtv.pro
+--- branches/release-0-21-fixes/mythtv/libs/libmythtv/libmythtv.pro	2009-07-13 15:44:12.000000000 +0930
++++ src/mythtv-0.21/libs/libmythtv/libmythtv.pro	2009-01-09 13:14:58.000000000 +1030
+@@ -459,28 +459,12 @@
+         DEFINES += USING_HDHOMERUN
+ 
+         # HDHomeRun library
+-        HEADERS += hdhomerun/hdhomerun.h
++        HEADERS += hdhomerun/hdhomerun_pkt.h   hdhomerun/hdhomerun_discover.h
++        HEADERS += hdhomerun/hdhomerun_video.h hdhomerun/hdhomerun_control.h
+         HEADERS += hdhomerun/hdhomerun_os.h
+-        HEADERS += hdhomerun/hdhomerun_os_posix.h
+-        HEADERS += hdhomerun/hdhomerun_os_windows.h
+-        HEADERS += hdhomerun/hdhomerun_channelscan.h
+-        HEADERS += hdhomerun/hdhomerun_channels.h
+-        HEADERS += hdhomerun/hdhomerun_control.h
+-        HEADERS += hdhomerun/hdhomerun_debug.h
+-        HEADERS += hdhomerun/hdhomerun_pkt.h
+-        HEADERS += hdhomerun/hdhomerun_device.h
+-        HEADERS += hdhomerun/hdhomerun_types.h
+-        HEADERS += hdhomerun/hdhomerun_discover.h
+-        HEADERS += hdhomerun/hdhomerun_video.h
+-
+-        SOURCES += hdhomerun/hdhomerun_pkt.c
+-        SOURCES += hdhomerun/hdhomerun_debug.c
+-        SOURCES += hdhomerun/hdhomerun_discover.c
+-        SOURCES += hdhomerun/hdhomerun_channels.c
+-        SOURCES += hdhomerun/hdhomerun_channelscan.c
+-        SOURCES += hdhomerun/hdhomerun_control.c
+-        SOURCES += hdhomerun/hdhomerun_video.c
+-        SOURCES += hdhomerun/hdhomerun_device.c
++
++        SOURCES += hdhomerun/hdhomerun_pkt.c   hdhomerun/hdhomerun_discover.c
++        SOURCES += hdhomerun/hdhomerun_video.c hdhomerun/hdhomerun_control.c
+     }
+ 
+     # Support for PVR-150/250/350/500, etc. on Linux
-- 
cgit v0.12


From d8c54ac018b091575f654c8400c2701ccdfb0600 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Tue, 21 Jul 2009 22:22:01 +0930
Subject: LinHES-config: bump to recompile

---
 abs/core-testing/LinHES-config/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index ec34308..2b5aeac 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.0
-pkgrel=60
+pkgrel=61
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
 pkgdesc="Install and configure your system"
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted sg3_utils nmbscan system-templates rsync python-parted ddcxinfo python-pexpect python-netifaces LinHES-timezone python-iplib)
-- 
cgit v0.12


From 10b3d6ce15587ae4baf8bb40ae5d67c033b440f2 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Tue, 21 Jul 2009 14:45:21 -0400
Subject: xbmc-svn: updated to 21748

---
 abs/extra-testing/community/xbmc-svn/PKGBUILD               | 13 +++++++------
 .../community/xbmc-svn/libcurl-not-in-lib64.patch           |  4 ++--
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/abs/extra-testing/community/xbmc-svn/PKGBUILD b/abs/extra-testing/community/xbmc-svn/PKGBUILD
index baaa112..45d6671 100644
--- a/abs/extra-testing/community/xbmc-svn/PKGBUILD
+++ b/abs/extra-testing/community/xbmc-svn/PKGBUILD
@@ -5,8 +5,8 @@
 # for his xbmc-vdpau-vdr PKGBUILD at https://archvdr.svn.sourceforge.net/svnroot/archvdr/trunk/archvdr/xbmc-vdpau-vdr/PKGBUILD
 
 pkgname=xbmc-svn
-pkgver=21337
-pkgrel=2
+pkgver=21748
+pkgrel=1
 pkgdesc="XBMC Media Center from SVN (linuxport branch)"
 provides=('xbmc')
 conflicts=('xbmc' 'xbmc-smoothvideo' 'xbmc-vdpau')
@@ -17,7 +17,7 @@ depends=('alsa-lib' 'curl' 'enca' 'faac' 'freetype2' 'fribidi' 'gawk' 'glew'
          'hal' 'jasper' 'libgl' 'libjpeg>=6b-5' 'libmad' 'libmysqlclient'
          'libxinerama' 'libxrandr' 'lzo2' 'sdl_image' 'sdl_mixer' 'sqlite3'
          'tre' 'unzip' 'libcdio' 'libsamplerate' 'python' 'avahi' 'libmad' 
-         'a52dec' 'libdca' 'faad2' 'libmpeg2' 'libvorbis' 'libogg' 
+         'a52dec' 'libdca' 'faad2' 'libmpeg2' 'libvorbis' 'libogg' 'libmms'
          'libmpcdec' 'flac' 'wavpack' 'xorg-utils')
 makedepends=('subversion' 'autoconf' 'automake' 'boost' 'cmake' 'gcc' 'gperf' 
              'libtool>=2.2.6a-1' 'make' 'nasm' 'patch' 'pkgconfig' 'zip' 'flex' 'bison')
@@ -30,13 +30,13 @@ source=('libcurl-not-in-lib64.patch'
 	'Lircmap.xml')
 noextract=('libcurl-not-in-lib64.patch'
 	   'Lircmap.xml')
-md5sums=('ac1244a5b4aad0e7d59e86a0d318df1b'
+md5sums=('c5e808703d0c9e392e1c2837fea1a5ef'
 	 '3f93186f1ea4aad73011d00754c7265a')
 
 options=(!makeflags)
 
 build() {
-	
+
     _svntrunk=http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/XBMC
     _svnmod=XBMC
     _prefix=/usr
@@ -90,8 +90,9 @@ build() {
                 --disable-external-libass \
                 --disable-external-python \
                 --disable-external-ffmpeg \
+		--disable-pulse \
                 --disable-debug || return 1
-    
+  
     # Fix false negative detections of realloc that happens some times
     msg "Fixing false negative detections of realloc" 
     if grep -q 'HAVE_REALLOC 0' config.h; then
diff --git a/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch b/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch
index 54402ab..0bfbc4c 100644
--- a/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch
+++ b/abs/extra-testing/community/xbmc-svn/libcurl-not-in-lib64.patch
@@ -1,8 +1,8 @@
 Index: Makefile.include.in
 ===================================================================
---- Makefile.include.in	(revision 20149)
+--- Makefile.include.in	(revision 21447)
 +++ Makefile.include.in	(working copy)
-@@ -30,7 +30,7 @@
+@@ -25,7 +25,7 @@
  
  ifeq (linux,$(findstring linux, $(ARCH)))
  ifeq ($(ARCH), x86_64-linux)
-- 
cgit v0.12


From 21f1106a02aed66f8b6c4cdd02c5d0418cb368ff Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Tue, 21 Jul 2009 15:28:30 -0400
Subject: mythtv-svn: update to 20975

---
 abs/core-testing/mythtv/trunk/morethemes/PKGBUILD            |  2 +-
 abs/core-testing/mythtv/trunk/mp_all.sh                      |  2 +-
 abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD           |  2 +-
 abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD           |  2 +-
 abs/core-testing/mythtv/trunk/mythflix/PKGBUILD              |  2 +-
 abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD           |  2 +-
 abs/core-testing/mythtv/trunk/mythgame/PKGBUILD              |  2 +-
 abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD            |  2 +-
 abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD             |  4 ++--
 abs/core-testing/mythtv/trunk/mythmusic/aacdecoder.cpp.patch | 12 ------------
 abs/core-testing/mythtv/trunk/mythnews/PKGBUILD              |  2 +-
 abs/core-testing/mythtv/trunk/myththemes/PKGBUILD            |  2 +-
 abs/core-testing/mythtv/trunk/mythtv/PKGBUILD                |  2 +-
 abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD             |  2 +-
 abs/core-testing/mythtv/trunk/mythweather/PKGBUILD           |  2 +-
 abs/core-testing/mythtv/trunk/mythweb/PKGBUILD               |  2 +-
 abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD        |  2 +-
 17 files changed, 17 insertions(+), 29 deletions(-)
 delete mode 100644 abs/core-testing/mythtv/trunk/mythmusic/aacdecoder.cpp.patch

diff --git a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
index 1a8a490..6504580 100644
--- a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=morethemes-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Additional themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mp_all.sh b/abs/core-testing/mythtv/trunk/mp_all.sh
index ad30c6f..37f3551 100755
--- a/abs/core-testing/mythtv/trunk/mp_all.sh
+++ b/abs/core-testing/mythtv/trunk/mp_all.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-pkgver=20949
+pkgver=20975
 pkgrel=1
 
 # NOTE: Make sure to build and install mythtv first BEFORE building anything else
diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
index 667c45b..ff8a3b4 100644
--- a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mytharchive-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
index 1183982..a82631f 100644
--- a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythbrowser-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Mini web browser for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
index 2e3aace..23d6ac3 100644
--- a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythflix-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Netflix access plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
index 03ea074..23c4dfa 100644
--- a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgallery-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Image gallery plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
index 9ed2e99..2a62ba0 100644
--- a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgame-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Emulation plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
index 50d2f5b..ae3edb4 100644
--- a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmovies-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Displays information about movies playing in the area."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
index 87bb2be..61403b2 100644
--- a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmusic-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Music playing plugin for MythTV"
 url="http://www.mythtv.org"
@@ -12,7 +12,7 @@ depends=('mythtv-svn' 'libid3tag' 'libmad' 'libvorbis' 'flac>=1.1.4' 'libcdaudio
 conflicts=('mythmusic')
 groups=('mythtv-extras-svn')
 
-patches=('aacdecoder.cpp.patch')
+patches=()
 source=(`echo ${patches[@]:0}`)
 _svntrunk=http://cvs.mythtv.org/svn/trunk/mythplugins
 _svnmod=mythplugins
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/aacdecoder.cpp.patch b/abs/core-testing/mythtv/trunk/mythmusic/aacdecoder.cpp.patch
deleted file mode 100644
index 8796eb4..0000000
--- a/abs/core-testing/mythtv/trunk/mythmusic/aacdecoder.cpp.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- mythmusic/mythmusic/aacdecoder.cpp.orig	2008-11-19 12:51:48.000000000 -0500
-+++ mythmusic/mythmusic/aacdecoder.cpp	2008-11-19 12:52:42.000000000 -0500
-@@ -17,6 +17,9 @@
- #define FAAD_MODIFIED
- #endif
- 
-+// LinHES need this undefined
-+#undef FAAD_MODIFIED
-+
- // ANSI C headers
- #include <cstdlib>
- 
diff --git a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
index df0dfff..7f8ad92 100644
--- a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythnews-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="News checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
index dfcc253..b5b7666 100755
--- a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=myththemes-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
index f6ef576..740bc99 100755
--- a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythtv-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="A personal video recorder for Linux"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
index e64b632..b704198 100644
--- a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythvideo-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Video playback and browsing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
index d972f20..efe56f8 100644
--- a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweather-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Weather checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
index 11e354d..3bf79be 100644
--- a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweb-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Web interface for MythTV's backend"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
index bd674ee..9ea7e74 100644
--- a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythzoneminder-svn
-pkgver=20949
+pkgver=20975
 pkgrel=1
 pkgdesc="Integrates ZoneMinder into MythTV"
 url="http://www.mythtv.org"
-- 
cgit v0.12


From 60b23e60e51762851d7f1054692ca0ac1fa816bd Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 22 Jul 2009 07:30:48 +0930
Subject: mplayer: bump to recompile

---
 abs/core-testing/mplayer/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/mplayer/PKGBUILD b/abs/core-testing/mplayer/PKGBUILD
index ad7915e..a5d2d27 100644
--- a/abs/core-testing/mplayer/PKGBUILD
+++ b/abs/core-testing/mplayer/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mplayer
-pkgver=29134
-pkgrel=13
+pkgver=29435
+pkgrel=1
 pkgdesc="Famous multimedia player, dev. version, without its GUI"
 arch=('i686' 'x86_64')
 url="http://www.mplayerhq.hu/"
-- 
cgit v0.12


From 05717127f7b21f76ea13fdce51f9ee66477fb738 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Tue, 21 Jul 2009 21:36:15 -0700
Subject: MythMusic:Bumped to recompile.

---
 abs/core-testing/mythtv/stable/mythmusic/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD b/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD
index c051a3b..b422f34 100644
--- a/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythmusic/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=mythmusic
 pkgver=0.21
-pkgrel=11
+pkgrel=12
 pkgdesc="Music playing plugin for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
-- 
cgit v0.12


From 5183bfc141efb91903cc163549a9019aaff9df6c Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Tue, 21 Jul 2009 22:26:01 -0700
Subject: gpac:Bumped to recompile for newer faad2.

---
 abs/extra-testing/gpac/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/extra-testing/gpac/PKGBUILD b/abs/extra-testing/gpac/PKGBUILD
index a224ac6..c610ae6 100755
--- a/abs/extra-testing/gpac/PKGBUILD
+++ b/abs/extra-testing/gpac/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=gpac
 pkgver=0.4.5
-pkgrel=2
+pkgrel=3
 pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
 arch=('i686' 'x86_64')
 url="http://gpac.sourceforge.net"
@@ -24,4 +24,4 @@ build() {
   make || return 1
   make DESTDIR=${pkgdir}/ install-lib
   make DESTDIR=${pkgdir}/ install
-}
\ No newline at end of file
+}
-- 
cgit v0.12


From 601834958755a2f0480ebf102c5296297697522e Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Tue, 21 Jul 2009 22:26:53 -0700
Subject: fuppes-svn:Bumped to recompile for latest faad2.

---
 abs/extra-testing/fuppes-svn/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/fuppes-svn/PKGBUILD b/abs/extra-testing/fuppes-svn/PKGBUILD
index 295863a..3361007 100644
--- a/abs/extra-testing/fuppes-svn/PKGBUILD
+++ b/abs/extra-testing/fuppes-svn/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=fuppes-svn
 pkgver=636
-pkgrel=6
+pkgrel=7
 pkgdesc="A free, multiplatform Universal Plug and Play A/V MediaServer"
 arch=('i686' 'x86_64')
 url="http://fuppes.ulrich-voelkel.de/"
-- 
cgit v0.12


From bb0e150ac9b8d536d019fba0622d21bb0eee99eb Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Wed, 22 Jul 2009 00:50:41 -0700
Subject: Fuppes:  Let's stick w/ a version that compiles.

---
 abs/extra-testing/fuppes-svn/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/extra-testing/fuppes-svn/PKGBUILD b/abs/extra-testing/fuppes-svn/PKGBUILD
index 3361007..d236fa9 100644
--- a/abs/extra-testing/fuppes-svn/PKGBUILD
+++ b/abs/extra-testing/fuppes-svn/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=fuppes-svn
 pkgver=636
-pkgrel=7
+pkgrel=8
 pkgdesc="A free, multiplatform Universal Plug and Play A/V MediaServer"
 arch=('i686' 'x86_64')
 url="http://fuppes.ulrich-voelkel.de/"
@@ -24,7 +24,7 @@ build()
 	cd ${startdir}/src
 
 	msg "Getting sources..."
-	svn co ${_svntrunk} ${_svnmod}
+	svn co -r 636 ${_svntrunk} ${_svnmod}
 	msg "Done getting sources or failed to connect to server."
 
 	cd ${_svnmod}
-- 
cgit v0.12


From 5b7a151450635d129fb6b90bbf983b1d1ad44221 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 22 Jul 2009 19:14:47 +0930
Subject: bump to rebuild: directfb ffmpeg-svn enca smplayer x11vnc

---
 abs/core-testing/directfb/PKGBUILD            | 2 +-
 abs/core-testing/ffmpeg-svn/PKGBUILD          | 2 +-
 abs/extra-testing/community/enca/PKGBUILD     | 2 +-
 abs/extra-testing/community/smplayer/PKGBUILD | 2 +-
 abs/extra-testing/x11vnc/PKGBUILD             | 4 ++--
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/abs/core-testing/directfb/PKGBUILD b/abs/core-testing/directfb/PKGBUILD
index 87ab961..89d322a 100644
--- a/abs/core-testing/directfb/PKGBUILD
+++ b/abs/core-testing/directfb/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=directfb
 pkgver=1.2.0
-pkgrel=1
+pkgrel=2
 pkgdesc="A thin library that provides hardware graphics acceleration, input device handling and abstraction, integrated windowing system on top of the Linux Framebuffer Device"
 arch=('i686' 'x86_64')
 url="http://www.directfb.org"
diff --git a/abs/core-testing/ffmpeg-svn/PKGBUILD b/abs/core-testing/ffmpeg-svn/PKGBUILD
index 3144dfb..0eafb3f 100644
--- a/abs/core-testing/ffmpeg-svn/PKGBUILD
+++ b/abs/core-testing/ffmpeg-svn/PKGBUILD
@@ -1,7 +1,7 @@
 # Contributor: raubkopierer <mail[dot]sensenmann[at]googlemail[dot]com>
 
 pkgname=ffmpeg-svn
-pkgver=18717
+pkgver=19483
 pkgrel=1
 pkgdesc="Complete and free Internet live audio and video broadcasting solution for Linux/Unix"
 arch=('i686' 'x86_64')
diff --git a/abs/extra-testing/community/enca/PKGBUILD b/abs/extra-testing/community/enca/PKGBUILD
index b8dfe10..1bbd7db 100644
--- a/abs/extra-testing/community/enca/PKGBUILD
+++ b/abs/extra-testing/community/enca/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=enca
 pkgver=1.9
-pkgrel=3
+pkgrel=4
 pkgdesc="Charset analyser and converter"
 arch=(i686 x86_64)
 url="http://trific.ath.cx/software/enca"
diff --git a/abs/extra-testing/community/smplayer/PKGBUILD b/abs/extra-testing/community/smplayer/PKGBUILD
index 2637da8..3aa1d3d 100644
--- a/abs/extra-testing/community/smplayer/PKGBUILD
+++ b/abs/extra-testing/community/smplayer/PKGBUILD
@@ -5,7 +5,7 @@
  
 pkgname=smplayer
 pkgver=0.6.7
-pkgrel=1
+pkgrel=2
 pkgdesc="A complete front-end for MPlayer" 
 arch=('i686' 'x86_64')
 url="http://smplayer.sourceforge.net/" 
diff --git a/abs/extra-testing/x11vnc/PKGBUILD b/abs/extra-testing/x11vnc/PKGBUILD
index 4c04573..650f81e 100644
--- a/abs/extra-testing/x11vnc/PKGBUILD
+++ b/abs/extra-testing/x11vnc/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=x11vnc
 pkgver=0.9.7
-pkgrel=1
+pkgrel=2
 pkgdesc="a VNC server for real X displays"
 arch=("i686" "x86_64")
 license=("GPL2")
@@ -19,4 +19,4 @@ build() {
   make prefix=$startdir/pkg/usr install || return 1
 }
 
-md5sums=('0ed95ab69c1ccacab83c5a2abd5b43f5')
+md5sums=('30a167577f657909b3355421e14e2ddb')
-- 
cgit v0.12


From dd6867ad375d2067515d056f4a4b6949313cf8f3 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 22 Jul 2009 22:24:19 +0930
Subject: bump and rebuild: feh ghostscript

---
 abs/core-testing/feh/PKGBUILD         | 4 ++--
 abs/core-testing/ghostscript/PKGBUILD | 7 ++++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/abs/core-testing/feh/PKGBUILD b/abs/core-testing/feh/PKGBUILD
index 23a2627..ad38f8f 100644
--- a/abs/core-testing/feh/PKGBUILD
+++ b/abs/core-testing/feh/PKGBUILD
@@ -1,9 +1,9 @@
 
 pkgname=feh
 pkgver=1.3.4
-pkgrel=3
+pkgrel=4
 pkgdesc="feh is a fast, lightweight image viewer which uses imlib2"
-depends=('libpng' 'libxinerama' 'giblib')
+depends=('libjpeg' 'libpng' 'libxinerama' 'giblib')
 #source=(http://linuxbrit.co.uk/downloads/$pkgname-$pkgver.tar.gz)
 source=(http://ftp.gva.es/mirror/debian/pool/main/f/feh/feh_1.3.4.orig.tar.gz)
 url="http://www.linuxbrit.co.uk/feh/"
diff --git a/abs/core-testing/ghostscript/PKGBUILD b/abs/core-testing/ghostscript/PKGBUILD
index 8edc722..5a7aa2a 100644
--- a/abs/core-testing/ghostscript/PKGBUILD
+++ b/abs/core-testing/ghostscript/PKGBUILD
@@ -3,17 +3,18 @@
 
 pkgname=ghostscript
 pkgver=8.63
-pkgrel=4
+pkgrel=5
 pkgdesc="An interpreter for the PostScript language"
 arch=(i686 x86_64)
 license=('GPL' 'custom')
-depends=('libxext' 'libxt' 'libcups>=1.3.8-2' 'fontconfig>=2.6.0' 'gtk2>=2.12.11' 'gnutls>=2.4.1')
+depends=('libjpeg' 'libxext' 'libxt' 'libcups>=1.3.8-2' 'fontconfig>=2.6.0' 'gtk2>=2.12.11' 'gnutls>=2.4.1')
 makedepends=('automake' 'autoconf')
 optdepends=('texlive-core: dvipdf')
 replaces=('ghostscript-lrpng')
 provides=('ghostscript-lprng')
 url="http://www.cs.wisc.edu/~ghost/"
-source=(ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs863/ghostscript-${pkgver}.tar.bz2
+source=(http://ghostscript.com/releases/ghostscript-${pkgver}.tar.bz2
+	#ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/gs863/ghostscript-${pkgver}.tar.bz2
 	ghostscript-fPIC.patch)
 options=('!libtool' '!makeflags')
 md5sums=('c770eedfdd846a53e211e3ba5339de21'
-- 
cgit v0.12


From 1b883c88ab15600f552e138e11e5df38d852dda3 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 22 Jul 2009 23:29:30 +0930
Subject: ImageMagick: bunp and build

---
 abs/core-testing/imagemagick/PKGBUILD | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/imagemagick/PKGBUILD b/abs/core-testing/imagemagick/PKGBUILD
index b14f914..342fe87 100644
--- a/abs/core-testing/imagemagick/PKGBUILD
+++ b/abs/core-testing/imagemagick/PKGBUILD
@@ -9,15 +9,16 @@
 
 pkgname=imagemagick
 pkgver=6.4.9.10
-pkgrel=4
+pkgrel=5
 pkgdesc="An image viewing/manipulation program"
 arch=('i686' 'x86_64')
 url="http://www.imagemagick.org/"
 license=('custom')
-depends=('lcms' 'libwmf' 'librsvg' 'libxt' 'gcc-libs' 'ghostscript' 'openexr>=1.6.1' 'libtool>=2.2' 'heimdal>=1.2.1' 'bzip2' 'libxml2' 'jasper')
+depends=('libjpeg' 'lcms' 'libwmf' 'librsvg' 'libxt' 'gcc-libs' 'ghostscript' 'openexr>=1.6.1' 'libtool>=2.2' 'heimdal>=1.2.1' 'bzip2' 'libxml2' 'jasper')
 #makedepends=('ghostscript' 'openexr')
 options=('!makeflags' '!docs')
-source=(ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.bz2 \
+source=(ftp://ftp.fifi.org/pub/ImageMagick/legacy/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.bz2
+	#ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-${pkgver%.*}-${pkgver##*.}.tar.bz2 \
         libpng_mmx_patch_x86_64.patch add_delegate.patch)
 
 build() {
-- 
cgit v0.12


From 924dd7f92a9943a53c6cebf40886c2a900f87dd9 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Thu, 23 Jul 2009 18:49:58 +0930
Subject: LinHES-config: Bob's change to remove libgl when installing the
 nvidia drivers

---
 abs/core-testing/LinHES-config/PKGBUILD   | 2 +-
 abs/core-testing/LinHES-config/xconfig.sh | 2 ++
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/abs/core-testing/LinHES-config/PKGBUILD b/abs/core-testing/LinHES-config/PKGBUILD
index 2b5aeac..e25e802 100755
--- a/abs/core-testing/LinHES-config/PKGBUILD
+++ b/abs/core-testing/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=LinHES-config
 pkgver=2.0
-pkgrel=61
+pkgrel=63
 conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev )
 pkgdesc="Install and configure your system"
 depends=(bc libstatgrab  mysql-python expect curl dnsutils parted sg3_utils nmbscan system-templates rsync python-parted ddcxinfo python-pexpect python-netifaces LinHES-timezone python-iplib)
diff --git a/abs/core-testing/LinHES-config/xconfig.sh b/abs/core-testing/LinHES-config/xconfig.sh
index 008d45e..f90a60e 100755
--- a/abs/core-testing/LinHES-config/xconfig.sh
+++ b/abs/core-testing/LinHES-config/xconfig.sh
@@ -202,11 +202,13 @@ function setupX {
                     then
                         #install 96xx drivers
                         echo "installing nvidia 96xx drivers"
+                        pacman --noconfirm  -Rd libgl > /dev/null 2>&1
                         pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1
                         pacman --noconfirm  -S nvidia-96xx nvidia-96xx-utils  > /dev/null 2>&1
                     else
                         #install latest drivers
                         echo "installing current nvidia drivers"
+                        pacman --noconfirm  -Rd libgl > /dev/null 2>&1
                         pacman --noconfirm  -R $NVPKGS > /dev/null 2>&1
                         pacman --noconfirm  -S nvidia nvidia-utils > /dev/null 2>&1
                     fi
-- 
cgit v0.12


From 11bee2d772896328092f5c6e5a62064ae7d1321b Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Fri, 24 Jul 2009 11:45:41 -0400
Subject: vdpinfo initial checkin for three nVidia driver versions

---
 abs/core-testing/vdpinfo-71xx/PKGBUILD | 25 ++++++++++++++++++++++++
 abs/core-testing/vdpinfo-71xx/vdpinfo  |  2 ++
 abs/core-testing/vdpinfo-96xx/PKGBUILD | 25 ++++++++++++++++++++++++
 abs/core-testing/vdpinfo-96xx/vdpinfo  |  2 ++
 abs/core-testing/vdpinfo/PKGBUILD      | 35 ++++++++++++++++++++++++++++++++++
 5 files changed, 89 insertions(+)
 create mode 100644 abs/core-testing/vdpinfo-71xx/PKGBUILD
 create mode 100755 abs/core-testing/vdpinfo-71xx/vdpinfo
 create mode 100644 abs/core-testing/vdpinfo-96xx/PKGBUILD
 create mode 100755 abs/core-testing/vdpinfo-96xx/vdpinfo
 create mode 100644 abs/core-testing/vdpinfo/PKGBUILD

diff --git a/abs/core-testing/vdpinfo-71xx/PKGBUILD b/abs/core-testing/vdpinfo-71xx/PKGBUILD
new file mode 100644
index 0000000..bf20d32
--- /dev/null
+++ b/abs/core-testing/vdpinfo-71xx/PKGBUILD
@@ -0,0 +1,25 @@
+# It is not expected that vdpau will work with the 71xx nVidia drivers, but we still want
+# 'vdpinfo' to return something when users run it, even if the real 'vdpinfo' won't build
+# for their nVidia driver version.
+
+pkgname=vdpinfo-71xx
+pkgver=1
+pkgrel=1
+pkgdesc="tells the user they can't handle vdpau"
+license=('GPLv2')
+arch=('i686' 'x86_64')
+depends=('nvidia-71xx-utils' 'nvidia-71xx')
+# Just let the dependency on the right nvidia and nvidia-utils versions
+# handle conflicts via those packages conflicts.
+# conflicts=()
+provides=('vdpinfo')
+source=(vdpinfo)
+md5sums=()
+
+build() {
+    LH_ROOT=/usr/LH
+    mkdir -p $startdir/pkg/$LH_ROOT/bin/
+
+    cd $startdir
+    install -m0755 -D vdpinfo $startdir/pkg/$LH_ROOT/bin/
+}
\ No newline at end of file
diff --git a/abs/core-testing/vdpinfo-71xx/vdpinfo b/abs/core-testing/vdpinfo-71xx/vdpinfo
new file mode 100755
index 0000000..9b237dc
--- /dev/null
+++ b/abs/core-testing/vdpinfo-71xx/vdpinfo
@@ -0,0 +1,2 @@
+#!/bin/bash
+echo "vdpau is unsupported"
diff --git a/abs/core-testing/vdpinfo-96xx/PKGBUILD b/abs/core-testing/vdpinfo-96xx/PKGBUILD
new file mode 100644
index 0000000..34391dd
--- /dev/null
+++ b/abs/core-testing/vdpinfo-96xx/PKGBUILD
@@ -0,0 +1,25 @@
+# It is not expected that vdpau will work with the 71xx nVidia drivers, but we still want
+# 'vdpinfo' to return something when users run it, even if the real 'vdpinfo' won't build
+# for their nVidia driver version.
+
+pkgname=vdpinfo-96xx
+pkgver=1
+pkgrel=1
+pkgdesc="tells the user they can't handle vdpau"
+license=('GPLv2')
+arch=('i686' 'x86_64')
+depends=('nvidia-96xx-utils' 'nvidia-96xx')
+# Just let the dependency on the right nvidia and nvidia-utils versions
+# handle conflicts via those packages conflicts.
+# conflicts=()
+provides=('vdpinfo')
+source=(vdpinfo)
+md5sums=()
+
+build() {
+    LH_ROOT=/usr/LH
+    mkdir -p $startdir/pkg/$LH_ROOT/bin/
+
+    cd $startdir
+    install -m0755 -D vdpinfo $startdir/pkg/$LH_ROOT/bin/
+}
\ No newline at end of file
diff --git a/abs/core-testing/vdpinfo-96xx/vdpinfo b/abs/core-testing/vdpinfo-96xx/vdpinfo
new file mode 100755
index 0000000..9b237dc
--- /dev/null
+++ b/abs/core-testing/vdpinfo-96xx/vdpinfo
@@ -0,0 +1,2 @@
+#!/bin/bash
+echo "vdpau is unsupported"
diff --git a/abs/core-testing/vdpinfo/PKGBUILD b/abs/core-testing/vdpinfo/PKGBUILD
new file mode 100644
index 0000000..d9bfadc
--- /dev/null
+++ b/abs/core-testing/vdpinfo/PKGBUILD
@@ -0,0 +1,35 @@
+# Because this requires parts of the nVidia driver, this parallels the PKGBUILD for
+# the nvidia package.
+
+pkgname=vdpinfo
+pkgver=185.18.14
+pkgrel=1
+pkgdesc="polls the GPU for nVidia vdpau capabilities"
+arch=('i686' 'x86_64')
+[ "$CARCH" = "i686"   ] && ARCH=x86
+[ "$CARCH" = "x86_64" ] && ARCH=x86_64
+url="http://www.cs.rug.nl/~wladimir/vdpinfo/"
+license=('MIT')
+depends=('nvidia-utils=185.18.14' 'nvidia=185.18.14')
+# Just let the dependency on the right nvidia and nvidia-utils versions
+# handle conflicts via those packages conflicts.
+# conflicts=()
+provides=('vdpinfo')
+source=(http://www.cs.rug.nl/~wladimir/vdpinfo/vdpinfo-0.0.5.tar.gz http://us.download.nvidia.com/XFree86/Linux-$ARCH/${pkgver}/NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run)
+md5sums=()
+
+build() {
+    LH_ROOT=/usr/LH
+    mkdir -p $startdir/pkg/$LH_ROOT/bin/
+
+    # Extract nVidia driver to get at the headers we need to build vdpau
+    cd $startdir/src/
+    sh NVIDIA-Linux-$ARCH-${pkgver}-pkg0.run --extract-only
+    
+    # build vdpinfo
+    cd $startdir/src/vdpinfo
+    #g++ -O3 -g -I../NVIDIA-Linux-x86-185.18.14-pkg0/usr/include -c -o vdpinfo.o vdpinfo.cpp
+    #g++ -O3 -g -I$startdir/src/usr/include -c -o vdpinfo.o vdpinfo.cpp
+    make
+    install -m0755 vdpinfo $startdir/pkg/$LH_ROOT/bin/
+}
\ No newline at end of file
-- 
cgit v0.12


From c7450246b54cffa96968a9e91cf249df4eafe38d Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 25 Jul 2009 08:15:16 +0930
Subject: tightvnc: bump and rebuild for jibjpeg

---
 abs/extra-testing/tightvnc/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/tightvnc/PKGBUILD b/abs/extra-testing/tightvnc/PKGBUILD
index 1a277b6..a9d5efe 100644
--- a/abs/extra-testing/tightvnc/PKGBUILD
+++ b/abs/extra-testing/tightvnc/PKGBUILD
@@ -1,7 +1,7 @@
 
 pkgname=tightvnc
 pkgver=1.3.9
-pkgrel=301
+pkgrel=302
 pkgdesc="VNC Unix server && viewer"
 arch=(i686 x86_64)
 license=('GPL')
-- 
cgit v0.12


From e79c3ed3d749a3da9724c353343647297fa07eba Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 25 Jul 2009 08:38:55 +0930
Subject: wxgtk,gpac: bump to rebuild for libjpeg

---
 abs/extra-testing/gpac/PKGBUILD  | 4 ++--
 abs/extra-testing/wxgtk/PKGBUILD | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/extra-testing/gpac/PKGBUILD b/abs/extra-testing/gpac/PKGBUILD
index c610ae6..04ce3cc 100755
--- a/abs/extra-testing/gpac/PKGBUILD
+++ b/abs/extra-testing/gpac/PKGBUILD
@@ -4,12 +4,12 @@
 
 pkgname=gpac
 pkgver=0.4.5
-pkgrel=3
+pkgrel=4
 pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
 arch=('i686' 'x86_64')
 url="http://gpac.sourceforge.net"
 depends=('libxml2' 'wxgtk' 'alsa-lib' 'sdl' 'spidermonkey' 'libmad' \
-         'faad2' 'xvidcore' 'ffmpeg' 'freeglut')
+         'faad2' 'xvidcore' 'ffmpeg' 'freeglut' 'libjpeg')
 license=('LGPL')
 source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.gz)
 md5sums=('755e8c438a48ebdb13525dd491f5b0d1')
diff --git a/abs/extra-testing/wxgtk/PKGBUILD b/abs/extra-testing/wxgtk/PKGBUILD
index dd0f344..d98ac43 100644
--- a/abs/extra-testing/wxgtk/PKGBUILD
+++ b/abs/extra-testing/wxgtk/PKGBUILD
@@ -6,12 +6,12 @@
 
 pkgname=wxgtk
 pkgver=2.8.9.2
-pkgrel=1
+pkgrel=2
 pkgdesc="wxGTK - GTK+ implementation of wxWidgets API for GUI"
 arch=('i686' 'x86_64')
 url="http://wxwidgets.org"
 license=('custom:wxWindows')
-depends=('gtk2>=2.12.11' 'mesa')
+depends=('gtk2>=2.12.11' 'mesa' 'libjpeg')
 #makedepends=('libgnomeprintui')
 #source=(http://downloads.sourceforge.net/wxwindows/wxGTK-${pkgver}.tar.bz2)
 source=(http://downloads.sourceforge.net/wxpython/wxPython-src-${pkgver}.tar.bz2)
-- 
cgit v0.12


From 8ca9891cb8b85479114f833fd0afd382492d1d34 Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Fri, 24 Jul 2009 20:12:14 -0400
Subject: v4l-dvb: bumped, watch out for cached tar.gz!!

---
 abs/core-testing/v4l-dvb/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/v4l-dvb/PKGBUILD b/abs/core-testing/v4l-dvb/PKGBUILD
index c7aedbb..03508eb 100644
--- a/abs/core-testing/v4l-dvb/PKGBUILD
+++ b/abs/core-testing/v4l-dvb/PKGBUILD
@@ -4,7 +4,7 @@
 pkgname=v4l-dvb
 _kernver=2.6.28-LinHES
 pkgver=1
-pkgrel=8
+pkgrel=9
 pkgdesc="V4L-DVB drivers from mercurial"
 arch=('i686' 'x86_64')
 license=('GPL2')
-- 
cgit v0.12


From 94b659d8a1e4bb3f7cbfd774d45e10f4859c5b93 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 25 Jul 2009 10:05:21 +0930
Subject: mplayer: someone rebuilt this with the old libjpeg and didnt bump the
 pkgver

---
 abs/core-testing/mplayer/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/mplayer/PKGBUILD b/abs/core-testing/mplayer/PKGBUILD
index a5d2d27..0b670c1 100644
--- a/abs/core-testing/mplayer/PKGBUILD
+++ b/abs/core-testing/mplayer/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mplayer
-pkgver=29435
+pkgver=29438
 pkgrel=1
 pkgdesc="Famous multimedia player, dev. version, without its GUI"
 arch=('i686' 'x86_64')
@@ -8,7 +8,7 @@ license=('GPL')
 depends=('libxxf86dga' 'libxv' 'libmad' 'giflib' 'cdparanoia' 'gtk2'
          'sdl' 'lame' 'libtheora' 'xvidcore' 'zlib' 'libmng' 'libxss'
          'libgl' 'smbclient' 'aalib' 'x264>=20090108' 'faac' 'lirc-utils' 
-	 'ttf-dejavu' 'fribidi' 'libmng' 'libxfont')
+	 'ttf-dejavu' 'fribidi' 'libmng' 'libxfont' 'libjpeg')
 license=('GPL')
 makedepends=('libcaca' 'unzip' 'live-media' 'libdca' 'subversion' 'nvidia-utils')
 
-- 
cgit v0.12


From 1c0216f125d654fbde005e5ea3bcbfbade951629 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 25 Jul 2009 10:30:34 +0930
Subject: expect: bump add dep tk and rebuild

---
 abs/core-testing/expect/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/expect/PKGBUILD b/abs/core-testing/expect/PKGBUILD
index c8705c6..0f2f46b 100644
--- a/abs/core-testing/expect/PKGBUILD
+++ b/abs/core-testing/expect/PKGBUILD
@@ -3,10 +3,10 @@
 
 pkgname=expect
 pkgver=5.44.1.4
-pkgrel=1
+pkgrel=2
 pkgdesc="A tool for automating interactive applications"
 arch=(i686 x86_64)
-depends=('tcl>=8.5.0')
+depends=('tcl>=8.5.0' 'tk>=8.5.0')
 makedepends=('tk>=8.5.0')
 tcltkver=8.5.0
 source=(ftp://ftp.archlinux.org/other/expect/expect-$pkgver.tar.bz2
-- 
cgit v0.12


From f077dd3615a392df3c9c5cdbfd1b231744d16e0f Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 25 Jul 2009 12:01:54 +0930
Subject: kdelibs3 mythbrowser: bump and rebuild for libjpeg

---
 abs/core-testing/kdelibs3/PKGBUILD                  | 5 +++--
 abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD | 2 +-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/kdelibs3/PKGBUILD b/abs/core-testing/kdelibs3/PKGBUILD
index 9e1e5d3..5331af0 100644
--- a/abs/core-testing/kdelibs3/PKGBUILD
+++ b/abs/core-testing/kdelibs3/PKGBUILD
@@ -4,14 +4,15 @@
 
 pkgname=kdelibs3
 pkgver=3.5.10
-pkgrel=2
+pkgrel=3
 pkgdesc="KDE3 Core Libraries"
 arch=('i686' 'x86_64')
 url="http://www.kde.org"
 license=('GPL' 'LGPL')
 depends=('libxslt' 'pcre' 'libart-lgpl' 'alsa-lib' 
          'jasper' 'bzip2' 'openssl' 'libidn' 'libxrender'
-	 'aspell' 'heimdal' 'acl' 'libtiff' 'qt3' 'ca-certificates')
+	 'aspell' 'heimdal' 'acl' 'libtiff' 'qt3' 'ca-certificates'
+         'libjpeg')
 makedepends=('pkgconfig' )
 options=('libtool')
 install='kdelibs3.install'
diff --git a/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD
index 04d3293..2385643 100644
--- a/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=mythbrowser
 pkgver=0.21
-pkgrel=5
+pkgrel=6
 pkgdesc="Mini web browser for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
-- 
cgit v0.12


From b71a457c86e8ea7c92cfe808c93fd2d6695db8e9 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 25 Jul 2009 12:51:01 +0930
Subject: mythbrowser: rebuild for libjpeg

---
 abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD
index 2385643..51a27d2 100644
--- a/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythbrowser/PKGBUILD
@@ -9,7 +9,7 @@ pkgdesc="Mini web browser for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
-depends=("mythtv>=${pkgver}" 'wget' 'libxvmc' 'kdelibs3')
+depends=("mythtv>=${pkgver}" 'wget' 'libxvmc' 'kdelibs3' 'qt3')
 groups=('mythtv-extras')
 options=('!makeflags')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2")
-- 
cgit v0.12


From f1727fd54aaf22427c3caa2d2b299e83f8a3fc71 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 25 Jul 2009 15:22:05 +0930
Subject: libdv: add gtk dep and rebuild

---
 abs/core-testing/libdv/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/libdv/PKGBUILD b/abs/core-testing/libdv/PKGBUILD
index c535c2c..bd54a0d 100644
--- a/abs/core-testing/libdv/PKGBUILD
+++ b/abs/core-testing/libdv/PKGBUILD
@@ -4,10 +4,10 @@
 
 pkgname=libdv
 pkgver=1.0.0
-pkgrel=1
+pkgrel=2
 pkgdesc="The Quasar DV codec (libdv) is a software codec for DV video"
 arch=('i686' 'x86_64')
-depends=('popt')
+depends=('popt' 'gtk')
 makedepends=('pkgconfig' 'gtk')
 source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz)
 md5sums=('f895162161cfa4bb4a94c070a7caa6c7')
-- 
cgit v0.12


From 24be8c471201136cff8c1166e77b40b000cb7fa1 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 25 Jul 2009 15:33:59 +0930
Subject: tweaker: merge pci and usb tuner detection code

---
 abs/core-testing/tweaker/PKGBUILD          |   2 +-
 abs/core-testing/tweaker/bin/twk_tuners.pl | 101 +++++------------------------
 2 files changed, 17 insertions(+), 86 deletions(-)

diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index dbbe914..e25ef9f 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=tweaker
 pkgver=1
-pkgrel=43
+pkgrel=44
 pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/tweaker/bin/twk_tuners.pl b/abs/core-testing/tweaker/bin/twk_tuners.pl
index ff62b5e..22c6a23 100755
--- a/abs/core-testing/tweaker/bin/twk_tuners.pl
+++ b/abs/core-testing/tweaker/bin/twk_tuners.pl
@@ -105,11 +105,8 @@ my @capture_card_patterns = (
 #    [ "bt878-based frame grabbers", [".*0400.*109e.*036e.*", ".*0480.*109e.*0878.*"],
 #      ["V4L", ["NTSC"]]],
     
-    );
-
-# USB patterns
+    # USB patterns
 
-my @usb_capture_patterns = (
     [ "Dvico Dual Digital 4 rev2", [".* 0fe9:db98 .*"],
       ["DVB", ["DVB-T"]]],
     );
@@ -153,11 +150,8 @@ sub implement_option {
     if (connect_to_db("DBI:mysql:$dbconnectionstring")) {
 	my $logger = get_logger('tweaker.script');
 	
-	# Get a list of all PCI devices for later processing
-	my @lspci = split('\n', execute_shell_command("lspci -mn"));
-
-	# Get a list of all USB devices for later processing
-	my @lsusb = split('\n', execute_shell_command("lsusb"));
+	# 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
@@ -346,22 +340,22 @@ sub implement_option {
 
 	# Configure each supported tuner/capture device detected on the system.
 
-	# built-in, PCI, or PCI Express
-	$logger->debug("Processing built-in, PCI, or PCI Express devices...");
-	for my $pci_device (@lspci) {
-	    $logger->debug("DEVICE: $pci_device");
+	# 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 $pci_device_data (@capture_card_patterns) {
-		$logger->debug("\tIs there a @$pci_device_data[0] at this location?");
+	    for my $device_data (@capture_card_patterns) {
+		$logger->debug("\tIs there a @$device_data[0] at this location?");
 
-		for my $patterns (@$pci_device_data[1]) {
+		for my $patterns (@$device_data[1]) {
 		    for my $pattern (@$patterns) {
 			if ($match) {
 			    next;
 			} else {
 			    $logger->debug("\t\tPATTERN: $pattern");
-			    $match += ($pci_device =~ m/$pattern/i);
+			    $match += ($a_device =~ m/$pattern/i);
 			    if ($match) {
 				$global_device_count++; # 1-indexed
 				
@@ -372,10 +366,10 @@ sub implement_option {
 				# 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 (@$pci_device_data[2]) {
-				    my $pci_device_type = @$typeblock[0];
-				    $logger->debug("\t\tDEVICE TYPE: $pci_device_type"); # e.g. "DVB", "MPEG", etc.
-				    $cardtypes{$pci_device_type}++;
+				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) {
@@ -395,7 +389,7 @@ sub implement_option {
 				    #
 				    # POPULATE capturecard table
 				    #
-				    my $defaultinput = make_capturecard_SQL($global_device_count, $cardtypes{$pci_device_type}-1, $pci_device_type, -1);
+				    my $defaultinput = make_capturecard_SQL($global_device_count, $cardtypes{$device_type}-1, $device_type, -1);
 
 				    #
 				    # POPULATE cardinput table
@@ -465,69 +459,6 @@ sub implement_option {
 	    close(SHELL2);
 	} # else: don't scan the internet!
 	
-	# USB devices
-	$logger->debug("Processing USB devices...");
-	for my $usb_device (@lsusb) {
-	    $logger->debug("DEVICE: $usb_device");
-	    my $match=0;
-
-	    for my $usb_device_data (@usb_capture_patterns) {
-		$logger->debug("\tIs there a @$usb_device_data[0] at this location?");
-
-		for my $patterns (@$usb_device_data[1]) {
-		    for my $pattern (@$patterns) {
-			if ($match) {
-			    next;
-			} else {
-			    $logger->debug("\t\tPATTERN: $pattern");
-			    $match += ($usb_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 (@$usb_device_data[2]) {
-				    my $usb_device_type = @$typeblock[0];
-				    $logger->debug("\t\tDEVICE TYPE: $usb_device_type"); # e.g. "DVB", "MPEG", etc.
-				    $cardtypes{$usb_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{$usb_device_type}-1, $usb_device_type, -1);
-
-				    #
-				    # POPULATE cardinput table
-				    #
-				    make_cardinput_SQL($global_device_count, $sourceid, $defaultinput, 0);
-				}
-			    }
-			}
-		    }
-		}
-	    }
-	}
-
 	# 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");
-- 
cgit v0.12


From 94624c5151e04fd638a71fb94a7503a12cc443c5 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sat, 25 Jul 2009 15:52:17 +0930
Subject: ddcxinfo: add googled patch to make it build

---
 abs/core-testing/ddcxinfo/PKGBUILD   |  6 ++++--
 abs/core-testing/ddcxinfo/lrmi.patch | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+), 2 deletions(-)
 create mode 100644 abs/core-testing/ddcxinfo/lrmi.patch

diff --git a/abs/core-testing/ddcxinfo/PKGBUILD b/abs/core-testing/ddcxinfo/PKGBUILD
index 94707ef..b358c0c 100644
--- a/abs/core-testing/ddcxinfo/PKGBUILD
+++ b/abs/core-testing/ddcxinfo/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=ddcxinfo
 pkgver=0.6.19
-pkgrel=2
+pkgrel=3
 pkgdesc="DDC readout using the VESA BIOS extension"
 url="http://www.t2-project.org/packages/ddcxinfo.html"
 license="GPL"
@@ -11,12 +11,14 @@ replaces=()
 backup=()
 arch=('i686')
 install=
-source=(http://www.kanotix.com/files/debian/pool/main/d/ddcxinfo-kanotix/$pkgname-kanotix_$pkgver.tar.gz)
+source=(http://www.kanotix.com/files/debian/pool/main/d/ddcxinfo-kanotix/$pkgname-kanotix_$pkgver.tar.gz
+        lrmi.patch)
 
 
 build() {
   cd $startdir/src/$pkgname-kanotix-$pkgver
   mkdir -p  $startdir/pkg/usr/sbin
+  patch -p1 < $startdir/src/lrmi.patch
   make DESTDIR=$startdir/pkg install
   cp svgamodes $startdir/pkg/usr/sbin/
   chmod +s $startdir/pkg/usr/sbin/ddcprobe
diff --git a/abs/core-testing/ddcxinfo/lrmi.patch b/abs/core-testing/ddcxinfo/lrmi.patch
new file mode 100644
index 0000000..ca735fa
--- /dev/null
+++ b/abs/core-testing/ddcxinfo/lrmi.patch
@@ -0,0 +1,18 @@
+Common subdirectories: ddcxinfo-kanotix-0.6.19-orig/debian and ddcxinfo-kanotix-0.6.19/debian
+diff -u ddcxinfo-kanotix-0.6.19-orig/lrmi.c ddcxinfo-kanotix-0.6.19/lrmi.c
+--- ddcxinfo-kanotix-0.6.19-orig/lrmi.c	2009-07-25 06:15:09.000000000 +0000
++++ ddcxinfo-kanotix-0.6.19/lrmi.c	2009-07-25 06:17:22.000000000 +0000
+@@ -170,6 +170,13 @@
+ 		}
+ 	}
+ 
++#ifndef TF_MASK
++#define TF_MASK X86_EFLAGS_TF
++#define IF_MASK X86_EFLAGS_IF
++#define IOPL_MASK X86_EFLAGS_IOPL
++#define VIF_MASK X86_EFLAGS_VIF
++#define VIP_MASK X86_EFLAGS_VIP
++#endif
+ 
+ #define DEFAULT_VM86_FLAGS 	(IF_MASK | IOPL_MASK)
+ #define DEFAULT_STACK_SIZE 	0x1000
-- 
cgit v0.12


From bdfa23d3d3dfa3f946c90320c097cd877a6be9b0 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Sun, 26 Jul 2009 16:21:54 +0930
Subject: LinHES-timezone: set initial window position so it is full screen

---
 abs/core-testing/LinHES-timezone/PKGBUILD          |  4 ++--
 abs/core-testing/LinHES-timezone/linhes_timezone.c | 14 +++++++++++++-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/LinHES-timezone/PKGBUILD b/abs/core-testing/LinHES-timezone/PKGBUILD
index 0b0d2ad..eedc364 100644
--- a/abs/core-testing/LinHES-timezone/PKGBUILD
+++ b/abs/core-testing/LinHES-timezone/PKGBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Greg Frost <gregfrost1@bigpond.com>
 pkgname=LinHES-timezone
 pkgver=1
-pkgrel=6
+pkgrel=7
 pkgdesc="GUI timezone selector used by LinHES-config."
 arch=i686
 depends=()
@@ -27,4 +27,4 @@ md5sums=('53976e51e938c555f84b43c933339051'
          '0d9e51af5f650dd329edce4531c42a58'
          'c01e2335603d8395004e32bae9060fde'
          'b20bd68272644f607fbfe7d50e7be42a'
-         '448ffca8f38b2dcd989e599ff2057399')
+         '8629268a4f2ca8391e4d1087a9734088')
diff --git a/abs/core-testing/LinHES-timezone/linhes_timezone.c b/abs/core-testing/LinHES-timezone/linhes_timezone.c
index ff75549..d295091 100644
--- a/abs/core-testing/LinHES-timezone/linhes_timezone.c
+++ b/abs/core-testing/LinHES-timezone/linhes_timezone.c
@@ -750,6 +750,17 @@ void remove_titlebar_and_borders ()
     (char *) &mwm_hints, 5);
 }
 
+void set_window_position (int x, int y)
+{
+  XSizeHints hints;
+
+  hints.flags = USPosition | PPosition;
+  hints.x = x;
+  hints.y = y;
+
+  XSetWMNormalHints(display, window, &hints);
+}
+
 int main (int argc, char *argv[])
 {
   XEvent xevent;
@@ -851,12 +862,13 @@ int main (int argc, char *argv[])
     radius = height;
 
   radius = 0.96 * radius / 2;
-  
+
   window = XCreateSimpleWindow (display,
              DefaultRootWindow(display), x, y, width, height, 0,
              land[0].pixel, ocean.pixel);
 
   remove_titlebar_and_borders ();
+  set_window_position (x, y);
 
   if (!window) 
   {
-- 
cgit v0.12


From 0aa9a27cf335fa3f53c3b38a09d7a30d6d7148ee Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 00:35:05 -0700
Subject: PHP:Added path need for myth2ipod and myth2xvid in openbase_dir in
 php.ini.

---
 abs/core-testing/php/PKGBUILD | 2 +-
 abs/core-testing/php/php.ini  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/php/PKGBUILD b/abs/core-testing/php/PKGBUILD
index b7b99c1..e9b96af 100644
--- a/abs/core-testing/php/PKGBUILD
+++ b/abs/core-testing/php/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=php
 pkgver=5.2.6
-pkgrel=17
+pkgrel=18
 _suhosinver=0.9.6.2
 pkgdesc='A high-level scripting language'
 arch=('i686' 'x86_64')
diff --git a/abs/core-testing/php/php.ini b/abs/core-testing/php/php.ini
index 0d05055..1679d87 100644
--- a/abs/core-testing/php/php.ini
+++ b/abs/core-testing/php/php.ini
@@ -249,7 +249,7 @@ safe_mode_protected_env_vars = LD_LIBRARY_PATH
 ; and below.  This directive makes most sense if used in a per-directory
 ; or per-virtualhost web server configuration file. This directive is
 ; *NOT* affected by whether Safe Mode is turned On or Off.
-open_basedir = /data/srv/httpd/htdocs/:/home/:/tmp/:/usr/share/pear/:/data/srv/tmp:/usr/share/mythtv/mythweather/scripts/:/data/srv/httpd/htdocs/mythweb/data/video
+open_basedir = /data/srv/httpd/htdocs/:/home/:/tmp/:/usr/share/pear/:/data/srv/tmp:/usr/share/mythtv/mythweather/scripts/:/data/srv/httpd/htdocs/mythweb/data/video:/myth/ipodfeed:/myth/archive
 
 ; This directive allows you to disable certain functions for security reasons.
 ; It receives a comma-delimited list of function names. This directive is
-- 
cgit v0.12


From d317bb68722dbe0e9f1a7d3eee79bb45045d8ff0 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 02:00:25 -0700
Subject: LightTPD:Added mp4 MIME type.

---
 abs/core-testing/lighttpd/PKGBUILD      | 2 +-
 abs/core-testing/lighttpd/lighttpd.conf | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/abs/core-testing/lighttpd/PKGBUILD b/abs/core-testing/lighttpd/PKGBUILD
index ae192bb..1c64bbf 100644
--- a/abs/core-testing/lighttpd/PKGBUILD
+++ b/abs/core-testing/lighttpd/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=lighttpd
 pkgver=1.4.20
-pkgrel=33
+pkgrel=34
 pkgdesc='a secure, fast, compliant and very flexible web-server'
 license=('custom')
 arch=('i686' 'x86_64')
diff --git a/abs/core-testing/lighttpd/lighttpd.conf b/abs/core-testing/lighttpd/lighttpd.conf
index e2c60da..7305133 100644
--- a/abs/core-testing/lighttpd/lighttpd.conf
+++ b/abs/core-testing/lighttpd/lighttpd.conf
@@ -94,6 +94,7 @@ mimetype.assign             = (
   ".xml"          =>      "text/xml",
   ".mpeg"         =>      "video/mpeg",
   ".mpg"          =>      "video/mpeg",
+  ".mp4"          =>      "video/quicktime",
   ".mov"          =>      "video/quicktime",
   ".qt"           =>      "video/quicktime",
   ".avi"          =>      "video/x-msvideo",
-- 
cgit v0.12


From 19bb3e516f01e55a50a1442ad49ac7308abdc2ef Mon Sep 17 00:00:00 2001
From: Nathan Harris <nharris@eoimaging.com>
Date: Sun, 26 Jul 2009 12:56:11 -0400
Subject: mythtv-svn: bump to 21022 (H264 fixes)

---
 abs/core-testing/mythtv/trunk/clean_all.sh         | 22 ++++++++++++++++++++++
 abs/core-testing/mythtv/trunk/morethemes/PKGBUILD  |  2 +-
 abs/core-testing/mythtv/trunk/mp_all.sh            |  5 +----
 abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD |  2 +-
 abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD |  2 +-
 abs/core-testing/mythtv/trunk/mythflix/PKGBUILD    |  2 +-
 abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD |  2 +-
 abs/core-testing/mythtv/trunk/mythgame/PKGBUILD    |  2 +-
 abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD  |  2 +-
 abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD   |  2 +-
 abs/core-testing/mythtv/trunk/mythnews/PKGBUILD    |  2 +-
 abs/core-testing/mythtv/trunk/myththemes/PKGBUILD  |  2 +-
 abs/core-testing/mythtv/trunk/mythtv/PKGBUILD      |  2 +-
 abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD   |  2 +-
 abs/core-testing/mythtv/trunk/mythweather/PKGBUILD |  2 +-
 abs/core-testing/mythtv/trunk/mythweb/PKGBUILD     |  2 +-
 .../mythtv/trunk/mythzoneminder/PKGBUILD           |  2 +-
 17 files changed, 38 insertions(+), 19 deletions(-)
 create mode 100755 abs/core-testing/mythtv/trunk/clean_all.sh

diff --git a/abs/core-testing/mythtv/trunk/clean_all.sh b/abs/core-testing/mythtv/trunk/clean_all.sh
new file mode 100755
index 0000000..1ebdc43
--- /dev/null
+++ b/abs/core-testing/mythtv/trunk/clean_all.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+buildlist=('mythtv' 'mytharchive' 'mythbrowser' 'mythflix' 'mythgallery' 'mythgame' 'mythmovies' 'mythmusic' 'mythnews' 'mythvideo' 'mythweather' 'mythzoneminder' 'mythweb' 'myththemes' 'morethemes')
+
+# clean up current directory
+rm -f *~
+
+# clean up mythtv directories
+for i in `echo ${buildlist[@]:0}`
+do
+	echo "-- cleaning $i"
+	cd ./$i
+
+	# clean up everything
+	rm -rf pkg src
+	rm -f *~
+
+	cd ..
+done
+
+echo "DONE!"
+
diff --git a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
index 6504580..e23a18f 100644
--- a/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/morethemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=morethemes-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Additional themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mp_all.sh b/abs/core-testing/mythtv/trunk/mp_all.sh
index 37f3551..f95a31d 100755
--- a/abs/core-testing/mythtv/trunk/mp_all.sh
+++ b/abs/core-testing/mythtv/trunk/mp_all.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-pkgver=20975
+pkgver=21022
 pkgrel=1
 
 # NOTE: Make sure to build and install mythtv first BEFORE building anything else
@@ -15,9 +15,6 @@ do
 	sed -i s/^pkgver=.*/pkgver=$pkgver/ PKGBUILD
 	sed -i s/^pkgrel=.*/pkgrel=$pkgrel/ PKGBUILD
 
-	# optionally clean up for virgin build
-#	rm -rf pkg src
-
 	# make the package
 	mp -f -i --holdver || exit 1
 
diff --git a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
index ff8a3b4..02802a4 100644
--- a/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mytharchive/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mytharchive-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="MythTV plugin that lets you create DVDs from or archive your recorded shows."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
index a82631f..d9b5df6 100644
--- a/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythbrowser/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythbrowser-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Mini web browser for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
index 23d6ac3..2edd643 100644
--- a/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythflix/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythflix-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Netflix access plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
index 23c4dfa..b010c83 100644
--- a/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgallery/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgallery-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Image gallery plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
index 2a62ba0..36a776b 100644
--- a/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythgame/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythgame-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Emulation plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
index ae3edb4..777276d 100644
--- a/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmovies/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmovies-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Displays information about movies playing in the area."
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
index 61403b2..743872c 100644
--- a/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythmusic/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythmusic-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Music playing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
index 7f8ad92..06c9aa4 100644
--- a/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythnews/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythnews-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="News checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
index b5b7666..81f2cb4 100755
--- a/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/myththemes/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=myththemes-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Themes for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
index 740bc99..57bfe54 100755
--- a/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythtv/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythtv-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="A personal video recorder for Linux"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
index b704198..12fd62f 100644
--- a/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythvideo/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythvideo-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Video playback and browsing plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
index efe56f8..8fd9935 100644
--- a/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweather/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweather-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Weather checking plugin for MythTV"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
index 3bf79be..150e5cf 100644
--- a/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythweb/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythweb-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Web interface for MythTV's backend"
 url="http://www.mythtv.org"
diff --git a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
index 9ea7e74..f33281a 100644
--- a/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
+++ b/abs/core-testing/mythtv/trunk/mythzoneminder/PKGBUILD
@@ -1,5 +1,5 @@
 pkgname=mythzoneminder-svn
-pkgver=20975
+pkgver=21022
 pkgrel=1
 pkgdesc="Integrates ZoneMinder into MythTV"
 url="http://www.mythtv.org"
-- 
cgit v0.12


From b8fbeadf0b12d2232179a236a35382e9e46776cd Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 16:21:26 -0700
Subject: MythTV:Latest 0.21-fixes.

---
 abs/core-testing/mythtv/stable/mythtv/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
index 454e36b..cfbba49 100644
--- a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mythtv
 pkgver=0.21
-pkgrel=75
+pkgrel=76
 pkgdesc="A Homebrew PVR project"
 arch=('i686' 'x86_64')
 depends=('bash' 'mysql-clients>=5.0' 'qt3' 'lame' 'lirc-utils' 'ffmpeg' \
-- 
cgit v0.12


From 3ee23daf685e3649d56978aa977f933fbfab830d Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 16:22:06 -0700
Subject: MythVideo:0.21-fixes patched to use tmdb instead of imdb.

---
 abs/core-testing/mythtv/stable/mythvideo/PKGBUILD  |   9 +-
 .../mythvideo-6338-use_tmdb_in_fixes.patch         | 151 +++++++++++++++++++++
 2 files changed, 157 insertions(+), 3 deletions(-)
 create mode 100644 abs/core-testing/mythtv/stable/mythvideo/mythvideo-6338-use_tmdb_in_fixes.patch

diff --git a/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD b/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD
index f9895c6..a233549 100644
--- a/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythvideo/PKGBUILD
@@ -4,15 +4,16 @@
 
 pkgname=mythvideo
 pkgver=0.21
-pkgrel=8
+pkgrel=9
 pkgdesc="Video playback and browsing plugin for MythTV"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 depends=("mythtv>=${pkgver}" 'mplayer' 'perlxml' 'perl-libwww' 'perl-uri' 'perl-xml-simple' 'ffmpeg')
 source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2"\
-	mtd)
-md5sums=('1b3e2a97b7ecf7373e162fe20b6faabe' '476c12ba074794ad7f4ae092bdf949d6')
+	"ftp://ftp.knoppmyth.net/R6/sources/tmdb.tar.bz2" \
+	mtd mythvideo-6338-use_tmdb_in_fixes.patch)
+md5sums=('1b3e2a97b7ecf7373e162fe20b6faabe' '48cff8f7095586c85ec70989746736b4' '476c12ba074794ad7f4ae092bdf949d6' '4bd38d054dfc4b0b1724f398d38676f7')
 replaces=('mythdvd')
 groups=('mythtv-extras')
 install=mythvideo.install
@@ -20,6 +21,7 @@ install=mythvideo.install
 build() {
    cd $startdir/src/mythplugins
    svn update
+   patch -p1 < ../mythvideo-6338-use_tmdb_in_fixes.patch
    . /etc/profile.d/qt3.sh
    
    # use QT3 qmake
@@ -33,6 +35,7 @@ build() {
 
    make INSTALL_ROOT=$startdir/pkg install
    install -D -m755 ../mtd $startdir/pkg/etc/rc.d/mtd
+   cp -Rv $startdir/src/tmdb/* $startdir/pkg/usr/share/mythtv/mythvideo/scripts/
 }
 
 
diff --git a/abs/core-testing/mythtv/stable/mythvideo/mythvideo-6338-use_tmdb_in_fixes.patch b/abs/core-testing/mythtv/stable/mythvideo/mythvideo-6338-use_tmdb_in_fixes.patch
new file mode 100644
index 0000000..a5a182d
--- /dev/null
+++ b/abs/core-testing/mythtv/stable/mythvideo/mythvideo-6338-use_tmdb_in_fixes.patch
@@ -0,0 +1,151 @@
+Index: mythplugins/mythvideo/mythvideo/videomanager.cpp
+===================================================================
+--- mythplugins.orig/mythvideo/mythvideo/videomanager.cpp	2009-03-09 22:39:40.000000000 -0400
++++ mythplugins/mythvideo/mythvideo/videomanager.cpp	2009-03-09 23:04:55.000000000 -0400
+@@ -1535,6 +1535,56 @@
+             }
+         }
+ 
++        // Since there's no DB update to remove imdb.pl settings in -fixes,
++        // check for the old imdb.pl command and, if it's the old default,
++        // use tmdb.pl, instead (if available in the same location or the
++        // scripts dir)).  Checks to see if cmd ends with end (the end of the
++        // old default imdb.pl command line).  If so, it checks for tmdb, and
++        // if it exists in either the same location as specified in cmd or in
++        // the MythVideo scripts directory, replace end with "/tmdb.pl " + arg
++        QString UpdateCommandForTMDB(const QString cmd, const QString end,
++                                     const QString arg)
++        {
++            QString updated_cmd = cmd;
++            if (updated_cmd.endsWith(end))
++            {
++                QString script_path = updated_cmd;
++                script_path.truncate(updated_cmd.findRev(end,
++                                                         0 - end.length()));
++                QString tmdb_path(script_path + "/tmdb.pl");
++                if (QFile::exists(tmdb_path))
++                {
++                    VERBOSE(VB_GENERAL, QString("Overriding old default "
++                                                "grabber script command line. "
++                                                "Using tmdb.pl, instead."));
++                    updated_cmd = tmdb_path + " " + arg;
++                }
++                else
++                {
++                    // It's possible the user has a non-default imdb.pl
++                    // command-line--including path location--in the setting,
++                    // so check to see if we've already checked the mythvideo
++                    // scripts directory
++                    QString def_path = QDir::cleanDirPath(QString("%1/%2")
++                            .arg(gContext->GetShareDir())
++                            .arg("mythvideo/scripts"));
++                    if (script_path != def_path)
++                    {
++                        tmdb_path = def_path + "/tmdb.pl";
++                        if (QFile::exists(tmdb_path))
++                        {
++                            VERBOSE(VB_GENERAL, QString("Overriding old "
++                                    "default grabber script command line. "
++                                    "Using tmdb.pl, instead."));
++                            updated_cmd = tmdb_path + " " + arg;
++                        }
++                    }
++                }
++            }
++
++            return updated_cmd;
++        }
++
+         virtual void OnExecDone(bool normal_exit, const QStringList &out,
+                                 const QStringList &err) = 0;
+ 
+@@ -1624,9 +1674,16 @@
+ 
+             QString def_cmd = QDir::cleanDirPath(QString("%1/%2")
+                     .arg(gContext->GetShareDir())
+-                    .arg("mythvideo/scripts/imdb.pl -M tv=no;video=no"));
++                    .arg("mythvideo/scripts/tmdb.pl -M"));
+ 
+-            QString cmd = gContext->GetSetting("MovieListCommandLine", def_cmd);
++            // Since there's no DB update to remove imdb.pl settings in -fixes,
++            // check for the old imdb.pl command and, if it's the old default,
++            // use tmdb.pl, instead (if available in the same location or the
++            // scripts dir))
++            QString cmd = UpdateCommandForTMDB(
++                            gContext->GetSetting("MovieListCommandLine",
++                                                 def_cmd),
++                            "/imdb.pl -M tv=no;video=no", "-M");
+ 
+             QStringList args;
+             args += title;
+@@ -1682,9 +1739,15 @@
+ 
+             const QString def_cmd = QDir::cleanDirPath(QString("%1/%2")
+                     .arg(gContext->GetShareDir())
+-                    .arg("mythvideo/scripts/imdb.pl -D"));
+-            const QString cmd = gContext->GetSetting("MovieDataCommandLine",
+-                                                     def_cmd);
++                    .arg("mythvideo/scripts/tmdb.pl -D"));
++            // Since there's no DB update to remove imdb.pl settings in -fixes,
++            // check for the old imdb.pl command and, if it's the old default,
++            // use tmdb.pl, instead (if available in the same location or the
++            // scripts dir))
++            const QString cmd = UpdateCommandForTMDB(
++                                  gContext->GetSetting("MovieDataCommandLine",
++                                                       def_cmd),
++                                  "/imdb.pl -D", "-D");
+ 
+             StartRun(cmd, video_uid, "Video Data Query");
+         }
+@@ -1726,9 +1789,16 @@
+             const QString default_cmd =
+                     QDir::cleanDirPath(QString("%1/%2")
+                                        .arg(gContext->GetShareDir())
+-                                       .arg("mythvideo/scripts/imdb.pl -P"));
+-            const QString cmd = gContext->GetSetting("MoviePosterCommandLine",
+-                                                     default_cmd);
++                                       .arg("mythvideo/scripts/tmdb.pl -P"));
++            // Since there's no DB update to remove imdb.pl settings in -fixes,
++            // check for the old imdb.pl command and, if it's the old default,
++            // use tmdb.pl, instead (if available in the same location or the
++            // scripts dir))
++            const QString cmd = UpdateCommandForTMDB(
++                                  gContext->GetSetting("MoviePosterCommandLine",
++                                                       default_cmd),
++                                  "/imdb.pl -P", "-P");
++
+             StartRun(cmd, video_uid, "Poster Query");
+         }
+ 
+Index: mythplugins/mythvideo/mythvideo/globalsettings.cpp
+===================================================================
+--- mythplugins.orig/mythvideo/mythvideo/globalsettings.cpp	2009-03-09 22:39:40.000000000 -0400
++++ mythplugins/mythvideo/mythvideo/globalsettings.cpp	2009-03-09 22:42:47.000000000 -0400
+@@ -210,8 +210,7 @@
+ {
+     HostLineEdit *gc = new HostLineEdit("MovieListCommandLine");
+     gc->setLabel(QObject::tr("Command to search for movie listings"));
+-    gc->setValue(gContext->GetShareDir() + "mythvideo/scripts/imdb.pl " +
+-                 "-M tv=no;video=no");
++    gc->setValue(gContext->GetShareDir() + "mythvideo/scripts/tmdb.pl -M");
+     gc->setHelpText(QObject::tr("This command must be "
+                     "executable by the user running MythVideo."));
+     return gc;
+@@ -221,7 +220,7 @@
+ {
+     HostLineEdit *gc = new HostLineEdit("MoviePosterCommandLine");
+     gc->setLabel(QObject::tr("Command to search for movie posters"));
+-    gc->setValue(gContext->GetShareDir() + "mythvideo/scripts/imdb.pl -P");
++    gc->setValue(gContext->GetShareDir() + "mythvideo/scripts/tmdb.pl -P");
+     gc->setHelpText(QObject::tr("This command must be "
+                     "executable by the user running MythVideo."));
+     return gc;
+@@ -231,7 +230,7 @@
+ {
+     HostLineEdit *gc = new HostLineEdit("MovieDataCommandLine");
+     gc->setLabel(QObject::tr("Command to extract data for movies"));
+-    gc->setValue(gContext->GetShareDir() + "mythvideo/scripts/imdb.pl -D");
++    gc->setValue(gContext->GetShareDir() + "mythvideo/scripts/tmdb.pl -D");
+     gc->setHelpText(QObject::tr("This command must be "
+                     "executable by the user running MythVideo."));
+     return gc;
-- 
cgit v0.12


From 5436027b88c49ecd6cd157ae22c663aefe27374c Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 22:13:41 -0700
Subject: Myt2xvid3:Formally myth2xvid.

---
 abs/extra-testing/myt2xvid3/PKGBUILD             |  18 ++
 abs/extra-testing/myt2xvid3/myt2xvid3            | 310 +++++++++++++++++++++++
 abs/extra-testing/myt2xvid3/myt2xvid3-userjob.sh |   6 +
 abs/extra-testing/myt2xvid3/myt2xvid3.install    |  41 +++
 4 files changed, 375 insertions(+)
 create mode 100755 abs/extra-testing/myt2xvid3/PKGBUILD
 create mode 100755 abs/extra-testing/myt2xvid3/myt2xvid3
 create mode 100755 abs/extra-testing/myt2xvid3/myt2xvid3-userjob.sh
 create mode 100755 abs/extra-testing/myt2xvid3/myt2xvid3.install

diff --git a/abs/extra-testing/myt2xvid3/PKGBUILD b/abs/extra-testing/myt2xvid3/PKGBUILD
new file mode 100755
index 0000000..ee20990
--- /dev/null
+++ b/abs/extra-testing/myt2xvid3/PKGBUILD
@@ -0,0 +1,18 @@
+pkgname=myt2xvid3
+pkgver=0.1
+pkgrel=1
+arch=("i686")
+pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
+url="http://www.knoppmythwiki.org/index.php?page=XvidEncoding"
+depends=('nuvexport')
+install="myt2xvid3.install"
+source=( myt2xvid3 myt2xvid3-userjob.sh)
+
+
+build() {
+	cd $startdir/src
+	install -D -m 755 myt2xvid3 $startdir/pkg/usr/bin/myt2xvid3
+	install -D -m 755 myt2xvid3-userjob.sh /$startdir/pkg/usr/bin/myt2xvid3-userjob.sh
+
+
+}
diff --git a/abs/extra-testing/myt2xvid3/myt2xvid3 b/abs/extra-testing/myt2xvid3/myt2xvid3
new file mode 100755
index 0000000..cad5278
--- /dev/null
+++ b/abs/extra-testing/myt2xvid3/myt2xvid3
@@ -0,0 +1,310 @@
+#!/usr/bin/perl -w
+# VERSION: 1.0b2 - myth2ipod
+# Get the latest version, and change log at myth2ipod.com
+# Author: Chris aka Wififun - email: wififun@myth2ipod.com 
+# Contributions and testing by Paul Egli
+# modified to use nuvexport by starv at juniks dot org
+
+# Includes
+	use DBI;
+	use Getopt::Long;
+	use File::Path;
+	
+# User variables
+	my $portable = "XviD";
+	my $feedfile = "/myth/video/archive/feed.php";
+	my $feedpath = "/myth/video/archive/";
+	my $wwwloc = "/data/srv/httpd/htdocs";
+	my $feedurl = "http://REPLACEME/archive/";
+	my $nuvoptions ="--mode=XviD --nice=19 --cutlist --nodenoise --nodeinterlace --crop --multipass";
+	
+# Some variables
+	our ($dest, $format, $usage);
+	our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
+	our ($hostname, $db_handle, $sql, $statement, $row_ref);
+    our ($chanid, $start, $nuvfile, @nuvarray);	
+	my $rebuild = '0';
+	my $encode = '0';
+	my $debug = '0';
+	my $setup = '0';
+	my $cut = '0';
+	my( $rightnow ) = `date`; 
+
+GetOptions ("rebuild" => \$rebuild,
+			"encode"   => \$encode,
+			"debug"	=>	\$debug,
+			"setup" => \$setup,
+			"cut" => \$cut);
+
+if ($setup == 1){
+		system("clear");
+		print "Setup will do everything needed to run this script.\n";
+		print "This has only been tested on KnoppMyth R5A22.\n";
+		print "make sure you have edited the variables for your conguration.\n";
+		my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
+			if ($cksetup =~ "y") {
+				DoSetup();
+				exit;
+			}
+			print "Setup exited. Nothing done.\n";
+		exit;
+}
+elsif ($rebuild == 1){
+		GenerateRSSFeed();
+		print "Rebuilding of RSS feed is complete.\n";
+		exit;
+}
+else {
+		Encode4Portable();
+		print "$title is ready for your $portable\n";
+		
+		# Check to see if the feed file exists; if not, create it.
+		if (! -e $feedfile) { 
+		print "No feed file found. I will make one for you.\n";
+		GenerateRSSFeed();
+		print "All done.\n";
+		}
+}
+
+sub Encode4Portable{
+	if ($#ARGV != 1) { 
+		print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n"; 
+		exit; 
+	}
+	
+	# Get the show information
+	$directory = $ARGV[0]; 
+	$file = $ARGV[1]; 
+	@file = split(/_/, $file);
+		$chanid = $file[0];
+		$start = substr $file[1],0,14;
+		if($debug == 1){ print "$chanid\n$start\n"};
+	if (! -e $directory."/".$file){
+		print "Opps, the file ".$directory.$file." does not exist.\n";
+		exit;
+	}
+	
+	# Connect to the database
+	PrepSQLRead();
+	$db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
+	or die "Cannot connect to database: $!\n\n";
+		$sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
+
+		$statement = $db_handle->prepare($sql)
+			or die "Couldn't prepare query '$sql': $DBI::errstr\n";
+		
+		$statement->execute()
+		or die "Couldn't execute query '$sql': $DBI::errstr\n";
+		$row_ref = $statement->fetchrow_hashref();
+		if($debug == 1){ print "$row_ref->{starttime}\n"};
+	$title = $row_ref->{title}; 
+	$subtitle = $row_ref->{subtitle};
+	$recorddate = $row_ref->{starttime}; 
+	$description = $row_ref->{description};
+	$category = $row_ref->{category};
+	$filename = $title."-".$subtitle."-".substr $start, 0, 8;
+	$filename =~ s/ /_/g;
+	$filename =~ s/&/+/g;
+	$filename =~ s/\047//g;
+    $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
+    $filename =~ s/_$//g;
+		
+	printf("Starting nuvexport...\n"); 
+		EncodeIt(); 
+	printf("Nuvexport completed, starting xml generation...\n"); 
+		CreateItemXML(); 
+	printf("XML file created for \"$filename\" : Yipeee\n"); 
+	printf("Cleaning up temporary files\n"); 
+		$cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
+		print $cmd."\n";
+		if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
+		
+		# remove the cutlist incase we added it.
+		if ($cut == 1){
+		printf("Generating cutlist\n"); 
+		$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
+		print $cmd."\n"; 
+		if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
+		}
+	return 0;
+}
+
+#
+# Encode for Portable
+#
+sub EncodeIt { 
+	# Create cutlist from commercial flagging if -cut was passed to the script
+	if ($cut == 1){
+	printf("Generating cutlist\n"); 
+	$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
+	print $cmd."\n"; 
+	if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
+	}
+	
+	# Use nuvexport to do the work
+	$cmd = "/usr/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.$portable --path=$feedpath";
+	print $cmd."\n"; 
+	if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } 
+	
+	# Now clean up the output so iPods with firmware 1.1 and above can use it
+	#$cmd = "/usr/local/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
+	#print $cmd."\n"; 
+	#if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } 
+	return 0;
+}
+
+#
+# Create XML with <ITEM> tag for this video file
+#
+sub CreateItemXML {
+		open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
+			print ITEM "<item>\n";  
+			print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
+			print ITEM "<itunes:author>MythTV</itunes:author>\n";  
+			print ITEM "<author>MythTV</author>\n";  
+			print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
+			print ITEM "<comments>".&encodeForXML($file)."</comments>\n";  
+			print ITEM "<description>".&encodeForXML($description)."</description>\n";  
+			print ITEM "<pubDate>".$recorddate."</pubDate>\n";  
+			print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.avi")."\" type=\"video/quicktime\" />\n";  
+			print ITEM "<itunes:duration></itunes:duration>\n";  
+			print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
+			print ITEM "<category>".&encodeForXML($category)."</category>\n";			
+			print ITEM "</item>\n";
+			print "\"$filename\" has been added to the feed.\n";
+		close(ITEM);
+	return 0;
+}
+
+#
+# Generate the RSS feed by combining the ITEM XML Files
+#
+sub GenerateRSSFeed {
+
+	open(RSS, ">$feedfile");
+		print RSS "<?php\n"; 
+		print RSS "header(\"Content-Type: text/xml\");\n"; 
+		print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n"; 
+		print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n"; 
+		print RSS "<channel>\n"; 
+		print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
+		print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
+		print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n"; 
+		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
+		print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n"; 
+		print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n"; 
+		print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n"; 
+		print RSS "<itunes:owner>\n"; 
+		print RSS "<itunes:name>MythTV</itunes:name>\n"; 
+		print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n"; 
+		print RSS "</itunes:owner>\n"; 
+		print RSS "<itunes:explicit>No</itunes:explicit>\n"; 
+		print RSS "<language>en-us</language>\n"; 
+		print RSS "<copyright>Copyright 2005.</copyright>\n"; 
+		print RSS "<webMaster>mythtv\@localhost</webMaster>\n"; 
+		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n"; 
+		print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n"; 
+		print RSS "<category>TV Shows</category>\n";
+		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
+		print RSS "<image>"; 
+		print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
+		print RSS "<title>MythTV 2 iPod</title>\n";
+		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";	
+		print RSS "<width>200</width>\n";		
+		print RSS "<height>200</height>\n";		
+		print RSS "</image>\n";
+		print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
+		print RSS "</channel>\n"; 
+		print RSS "</rss>\n";
+ 	close(RSS);
+	if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
+
+	return 0;
+}
+
+# substitute for XML entities
+sub encodeForXML {
+	local $result;
+	$result = $_[0];
+	$result =~ s/&/&amp;/g;
+	$result =~ s/</&lt;/g;
+	$result =~ s/>/&gt;/g;
+	$result;
+}
+
+
+#
+# This code taken from one of the mythlink.sh scripts to get MySQL information
+#
+sub PrepSQLRead{
+# Get the hostname of this machine
+    $hostname = `hostname`;
+    chomp($hostname);
+    
+# Read the mysql.txt file in use by MythTV.
+# could be in a couple places, so try the usual suspects
+    my $found = 0;
+    my @mysql = ('/usr/local/share/mythtv/mysql.txt',
+                 '/usr/share/mythtv/mysql.txt',
+                 '/etc/mythtv/mysql.txt',
+                 '/usr/local/etc/mythtv/mysql.txt',
+                 "$ENV{HOME}/.mythtv/mysql.txt",
+                 'mysql.txt'
+                );
+    foreach my $file (@mysql) {
+        next unless (-e $file);
+        $found = 1;
+        open(CONF, $file) or die "Unable to open $file:  $!\n\n";
+        while (my $line = <CONF>) {
+        # Cleanup
+            next if ($line =~ /^\s*#/);
+            $line =~ s/^str //;
+            chomp($line);
+        # Split off the var=val pairs
+            my ($var, $val) = split(/\=/, $line, 2);
+            next unless ($var && $var =~ /\w/);
+            if ($var eq 'DBHostName') {
+                $db_host = $val;
+            }
+            elsif ($var eq 'DBUserName') {
+                $db_user = $val;
+            }
+            elsif ($var eq 'DBName') {
+                $db_name = $val;
+            }
+            elsif ($var eq 'DBPassword') {
+                $db_pass = $val;
+            }
+        # Hostname override
+            elsif ($var eq 'LocalHostName') {
+                $hostname = $val;
+            }
+        }
+        close CONF;
+    }
+    die "Unable to locate mysql.txt:  $!\n\n" unless ($found && $db_host);
+    return 0;
+}
+
+sub promptUser {
+   local($promptString,$defaultValue) = @_;
+   if ($defaultValue) {
+      print $promptString, "[", $defaultValue, "]: ";
+   } else {
+      print $promptString, ": ";
+   }
+
+   $| = 1;               # force a flush after our print
+   $_ = <STDIN>;         # get the input from STDIN (presumably the keyboard)
+   chomp;
+   if ("$defaultValue") {
+      return $_ ? $_ : $defaultValue;    # return $_ if it has a value
+   } else {
+      return $_;
+   }
+}
+
+sub DoSetup {
+	print "\nNot ready yet. How do you send the cd command from perl?\n";
+	return 0;
+}
diff --git a/abs/extra-testing/myt2xvid3/myt2xvid3-userjob.sh b/abs/extra-testing/myt2xvid3/myt2xvid3-userjob.sh
new file mode 100755
index 0000000..6bd46ea
--- /dev/null
+++ b/abs/extra-testing/myt2xvid3/myt2xvid3-userjob.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+. /etc/profile
+#su  mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2"  >/tmp/logfile"
+su  mythtv -c "TERM=vt100 /usr/bin/myt2xvid3 "$1" "$2" "
+#or to also use commercial flagging cutlist
+#su  mythtv -c "TERM=vt100 /usr/bin/myth2ipod -cut "$1" "$2"  >/tmp/logfile"
diff --git a/abs/extra-testing/myt2xvid3/myt2xvid3.install b/abs/extra-testing/myt2xvid3/myt2xvid3.install
new file mode 100755
index 0000000..abc4256
--- /dev/null
+++ b/abs/extra-testing/myt2xvid3/myt2xvid3.install
@@ -0,0 +1,41 @@
+
+pre_install() {
+	echo ""
+}
+
+pre_upgrade() {
+  pre_install
+}
+
+pre_remove() {
+  pre_install
+}
+
+post_install() {
+	. /etc/systemconfig
+	mkdir /myth/video/archive
+	chown mythtv:users /myth/video/archive
+	ln -s /myth/video/archive /data/srv/httpd/htdocs/archive
+	mv /usr/bin/myt2xvid3 /tmp
+	sed -e "s/REPLACEME/$HOSTNAME/g" /tmp/myt2xvid3 > /usr/bin/myt2xvid3
+	
+	
+}
+
+post_upgrade() {
+ 
+	
+	mkdir /myth/video/archive
+	chown mythtv:users /myth/video/archive
+	ln -s /myth/video/archive /data/srv/httpd/htdocs/archive
+	/usr/bin/myth2xvid -rebuild
+}
+
+post_remove() {
+  post_install
+}
+
+op=$1
+shift
+
+$op $*
-- 
cgit v0.12


From aa3633038ed28b321b71d374937da9cb4e11437f Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 22:13:55 -0700
Subject: Myth2xvid:removed.

---
 abs/extra-testing/myth2xvid/PKGBUILD             |  18 --
 abs/extra-testing/myth2xvid/myth2xvid            | 310 -----------------------
 abs/extra-testing/myth2xvid/myth2xvid-userjob.sh |   6 -
 abs/extra-testing/myth2xvid/myth2xvid.install    |  41 ---
 4 files changed, 375 deletions(-)
 delete mode 100755 abs/extra-testing/myth2xvid/PKGBUILD
 delete mode 100755 abs/extra-testing/myth2xvid/myth2xvid
 delete mode 100755 abs/extra-testing/myth2xvid/myth2xvid-userjob.sh
 delete mode 100755 abs/extra-testing/myth2xvid/myth2xvid.install

diff --git a/abs/extra-testing/myth2xvid/PKGBUILD b/abs/extra-testing/myth2xvid/PKGBUILD
deleted file mode 100755
index 5e057dd..0000000
--- a/abs/extra-testing/myth2xvid/PKGBUILD
+++ /dev/null
@@ -1,18 +0,0 @@
-pkgname=myth2xvid
-pkgver=0.1
-pkgrel=1
-arch=("i686")
-pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
-url="http://www.knoppmythwiki.org/index.php?page=XvidEncoding"
-depends=('nuvexport')
-install="myth2xvid.install"
-source=( myth2xvid myth2xvid-userjob.sh)
-
-
-build() {
-	cd $startdir/src
-	install -D -m 755 myth2xvid $startdir/pkg/usr/bin/myth2xvid
-	install -D -m 755 myth2xvid-userjob.sh /$startdir/pkg/usr/bin/myth2xvid-userjob.sh
-
-
-}
diff --git a/abs/extra-testing/myth2xvid/myth2xvid b/abs/extra-testing/myth2xvid/myth2xvid
deleted file mode 100755
index 6c24e08..0000000
--- a/abs/extra-testing/myth2xvid/myth2xvid
+++ /dev/null
@@ -1,310 +0,0 @@
-#!/usr/bin/perl -w
-# VERSION: 1.0b2 - myth2ipod
-# Get the latest version, and change log at myth2ipod.com
-# Author: Chris aka Wififun - email: wififun@myth2ipod.com 
-# Contributions and testing by Paul Egli
-# modified to use nuvexport by starv at juniks dot org
-
-# Includes
-	use DBI;
-	use Getopt::Long;
-	use File::Path;
-	
-# User variables
-	my $portable = "XviD";
-	my $feedfile = "/myth/video/archive/feed.php";
-	my $feedpath = "/myth/video/archive";
-	my $wwwloc = "/data/srv/httpd/htdocs";
-	my $feedurl = "http://REPLACEME/archive/";
-	my $nuvoptions ="--mode=XviD --nice=19 --cutlist --nodenoise --nodeinterlace --nomultipass";
-	
-# Some variables
-	our ($dest, $format, $usage);
-	our ($db_host, $db_user, $db_name, $db_pass, $video_dir);
-	our ($hostname, $db_handle, $sql, $statement, $row_ref);
-    our ($chanid, $start, $nuvfile, @nuvarray);	
-	my $rebuild = '0';
-	my $encode = '0';
-	my $debug = '0';
-	my $setup = '0';
-	my $cut = '0';
-	my( $rightnow ) = `date`; 
-
-GetOptions ("rebuild" => \$rebuild,
-			"encode"   => \$encode,
-			"debug"	=>	\$debug,
-			"setup" => \$setup,
-			"cut" => \$cut);
-
-if ($setup == 1){
-		system("clear");
-		print "Setup will do everything needed to run this script.\n";
-		print "This has only been tested on KnoppMyth R5A22.\n";
-		print "make sure you have edited the variables for your conguration.\n";
-		my $cksetup = &promptUser("\nAre you sure you want to procceed?","n");
-			if ($cksetup =~ "y") {
-				DoSetup();
-				exit;
-			}
-			print "Setup exited. Nothing done.\n";
-		exit;
-}
-elsif ($rebuild == 1){
-		GenerateRSSFeed();
-		print "Rebuilding of RSS feed is complete.\n";
-		exit;
-}
-else {
-		Encode4Portable();
-		print "$title is ready for your $portable\n";
-		
-		# Check to see if the feed file exists; if not, create it.
-		if (! -e $feedfile) { 
-		print "No feed file found. I will make one for you.\n";
-		GenerateRSSFeed();
-		print "All done.\n";
-		}
-}
-
-sub Encode4Portable{
-	if ($#ARGV != 1) { 
-		print "Encoding requires options.\nusage: myth2ipod <options> DIRECTORY FILE\n"; 
-		exit; 
-	}
-	
-	# Get the show information
-	$directory = $ARGV[0]; 
-	$file = $ARGV[1]; 
-	@file = split(/_/, $file);
-		$chanid = $file[0];
-		$start = substr $file[1],0,14;
-		if($debug == 1){ print "$chanid\n$start\n"};
-	if (! -e $directory."/".$file){
-		print "Opps, the file ".$directory.$file." does not exist.\n";
-		exit;
-	}
-	
-	# Connect to the database
-	PrepSQLRead();
-	$db_handle = DBI->connect("dbi:mysql:database=$db_name:host=$db_host", $db_user, $db_pass)
-	or die "Cannot connect to database: $!\n\n";
-		$sql = "SELECT title, subtitle, description, category, starttime FROM recorded WHERE chanid = $chanid AND DATE_FORMAT(starttime,'%Y%m%d%H%i%s') = $start";
-
-		$statement = $db_handle->prepare($sql)
-			or die "Couldn't prepare query '$sql': $DBI::errstr\n";
-		
-		$statement->execute()
-		or die "Couldn't execute query '$sql': $DBI::errstr\n";
-		$row_ref = $statement->fetchrow_hashref();
-		if($debug == 1){ print "$row_ref->{starttime}\n"};
-	$title = $row_ref->{title}; 
-	$subtitle = $row_ref->{subtitle};
-	$recorddate = $row_ref->{starttime}; 
-	$description = $row_ref->{description};
-	$category = $row_ref->{category};
-	$filename = $title."-".$subtitle."-".substr $start, 0, 8;
-	$filename =~ s/ /_/g;
-	$filename =~ s/&/+/g;
-	$filename =~ s/\047//g;
-    $filename =~ s/[^+0-9a-zA-Z_-]+/_/g;
-    $filename =~ s/_$//g;
-		
-	printf("Starting nuvexport...\n"); 
-		EncodeIt(); 
-	printf("Nuvexport completed, starting xml generation...\n"); 
-		CreateItemXML(); 
-	printf("XML file created for \"$filename\" : Yipeee\n"); 
-	printf("Cleaning up temporary files\n"); 
-		$cmd = "rm -f $feedpath$chanid\_$start.temp.mp4";
-		print $cmd."\n";
-		if(system($cmd)) { print "Removing nuvexport temp file failed\n"; }
-		
-		# remove the cutlist incase we added it.
-		if ($cut == 1){
-		printf("Generating cutlist\n"); 
-		$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --clearcutlist";
-		print $cmd."\n"; 
-		if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
-		}
-	return 0;
-}
-
-#
-# Encode for Portable
-#
-sub EncodeIt { 
-	# Create cutlist from commercial flagging if -cut was passed to the script
-	if ($cut == 1){
-	printf("Generating cutlist\n"); 
-	$cmd = "/usr/bin/mythcommflag --chanid $chanid --starttime $start --gencutlist";
-	print $cmd."\n"; 
-	if(system($cmd)) { print "It looks like I was not able to generate a cutlist.\n"; } 
-	}
-	
-	# Use nuvexport to do the work
-	$cmd = "/usr/bin/nuvexport --chanid=$chanid --start=$start $nuvoptions --filename=$chanid\_$start.$portable --path=$feedpath";
-	print $cmd."\n"; 
-	if(system($cmd)) { print "Nuvexport encoding seems to have failed\n"; } 
-	
-	# Now clean up the output so iPods with firmware 1.1 and above can use it
-#	$cmd = "/usr/bin/MP4Box -add $feedpath$chanid\_$start.temp.mp4 $feedpath$chanid\_$start.$portable.mp4";
-#	print $cmd."\n"; 
-#	if(system($cmd)) { print "MP4Box cleanup seems to have failed\n"; } 
-	return 0;
-}
-
-#
-# Create XML with <ITEM> tag for this video file
-#
-sub CreateItemXML {
-		open(ITEM, ">$feedpath$chanid\_$start.$portable.xml");
-			print ITEM "<item>\n";  
-			print ITEM "<title>".&encodeForXML($title." - ".$subtitle)."</title>\n";
-			print ITEM "<itunes:author>MythTV</itunes:author>\n";  
-			print ITEM "<author>MythTV</author>\n";  
-			print ITEM "<itunes:category text=\"TV Shows\"></itunes:category>\n";
-			print ITEM "<comments>".&encodeForXML($file)."</comments>\n";  
-			print ITEM "<description>".&encodeForXML($description)."</description>\n";  
-			print ITEM "<pubDate>".$recorddate."</pubDate>\n";  
-			print ITEM "<enclosure url=\"".&encodeForXML("$feedurl$chanid\_$start.$portable.avi")."\" type=\"video/quicktime\" />\n";  
-			print ITEM "<itunes:duration></itunes:duration>\n";  
-			print ITEM "<itunes:keywords>".&encodeForXML($title." - ".$subtitle." - ".$category)."</itunes:keywords>\n";
-			print ITEM "<category>".&encodeForXML($category)."</category>\n";			
-			print ITEM "</item>\n";
-			print "\"$filename\" has been added to the feed.\n";
-		close(ITEM);
-	return 0;
-}
-
-#
-# Generate the RSS feed by combining the ITEM XML Files
-#
-sub GenerateRSSFeed {
-
-	open(RSS, ">$feedfile");
-		print RSS "<?php\n"; 
-		print RSS "header(\"Content-Type: text/xml\");\n"; 
-		print RSS "echo \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\"; ?>\n"; 
-		print RSS "<rss xmlns:itunes=\"http://www.itunes.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n"; 
-		print RSS "<channel>\n"; 
-		print RSS "<title>MythTV - <? if (\$_GET['title'] == \"\") { \$title = \"*\"; echo \"Recorded Programs\"; }\n";
-		print RSS "else { \$title = \$_GET['title']; echo str_replace(\"_\",\" \",\$_GET['title']); } ?> </title>\n";
-		print RSS "<itunes:author>MythTV - myth2ipod</itunes:author>\n"; 
-		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";
-		print RSS "<itunes:subtitle>Transcoded recording for your iPod Video.</itunes:subtitle>\n"; 
-		print RSS "<itunes:summary>Myth TV Recorded Programs for the iPod v.1</itunes:summary>\n"; 
-		print RSS "<description>Myth TV Recorded Programs for the iPod v.1</description>\n"; 
-		print RSS "<itunes:owner>\n"; 
-		print RSS "<itunes:name>MythTV</itunes:name>\n"; 
-		print RSS "<itunes:email>mythtv\@localhost</itunes:email>\n"; 
-		print RSS "</itunes:owner>\n"; 
-		print RSS "<itunes:explicit>No</itunes:explicit>\n"; 
-		print RSS "<language>en-us</language>\n"; 
-		print RSS "<copyright>Copyright 2005.</copyright>\n"; 
-		print RSS "<webMaster>mythtv\@localhost</webMaster>\n"; 
-		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\" />\n"; 
-		print RSS "<itunes:category text=\"TV Shows\"></itunes:category>\n"; 
-		print RSS "<category>TV Shows</category>\n";
-		print RSS "<itunes:image href=\"http://myth2ipod.com/mythipod_200.jpg\"/>";
-		print RSS "<image>"; 
-		print RSS "<url>http://myth2ipod.com/mythipod_200.jpg</url>\n";
-		print RSS "<title>MythTV 2 iPod</title>\n";
-		print RSS "<link>".&encodeForXML($feedurl)."</link>\n";	
-		print RSS "<width>200</width>\n";		
-		print RSS "<height>200</height>\n";		
-		print RSS "</image>\n";
-		print RSS "<? foreach (glob(\$title\.\"*\.$portable\.xml\") as \$file) {include \$file;} ?>\n";
-		print RSS "</channel>\n"; 
-		print RSS "</rss>\n";
- 	close(RSS);
-	if($debug == 1){ print "I created a feed file, was I supposed to?\n"};
-
-	return 0;
-}
-
-# substitute for XML entities
-sub encodeForXML {
-	local $result;
-	$result = $_[0];
-	$result =~ s/&/&amp;/g;
-	$result =~ s/</&lt;/g;
-	$result =~ s/>/&gt;/g;
-	$result;
-}
-
-
-#
-# This code taken from one of the mythlink.sh scripts to get MySQL information
-#
-sub PrepSQLRead{
-# Get the hostname of this machine
-    $hostname = `hostname`;
-    chomp($hostname);
-    
-# Read the mysql.txt file in use by MythTV.
-# could be in a couple places, so try the usual suspects
-    my $found = 0;
-    my @mysql = ('/usr/share/mythtv/mysql.txt',
-                 '/usr/share/mythtv/mysql.txt',
-                 '/etc/mythtv/mysql.txt',
-                 '/usr/local/etc/mythtv/mysql.txt',
-                 "$ENV{HOME}/.mythtv/mysql.txt",
-                 'mysql.txt'
-                );
-    foreach my $file (@mysql) {
-        next unless (-e $file);
-        $found = 1;
-        open(CONF, $file) or die "Unable to open $file:  $!\n\n";
-        while (my $line = <CONF>) {
-        # Cleanup
-            next if ($line =~ /^\s*#/);
-            $line =~ s/^str //;
-            chomp($line);
-        # Split off the var=val pairs
-            my ($var, $val) = split(/\=/, $line, 2);
-            next unless ($var && $var =~ /\w/);
-            if ($var eq 'DBHostName') {
-                $db_host = $val;
-            }
-            elsif ($var eq 'DBUserName') {
-                $db_user = $val;
-            }
-            elsif ($var eq 'DBName') {
-                $db_name = $val;
-            }
-            elsif ($var eq 'DBPassword') {
-                $db_pass = $val;
-            }
-        # Hostname override
-            elsif ($var eq 'LocalHostName') {
-                $hostname = $val;
-            }
-        }
-        close CONF;
-    }
-    die "Unable to locate mysql.txt:  $!\n\n" unless ($found && $db_host);
-    return 0;
-}
-
-sub promptUser {
-   local($promptString,$defaultValue) = @_;
-   if ($defaultValue) {
-      print $promptString, "[", $defaultValue, "]: ";
-   } else {
-      print $promptString, ": ";
-   }
-
-   $| = 1;               # force a flush after our print
-   $_ = <STDIN>;         # get the input from STDIN (presumably the keyboard)
-   chomp;
-   if ("$defaultValue") {
-      return $_ ? $_ : $defaultValue;    # return $_ if it has a value
-   } else {
-      return $_;
-   }
-}
-
-sub DoSetup {
-	print "\nNot ready yet. How do you send the cd command from perl?\n";
-	return 0;
-}
diff --git a/abs/extra-testing/myth2xvid/myth2xvid-userjob.sh b/abs/extra-testing/myth2xvid/myth2xvid-userjob.sh
deleted file mode 100755
index 9ed65b2..0000000
--- a/abs/extra-testing/myth2xvid/myth2xvid-userjob.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/bash
-. /etc/profile
-#su  mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2"  >/tmp/logfile"
-su  mythtv -c "TERM=vt100 /usr/bin/myth2ipod "$1" "$2" "
-#or to also use commercial flagging cutlist
-#su  mythtv -c "TERM=vt100 /usr/bin/myth2ipod -cut "$1" "$2"  >/tmp/logfile"
diff --git a/abs/extra-testing/myth2xvid/myth2xvid.install b/abs/extra-testing/myth2xvid/myth2xvid.install
deleted file mode 100755
index 9e8ba23..0000000
--- a/abs/extra-testing/myth2xvid/myth2xvid.install
+++ /dev/null
@@ -1,41 +0,0 @@
-
-pre_install() {
-	echo ""
-}
-
-pre_upgrade() {
-  pre_install
-}
-
-pre_remove() {
-  pre_install
-}
-
-post_install() {
-	. /etc/systemconfig
-	mkdir /myth/video/archive
-	chown mythtv:users /myth/video/archive
-	ln -s /myth/video/archive /data/srv/httpd/htdocs/archive
-	cp /usr/bin/myth2xvid /tmp
-	sed -e "s/REPLACEME/$hostname/g" /tmp/myth2xvid > /usr/bin/myth2xvid
-	
-	
-}
-
-post_upgrade() {
- 
-	
-	mkdir /myth/video/archive
-	chown mythtv:users /myth/video/archive
-	ln -s /myth/video/archive /data/srv/httpd/htdocs/archive
-	/usr/bin/myth2xvid -rebuild
-}
-
-post_remove() {
-  post_install
-}
-
-op=$1
-shift
-
-$op $*
-- 
cgit v0.12


From 64eae7133eaf840bf101ccce7f30b36abcc0f525 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 22:21:26 -0700
Subject: PHP:Modified php.ini open_basedir.

---
 abs/core-testing/php/PKGBUILD | 2 +-
 abs/core-testing/php/php.ini  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/php/PKGBUILD b/abs/core-testing/php/PKGBUILD
index e9b96af..598b37a 100644
--- a/abs/core-testing/php/PKGBUILD
+++ b/abs/core-testing/php/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=php
 pkgver=5.2.6
-pkgrel=18
+pkgrel=19
 _suhosinver=0.9.6.2
 pkgdesc='A high-level scripting language'
 arch=('i686' 'x86_64')
diff --git a/abs/core-testing/php/php.ini b/abs/core-testing/php/php.ini
index 1679d87..21c3db1 100644
--- a/abs/core-testing/php/php.ini
+++ b/abs/core-testing/php/php.ini
@@ -249,7 +249,7 @@ safe_mode_protected_env_vars = LD_LIBRARY_PATH
 ; and below.  This directive makes most sense if used in a per-directory
 ; or per-virtualhost web server configuration file. This directive is
 ; *NOT* affected by whether Safe Mode is turned On or Off.
-open_basedir = /data/srv/httpd/htdocs/:/home/:/tmp/:/usr/share/pear/:/data/srv/tmp:/usr/share/mythtv/mythweather/scripts/:/data/srv/httpd/htdocs/mythweb/data/video:/myth/ipodfeed:/myth/archive
+open_basedir = /data/srv/httpd/htdocs/:/home/:/tmp/:/usr/share/pear/:/data/srv/tmp:/usr/share/mythtv/mythweather/scripts/:/data/srv/httpd/htdocs/mythweb/data/video:/myth/ipodfeed:/data/srv/httpd/htdocs/archive
 
 ; This directive allows you to disable certain functions for security reasons.
 ; It receives a comma-delimited list of function names. This directive is
-- 
cgit v0.12


From 35bb49b2ed0c4fb535962f629238d73484f2ab5b Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 22:42:15 -0700
Subject: linhes-scripts:Removed myt3xvid3.

---
 abs/core-testing/linhes-scripts/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/linhes-scripts/PKGBUILD b/abs/core-testing/linhes-scripts/PKGBUILD
index e939079..98a133c 100644
--- a/abs/core-testing/linhes-scripts/PKGBUILD
+++ b/abs/core-testing/linhes-scripts/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=linhes-scripts
 pkgver=1
-pkgrel=16
+pkgrel=17
 pkgdesc="Various scripts that help to make LinHES, LinHES."
 arch=('i686' 'x86_64')
 license=('GPL2')
-- 
cgit v0.12


From 29f1713e18b6eeaaebc74604a46550a4e0a8380c Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 22:45:39 -0700
Subject: nuvexport:Fixes for myt2xvid3.

---
 abs/core-testing/nuvexport/PKGBUILD |   5 +-
 abs/core-testing/nuvexport/XviD.pm  | 197 ++++++++++++++++++++++++++++++++++++
 2 files changed, 200 insertions(+), 2 deletions(-)
 create mode 100755 abs/core-testing/nuvexport/XviD.pm

diff --git a/abs/core-testing/nuvexport/PKGBUILD b/abs/core-testing/nuvexport/PKGBUILD
index 9db2c4e..27369de 100644
--- a/abs/core-testing/nuvexport/PKGBUILD
+++ b/abs/core-testing/nuvexport/PKGBUILD
@@ -4,7 +4,7 @@
 pkgname=nuvexport
 pkgver=20080311
 relnum=0.5
-pkgrel=2
+pkgrel=3
 pkgdesc="Export for MythTV nuv files to other formats (DVD/SVCD/DivX,etc.)"
 arch=(i686 x86_64)
 url="http://forevermore.net/files/nuvexport"
@@ -15,7 +15,7 @@ conflicts=()
 replaces=()
 backup=()
 install=
-source=(http://forevermore.net/files/nuvexport/archive/$pkgname-$relnum-0.$pkgver.svn.tar.bz2 $pkgname-ipod-disable.patch MP4.pm)
+source=(http://forevermore.net/files/nuvexport/archive/$pkgname-$relnum-0.$pkgver.svn.tar.bz2 $pkgname-ipod-disable.patch MP4.pm XviD.pm)
 md5sums=('2d0a99623f06394daf3bf8769536d3cd' 'acd2dad9987e68359ead8b0be5e5797c')
 
 build() {
@@ -29,4 +29,5 @@ build() {
   make install || return 1
   sed -i "s|/tmp/fifodir|/var/tmp/fifodir|g" $startdir/pkg/usr/share/nuvexport/export/*.pm || return 1
   cp $startdir/src/MP4.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/MP4.pm
+  cp $startdir/src/XviD.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/XviD.pm
 }
diff --git a/abs/core-testing/nuvexport/XviD.pm b/abs/core-testing/nuvexport/XviD.pm
new file mode 100755
index 0000000..c4700f5
--- /dev/null
+++ b/abs/core-testing/nuvexport/XviD.pm
@@ -0,0 +1,197 @@
+#
+# ffmpeg-based XviD export module for nuvexport.
+#
+# @url       $URL: svn+ssh://xris@svn.mythtv.org/var/lib/svn/trunk/mythextras/nuvexport/export/ffmpeg/XviD.pm $
+# @date      $Date: 2008-02-19 20:47:06 -0800 (Tue, 19 Feb 2008) $
+# @version   $Revision: 16175 $
+# @author    $Author: xris $
+# @copyright Silicon Mechanics
+#
+
+package export::ffmpeg::XviD;
+    use base 'export::ffmpeg';
+
+# Load the myth and nuv utilities, and make sure we're connected to the database
+    use nuv_export::shared_utils;
+    use nuv_export::cli;
+    use nuv_export::ui;
+    use mythtv::recordings;
+
+# Load the following extra parameters from the commandline
+    add_arg('quantisation|q=i', 'Quantisation');
+    add_arg('a_bitrate|a=i',    'Audio bitrate');
+    add_arg('v_bitrate|v=i',    'Video bitrate');
+    add_arg('multipass!',       'Enable two-pass encoding.');
+
+    sub new {
+        my $class = shift;
+        my $self  = {
+                     'cli'      => qr/\bxvid\b/i,
+                     'name'     => 'Export to XviD',
+                     'enabled'  => 1,
+                     'errors'   => [],
+                     'defaults' => {},
+                    };
+        bless($self, $class);
+
+    # Initialize the default parameters
+        $self->load_defaults();
+
+    # Verify any commandline or config file options
+        die "Audio bitrate must be > 0\n" unless (!defined $self->val('a_bitrate') || $self->{'a_bitrate'} > 0);
+        die "Video bitrate must be > 0\n" unless (!defined $self->val('v_bitrate') || $self->{'v_bitrate'} > 0);
+        die "Width must be > 0\n"         unless (!defined $self->val('width')     || $self->{'width'} =~ /^\s*\D/  || $self->{'width'}  > 0);
+        die "Height must be > 0\n"        unless (!defined $self->val('height')    || $self->{'height'} =~ /^\s*\D/ || $self->{'height'} > 0);
+
+    # VBR, multipass, etc.
+        if ($self->val('multipass')) {
+            $self->{'vbr'} = 1;
+        }
+        elsif ($self->val('quantisation')) {
+            die "Quantisation must be a number between 1 and 31 (lower means better quality).\n" if ($self->{'quantisation'} < 1 || $self->{'quantisation'} > 31);
+            $self->{'vbr'} = 1;
+        }
+
+    # Initialize and check for ffmpeg
+        $self->init_ffmpeg();
+
+    # Can we even encode xvid?
+        if (!$self->can_encode('xvid') && !$self->can_encode('libxvid')) {
+            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to xvid.\n"
+                                      ."  (It must be compiled with the --enable-libxvid option)";
+        }
+        if (!$self->can_encode('mp3') && !$self->can_encode('libmp3lame')) {
+            push @{$self->{'errors'}}, "Your ffmpeg installation doesn't support encoding to mp3 audio.";
+        }
+
+    # Any errors?  disable this function
+        $self->{'enabled'} = 0 if ($self->{'errors'} && @{$self->{'errors'}} > 0);
+    # Return
+        return $self;
+    }
+
+# Load default settings
+    sub load_defaults {
+        my $self = shift;
+    # Load the parent module's settings
+        $self->SUPER::load_defaults();
+    # Default bitrates and resolution
+        $self->{'defaults'}{'a_bitrate'} = 128;
+        $self->{'defaults'}{'v_bitrate'} = 960;
+        $self->{'defaults'}{'width'}     = 624;
+    }
+
+# Gather settings from the user
+    sub gather_settings {
+        my $self = shift;
+    # Load the parent module's settings
+        $self->SUPER::gather_settings();
+    # Audio Bitrate
+        $self->{'a_bitrate'} = query_text('Audio bitrate?',
+                                          'int',
+                                          $self->val('a_bitrate'));
+    # VBR options
+        if (!$is_cli) {
+            $self->{'vbr'} = query_text('Variable bitrate video?',
+                                        'yesno',
+                                        $self->val('vbr'));
+            if ($self->{'vbr'}) {
+                $self->{'multipass'} = query_text('Multi-pass (slower, but better quality)?',
+                                                  'yesno',
+                                                  $self->val('multipass'));
+                if (!$self->{'multipass'}) {
+                    while (1) {
+                        my $quantisation = query_text('VBR quality/quantisation (1-31)?',
+                                                      'float',
+                                                      $self->val('quantisation'));
+                        if ($quantisation < 1) {
+                            print "Too low; please choose a number between 1 and 31.\n";
+                        }
+                        elsif ($quantisation > 31) {
+                            print "Too high; please choose a number between 1 and 31\n";
+                        }
+                        else {
+                            $self->{'quantisation'} = $quantisation;
+                            last;
+                        }
+                    }
+                }
+            } else {
+                $self->{'multipass'} = 0;
+            }
+        # Ask the user what video bitrate he/she wants
+            $self->{'v_bitrate'} = query_text('Video bitrate?',
+                                              'int',
+                                              $self->val('v_bitrate'));
+        }
+    # Query the resolution
+        $self->query_resolution();
+    }
+
+    sub export {
+        my $self    = shift;
+        my $episode = shift;
+    # Make sure we have the framerate
+        $self->{'out_fps'} = $episode->{'finfo'}{'fps'};
+    # Embed the title
+        $safe_title = $episode->{'title'};
+        if ($episode->{'subtitle'} ne 'Untitled') {
+            $safe_title .= ' - '.$episode->{'subtitle'};
+        }
+        my $safe_title = shell_escape($safe_title);
+    # Codec name changes between ffmpeg versions
+        my $codec = $self->can_encode('libxvid') ? 'libxvid' : 'xvid';
+    # Build the common ffmpeg string
+        my $ffmpeg_xtra  = ' -vcodec '.$codec
+                          .$self->param('bit_rate', $self->{'v_bitrate'})
+                          .($self->{'vbr'}
+                            ? $self->param('rc_min_rate', 32)
+                             . $self->param('rc_max_rate', (2 * $self->{'v_bitrate'}))
+                             . $self->param('bit_rate_tolerance', 32)
+                             . ' -bufsize 65535'
+                            : '')
+                          .' -flags +mv4+loop+cgop'
+                          .' -trellis 1'
+			  ### .' -aic 1'
+                          .' -mbd 1'
+                          .' -cmp 2 -subcmp 2'
+			  ### .' -cgop 1'
+                           .$self->param('b_quant_factor',     150)
+                           .$self->param('b_quant_offset',     100)
+                           .$self->param('max_b_frames',       1)
+                          ;
+    # Dual pass?
+        if ($self->{'multipass'}) {
+        # Add the temporary file to the list
+            push @tmpfiles, "/tmp/xvid.$$.log";
+        # First pass
+            print "First pass...\n";
+            $self->{'ffmpeg_xtra'} = $ffmpeg_xtra
+                                    ." -pass 1 -passlogfile '/tmp/xvid.$$.log'"
+                                    .' -f avi';
+            $self->SUPER::export($episode, '', 1);
+        # Second pass
+            print "Final pass...\n";
+            $self->{'ffmpeg_xtra'} = $ffmpeg_xtra
+                                   . " -pass 2 -passlogfile '/tmp/xvid.$$.log'";
+        }
+    # Single Pass
+        else {
+            $self->{'ffmpeg_xtra'} = $ffmpeg_xtra
+                                    .($self->{'vbr'}
+                                      ? ' -qmax 31 -qmin '.$self->{'quantisation'}
+                                      : '');
+        }
+    # Don't forget the audio, etc.
+        $self->{'ffmpeg_xtra'} .= ' -acodec '
+                                 .($self->can_encode('libmp3lame') ? 'libmp3lame' : 'mp3')
+                                 .' -async 1 '
+                                 .$self->param('ab', $self->{'a_bitrate'})
+                                 .' -f avi';
+    # Execute the (final pass) encode
+        $self->SUPER::export($episode, '.avi');
+    }
+
+1;  #return true
+
+# vim:ts=4:sw=4:ai:et:si:sts=4
-- 
cgit v0.12


From eab133155ee2720a6e4799246106603b1128061d Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 23:04:11 -0700
Subject: Nvidia packages:added vdpinfo as a dep.

---
 abs/core-testing/nvidia-71xx/PKGBUILD | 4 ++--
 abs/core-testing/nvidia-96xx/PKGBUILD | 4 ++--
 abs/core-testing/nvidia/PKGBUILD      | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/abs/core-testing/nvidia-71xx/PKGBUILD b/abs/core-testing/nvidia-71xx/PKGBUILD
index 3e5d589..4a37424 100644
--- a/abs/core-testing/nvidia-71xx/PKGBUILD
+++ b/abs/core-testing/nvidia-71xx/PKGBUILD
@@ -3,13 +3,13 @@
 pkgname=nvidia-71xx
 pkgver=71.86.09
 _kernver='2.6.28-LinHES'
-pkgrel=1
+pkgrel=2
 pkgdesc="NVIDIA legacy drivers for kernel26-ice, 71xx branch"
 arch=(i686 x86_64)
 [ "$CARCH" = "i686"   ] && ARCH=x86
 [ "$CARCH" = "x86_64" ] && ARCH=x86_64
 url="http://www.nvidia.com/"
-depends=('nvidia-71xx-utils' 'kernel26')
+depends=('nvidia-71xx-utils' 'kernel26' 'vdpinfo=71xx')
 conflicts=('nvidia' 'nvidia-96xx')
 license=('custom')
 source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run
diff --git a/abs/core-testing/nvidia-96xx/PKGBUILD b/abs/core-testing/nvidia-96xx/PKGBUILD
index deb90eb..ee165d2 100644
--- a/abs/core-testing/nvidia-96xx/PKGBUILD
+++ b/abs/core-testing/nvidia-96xx/PKGBUILD
@@ -4,14 +4,14 @@
 pkgname=nvidia-96xx
 pkgver=96.43.09
 _kernver='2.6.28-LinHES'
-pkgrel=4
+pkgrel=5
 pkgdesc="NVIDIA legacy drivers for kernel26, 96xx branch"
 arch=(i686 x86_64)
 license=('custom:NVIDIA')
 [ "$CARCH" = "i686"   ] && ARCH=x86
 [ "$CARCH" = "x86_64" ] && ARCH=x86_64
 url="http://www.nvidia.com/"
-depends=('kernel26>=2.6.28' 'kernel26<2.6.29' 'nvidia-96xx-utils')
+depends=('kernel26>=2.6.28' 'kernel26<2.6.29' 'nvidia-96xx-utils' 'vdpinfo-96xx')
 conflicts=('nvidia' 'nvidia-71xx' 'nvidia-legacy')
 install=nvidia-96xx.install
 license=('custom')
diff --git a/abs/core-testing/nvidia/PKGBUILD b/abs/core-testing/nvidia/PKGBUILD
index eccf01f..e8469c8 100644
--- a/abs/core-testing/nvidia/PKGBUILD
+++ b/abs/core-testing/nvidia/PKGBUILD
@@ -4,13 +4,13 @@
 pkgname=nvidia
 pkgver=185.18.14
 _kernver='2.6.28-LinHES'
-pkgrel=2
+pkgrel=3
 pkgdesc="NVIDIA drivers for kernel26."
 arch=('i686' 'x86_64')
 [ "$CARCH" = "i686"   ] && ARCH=x86
 [ "$CARCH" = "x86_64" ] && ARCH=x86_64
 url="http://www.nvidia.com/"
-depends=('kernel26>=2.6.28' 'kernel26<2.6.29' 'nvidia-utils=185.18.14')
+depends=('kernel26>=2.6.28' 'kernel26<2.6.29' 'nvidia-utils=185.18.14' 'vdpinfo')
 conflicts=('nvidia-96xx' 'nvidia-71xx' 'nvidia-legacy' 'nvidia-beta')
 license=('custom')
 install=nvidia.install
-- 
cgit v0.12


From 4b20016d96d7ab2d4d6964ff353c2cfc791b11f5 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Sun, 26 Jul 2009 23:08:30 -0700
Subject: nvidia-71xx:Fixes typo.

---
 abs/core-testing/nvidia-71xx/PKGBUILD | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/abs/core-testing/nvidia-71xx/PKGBUILD b/abs/core-testing/nvidia-71xx/PKGBUILD
index 4a37424..318b798 100644
--- a/abs/core-testing/nvidia-71xx/PKGBUILD
+++ b/abs/core-testing/nvidia-71xx/PKGBUILD
@@ -3,13 +3,13 @@
 pkgname=nvidia-71xx
 pkgver=71.86.09
 _kernver='2.6.28-LinHES'
-pkgrel=2
+pkgrel=3
 pkgdesc="NVIDIA legacy drivers for kernel26-ice, 71xx branch"
 arch=(i686 x86_64)
 [ "$CARCH" = "i686"   ] && ARCH=x86
 [ "$CARCH" = "x86_64" ] && ARCH=x86_64
 url="http://www.nvidia.com/"
-depends=('nvidia-71xx-utils' 'kernel26' 'vdpinfo=71xx')
+depends=('nvidia-71xx-utils' 'kernel26' 'vdpinfo-71xx')
 conflicts=('nvidia' 'nvidia-96xx')
 license=('custom')
 source=(http://us.download.nvidia.com/XFree86/Linux-${ARCH}/${pkgver}/NVIDIA-Linux-${ARCH}-${pkgver}-pkg0.run
-- 
cgit v0.12


From 9e5dc3ebc4d7cb2945f25d53708a1bdadde81a23 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Mon, 27 Jul 2009 15:28:40 -0400
Subject: mplayer-wrapper.pl now checks for vdpau capability and sets
 parameters accordingly

---
 abs/core-testing/mplayer-wrapper/PKGBUILD          |  2 +-
 .../mplayer-wrapper/mplayer-wrapper.pl             | 54 +++++++++++++++++++---
 2 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/abs/core-testing/mplayer-wrapper/PKGBUILD b/abs/core-testing/mplayer-wrapper/PKGBUILD
index 9c0934b..2774c1a 100644
--- a/abs/core-testing/mplayer-wrapper/PKGBUILD
+++ b/abs/core-testing/mplayer-wrapper/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mplayer-wrapper
 pkgver=1	
-pkgrel=5
+pkgrel=8
 pkgdesc="wrapper for mplayer and mplayer derivatives"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
index 86c40c6..da0e838 100755
--- a/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
+++ b/abs/core-testing/mplayer-wrapper/mplayer-wrapper.pl
@@ -97,7 +97,39 @@ sub dynamic_parameters () {
     my($mediafile)=@_;
     my @parameters = ();
     my $codec="";
+    my %vdpau_supported_modes=();
 
+    # See if the GPU and driver support vdpau for GPU-based accelerated decoding
+    my $command="vdpinfo |";
+    # On supported hardware, vdpinfo produces relevant results that look something like this (see
+    # http://www.phoronix.com/forums/showthread.php?t=14493 for additional details, or run
+    # vdpinfo on vdpau-capable hardware yourself):
+    #
+    #MPEG1             0  2  4096  4096
+    #MPEG2_SIMPLE      3  2  4096  4096
+    #MPEG2_MAIN        3  2  4096  4096
+    #H264_MAIN        41  4  4096  4096
+    #H264_HIGH        41  4  4096  4096
+    
+    my $grabbing_modes=0;
+    open(SHELL, $command);
+    while (<SHELL>) {
+	chop;
+	if (m/Decoder Capabilities/gi) {
+	    $grabbing_modes=1;
+	    #print "*** MODES START NOW"
+	} elsif (m/Output Surface/gi) {
+	    $grabbing_modes=0;
+	} elsif ($grabbing_modes) {
+	    if (m/[A-Z]+[0-9]+/g) {
+		s/(_.*)//g;
+		#print "*** GRABBED MODE $_\n";
+		$vdpau_supported_modes{$_} = 1;
+	    }
+	}
+    }
+    close(SHELL);
+    
     # figure out what codec the video uses
     my $command="mplayer -identify -frames 0 \"$mediafile\" | grep ID_VIDEO_CODEC | cut -c 16- |";
     open(SHELL, $command);
@@ -109,30 +141,38 @@ sub dynamic_parameters () {
     close(SHELL);
 
     # We should use vdpau if it's available and helps with the codec we need to decode.
-    # ??? NOTE: At the moment, vdpau capability is assumed, not verified.
     if ($codec eq "ffh264") { # h.264
-	push(@parameters, "-vo vdpau");
-	push(@parameters, "-vc ffh264vdpau");
+	if ($vdpau_supported_modes{"H264"}) {
+	    push(@parameters, "-vo vdpau");
+	    push(@parameters, "-vc ffh264vdpau");
+	}
     } elsif ($codec eq "ffmpeg2") { # MPEG2
-	push(@parameters, "-vo vdpau");
-	push(@parameters, "-vc ffmpeg12vdpau");
+	if ($vdpau_supported_modes{"MPEG2"}) {
+	    push(@parameters, "-vo vdpau");
+	    push(@parameters, "-vc ffmpeg12vdpau");
+	}
 
+	# ??? although MPEG1 is rare, it seems as if it should work with -vc ffmpeg12vdpau as well
+	
 	# problems have been reported with WMV3 support
 	
 #    } elsif ($codec eq "ffwmv3") { # WMV3
+#	if ($vdpau_supported) {
 #	push(@parameters, "-vo vdpau");
 #	push(@parameters, "-vc ffwmv3vdpau");
-
+#    }
 	# problems have been reported with WVC1 support
 	
 #    } elsif ($codec eq "ffvc1") { # WVC1
+#	if ($vdpau_supported) {
 #	push(@parameters, "-vo vdpau");
 #	push(@parameters, "-vc ffvc1vdpau");
+#    }
 
     } else {
 	push(@parameters, "-vo xv,x11,");
 	push(@parameters, "-vc ,");
-	push(@parameters, "-vf pp=lb,");
+	push(@parameters, "-vf pp=lb,"); # doesn't actually work with vdpau, but doesn't break anything
     }
     return(@parameters);
 }
-- 
cgit v0.12


From d896d0df3cc1fcb4971a029389c21980c0d6e929 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Mon, 27 Jul 2009 16:09:23 -0400
Subject: Apple Trailers works with mplayer-wrapper.pl, and some users may
 benefit from using the vdpau support it provides.

---
 abs/extra-testing/mythappletrailers/PKGBUILD       |   2 +-
 .../mythappletrailers/appletrailer.xml             | 216 ++++++++++-----------
 .../mythappletrailers/myth_trailers_grabber        |   2 +-
 3 files changed, 110 insertions(+), 110 deletions(-)

diff --git a/abs/extra-testing/mythappletrailers/PKGBUILD b/abs/extra-testing/mythappletrailers/PKGBUILD
index 4ce24f9..2cedf05 100644
--- a/abs/extra-testing/mythappletrailers/PKGBUILD
+++ b/abs/extra-testing/mythappletrailers/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=mythappletrailers
 pkgver=0.04.3
-pkgrel=20
+pkgrel=21
 pkgdesc="Unofficial Add-on for MythTV to get Apple.com Movie Trailers."
 arch=('i686' 'x86_64')
 license=('GPL2')
diff --git a/abs/extra-testing/mythappletrailers/appletrailer.xml b/abs/extra-testing/mythappletrailers/appletrailer.xml
index 7efc743..269f1f3 100644
--- a/abs/extra-testing/mythappletrailers/appletrailer.xml
+++ b/abs/extra-testing/mythappletrailers/appletrailer.xml
@@ -2,649 +2,649 @@
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>$9.99</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/999/999-tlr_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/999/999-tlr_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>2012</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/2012/2012-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/2012/2012-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>500 Days of Summer</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox_searchlight/500daysofsummer/500daysofsummer-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox_searchlight/500daysofsummer/500daysofsummer-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>9</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/focus_features/9/9-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/focus_features/9/9-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Adam</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox_searchlight/adam/adam-tlra_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox_searchlight/adam/adam-tlra_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>After Last Season</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/afterlastseason/afterlastseason_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/afterlastseason/afterlastseason_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Aliens In the Attic</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/aliensintheattic/aliensintheattic-tlrg_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/aliensintheattic/aliensintheattic-tlrg_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>All About Steve</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/allaboutsteve/allaboutsteve-tlra_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/allaboutsteve/allaboutsteve-tlra_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Answer Man</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/theanswerman/theanswerman_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/theanswerman/theanswerman_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Armored</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/armored/armored-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/armored/armored-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Astro Boy</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/astroboy/astroboy-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/astroboy/astroboy-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Away We Go</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/focus_features/awaywego/awaywego_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/focus_features/awaywego/awaywego_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Bandslam</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/bandslam/bandslam-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/bandslam/bandslam-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Beyond a Reasonable Doubt</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/beyondareasonabledoubt/beyondareasonabledoubt_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/beyondareasonabledoubt/beyondareasonabledoubt_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Boat That Rocked</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/theboatthatrocked/theboatthatrocked-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/theboatthatrocked/theboatthatrocked-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Boys: the Sherman Brothers’ Story</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/theboys/theboys-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/theboys/theboys-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Brüno</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/bruno/bruno-tlr_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/bruno/bruno-tlr_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Brothers Bloom</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/thebrothersbloom/thebrothersbloom-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/thebrothersbloom/thebrothersbloom-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Cheri</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/miramax/cheri/cheri-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/miramax/cheri/cheri-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Cloudy With a Chance of Meatballs</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/cloudywithachanceofmeatballs/cloudywithachanceofmeatballs-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/cloudywithachanceofmeatballs/cloudywithachanceofmeatballs-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Cold Souls</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/samuel_goldwyn/coldsouls/coldsouls_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/samuel_goldwyn/coldsouls/coldsouls_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Couples Retreat</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/couplesretreat/couplesretreat-tlr_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/couplesretreat/couplesretreat-tlr_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Cove</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/thecove/thecove_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/thecove/thecove_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Crypt</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/thecrypt/thecrypt_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/thecrypt/thecrypt_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Dance Flick</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/danceflick/danceflick-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/danceflick/danceflick-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Departures</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/departures/departures_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/departures/departures_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>District 9</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/district9/district9-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/district9/district9-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Drag Me To Hell</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/dragmetohell/dragmetohell-tlr1rr_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/dragmetohell/dragmetohell-tlr1rr_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Easy Virtue</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/easyvirtue/easyvirtue_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/easyvirtue/easyvirtue_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Extract</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/miramax/extract/extract-tsr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/miramax/extract/extract-tsr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Fame</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/mgm/fame/fame-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/mgm/fame/fame-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Final Destination</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/newline/thefinaldestination/thefinaldestination-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/newline/thefinaldestination/thefinaldestination-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Food, Inc.</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/foodinc/foodinc_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/foodinc/foodinc_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Funny People</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/funnypeople/funnypeople-tlr1r_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/funnypeople/funnypeople-tlr1r_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>G-Force</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/gforce/gforce-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/gforce/gforce-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>G.I. Joe: Rise of Cobra</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/gijoe/gijoetheriseofcobra-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/gijoe/gijoetheriseofcobra-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Gamer</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/gamer/gamer-tlr2a_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/gamer/gamer-tlr2a_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Girl From Monaco</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/girlfrommonaco/girlfrommonaco_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/girlfrommonaco/girlfrommonaco_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Girlfriend Experience</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/thegirlfriendexperience/thegirlfriendexperience_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/thegirlfriendexperience/thegirlfriendexperience_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Goods: Live Hard. Sell Hard.</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount_vantage/thegoods/thegoods-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount_vantage/thegoods/thegoods-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>H2: Halloween 2</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/weinstein/halloween2/halloween2-tlr1r_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/weinstein/halloween2/halloween2-tlr1r_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Hangover</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/thehangover/thehangover-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/thehangover/thehangover-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Harry Potter and the Half-Blood Prince</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/harrypotterandthehalfbloodprince/harrypotterhalfbloodprince-tlr4b_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/harrypotterandthehalfbloodprince/harrypotterhalfbloodprince-tlr4b_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Humpday</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/humpday/humpday_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/humpday/humpday_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Hurt Locker</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/thehurtlocker/thehurtlocker_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/thehurtlocker/thehurtlocker_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>I Can Do Bad All by Myself</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/icandobadallbymyself/icandobadallbymyself-tlr1a_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/icandobadallbymyself/icandobadallbymyself-tlr1a_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>I Hate Valentine’s Day</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/ifc_films/ihatevalentinesday/ihatevalentinesday_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/ifc_films/ihatevalentinesday/ihatevalentinesday_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>I Love You Beth Cooper</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/iloveyoubethcooper/iloveyoubethcooper-tlra_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/iloveyoubethcooper/iloveyoubethcooper-tlra_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Ice Age: Dawn of the Dinosaurs</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/ice_age_iii/iceage3-tlrn_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/ice_age_iii/iceage3-tlrn_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Imagine That</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/imaginethat/imaginethat-tlr2r_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/imaginethat/imaginethat-tlr2r_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Informant!</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/theinformant/theinformant-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/theinformant/theinformant-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Inglourious Basterds</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/weinstein/inglouriousbasterds/inglouriousbasterds-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/weinstein/inglouriousbasterds/inglouriousbasterds-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>It Might Get Loud</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/itmightgetloud/itmightgetloud_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/itmightgetloud/itmightgetloud_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Julie  Julia</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/julieandjulia/julieandjulia-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/julieandjulia/julieandjulia-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Land of the Lost</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/landofthelost/landofthelost-tlr5_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/landofthelost/landofthelost-tlr5_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Last Airbender</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/thelastairbender/thelastairbender-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/thelastairbender/thelastairbender-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Life Is Hot In Cracktown</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/lifeishotincracktown/lifeishotincracktown_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/lifeishotincracktown/lifeishotincracktown_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Lorna’s Silence</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/lornassilence/lornassilence_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/lornassilence/lornassilence_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Monsters Vs. Aliens</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/dreamworks/monstersvsaliens/monstersvsaliens-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/dreamworks/monstersvsaliens/monstersvsaliens-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Moon</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/moon/moon_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/moon/moon_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>More Than a Game</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/morethanagame/morethanagame-tlr1a_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/morethanagame/morethanagame-tlr1a_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>My Life In Ruins</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox_searchlight/mylifeinruins/mylifeinruins-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox_searchlight/mylifeinruins/mylifeinruins-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>My Sister’s Keeper</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/newline/mysisterskeeper/mysisterskeeper-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/newline/mysisterskeeper/mysisterskeeper-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Night At the Museum: Battle of the Smithsonian</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/nightatthemuseum2/nightatthemuseum2-tlro_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox/nightatthemuseum2/nightatthemuseum2-tlro_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Nine</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/weinstein/nine/nine-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/weinstein/nine/nine-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>O’Horten</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/ohorten/ohorten_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/ohorten/ohorten_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Oceans</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/oceans/oceans-tsr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/oceans/oceans-tsr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Orphan</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/orphan/orphan-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/orphan/orphan-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Pandorum</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/pandorum/pandorum_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/pandorum/pandorum_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Paper Heart</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/paperheart/paperheart_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/paperheart/paperheart_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Planet 51</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/planet51/planet51-tlr1r_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/planet51/planet51-tlr1r_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Ponyo</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/ponyo/ponyo_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/ponyo/ponyo_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Post Grad</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox_searchlight/postgrad/postgrad-tlra_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/fox_searchlight/postgrad/postgrad-tlra_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Precious</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/precious/precious-tlr2a_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/precious/precious-tlr2a_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Princess and the Frog</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/princessandthefrog/princessandthefrog-tsr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/princessandthefrog/princessandthefrog-tsr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Proposal</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/touchstone/theproposal/theproposal-tlr3_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/touchstone/theproposal/theproposal-tlr3_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Public Enemies</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/publicenemies/publicenemies-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/universal/publicenemies/publicenemies-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Road</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/weinstein/theroad/theroad_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/weinstein/theroad/theroad_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Sex Positive</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/sexpositive/sexpositive_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/sexpositive/sexpositive_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Sherlock Holmes</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/sherlockholmes/sherlockholmes-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/sherlockholmes/sherlockholmes-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Shorts</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/shorts/shorts-tlr2a_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/shorts/shorts-tlr2a_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Shrink</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/shrink/shrink-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/lionsgate/shrink/shrink-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Shutter Island</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/shutterisland/shutterisland-tlr1r_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/shutterisland/shutterisland-tlr1r_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Soloist</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/thesoloist/thesoloist-tlr1r_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/thesoloist/thesoloist-tlr1r_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Sorority Row</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/sororityrow/sororityrow-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/sororityrow/sororityrow-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Soul Power</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/soulpower/soulpower_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/soulpower/soulpower_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Spread</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/spread/spread_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/spread/spread_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Star Trek</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/star_trek/startrek-tlr3_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/star_trek/startrek-tlr3_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Stepfather</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/thestepfather/thestepfather_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/thestepfather/thestepfather_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Stoning of Soraya M.</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/thestoningofsorayam/thestoningofsorayam_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/thestoningofsorayam/thestoningofsorayam_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Street Dreams</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/streetdreams/streetdreams_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/streetdreams/streetdreams_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Surrogates</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/touchstone/surrogates/surrogates-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/touchstone/surrogates/surrogates-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Surveillance</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/surveillance/surveillance_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/magnolia_pictures/surveillance/surveillance_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Taking of Pelham 123</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/thetakingofpelham123/thetakingofpelham123-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/thetakingofpelham123/thetakingofpelham123-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Taking Woodstock</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/focus_features/takingwoodstock/takingwoodstock-tlr_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/focus_features/takingwoodstock/takingwoodstock-tlr_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Terminator Salvation</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/terminatorsalvation/terminatorsalvation-tlr3_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/terminatorsalvation/terminatorsalvation-tlr3_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Time Traveler’s Wife</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/newline/timetravelerswife/timetravelerswife-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/newline/timetravelerswife/timetravelerswife-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Toy Story 3</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/toystory3/toystory3-tsr_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/toystory3/toystory3-tsr_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Transformers: Revenge of the Fallen</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/transformers2/transformersrevengeofthefallen-tlr2r_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/paramount/transformers2/transformersrevengeofthefallen-tlr2r_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Twilight Saga: New Moon</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/newmoon/newmoon-tsr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/summit/newmoon/newmoon-tsr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>The Ugly Truth</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/theuglytruth/theuglytruth-tlr2_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/theuglytruth/theuglytruth-tlr2_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Untitled Michael Moore Project</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/untitledmichaelmooreproject/untitledmichaelmoore-tsr_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/untitledmichaelmooreproject/untitledmichaelmoore-tsr_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Up</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/up/up-tlr3r_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/disney/up/up-tlr3r_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>What Goes Up</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/whatgoesup/whatgoesup-tlr_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/independent/whatgoesup/whatgoesup-tlr_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Whatever Works</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/whateverworks/whateverworks_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony/whateverworks/whateverworks_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Where the Wild Things Are</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/wherethewildthingsare/wherethewildthingsare-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/wb/wherethewildthingsare/wherethewildthingsare-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Year One</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/yearone/yearone-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/yearone/yearone-tlr1_h640w.mov</action>
 	</button>
 
 	<button>
 		<type>VIDEO_BROWSER</type>
 		<text>Zombieland</text>
-		<action>EXEC /usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/zombieland/zombieland-tlr1_h640w.mov</action>
+		<action>EXEC mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000 http://movies.apple.com/movies/sony_pictures/zombieland/zombieland-tlr1_h640w.mov</action>
 	</button>
 
 </mythmenu>
diff --git a/abs/extra-testing/mythappletrailers/myth_trailers_grabber b/abs/extra-testing/mythappletrailers/myth_trailers_grabber
index 1d686aa..2039d7c 100755
--- a/abs/extra-testing/mythappletrailers/myth_trailers_grabber
+++ b/abs/extra-testing/mythappletrailers/myth_trailers_grabber
@@ -30,7 +30,7 @@
 // CONFIGURATION
 
 // command to use when streaming content from the internet - cache 50% before displaying and use 32MB of memory
-$STREAMING_EXEC_CMD		= '/usr/bin/mplayer -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000';
+$STREAMING_EXEC_CMD		= 'mplayer-wrapper.pl -fs -zoom -really-quiet -user-agent NSPlayer -cache 16000';
 $APPLE_FEED = 'http://www.apple.com/trailers/home/xml/current.xml';
 /************************************************************************/
 // Shouldn't Need To modify anything beyond here
-- 
cgit v0.12


From 2545403d49a735e102d79acb1d4bb0689e489d3e Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Mon, 27 Jul 2009 16:44:01 -0400
Subject: mplayer-wrapper didn't sync last time for some reason

---
 abs/core-testing/mplayer-wrapper/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/mplayer-wrapper/PKGBUILD b/abs/core-testing/mplayer-wrapper/PKGBUILD
index 2774c1a..c64875d 100644
--- a/abs/core-testing/mplayer-wrapper/PKGBUILD
+++ b/abs/core-testing/mplayer-wrapper/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=mplayer-wrapper
 pkgver=1	
-pkgrel=8
+pkgrel=9
 pkgdesc="wrapper for mplayer and mplayer derivatives"
 arch=('i686' 'x86_64')
 
-- 
cgit v0.12


From bc755745ac71681968113de782f748b5a626847b Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Tue, 28 Jul 2009 21:09:49 +0930
Subject: xulrunner: bump+rebuild for libjpeg

---
 abs/extra-testing/xulrunner/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/xulrunner/PKGBUILD b/abs/extra-testing/xulrunner/PKGBUILD
index 4acbc11..3f3f757 100644
--- a/abs/extra-testing/xulrunner/PKGBUILD
+++ b/abs/extra-testing/xulrunner/PKGBUILD
@@ -4,7 +4,7 @@
 pkgname=xulrunner
 pkgver=1.9.0.9
 _ffoxver=3.0.9
-pkgrel=1
+pkgrel=2
 pkgdesc="Mozilla Runtime Environment"
 arch=(i686 x86_64)
 license=('MPL' 'GPL' 'LGPL')
-- 
cgit v0.12


From 6bdfe7a58ab8e7078db0d77d50757be9743b4842 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Tue, 28 Jul 2009 21:29:49 +0930
Subject: firefox: bump and rebuild for libjpeg

---
 abs/extra-testing/community/firefox/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/community/firefox/PKGBUILD b/abs/extra-testing/community/firefox/PKGBUILD
index 922a092..c72e419 100644
--- a/abs/extra-testing/community/firefox/PKGBUILD
+++ b/abs/extra-testing/community/firefox/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=firefox
 pkgver=3.0.9
-pkgrel=1
+pkgrel=2
 pkgdesc="Standalone web browser from mozilla.org"
 arch=(i686 x86_64)
 license=('MPL' 'GPL' 'LGPL')
-- 
cgit v0.12


From ae7ca3c512c066ee26de9ed831a0deb187565435 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Tue, 28 Jul 2009 22:00:38 +0930
Subject: php: bump and rebuild for libjpeg

---
 abs/core-testing/php/PKGBUILD | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/abs/core-testing/php/PKGBUILD b/abs/core-testing/php/PKGBUILD
index 598b37a..c549d56 100644
--- a/abs/core-testing/php/PKGBUILD
+++ b/abs/core-testing/php/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=php
 pkgver=5.2.6
-pkgrel=19
+pkgrel=20
 _suhosinver=0.9.6.2
 pkgdesc='A high-level scripting language'
 arch=('i686' 'x86_64')
@@ -39,10 +39,14 @@ optdepends=('bzip2: bz2' \
             'libxslt: xsl' \
             )
 options=('emptydirs')
-source=("http://www.php.net/distributions/${pkgname}-${pkgver}.tar.bz2" \
+source=("http://museum.php.net/php5/${pkgname}-${pkgver}.tar.bz2" \
         "http://download.suhosin.org/suhosin-patch-${pkgver}-${_suhosinver}.patch.gz" \
         'php.ini' 'apache.conf' 'db-configure.patch')
-
+md5sums=('7380ffecebd95c6edb317ef861229ebd'
+         'f2ec986341a314c271259dbe4d940858'
+         '160b4a4f6fba59e646c3b79e3cb0f134'
+         '96ca078be6729b665be8a865535a97bf'
+         '74e5ce5a02488ec91b1c59f539e42936')
 
 build() {
 	phpconfig="--prefix=/usr \
-- 
cgit v0.12


From d51f475d42863cd466df8cfa3b5e22c04ca82760 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Tue, 28 Jul 2009 22:11:29 +0930
Subject: zoneminder: bump and rebound for deps

---
 abs/core-testing/zoneminder/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/zoneminder/PKGBUILD b/abs/core-testing/zoneminder/PKGBUILD
index ad7037e..6bfb082 100644
--- a/abs/core-testing/zoneminder/PKGBUILD
+++ b/abs/core-testing/zoneminder/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=zoneminder
 pkgver=1.23.3
-pkgrel=5
+pkgrel=6
 pkgdesc="Capture, analyse, record and monitor video security cameras."
 arch=('i686')
 url="http://www.zoneminder.com"
-- 
cgit v0.12


From ed8076a8796c4371d4cf2351edc1bcc174a87af0 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Tue, 28 Jul 2009 22:42:23 +0930
Subject: gtk2 hal perl-tk transcode: bump and rebuild for various deps

---
 abs/core-testing/gtk2/PKGBUILD                 | 2 +-
 abs/core-testing/hal/PKGBUILD                  | 2 +-
 abs/core-testing/perl_modules/perl-tk/PKGBUILD | 2 +-
 abs/core-testing/transcode/PKGBUILD            | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/core-testing/gtk2/PKGBUILD b/abs/core-testing/gtk2/PKGBUILD
index 319aed3..63199ab 100644
--- a/abs/core-testing/gtk2/PKGBUILD
+++ b/abs/core-testing/gtk2/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=gtk2
 pkgver=2.16.1
-pkgrel=2
+pkgrel=3
 pkgdesc="The GTK+ Toolkit (v2)"
 arch=(i686 x86_64)
 url="http://www.gtk.org/"
diff --git a/abs/core-testing/hal/PKGBUILD b/abs/core-testing/hal/PKGBUILD
index 4bad72d..f3e48cc 100644
--- a/abs/core-testing/hal/PKGBUILD
+++ b/abs/core-testing/hal/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=hal
 pkgver=0.5.11
-pkgrel=4
+pkgrel=5
 pkgdesc="Hardware Abstraction Layer"
 arch=(i686 x86_64)
 license=('GPL' 'custom')
diff --git a/abs/core-testing/perl_modules/perl-tk/PKGBUILD b/abs/core-testing/perl_modules/perl-tk/PKGBUILD
index 7a16357..7aa281d 100644
--- a/abs/core-testing/perl_modules/perl-tk/PKGBUILD
+++ b/abs/core-testing/perl_modules/perl-tk/PKGBUILD
@@ -6,7 +6,7 @@ pkgname=perl-tk
 _realname=Tk
 #stable pkgver=804.027
 pkgver=804.028
-pkgrel=1
+pkgrel=2
 pkgdesc="This module/script allows perl to interface with tk"
 license=('PerlArtistic' 'GPL' 'custom')
 arch=(i686 x86_64)
diff --git a/abs/core-testing/transcode/PKGBUILD b/abs/core-testing/transcode/PKGBUILD
index d1d0fe5..4535bce 100644
--- a/abs/core-testing/transcode/PKGBUILD
+++ b/abs/core-testing/transcode/PKGBUILD
@@ -5,7 +5,7 @@
 pkgname=transcode
 _sripver=0.3-4
 pkgver=1.1.0
-pkgrel=5
+pkgrel=6
 pkgdesc="Transcode is a video/DVD ripper and encoder for the terminal/console."
 arch=(i686 x86_64)
 license=('GPL2')
-- 
cgit v0.12


From 0f76841010966f1d4614d68fffbbf1e4dff13422 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Tue, 28 Jul 2009 09:27:07 -0400
Subject: had to bump and reuild appletrailers package to sync it

---
 abs/extra-testing/mythappletrailers/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/mythappletrailers/PKGBUILD b/abs/extra-testing/mythappletrailers/PKGBUILD
index 2cedf05..b6ce459 100644
--- a/abs/extra-testing/mythappletrailers/PKGBUILD
+++ b/abs/extra-testing/mythappletrailers/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=mythappletrailers
 pkgver=0.04.3
-pkgrel=21
+pkgrel=23
 pkgdesc="Unofficial Add-on for MythTV to get Apple.com Movie Trailers."
 arch=('i686' 'x86_64')
 license=('GPL2')
-- 
cgit v0.12


From 8014c0b927b9d6490c84289309878d510dde1e30 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Tue, 28 Jul 2009 09:27:54 -0400
Subject: updated twk_general.pl for first integration test for userspace
 transcoders

---
 abs/core-testing/tweaker/PKGBUILD           | 2 +-
 abs/core-testing/tweaker/bin/twk_general.pl | 8 +++++---
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index e25ef9f..d5b9f7a 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=tweaker
 pkgver=1
-pkgrel=44
+pkgrel=45
 pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds"
 arch=('i686' 'x86_64')
 
diff --git a/abs/core-testing/tweaker/bin/twk_general.pl b/abs/core-testing/tweaker/bin/twk_general.pl
index 9043b6c..f181310 100755
--- a/abs/core-testing/tweaker/bin/twk_general.pl
+++ b/abs/core-testing/tweaker/bin/twk_general.pl
@@ -405,10 +405,12 @@ sub implement_option {
 	    change_or_make_setting('StartupSecsBeforeRecording', '120');
 	    change_or_make_setting('TruncateDeletesSlowly', '1');
 	    change_or_make_setting('UseOutputPictureControls', '1');
-	    change_or_make_setting('UserJob4', 'myth2mp3 -cut \"%DIR%\" \"%FILE%\"');
+	    change_or_make_setting('UserJob2', 'myth2x264 \"%DIR%/%FILE%\" \"%TITLE% - %SUBTITLE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"');
+	    change_or_make_setting('UserJob3', 'myth2xvid \"%DIR%/%FILE%\" \"%TITLE% - %SUBTITLE%\" \"%CHANID%\" \"%STARTTIME%\" \"%JOBID%\"');
+	    change_or_make_setting('UserJob4', 'myth2mp3 \"%DIR%/%FILE%\" \"%TITLE% - %SUBTITLE%\" \"%CHANID%\" \"%STARTTIME%\"');
 	    change_or_make_setting('UserJobDesc1', 'User Job #1');
-	    change_or_make_setting('UserJobDesc2', 'User Job #2');
-	    change_or_make_setting('UserJobDesc3', 'User Job #3');
+	    change_or_make_setting('UserJobDesc2', 'Transcode for iPod');
+	    change_or_make_setting('UserJobDesc3', 'Transcode to xvid');
 	    change_or_make_setting('UserJobDesc4', 'Extract audio');
 	    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');
-- 
cgit v0.12


From aa49b4051a7d0514f2709d962056dc35c1cc0d93 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Tue, 28 Jul 2009 23:06:56 +0930
Subject: flac lighttpd: bump add deps and rebuild

---
 abs/core-testing/flac/PKGBUILD     | 4 ++--
 abs/core-testing/lighttpd/PKGBUILD | 5 ++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/abs/core-testing/flac/PKGBUILD b/abs/core-testing/flac/PKGBUILD
index ce31e8b..f28b964 100644
--- a/abs/core-testing/flac/PKGBUILD
+++ b/abs/core-testing/flac/PKGBUILD
@@ -3,13 +3,13 @@
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 pkgname=flac
 pkgver=1.2.1
-pkgrel=1
+pkgrel=2
 pkgdesc="Free Lossless Audio Codec"
 license=('custom:Xiph' 'LGPL' 'GPL' 'FDL')
 url="http://flac.sourceforge.net/"
 arch=(i686 x86_64)
 options=('!libtool')
-depends=('glibc' 'libogg')
+depends=('glibc' 'libogg' 'xmms')
 makedepends=('nasm' 'xmms')
 source=(http://downloads.sf.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz \
 	flac-1.2.1-gcc43.patch)
diff --git a/abs/core-testing/lighttpd/PKGBUILD b/abs/core-testing/lighttpd/PKGBUILD
index 1c64bbf..d0811ae 100644
--- a/abs/core-testing/lighttpd/PKGBUILD
+++ b/abs/core-testing/lighttpd/PKGBUILD
@@ -3,16 +3,15 @@
 
 pkgname=lighttpd
 pkgver=1.4.20
-pkgrel=34
+pkgrel=35
 pkgdesc='a secure, fast, compliant and very flexible web-server'
 license=('custom')
 arch=('i686' 'x86_64')
 url="http://www.lighttpd.net/"
-depends=('pcre' 'openssl' 'zlib' 'bzip2' 'attr' 'libldap')
+depends=('pcre' 'openssl' 'zlib' 'bzip2' 'attr' 'libldap' 'lua')
 makedepends=('fcgi' 'libmysqlclient' 'lua' 'libxml2' 'e2fsprogs' 'sqlite3' 'gdbm' 'pkgconfig')
 optdepends=('libxml2: mod_webdav' \
             'e2fsprogs: mod_webdav' \
-            'lua: mod_cml/mod_magnet' \
             'libmysqlclient: mod_mysql_vhost' \
             'sqlite3: mod_webdav' \
             'gdbm: mod_trigger_b4_dl' \
-- 
cgit v0.12


From 2679bf1f66456475177c3300cc68ce2016ed913b Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Tue, 28 Jul 2009 13:27:35 -0400
Subject: bumped tweaker rev for sync

---
 abs/core-testing/tweaker/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index d5b9f7a..67bfb3d 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=tweaker
 pkgver=1
-pkgrel=45
+pkgrel=46
 pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds"
 arch=('i686' 'x86_64')
 
-- 
cgit v0.12


From ecaea0d90a7be8a46472924094404eb8626a9a02 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Tue, 28 Jul 2009 14:15:23 -0400
Subject: bumped version and rebuilt to try to sync

---
 abs/core-testing/gtk2/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/gtk2/PKGBUILD b/abs/core-testing/gtk2/PKGBUILD
index 63199ab..f3fb952 100644
--- a/abs/core-testing/gtk2/PKGBUILD
+++ b/abs/core-testing/gtk2/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=gtk2
 pkgver=2.16.1
-pkgrel=3
+pkgrel=4
 pkgdesc="The GTK+ Toolkit (v2)"
 arch=(i686 x86_64)
 url="http://www.gtk.org/"
-- 
cgit v0.12


From 1656e7b6111798331fb834bf7d440e36b73425ee Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Tue, 28 Jul 2009 14:15:43 -0400
Subject: gnuplot 4.2.0, used in graphload

---
 abs/extra-testing/gnuplot/PKGBUILD | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 abs/extra-testing/gnuplot/PKGBUILD

diff --git a/abs/extra-testing/gnuplot/PKGBUILD b/abs/extra-testing/gnuplot/PKGBUILD
new file mode 100644
index 0000000..34d32ac
--- /dev/null
+++ b/abs/extra-testing/gnuplot/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id$
+# Maintainer: damir <damir@archlinux.org>
+# Contributor: Niklas Volbers <mithrandir42@web.de>
+
+pkgname=gnuplot
+pkgver=4.2.0
+pkgrel=1
+pkgdesc="Command-line driven interactive data and function plotting utility"
+url="http://www.gnuplot.info"
+depends=('gd>=2.0.29' 'wxgtk')
+makedepends=('texinfo')
+license='custom'
+arch=('i686')
+source=(http://download.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=(f688a578ddb4c376fd7d91ce444a0745)
+
+build() {
+  cd $startdir/src/$pkgname-$pkgver
+
+  ./configure --prefix=/usr \
+    --datadir=/usr/share \
+    --libexecdir=/usr/bin \
+    --with-readline=gnu \
+    --enable-history-file \
+    --with-x
+
+   make X11_DRIVER_DIR='/usr/bin' || return 1
+
+   make DESTDIR=$startdir/pkg \
+      libexecdir=/usr/bin \
+      pkglibexecdir=/usr/bin install
+
+   install -D $startdir/src/$pkgname-$pkgver/Copyright $startdir/pkg/usr/share/licenses/custom/gnuplot/Copyright
+}
-- 
cgit v0.12


From 6b6568b3395d069818ab71a9c55f6e92300e4751 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Tue, 28 Jul 2009 14:16:02 -0400
Subject: graphload uses gnuplot to graph total CPU load; useful in testing

---
 abs/extra-testing/graphload/PKGBUILD     | 16 ++++++++++++++++
 abs/extra-testing/graphload/graphload.sh | 17 +++++++++++++++++
 2 files changed, 33 insertions(+)
 create mode 100644 abs/extra-testing/graphload/PKGBUILD
 create mode 100755 abs/extra-testing/graphload/graphload.sh

diff --git a/abs/extra-testing/graphload/PKGBUILD b/abs/extra-testing/graphload/PKGBUILD
new file mode 100644
index 0000000..fb73fc1
--- /dev/null
+++ b/abs/extra-testing/graphload/PKGBUILD
@@ -0,0 +1,16 @@
+pkgname=graphload
+pkgver=1
+pkgrel=1
+pkgdesc="command to graph the total CPU utilization for N-core systems for a given interval"
+depends=('gnuplot>=4.2.0')
+license='GPLv2'
+arch=('i686')
+
+build() {
+   LH_ROOT=/usr/LH
+   mkdir -p $startdir/pkg/$LH_ROOT/bin/
+
+   cd $startdir
+   # executables
+   install -m0755 -D graphload.sh  $startdir/pkg/$LH_ROOT/bin/
+}
diff --git a/abs/extra-testing/graphload/graphload.sh b/abs/extra-testing/graphload/graphload.sh
new file mode 100755
index 0000000..79023ec
--- /dev/null
+++ b/abs/extra-testing/graphload/graphload.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+MYTICKS=100
+MYINTERVAL=4 # we sample once every $MYINTERVAL seconds
+MYINVERSEINTERVAL=0.25
+
+top -d $MYINVERSEINTERVAL -n $MYTICKS -b -i | grep Cpu | perl -e "while(<>) { split(','); \$load = 100 - substr @_[3], 0, -3; print \$load,\"\n\";}" > profile
+perl -e '$second=0; while(<>) { chop(); $load = $_; print "$second $load "; split " ", $load; print @_[0] + @_[1], "\n"; $second+=0.25;}' < profile > points
+echo "set grid
+set xrange [0: $(($MYTICKS/$MYINTERVAL))]
+set yrange [0: 101]
+set xtics 0,$MYINVERSEINTERVAL,$(($MYTICKS/$MYINTERVAL))
+set xlabel \"time\"
+set ylabel \"CPU usage\"
+plot \"points\" using 1:2 with lines title 'total load'
+replot" > gplot.cmds
+gnuplot -persist gplot.cmds
-- 
cgit v0.12


From 1233da3e8ab22ef12722caa102255e9905ce2fc4 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Tue, 28 Jul 2009 14:55:08 -0400
Subject: Had to drop down to gnuplot 4.0.0 because of libjpeg dependencies

---
 abs/extra-testing/gnuplot/PKGBUILD   | 6 +++---
 abs/extra-testing/graphload/PKGBUILD | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/extra-testing/gnuplot/PKGBUILD b/abs/extra-testing/gnuplot/PKGBUILD
index 34d32ac..24a801a 100644
--- a/abs/extra-testing/gnuplot/PKGBUILD
+++ b/abs/extra-testing/gnuplot/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: Niklas Volbers <mithrandir42@web.de>
 
 pkgname=gnuplot
-pkgver=4.2.0
+pkgver=4.0.0
 pkgrel=1
 pkgdesc="Command-line driven interactive data and function plotting utility"
 url="http://www.gnuplot.info"
@@ -11,8 +11,8 @@ depends=('gd>=2.0.29' 'wxgtk')
 makedepends=('texinfo')
 license='custom'
 arch=('i686')
-source=(http://download.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz)
-md5sums=(f688a578ddb4c376fd7d91ce444a0745)
+source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
+md5sums=(66258443d9f93cc4f46b147dac33e63a)
 
 build() {
   cd $startdir/src/$pkgname-$pkgver
diff --git a/abs/extra-testing/graphload/PKGBUILD b/abs/extra-testing/graphload/PKGBUILD
index fb73fc1..4fa0e66 100644
--- a/abs/extra-testing/graphload/PKGBUILD
+++ b/abs/extra-testing/graphload/PKGBUILD
@@ -2,7 +2,7 @@ pkgname=graphload
 pkgver=1
 pkgrel=1
 pkgdesc="command to graph the total CPU utilization for N-core systems for a given interval"
-depends=('gnuplot>=4.2.0')
+depends=('gnuplot>=4.0.0')
 license='GPLv2'
 arch=('i686')
 
-- 
cgit v0.12


From cd301114df042f35f6176d8ea210a26ad3ed31a7 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Tue, 28 Jul 2009 22:58:37 -0700
Subject: Added 44 additional remote conf/lircrc.

---
 abs/core-testing/system-templates/PKGBUILD         |   2 +-
 .../remotes/Avermedia_77x/lircd-avermedia77x.conf  |  66 ++
 .../remotes/Avermedia_77x/lircrc-avermedia771.txt  | 475 ++++++++++++++
 .../templates/remotes/Avermedia_77x/preview.jpg    | Bin 0 -> 1587 bytes
 .../remotes/Avermedia_98/lircd-avermedia98.conf    |  97 +++
 .../remotes/Avermedia_98/lircrc-avermedia98.txt    | 477 ++++++++++++++
 .../templates/remotes/Avermedia_98/preview.jpg     | Bin 0 -> 1587 bytes
 .../remotes/Avertv_USB/lircd-avertvusb.conf        |  65 ++
 .../remotes/Avertv_USB/lircrc-avertvusb.txt        | 482 ++++++++++++++
 .../templates/remotes/Avertv_USB/preview.jpg       | Bin 0 -> 1587 bytes
 .../remotes/Cinergy/lircd-cinergy400600.conf       |  67 ++
 .../remotes/Cinergy/lircrc-cinergy400600.txt       | 474 +++++++++++++
 .../templates/remotes/Cinergy/preview.jpg          | Bin 0 -> 1587 bytes
 .../remotes/Cinergy_1400/lircd-cinergy1400.conf    |  71 ++
 .../remotes/Cinergy_1400/lircrc-cinergy1400.txt    | 474 +++++++++++++
 .../templates/remotes/Cinergy_1400/preview.jpg     | Bin 0 -> 1587 bytes
 .../remotes/Cinergy_T2/lircd-cinergyT2.conf        |  72 ++
 .../remotes/Cinergy_T2/lircrc-cinergyT2.txt        | 474 +++++++++++++
 .../templates/remotes/Cinergy_T2/preview.jpg       | Bin 0 -> 1587 bytes
 .../templates/remotes/Compro/lircd-compro.conf     | 364 ++++++++++
 .../templates/remotes/Compro/lircrc-compro.txt     | 487 ++++++++++++++
 .../templates/remotes/Compro/preview.jpg           | Bin 0 -> 1587 bytes
 .../remotes/Dvico_MCE/lircd-dvicomce.conf          |  77 +++
 .../remotes/Dvico_MCE/lircrc-dvicomce.txt          | 475 ++++++++++++++
 .../templates/remotes/Dvico_MCE/preview.jpg        | Bin 0 -> 1587 bytes
 .../remotes/Dvico_MCE_old/lircd-dvicomceold.conf   |  76 +++
 .../remotes/Dvico_MCE_old/lircrc-dvicomceold.txt   | 526 +++++++++++++++
 .../templates/remotes/Dvico_MCE_old/preview.jpg    | Bin 0 -> 1587 bytes
 .../remotes/Dvico_slim/lircd-dvicoslim.conf        |  63 ++
 .../remotes/Dvico_slim/lircrc-dvicoslim.txt        | 475 ++++++++++++++
 .../templates/remotes/Dvico_slim/preview.jpg       | Bin 0 -> 1587 bytes
 .../remotes/Flyvideo_2000/lircd-flyvideo2000.conf  |  57 ++
 .../remotes/Flyvideo_2000/lircrc-flyvideo2000.txt  | 474 +++++++++++++
 .../templates/remotes/Flyvideo_2000/preview.jpg    | Bin 0 -> 1587 bytes
 .../remotes/Flyvideo_3000/lircd-flyvideo3000.conf  |  47 ++
 .../remotes/Flyvideo_3000/lircrc-flyvideo3000.txt  | 474 +++++++++++++
 .../templates/remotes/Flyvideo_3000/preview.jpg    | Bin 0 -> 1587 bytes
 .../templates/remotes/Hercules/lircd-hercules.conf |  61 ++
 .../templates/remotes/Hercules/lircrc-hercules.txt | 475 ++++++++++++++
 .../templates/remotes/Hercules/preview.jpg         | Bin 0 -> 1587 bytes
 .../remotes/Kworld_110/lircd-kworld110.conf        |  84 +++
 .../remotes/Kworld_110/lircrc-kworld110.txt        | 482 ++++++++++++++
 .../templates/remotes/Kworld_110/preview.jpg       | Bin 0 -> 1587 bytes
 .../remotes/Kworld_220/lircd-kworld220.conf        |  80 +++
 .../remotes/Kworld_220/lircrc-kworld220.txt        | 482 ++++++++++++++
 .../templates/remotes/Kworld_220/preview.jpg       | Bin 0 -> 1587 bytes
 .../remotes/Kworld_310/lircd-kworld310.conf        |  80 +++
 .../remotes/Kworld_310/lircrc-kworld310.txt        | 482 ++++++++++++++
 .../templates/remotes/Kworld_310/preview.jpg       | Bin 0 -> 1587 bytes
 .../remotes/Kworld_DVBT/lircd-kworlddvbt.conf      |  71 ++
 .../remotes/Kworld_DVBT/lircrc-kworlddvbt.txt      | 474 +++++++++++++
 .../templates/remotes/Kworld_DVBT/preview.jpg      | Bin 0 -> 1587 bytes
 .../remotes/Kworld_tv878/lircd-kworldtv878.conf    |  70 ++
 .../remotes/Kworld_tv878/lircrc-kworldv878.txt     | 482 ++++++++++++++
 .../templates/remotes/Kworld_tv878/preview.jpg     | Bin 0 -> 1587 bytes
 .../Leadtek_2000XP/lircd-leadtek2000xp.conf        |  77 +++
 .../Leadtek_2000XP/lircrc-leadtek2000xp.txt        | 474 +++++++++++++
 .../templates/remotes/Leadtek_2000XP/preview.jpg   | Bin 0 -> 1587 bytes
 .../remotes/Leadtek_PVR/lircd-leadtekPVR.conf      |  82 +++
 .../remotes/Leadtek_PVR/lircrc-leadtekPVR.txt      | 474 +++++++++++++
 .../templates/remotes/Leadtek_PVR/preview.jpg      | Bin 0 -> 1587 bytes
 .../templates/remotes/Lifeview/lircd-lifeview.conf |  48 ++
 .../templates/remotes/Lifeview/lircrc-lifeview.txt | 474 +++++++++++++
 .../templates/remotes/Lifeview/preview.jpg         | Bin 0 -> 1587 bytes
 .../remotes/Medion_RF/lircd-medion-rf.conf         |  82 +++
 .../remotes/Medion_RF/lircrc-medion-rf.txt         | 474 +++++++++++++
 .../templates/remotes/Medion_RF/preview.jpg        | Bin 0 -> 1587 bytes
 .../Medion_X10_8080/lircd-medionx10-8080.conf      |  68 ++
 .../Medion_X10_8080/lircrc-medionx10-8080.txt      | 474 +++++++++++++
 .../templates/remotes/Medion_X10_8080/preview.jpg  | Bin 0 -> 1587 bytes
 .../Medion_X10_8802/lircd-medionx10-8802.conf      | 126 ++++
 .../Medion_X10_8802/lircrc-medionx10-8802.txt      | 487 ++++++++++++++
 .../templates/remotes/Medion_X10_8802/preview.jpg  | Bin 0 -> 1587 bytes
 .../templates/remotes/Nebula/lircd-nebula.conf     |  88 +++
 .../templates/remotes/Nebula/lircrc-nebula.txt     | 402 ++++++++++++
 .../templates/remotes/Nebula/preview.jpg           | Bin 0 -> 1587 bytes
 .../templates/remotes/Nexus/lircd-nexus.conf       |  73 +++
 .../templates/remotes/Nexus/lircrc-nexus.txt       | 459 +++++++++++++
 .../templates/remotes/Nexus/preview.jpg            | Bin 0 -> 1587 bytes
 .../templates/remotes/Nova_500/lircd-nova500.conf  |  69 ++
 .../templates/remotes/Nova_500/lircrc-nova500.txt  | 559 ++++++++++++++++
 .../templates/remotes/Nova_500/preview.jpg         | Bin 0 -> 1587 bytes
 .../templates/remotes/Nova_T/lircd-novat.conf      |  60 ++
 .../templates/remotes/Nova_T/lircrc-novat.txt      | 474 +++++++++++++
 .../templates/remotes/Nova_T/preview.jpg           | Bin 0 -> 1587 bytes
 .../remotes/Nova_T_USB2/lircd-novatusb2.conf       |  77 +++
 .../remotes/Nova_T_USB2/lircrc-novatusb2.txt       | 474 +++++++++++++
 .../templates/remotes/Nova_T_USB2/preview.jpg      | Bin 0 -> 1587 bytes
 .../templates/remotes/Nvidia/lircd-nvidia.conf     |  62 ++
 .../templates/remotes/Nvidia/lircrc-nvidia.txt     | 474 +++++++++++++
 .../templates/remotes/Nvidia/preview.jpg           | Bin 0 -> 1587 bytes
 .../remotes/Nvidia_X10/lircd-nvidiax10.conf        |  71 ++
 .../remotes/Nvidia_X10/lircrc-nvidiax10.txt        | 474 +++++++++++++
 .../templates/remotes/Nvidia_X10/preview.jpg       | Bin 0 -> 1587 bytes
 .../templates/remotes/One4All/lircd-one4all.conf   | 111 ++++
 .../templates/remotes/One4All/lircrc-one4all.txt   | 730 +++++++++++++++++++++
 .../templates/remotes/One4All/preview.jpg          | Bin 0 -> 1587 bytes
 .../remotes/One4All_6131/lircd-one4all6131.conf    |  31 +
 .../remotes/One4All_6131/lircrc-one4all6131.txt    | 474 +++++++++++++
 .../templates/remotes/One4All_6131/preview.jpg     | Bin 0 -> 1587 bytes
 .../remotes/One4All_7544/lircd-one4all7544.conf    |  49 ++
 .../remotes/One4All_7544/lircrc-one4all7544.txt    | 474 +++++++++++++
 .../templates/remotes/One4All_7544/preview.jpg     | Bin 0 -> 1587 bytes
 .../remotes/One4All_9910/lircd-one4all9910.conf    |  53 ++
 .../remotes/One4All_9910/lircrc-one4all9910.txt    | 474 +++++++++++++
 .../templates/remotes/One4All_9910/preview.jpg     | Bin 0 -> 1587 bytes
 .../remotes/Packard_bell/lircd-packard.conf        |  92 +++
 .../remotes/Packard_bell/lircrc-packard.txt        | 474 +++++++++++++
 .../templates/remotes/Packard_bell/preview.jpg     | Bin 0 -> 1587 bytes
 .../templates/remotes/Pinnacle/lircd-pinnacle.conf |  97 +++
 .../templates/remotes/Pinnacle/lircrc-pinnacle.txt | 474 +++++++++++++
 .../templates/remotes/Pinnacle/preview.jpg         | Bin 0 -> 1587 bytes
 .../templates/remotes/Provideo/lircd-provideo.conf |  52 ++
 .../templates/remotes/Provideo/lircrc-provideo.txt | 474 +++++++++++++
 .../templates/remotes/Provideo/preview.jpg         | Bin 0 -> 1587 bytes
 .../templates/remotes/Sasem/lircd-sasem.conf       |  81 +++
 .../templates/remotes/Sasem/lircrc-sasem.txt       | 474 +++++++++++++
 .../templates/remotes/Sasem/preview.jpg            | Bin 0 -> 1587 bytes
 .../remotes/Technisat/lircd-technisat.conf         |  68 ++
 .../remotes/Technisat/lircrc-technisat.txt         | 347 ++++++++++
 .../templates/remotes/Technisat/preview.jpg        | Bin 0 -> 1587 bytes
 .../templates/remotes/Tekram/lircd-tekram.conf     |  48 ++
 .../templates/remotes/Tekram/lircrc-tekram.txt     | 474 +++++++++++++
 .../templates/remotes/Tekram/preview.jpg           | Bin 0 -> 1587 bytes
 .../templates/remotes/Twinham/lircd-twinhan.conf   |  44 ++
 .../templates/remotes/Twinham/lircrc-twinhan.txt   | 474 +++++++++++++
 .../templates/remotes/Twinham/preview.jpg          | Bin 0 -> 1587 bytes
 .../templates/remotes/X10_Lola/lircd-x10lola.conf  |  78 +++
 .../templates/remotes/X10_Lola/lircrc-x10lola.txt  | 334 ++++++++++
 .../templates/remotes/X10_Lola/preview.jpg         | Bin 0 -> 1587 bytes
 .../snapstream_mini/lircd-snapstreammini.conf      |  70 ++
 .../snapstream_mini/lircrc-snapstreammini.txt      | 474 +++++++++++++
 .../templates/remotes/snapstream_mini/preview.jpg  | Bin 0 -> 1587 bytes
 133 files changed, 24394 insertions(+), 1 deletion(-)
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Avermedia_77x/lircd-avermedia77x.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Avermedia_77x/lircrc-avermedia771.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Avermedia_77x/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Avermedia_98/lircd-avermedia98.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Avermedia_98/lircrc-avermedia98.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Avermedia_98/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Avertv_USB/lircd-avertvusb.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Avertv_USB/lircrc-avertvusb.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Avertv_USB/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Cinergy/lircd-cinergy400600.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Cinergy/lircrc-cinergy400600.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Cinergy/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Cinergy_1400/lircd-cinergy1400.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Cinergy_1400/lircrc-cinergy1400.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Cinergy_1400/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Cinergy_T2/lircd-cinergyT2.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Cinergy_T2/lircrc-cinergyT2.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Cinergy_T2/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Compro/lircd-compro.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Compro/lircrc-compro.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Compro/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircd-dvicomce.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircrc-dvicomce.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Dvico_MCE/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircd-dvicomceold.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircrc-dvicomceold.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircd-dvicoslim.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircrc-dvicoslim.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Dvico_slim/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/lircd-flyvideo2000.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/lircrc-flyvideo2000.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/lircd-flyvideo3000.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/lircrc-flyvideo3000.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Hercules/lircd-hercules.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Hercules/lircrc-hercules.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Hercules/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_110/lircd-kworld110.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_110/lircrc-kworld110.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Kworld_110/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_220/lircd-kworld220.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_220/lircrc-kworld220.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Kworld_220/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_310/lircd-kworld310.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_310/lircrc-kworld310.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Kworld_310/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/lircd-kworlddvbt.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/lircrc-kworlddvbt.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_tv878/lircd-kworldtv878.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Kworld_tv878/lircrc-kworldv878.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Kworld_tv878/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/lircd-leadtek2000xp.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/lircrc-leadtek2000xp.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/lircd-leadtekPVR.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/lircrc-leadtekPVR.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Lifeview/lircd-lifeview.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Lifeview/lircrc-lifeview.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Lifeview/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Medion_RF/lircd-medion-rf.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Medion_RF/lircrc-medion-rf.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Medion_RF/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/lircd-medionx10-8080.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/lircrc-medionx10-8080.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/lircd-medionx10-8802.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/lircrc-medionx10-8802.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nebula/lircd-nebula.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nebula/lircrc-nebula.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Nebula/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nexus/lircd-nexus.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nexus/lircrc-nexus.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Nexus/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nova_500/lircd-nova500.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nova_500/lircrc-nova500.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Nova_500/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nova_T/lircd-novat.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nova_T/lircrc-novat.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Nova_T/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/lircd-novatusb2.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/lircrc-novatusb2.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nvidia/lircd-nvidia.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nvidia/lircrc-nvidia.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Nvidia/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nvidia_X10/lircd-nvidiax10.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Nvidia_X10/lircrc-nvidiax10.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Nvidia_X10/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/One4All/lircd-one4all.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/One4All/lircrc-one4all.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/One4All/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/One4All_6131/lircd-one4all6131.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/One4All_6131/lircrc-one4all6131.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/One4All_6131/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/One4All_7544/lircd-one4all7544.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/One4All_7544/lircrc-one4all7544.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/One4All_7544/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/One4All_9910/lircd-one4all9910.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/One4All_9910/lircrc-one4all9910.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/One4All_9910/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Packard_bell/lircd-packard.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Packard_bell/lircrc-packard.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Packard_bell/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Pinnacle/lircd-pinnacle.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Pinnacle/lircrc-pinnacle.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Pinnacle/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Provideo/lircd-provideo.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Provideo/lircrc-provideo.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Provideo/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Sasem/lircd-sasem.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Sasem/lircrc-sasem.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Sasem/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Technisat/lircd-technisat.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Technisat/lircrc-technisat.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Technisat/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Tekram/lircd-tekram.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Tekram/lircrc-tekram.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Tekram/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Twinham/lircd-twinhan.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/Twinham/lircrc-twinhan.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/Twinham/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/X10_Lola/lircd-x10lola.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/X10_Lola/lircrc-x10lola.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/X10_Lola/preview.jpg
 create mode 100755 abs/core-testing/system-templates/templates/remotes/snapstream_mini/lircd-snapstreammini.conf
 create mode 100755 abs/core-testing/system-templates/templates/remotes/snapstream_mini/lircrc-snapstreammini.txt
 create mode 100644 abs/core-testing/system-templates/templates/remotes/snapstream_mini/preview.jpg

diff --git a/abs/core-testing/system-templates/PKGBUILD b/abs/core-testing/system-templates/PKGBUILD
index 904db3c..5add985 100755
--- a/abs/core-testing/system-templates/PKGBUILD
+++ b/abs/core-testing/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=system-templates
 pkgver=1.0
-pkgrel=29
+pkgrel=30
 conflicts=( )
 pkgdesc="Templates used for system configuration"
 depends=()
diff --git a/abs/core-testing/system-templates/templates/remotes/Avermedia_77x/lircd-avermedia77x.conf b/abs/core-testing/system-templates/templates/remotes/Avermedia_77x/lircd-avermedia77x.conf
new file mode 100755
index 0000000..d30e172
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Avermedia_77x/lircd-avermedia77x.conf
@@ -0,0 +1,66 @@
+#
+# this config file was automatically generated
+# using lirc-0.8.0(userspace) on Mon Feb 20 23:15:48 2006
+#
+# contributed by Joris Patroons
+#
+# brand:                       AVerMedia
+# model no. of remote control: Unknown
+# devices being controlled by this remote:
+#                              AVerTV DVB-T 771
+
+begin remote
+
+  name  a771
+  bits           32
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       9078  4437
+  one           615  1631
+  zero          615   515
+  ptrail        620
+  repeat       9080  2189
+  gap          108056
+  toggle_bit      0
+
+
+      begin codes
+          SOURCE                   0x40BF807F
+          TELETEXT                 0x40BF40BF
+          POWER                    0x40BF00FF
+          1                        0x40BFA05F
+          2                        0x40BF609F
+          3                        0x40BFE01F
+          4                        0x40BF906F
+          5                        0x40BF50AF
+          6                        0x40BFD02F
+          7                        0x40BFB04F
+          8                        0x40BF708F
+          9                        0x40BFF00F
+          0                        0x40BF8877
+          AUDIO                    0x40BF10EF
+          FULLSCREEN               0x40BF30CF
+          DISPLAY                  0x40BF48B7
+          LOOP                     0x40BFC837
+          PREVIEW                  0x40BF08F7
+          BACKWARD                 0x40BFA857
+          FORWARD                  0x40BF6897
+          CAPTURE                  0x40BFE817
+          MUTE                     0x40BF28D7
+          RECORD                   0x40BF9867
+          PAUSE                    0x40BF58A7
+          STOP                     0x40BFD827
+          PLAY                     0x40BF18E7
+          RED                      0x40BFB847
+          GREEN                    0xC03F807F
+          YELLOW                   0x40BF38C7
+          BLUE                     0xC03F00FF
+          VOL_DOWN                 0x40BF7887
+          VOL_UP                   0x40BFF807
+          CH_DOWN                  0xC03F40BF
+          CH_UP                    0xC03FC03F
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Avermedia_77x/lircrc-avermedia771.txt b/abs/core-testing/system-templates/templates/remotes/Avermedia_77x/lircrc-avermedia771.txt
new file mode 100755
index 0000000..2aa9e09
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Avermedia_77x/lircrc-avermedia771.txt
@@ -0,0 +1,475 @@
+# Channel Up
+begin
+prog = mythtv
+button = CH_UP
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CH_DOWN
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = CH_UP
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = CH_DOWN
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VOL_UP
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VOL_DOWN
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = PLAY
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = STOP
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = POWER
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = PAUSE
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = MUTE
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = FORWARD
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = BACKWARD
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = CAPTURE
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = RED
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = PREVIEW
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = TELETEXT
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = DISPLAY
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = PREVIEW
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = TELETEXT
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = PAUSE
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = MUTE
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = BACKWARD
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = FORWARD
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = STOP
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = FULLSCREEN
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = PLAY
+config = Play
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Stop
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Quit
+end
+ 
+begin
+prog = xine
+button = PAUSE
+config = Pause
+end
+ 
+begin
+prog = xine
+button = 
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = PREVIEW
+config = Menu
+end
+ 
+begin
+prog = xine
+button = FORWARD
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = BACKWARD
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VOL_UP
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VOL_DOWN
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = MUTE
+config = Mute
+end
+ 
+begin
+prog = xine
+button = STOP
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = TELETEXT
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Avermedia_77x/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Avermedia_77x/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Avermedia_77x/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Avermedia_98/lircd-avermedia98.conf b/abs/core-testing/system-templates/templates/remotes/Avermedia_98/lircd-avermedia98.conf
new file mode 100755
index 0000000..bfc07b9
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Avermedia_98/lircd-avermedia98.conf
@@ -0,0 +1,97 @@
+#
+# this config file was automatically generated
+# using lirc-0.6.1 on Tue Apr 25 14:31:21 2000
+#
+# contributed by Christoph Bartelmus <lirc@bartelmus.de>
+#
+# brand:             AVerMedia
+# model:             ? (36 buttons)
+# supported devices: TVPhone98 card (ID 0x00031461)
+#                    TVCapture98 card (ID 0x00041461)
+#
+# This config file does work with both homebrew receivers and 
+# original AVerMedia TV cards !!!
+#
+
+begin remote
+
+  name  TVPhone98
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       9078  4437
+  one           615  1631
+  zero          615   515
+  ptrail        620
+  repeat       9080  2189
+  pre_data_bits   16
+  pre_data       0x40BF
+  gap          108056
+  repeat_bit      0
+
+      begin codes
+          POWER                    0x00000000000000FF
+          TV/FM                    0x000000000000807F
+          CD                       0x00000000000040BF
+          TELETEXT                 0x000000000000C03F
+          VIDEO                    0x00000000000020DF
+          1                        0x000000000000A05F
+          2                        0x000000000000609F
+          3                        0x000000000000E01F
+          AUDIO                    0x00000000000010EF
+          4                        0x000000000000906F
+          5                        0x00000000000050AF
+          6                        0x000000000000D02F
+          FULLSCREEN               0x00000000000030CF
+          7                        0x000000000000B04F
+          8                        0x000000000000708F
+          9                        0x000000000000F00F
+
+          PREVIEW                  0x00000000000008F7
+          0                        0x0000000000008877
+          DISPLAY                  0x00000000000048B7
+          LOOP                     0x000000000000C837
+          MUTE                     0x00000000000028D7
+          AUTOSCAN                 0x000000000000A857
+          FREEZE                   0x0000000000006897
+          CAPTURE                  0x000000000000E817
+          PLAY                     0x00000000000018E7
+          RECORD                   0x0000000000009867
+          PAUSE                    0x00000000000058A7
+          STOP                     0x000000000000D827
+          YELLOW                   0x00000000000038C7
+          RED                      0x000000000000B847
+          VOL_DOWN                 0x0000000000007887
+          VOL_UP                   0x000000000000F807
+      end codes
+
+end remote
+
+begin remote
+
+  name  TVPhone98_ext
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       9078  4437
+  one           615  1631
+  zero          615   515
+  ptrail        620
+  repeat       9080  2189
+  pre_data_bits   16
+  pre_data       0xC03F
+  gap          108056
+  repeat_bit      0
+
+      begin codes
+          BLUE                     0x00000000000000FF
+          GREEN                    0x000000000000807F
+          CH_DOWN                  0x00000000000040BF
+          CH_UP                    0x000000000000C03F
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Avermedia_98/lircrc-avermedia98.txt b/abs/core-testing/system-templates/templates/remotes/Avermedia_98/lircrc-avermedia98.txt
new file mode 100755
index 0000000..f8fb43a
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Avermedia_98/lircrc-avermedia98.txt
@@ -0,0 +1,477 @@
+# Channel Up
+begin
+prog = mythtv
+button = CH_UP
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CH_DOWN
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = LEFT
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = RIGHT
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = CH_UP
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = CH_DOWN
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VOL_UP
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VOL_DOWN
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = UNLABELED
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = PLAY
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = STOP
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = POWER
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = PAUSE
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = MUTE
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+remote = TVPhone98_ext
+prog = mythtv
+button = BLUE
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+remote = TVPhone98_ext
+prog = mythtv
+button = GREEN
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = CAPTURE
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = RED
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = YELLOW
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = TELETEXT
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = DISPLAY
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = VIDEO
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = TELETEXT
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = PAUSE
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = MUTE
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = 
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = 
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = STOP
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = FULLSCREEN
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = PLAY
+config = Play
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Stop
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Quit
+end
+ 
+begin
+prog = xine
+button = PAUSE
+config = Pause
+end
+ 
+begin
+prog = xine
+button = 
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = PREVIEW
+config = Menu
+end
+ 
+begin
+prog = xine
+button = 
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = 
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VOL_UP
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VOL_DOWN
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = MUTE
+config = Mute
+end
+ 
+begin
+prog = xine
+button = STOP
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = TELETEXT
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Avermedia_98/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Avermedia_98/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Avermedia_98/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Avertv_USB/lircd-avertvusb.conf b/abs/core-testing/system-templates/templates/remotes/Avertv_USB/lircd-avertvusb.conf
new file mode 100755
index 0000000..391c8d4
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Avertv_USB/lircd-avertvusb.conf
@@ -0,0 +1,65 @@
+#
+# this config file was created by using lirc-0.8 on Thu Sept 14 2006
+#
+# contributed by elturisto
+#
+# brand: AVerMedia
+# model no. of remote control: RM-FP
+# devices being controlled by this remote: AVerMedia DVB-T USB2.0 (A800)
+#
+
+begin remote
+
+  name  rmfp
+  bits           32
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       8967  4524
+  one           565  1682
+  zero          565   559
+  ptrail        561
+  repeat       8968  2276
+  gap          107905
+  toggle_bit      0
+
+
+      begin codes
+          power                    0x00010074
+          source                   0x00010094
+          1                        0x00010002
+          2                        0x00010003
+          3                        0x00010004
+          4                        0x00010005
+          5                        0x00010006
+          6                        0x00010007
+          7                        0x00010008
+          8                        0x00010009
+          9                        0x0001000a
+          0                        0x0001000b
+          display                  0x00010095
+          snapshot                 0x00010069
+          chrtn                    0x0001006a
+          chprev                   0x000100ca
+          chup                     0x00010192
+          chdown                   0x00010193
+          voldown                  0x00010072
+          volup                    0x00010073
+          fullscreen               0x00010174
+          mute                     0x00010071
+          audio                    0x00010188
+          record                   0x000100a7
+          play                     0x000100cf
+          stop                     0x00010080
+          pause                    0x000100a4
+          rewind                   0x0001009e
+          forward                  0x0001009f
+          teletext                 0x00010184
+          last                     0x00010194
+          next                     0x00010195
+          epg                      0x0001016d
+          menu                     0x0001008b
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Avertv_USB/lircrc-avertvusb.txt b/abs/core-testing/system-templates/templates/remotes/Avertv_USB/lircrc-avertvusb.txt
new file mode 100755
index 0000000..dc28857
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Avertv_USB/lircrc-avertvusb.txt
@@ -0,0 +1,482 @@
+# Channel Up
+begin
+prog = mythtv
+button = chup
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = chdown
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = chup
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = chdown
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = volup
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = voldown
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = forward
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = rewind
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = next
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = last
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = record
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = epg
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = menu
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = display
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = chprev
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = teletext
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = snapshot
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = menu
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = forward
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = rewind
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = next
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = last
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = display
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = chup
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = chdown
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = menu
+config = Menu
+end
+ 
+begin
+prog = xine
+button = forward
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = rewind
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = volup
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = voldown
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = next
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = last
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = display
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Avertv_USB/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Avertv_USB/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Avertv_USB/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy/lircd-cinergy400600.conf b/abs/core-testing/system-templates/templates/remotes/Cinergy/lircd-cinergy400600.conf
new file mode 100755
index 0000000..8b0bd3c
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Cinergy/lircd-cinergy400600.conf
@@ -0,0 +1,67 @@
+# Please make this file available to others
+# by sending it to <lirc@bartelmus.de>
+#
+# this config file was automatically generated
+# using lirc-0.7.0 (devinput) on Sun Feb 27 18:29:35 2005
+#
+#
+# brand: Terratec_Cinergy_Remote
+# model no. of remote control:
+# devices being controlled by this remote:
+#
+
+begin remote
+
+name Terratec_Cinergy_Remote
+bits		16
+eps		30
+aeps		100
+one		0  0
+zero		0  0
+pre_data_bits	 16
+pre_data		0x8001
+gap		237493
+toggle_bit	0
+
+
+	begin codes
+		power	0x0000000000000074
+		app		0x0000000000000094
+		zoom	0x0000000000000174
+		1		0x000000000000004F
+		2		0x0000000000000050
+		3		0x0000000000000051
+		4		0x000000000000004B
+		5		0x000000000000004C
+		6		0x000000000000004D
+		7		0x0000000000000047
+		8		0x0000000000000048
+		9		0x0000000000000049
+		0		0x0000000000000052
+		chup		0x0000000000000192
+		chdown	0x0000000000000193
+		volup	0x0000000000000073
+		voldown	0x0000000000000072
+		av		0x0000000000000182
+		-/--		0x0000000000000045
+		audio	0x0000000000000188
+		mute	0x0000000000000071
+		left		0x0000000000000069
+		right		0x000000000000006A
+		up		0 x0000000000000067
+		down	0x000000000000006C
+		mouseleft 0x0000000000000110
+		mouseright 0x0000000000000111
+		text		0x0000000000000096
+		rew		0x00000000000000A8
+		fwd		0x000000000000009F
+		rec		0x00000000000000A7
+		play		0x00000000000000CF
+		prev		0x00000000000000A5
+		next		0x00000000000000A3
+		pause	0x0000000000000077
+		stop		0x0000000000000080
+
+end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy/lircrc-cinergy400600.txt b/abs/core-testing/system-templates/templates/remotes/Cinergy/lircrc-cinergy400600.txt
new file mode 100755
index 0000000..5ac2227
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Cinergy/lircrc-cinergy400600.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = chup
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = chdown
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = volup
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = voldown
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = fwd
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = rew
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = next
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = prev
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = app
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = 
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = app
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = rew
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = fwd
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = next
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = prev
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = zoom
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = app
+config = Menu
+end
+ 
+begin
+prog = xine
+button = next
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = prev
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = volup
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = voldown
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = next
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = prev
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = av
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Cinergy/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Cinergy/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/lircd-cinergy1400.conf b/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/lircd-cinergy1400.conf
new file mode 100755
index 0000000..8458cfe
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/lircd-cinergy1400.conf
@@ -0,0 +1,71 @@
+#
+# this config file was automatically generated
+# using lirc-0.7.2(serial) on Fri Oct 14 16:29:58 2005
+#
+# contributed by Sebastian Kraft
+#
+# brand: 			Terratec                     
+# model no. of remote control: 	Cinergy 1400-T
+# devices being controlled by this remote:
+#
+
+begin remote
+
+  name  Terratec_Cinergy_1400-T
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       9007  4495
+  one           557  1683
+  zero          557   555
+  ptrail        546
+  pre_data_bits   16
+  pre_data       0x20D7
+  gap          110968
+  toggle_bit      0
+
+
+      begin codes
+          0                        0x30CF
+          1                        0x40BF
+          2                        0xC03F
+          3                        0x20DF
+          4                        0xA05F
+          5                        0x609F
+          6                        0xE01F
+          7                        0x10EF
+          8                        0x906F
+          9                        0x50AF
+          fullscreen               0x18E7
+          osd                      0x708F
+          volumeup                 0x38C7
+          volumedown               0x7887
+          channelup                0xD827
+          channeldown              0xF807
+          epg                      0xF00F
+          av                       0xD02F
+          power                    0x807F
+          teletext                 0xA857
+          clock                    0xE817
+          mute                     0xB847
+          pause                    0x02FD
+          play                     0x32CD
+          record                   0x1AE5
+          rewind                   0x2AD5
+          stop                     0x12ED
+          forward                  0x3AC5
+          up                       0x08F7
+          down                     0x28D7
+          left                     0x8877
+          right                    0xC837
+          info                     0x6897
+          ok                       0x48B7
+          tab                      0x58A7
+          audio                    0x9867
+          clock                    0xE817
+
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/lircrc-cinergy1400.txt b/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/lircrc-cinergy1400.txt
new file mode 100755
index 0000000..8dd42c5
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/lircrc-cinergy1400.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = channelup
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = channeldown
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = volumeup
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = volumedown
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = ok
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = forward
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = rewind
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = record
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = osd
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = epg
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = info
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = tab
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = 
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = teletext
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = osd
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = rewind
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = forward
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = fullscreen
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = ok
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = epg
+config = Menu
+end
+ 
+begin
+prog = xine
+button = forward
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = rewind
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = volumeup
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = volumedown
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = channelup
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = channeldown
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = info
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/lircd-cinergyT2.conf b/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/lircd-cinergyT2.conf
new file mode 100755
index 0000000..168743b
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/lircd-cinergyT2.conf
@@ -0,0 +1,72 @@
+#
+# this config file was generated
+# using lirc-0.7.1pre2(serial) kantonix VDR
+#
+# contributed by Stefan Bernshausen
+#
+# brand: 			Terratec                     
+# model no. of remote control: 	Cinergy T2
+# devices being controlled by this remote:
+#
+
+begin remote
+
+  name  Terratec_Cinergy_T2
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       9007  4495
+  one           557  1683
+  zero          557   555
+  ptrail        546
+  pre_data_bits   16
+  pre_data       0x20D7
+  gap          110968
+  toggle_bit      0
+
+
+      begin codes
+          0                        0x30CF
+          1                        0x40BF
+          2                        0xC03F
+          3                        0x20DF
+          4                        0xA05F
+          5                        0x609F
+          6                        0xE01F
+          7                        0x10EF
+          8                        0x906F
+          9                        0x50AF
+          Green                    0x18E7
+          Osd                      0x708F
+          Volume+                  0x38C7
+          Volume-                  0x7887
+          Ch+                      0xD827
+          Ch-                      0xF807
+          Epg                      0xF00F
+          Av                       0xD02F
+          Power                    0x807F
+          Txt                      0xA857
+          Red                      0xE817
+          Mute                     0xB847
+          Pause                    0x02FD
+          Play                     0x32CD
+          Record                   0x1AE5
+          Fback                    0x2AD5
+          Stop                     0x12ED
+          Ffor                     0x3AC5
+          Up                       0x08F7
+          Down                     0x28D7
+          Left                     0x8877
+          Right                    0xC837
+          Info                     0x6897
+          Ok                       0x48B7
+          Blue                     0x58A7
+          Yellow                   0x9867
+          Red                      0xE817
+          Back                     0xB04F
+
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/lircrc-cinergyT2.txt b/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/lircrc-cinergyT2.txt
new file mode 100755
index 0000000..c4042fe
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/lircrc-cinergyT2.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = Ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = Ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = Left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = Right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = Up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = Down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = Volume+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = Volume-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = Ok
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = Play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = Stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = Power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = Pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = Mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = Ffor
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = Fback
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = Record
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = Red
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = Osd
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = Epg
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = Info
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = Green
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = Blue
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = Osd
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = Pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = Mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = Fback
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = Ffor
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = Stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = Ch+
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = Ch-
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = Blue
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = Play
+config = Play
+end
+ 
+begin
+prog = xine
+button = Stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = Stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = Pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = Up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = Down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = Left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = Right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = Ok
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = Epg
+config = Menu
+end
+ 
+begin
+prog = xine
+button = Ffor
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = Fback
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = Volume+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = Volume-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = Mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = Stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = Ch+
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = Ch-
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = Info
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Compro/lircd-compro.conf b/abs/core-testing/system-templates/templates/remotes/Compro/lircd-compro.conf
new file mode 100755
index 0000000..41f2c7b
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Compro/lircd-compro.conf
@@ -0,0 +1,364 @@
+begin remote
+        name linux-input-layer
+        bits 32
+        begin codes
+                ESC                  0x10001
+                1                    0x10002
+                2                    0x10003
+                3                    0x10004
+                4                    0x10005
+                5                    0x10006
+                6                    0x10007
+                7                    0x10008
+                8                    0x10009
+                9                    0x1000a
+                0                    0x1000b
+                MINUS                0x1000c
+                EQUAL                0x1000d
+                BACKSPACE            0x1000e
+                TAB                  0x1000f
+                Q                    0x10010
+                W                    0x10011
+                E                    0x10012
+                R                    0x10013
+                T                    0x10014
+                Y                    0x10015
+                U                    0x10016
+                I                    0x10017
+                O                    0x10018
+                P                    0x10019
+                LEFTBRACE            0x1001a
+                RIGHTBRACE           0x1001b
+                ENTER                0x1001c
+                LEFTCTRL             0x1001d
+                A                    0x1001e
+                S                    0x1001f
+                D                    0x10020
+                F                    0x10021
+                G                    0x10022
+                H                    0x10023
+                J                    0x10024
+                K                    0x10025
+                L                    0x10026
+                SEMICOLON            0x10027
+                APOSTROPHE           0x10028
+                GRAVE                0x10029
+                LEFTSHIFT            0x1002a
+                BACKSLASH            0x1002b
+                Z                    0x1002c
+                X                    0x1002d
+                C                    0x1002e
+                V                    0x1002f
+                B                    0x10030
+                N                    0x10031
+                M                    0x10032
+                COMMA                0x10033
+                DOT                  0x10034
+                SLASH                0x10035
+                RIGHTSHIFT           0x10036
+                KPASTERISK           0x10037
+                LEFTALT              0x10038
+                SPACE                0x10039
+                CAPSLOCK             0x1003a
+                F1                   0x1003b
+                F2                   0x1003c
+                F3                   0x1003d
+                F4                   0x1003e
+                F5                   0x1003f
+                F6                   0x10040
+                F7                   0x10041
+                F8                   0x10042
+                F9                   0x10043
+                F10                  0x10044
+                NUMLOCK              0x10045
+                SCROLLLOCK           0x10046
+                KP7                  0x10047
+                KP8                  0x10048
+                KP9                  0x10049
+                KPMINUS              0x1004a
+                KP4                  0x1004b
+                KP5                  0x1004c
+                KP6                  0x1004d
+                KPPLUS               0x1004e
+                KP1                  0x1004f
+                KP2                  0x10050
+                KP3                  0x10051
+                KP0                  0x10052
+                KPDOT                0x10053
+                103RD                0x10054
+                F13                  0x10055
+                102ND                0x10056
+                F11                  0x10057
+                F12                  0x10058
+                F14                  0x10059
+                F15                  0x1005a
+                F16                  0x1005b
+                F17                  0x1005c
+                F18                  0x1005d
+                F19                  0x1005e
+                F20                  0x1005f
+                KPENTER              0x10060
+                RIGHTCTRL            0x10061
+                KPSLASH              0x10062
+                SYSRQ                0x10063
+                RIGHTALT             0x10064
+                LINEFEED             0x10065
+                HOME                 0x10066
+                UP                   0x10067
+                PAGEUP               0x10068
+                LEFT                 0x10069
+                RIGHT                0x1006a
+                END                  0x1006b
+                DOWN                 0x1006c
+                PAGEDOWN             0x1006d
+                INSERT               0x1006e
+                DELETE               0x1006f
+                MACRO                0x10070
+                MUTE                 0x10071
+                VOLUMEDOWN           0x10072
+                VOLUMEUP             0x10073
+                POWER                0x10074
+                KPEQUAL              0x10075
+                KPPLUSMINUS          0x10076
+                PAUSE                0x10077
+                F21                  0x10078
+                F22                  0x10079
+                F23                  0x1007a
+                F24                  0x1007b
+                KPCOMMA              0x1007c
+                LEFTMETA             0x1007d
+                RIGHTMETA            0x1007e
+                COMPOSE              0x1007f
+                STOP                 0x10080
+                AGAIN                0x10081
+                PROPS                0x10082
+                UNDO                 0x10083
+                FRONT                0x10084
+                COPY                 0x10085
+                OPEN                 0x10086
+                PASTE                0x10087
+                FIND                 0x10088
+                CUT                  0x10089
+                HELP                 0x1008a
+                MENU                 0x1008b
+                CALC                 0x1008c
+                SETUP                0x1008d
+                SLEEP                0x1008e
+                WAKEUP               0x1008f
+                FILE                 0x10090
+                SENDFILE             0x10091
+                DELETEFILE           0x10092
+                XFER                 0x10093
+                PROG1                0x10094
+                PROG2                0x10095
+                WWW                  0x10096
+                MSDOS                0x10097
+                COFFEE               0x10098
+                DIRECTION            0x10099
+                CYCLEWINDOWS         0x1009a
+                MAIL                 0x1009b
+                BOOKMARKS            0x1009c
+                COMPUTER             0x1009d
+                BACK                 0x1009e
+                FORWARD              0x1009f
+                CLOSECD              0x100a0
+                EJECTCD              0x100a1
+                EJECTCLOSECD         0x100a2
+                NEXTSONG             0x100a3
+                PLAYPAUSE            0x100a4
+                PREVIOUSSONG         0x100a5
+                STOPCD               0x100a6
+                RECORD               0x100a7
+                REWIND               0x100a8
+                PHONE                0x100a9
+                ISO                  0x100aa
+                CONFIG               0x100ab
+                HOMEPAGE             0x100ac
+                REFRESH              0x100ad
+                EXIT                 0x100ae
+                MOVE                 0x100af
+                EDIT                 0x100b0
+                SCROLLUP             0x100b1
+                SCROLLDOWN           0x100b2
+                KPLEFTPAREN          0x100b3
+                KPRIGHTPAREN         0x100b4
+                INTL1                0x100b5
+                INTL2                0x100b6
+                INTL3                0x100b7
+                INTL4                0x100b8
+                INTL5                0x100b9
+                INTL6                0x100ba
+                INTL7                0x100bb
+                INTL8                0x100bc
+                INTL9                0x100bd
+                LANG1                0x100be
+                LANG2                0x100bf
+                LANG3                0x100c0
+                LANG4                0x100c1
+                LANG5                0x100c2
+                LANG6                0x100c3
+                LANG7                0x100c4
+                LANG8                0x100c5
+                LANG9                0x100c6
+                PLAYCD               0x100c8
+                PAUSECD              0x100c9
+                PROG3                0x100ca
+                PROG4                0x100cb
+                SUSPEND              0x100cd
+                CLOSE                0x100ce
+                PLAY                 0x100cf
+                FASTFORWARD          0x100d0
+                BASSBOOST            0x100d1
+                PRINT                0x100d2
+                HP                   0x100d3
+                CAMERA               0x100d4
+                SOUND                0x100d5
+                QUESTION             0x100d6
+                EMAIL                0x100d7
+                CHAT                 0x100d8
+                SEARCH               0x100d9
+                CONNECT              0x100da
+                FINANCE              0x100db
+                SPORT                0x100dc
+                SHOP                 0x100dd
+                ALTERASE             0x100de
+                CANCEL               0x100df
+                BRIGHTNESSDOWN       0x100e0
+                BRIGHTNESSUP         0x100e1
+                MEDIA                0x100e2
+                UNKNOWN              0x100f0
+                BTN_MISC             0x10100
+                BTN_0                0x10100
+                BTN_1                0x10101
+                BTN_2                0x10102
+                BTN_3                0x10103
+                BTN_4                0x10104
+                BTN_5                0x10105
+                BTN_6                0x10106
+                BTN_7                0x10107
+                BTN_8                0x10108
+                BTN_9                0x10109
+                BTN_MOUSE            0x10110
+                BTN_LEFT             0x10110
+                BTN_RIGHT            0x10111
+                BTN_MIDDLE           0x10112
+                BTN_SIDE             0x10113
+                BTN_EXTRA            0x10114
+                BTN_FORWARD          0x10115
+                BTN_BACK             0x10116
+                BTN_TASK             0x10117
+                BTN_JOYSTICK         0x10120
+                BTN_TRIGGER          0x10120
+                BTN_THUMB            0x10121
+                BTN_THUMB2           0x10122
+                BTN_TOP              0x10123
+                BTN_TOP2             0x10124
+                BTN_PINKIE           0x10125
+                BTN_BASE             0x10126
+                BTN_BASE2            0x10127
+                BTN_BASE3            0x10128
+                BTN_BASE4            0x10129
+                BTN_BASE5            0x1012a
+                BTN_BASE6            0x1012b
+                BTN_DEAD             0x1012f
+                BTN_GAMEPAD          0x10130
+                BTN_A                0x10130
+                BTN_B                0x10131
+                BTN_C                0x10132
+                BTN_X                0x10133
+                BTN_Y                0x10134
+                BTN_Z                0x10135
+                BTN_TL               0x10136
+                BTN_TR               0x10137
+                BTN_TL2              0x10138
+                BTN_TR2              0x10139
+                BTN_SELECT           0x1013a
+                BTN_START            0x1013b
+                BTN_MODE             0x1013c
+                BTN_THUMBL           0x1013d
+                BTN_THUMBR           0x1013e
+                BTN_DIGI             0x10140
+                BTN_TOOL_PEN         0x10140
+                BTN_TOOL_RUBBER      0x10141
+                BTN_TOOL_BRUSH       0x10142
+                BTN_TOOL_PENCIL      0x10143
+                BTN_TOOL_AIRBRUSH    0x10144
+                BTN_TOOL_FINGER      0x10145
+                BTN_TOOL_MOUSE       0x10146
+                BTN_TOOL_LENS        0x10147
+                BTN_TOUCH            0x1014a
+                BTN_STYLUS           0x1014b
+                BTN_STYLUS2          0x1014c
+                BTN_WHEEL            0x10150
+                BTN_GEAR_DOWN        0x10150
+                BTN_GEAR_UP          0x10151
+                OK                   0x10160
+                SELECT               0x10161
+                GOTO                 0x10162
+                CLEAR                0x10163
+                POWER2               0x10164
+                OPTION               0x10165
+                INFO                 0x10166
+                TIME                 0x10167
+                VENDOR               0x10168
+                ARCHIVE              0x10169
+                PROGRAM              0x1016a
+                CHANNEL              0x1016b
+                FAVORITES            0x1016c
+                EPG                  0x1016d
+                PVR                  0x1016e
+                MHP                  0x1016f
+                LANGUAGE             0x10170
+                TITLE                0x10171
+                SUBTITLE             0x10172
+                ANGLE                0x10173
+                ZOOM                 0x10174
+                MODE                 0x10175
+                KEYBOARD             0x10176
+                SCREEN               0x10177
+                PC                   0x10178
+                TV                   0x10179
+                TV2                  0x1017a
+                VCR                  0x1017b
+                VCR2                 0x1017c
+                SAT                  0x1017d
+                SAT2                 0x1017e
+                CD                   0x1017f
+                TAPE                 0x10180
+                RADIO                0x10181
+                TUNER                0x10182
+                PLAYER               0x10183
+                TEXT                 0x10184
+                DVD                  0x10185
+                AUX                  0x10186
+                MP3                  0x10187
+                AUDIO                0x10188
+                VIDEO                0x10189
+                DIRECTORY            0x1018a
+                LIST                 0x1018b
+                MEMO                 0x1018c
+                CALENDAR             0x1018d
+                RED                  0x1018e
+                GREEN                0x1018f
+                YELLOW               0x10190
+                BLUE                 0x10191
+                CHANNELUP            0x10192
+                CHANNELDOWN          0x10193
+                FIRST                0x10194
+                LAST                 0x10195
+                AB                   0x10196
+                NEXT                 0x10197
+                RESTART              0x10198
+                SLOW                 0x10199
+                SHUFFLE              0x1019a
+                BREAK                0x1019b
+                PREVIOUS             0x1019c
+                DIGITS               0x1019d
+                TEEN                 0x1019e
+                TWEN                 0x1019f
+                DEL_EOL              0x101c0
+                DEL_EOS              0x101c1
+                INS_LINE             0x101c2
+                DEL_LINE             0x101c3
+        end codes
+end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/Compro/lircrc-compro.txt b/abs/core-testing/system-templates/templates/remotes/Compro/lircrc-compro.txt
new file mode 100755
index 0000000..3a7fae8
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Compro/lircrc-compro.txt
@@ -0,0 +1,487 @@
+begin
+    prog = mythtv
+    button = UP
+    config = Up
+end
+
+begin
+    prog = mythtv
+    button = DOWN
+    config = Down
+end
+
+begin
+    prog = mythtv
+    button = LEFT
+    config = Left
+end
+
+begin
+    prog = mythtv
+    button = RIGHT
+    config = Right
+end
+
+begin
+    prog = mythtv
+    button = DVD
+    config = Esc
+end
+
+begin
+    prog = mythtv
+    button = Go
+# Swap the PiP windows
+    config = N
+end
+
+begin
+    prog = mythtv
+    button = 1
+    config = 1
+end
+
+begin
+    prog = mythtv
+    button = 2
+    config = 2
+end
+
+begin
+    prog = mythtv
+    button = 3
+    config = 3
+end
+
+begin
+    prog = mythtv
+    button = 4
+    config = 4
+end
+
+begin
+    prog = mythtv
+    button = 5
+    config = 5
+end
+
+begin
+    prog = mythtv
+    button = 6
+    config = 6
+end
+
+begin
+    prog = mythtv
+    button = 7
+    config = 7
+end
+
+begin
+    prog = mythtv
+    button = 8
+    config = 8
+end
+
+begin
+    prog = mythtv
+    button = 9
+    config = 9
+end
+
+begin
+    prog = mythtv
+    button = 0
+    config = 0
+end
+
+begin
+    prog = mythtv
+    button = TV
+    config = Esc
+end
+
+begin
+    prog = mythtv
+    button = VIDEO
+    config = M
+end
+
+# Below are keys used with the Hauppauge Grey remote
+
+begin
+   prog = mythtv
+# This is the Red key
+# We'll use it for "Delete"
+   button = Red
+   config = D
+end
+
+begin
+   prog = mythtv
+# This is the Green key
+# We'll use it for "Information"
+   button = Green
+   config = I
+end
+
+# Note the "repeat =" strings in the volume and channel.
+# This means that if you hold down the key, every nth instance will be
+# passed.  This depends on your system, so you may want to increase or
+# decrease this and see what happens.  repeat = 1 is probably too
+# fast.
+
+begin
+  prog = mythtv
+# This is the Yellow key
+# Use it as a volume key
+  button = VOLUMEDOWN
+  repeat = 3
+  config = F10
+end
+
+begin
+  prog = mythtv
+# This is the Blue key
+# Use it as a volume key
+  button = VOLUMEUP
+  repeat = 3
+  config = F11
+end
+
+begin
+    prog = mythtv
+    button = CHANNELUP
+# This is the "up" on the central diamond
+    repeat = 3
+    config = Up
+end
+
+begin
+    prog = mythtv
+    button = CHANNELDOWN
+# This is the "down" on the central diamond
+    repeat = 3
+    config = Down
+end
+
+begin
+    prog = mythtv
+    button = VOLUMEUP
+# This is the "left" on the central diamond
+    repeat = 3
+    config = Right
+end
+
+begin
+    prog = mythtv
+    button = VOLUMEDOWN
+# This is the "right" on the central diamond
+    repeat = 3
+    config = Left
+end
+
+begin
+    prog = mythtv
+# Middle button on the diamond
+    button = OK
+    config = Return
+end
+
+begin
+    prog = mythtv
+    button = MUTE
+    config = |
+end
+
+begin
+   prog = mythtv
+# Change focus for PiP (to change channel in the other window)
+   button = Blank
+   config = B
+end
+
+begin
+   prog = mythtv
+# Toggle PiP on/off
+   button = Full
+   config = V
+end
+
+begin
+    prog = mythtv
+    button = REWIND
+    config = <
+end
+
+begin
+    prog = mythtv
+    button = PLAY
+    config = P
+end
+
+begin
+    prog = mythtv
+    button = FORWARD
+    config = >
+end
+
+begin
+  prog = mythtv
+  button = RECORD
+  config = R
+end
+
+begin
+   prog = mythtv
+# Teletext
+   button = STOP
+   config = T
+end
+
+begin
+    prog = mythtv
+    button = PLAYPAUSE
+    config = P
+end
+
+begin
+   prog = mythtv
+   button = Replay
+# Use for backwards commercial skip
+    config = Q
+end
+
+begin
+   prog = mythtv
+   button = Skip
+# Use for forward commercial skip
+    config = Z
+end
+
+#MPlayer
+begin
+   prog = mplayer
+   button = VIDEO
+   config = quit
+end
+
+begin
+   prog = mplayer
+   button = SETUP
+   config = osd
+end
+
+begin
+   prog = mplayer
+   button = REWIND
+   config = seek -10
+   repeat = 1
+end
+
+begin
+   prog = mplayer
+   button = FOWARD
+   config = seek +10
+   repeat = 1
+end
+
+begin
+   prog = mplayer
+   button = PREVIOUS
+   config = seek -60
+   repeat = 1
+end
+
+begin
+   prog = mplayer
+   button = NEXT
+   config = seek +60
+   repeat = 1
+end
+
+begin
+    prog = mplayer
+    button = PLAYPAUSE
+    config = pause
+end
+
+begin
+    prog = mplayer
+    button = PLAYPAUSE
+    config = pause
+end
+
+begin
+   prog = mplayer
+   button = VIDEO
+   config = quit
+end
+
+begin
+   prog = mplayer
+   button = VOLUMEUP
+   config = volume +1
+   repeat = 1
+end
+
+begin
+   prog = mplayer
+   button = VOLUMEDOWN
+   config = volume -1
+   repeat = 1
+end
+
+begin
+   prog = mplayer
+   button = MUTE
+   config = mute
+end
+##XINE
+
+ begin
+ prog = xine
+ button = PLAY
+ repeat = 3
+ config = Play
+ end
+
+ begin
+ prog = xine
+ button = STOP
+ repeat = 3
+ config = Stop
+ end
+
+ begin
+ prog = xine
+ button = BACK/EXIT
+ config = Quit
+ end
+
+ begin
+ prog = xine
+ button = PAUSE
+ repeat = 3
+ config = Pause
+ end
+
+ begin
+ prog = xine
+ button = CH+
+ repeat = 4
+ config = EventUp
+ end
+
+ begin
+ prog = xine
+ button = CH-
+ repeat = 4
+ config = EventDown
+ end
+
+ begin
+ prog = xine
+ button = VOL-
+ repeat = 4
+ config = Volume-
+ end
+
+ begin
+ prog = xine
+ button = VOL+
+ repeat = 4
+ config = Volume+
+ end
+
+ begin
+ prog = xine
+ button = OK
+ repeat = 0
+ config = EventSelect
+ end
+
+ begin
+ prog = xine
+ button = MENU
+ repeat = 0
+ config = Menu
+ end
+
+ #vol down
+ begin
+ prog = xine
+ button = YELLOW
+ repeat = 1
+ config = EventLeft
+ end
+
+ #vol up
+ begin
+ prog = xine
+ button = Red
+ repeat = 1
+ config = EventRight
+ end
+
+ begin
+ prog = xine
+ button = FFW
+ repeat = 2
+ config = SeekRelative+30
+ end
+
+ begin
+ prog = xine
+ button = REW
+ repeat = 2
+ config = SeekRelative-30
+ end
+
+ #ch up
+ begin
+ prog = xine
+ button = Green
+ repeat = 1
+ config = SeekRelative+60
+ end
+
+ #ch down
+ begin
+ prog = xine
+ button = Blue
+ repeat = 1
+ config = SeekRelative-60
+ end
+
+ #sleep
+ begin
+ prog = xine
+ button = GO
+ repeat = 1
+ config = ZoomIn
+ end
+
+ #display
+ begin
+ prog = xine
+ button = SKIP
+ repeat = 1
+ config = ZoomOut
+ end
+
+ #skip chapter forward
+ begin
+ prog = xine
+ button = SKIP
+ repeat = 1
+ config = EventNext
+ end
+
+ #skip chapter backward
+ begin
+ prog = xine
+ button = REPLAY
+ repeat = 1
+ config = EventPrior
+ end
diff --git a/abs/core-testing/system-templates/templates/remotes/Compro/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Compro/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Compro/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircd-dvicomce.conf b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircd-dvicomce.conf
new file mode 100755
index 0000000..be3d537
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircd-dvicomce.conf
@@ -0,0 +1,77 @@
+# Please make this file available to others
+    # by sending it to <lirc@bartelmus.de>
+    #
+    # this config file was automatically generated
+    # using lirc-0.8.1pre1(dev/input) on Tue Jun 20 19:52:04 2006
+    #
+    # contributed by  Craig Cook
+    #
+    # brand:                      DViCO FusionHDTV DVB-T Dual Digital
+    # model no. of remote control: Fusion MCE
+    # devices being controlled by this remote:
+    #
+    
+    begin remote
+    
+      name  DViCO_Dual_Digital
+      bits           16
+      eps            30
+      aeps          100
+    
+      one             0     0
+      zero            0     0
+      pre_data_bits   16
+      pre_data       0x1
+      gap            251756
+      toggle_bit      0
+    
+    
+          begin codes
+              1                        0x0002
+              2                        0x0003
+              3                        0x0004
+              4                        0x0005
+              5                        0x0006
+              6                        0x0007
+              7                        0x0008
+              8                        0x0009
+              9                        0x000A
+              0                        0x000B
+              rew                      0x00A8
+              playpause                0x00A4
+              ff                       0x00D0
+              mute                     0x0071
+              stop                     0x0080
+              rec                      0x00A7
+              power                    0x0074
+              camera                   0x00D4
+              live                     0x0182
+              folder                   0x0086
+              voldown                  0x0072
+              volup                    0x0073
+              chup                     0x0192
+              chdn                     0x0193
+              start                    0x001C
+              replay                   0x00A5
+              skip                     0x00A3
+              down                     0x006C
+              right                    0x006A
+              left                     0x0069
+              up                       0x0067
+              ok                       0x0160
+              dvdmenu                  0x008B
+              back                     0x009E
+              setup                    0x008D
+              tvpower                  0x0164
+              guide                    0x016D
+              info                     0x0166
+              alttab                   0x000F
+              dtv                      0x0179
+              mp3                      0x0187
+              dvd                      0x0185
+              cpf                      0x016C
+              aspect                   0x0173
+              zoom                     0x0174
+          end codes
+    
+    end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircrc-dvicomce.txt b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircrc-dvicomce.txt
new file mode 100755
index 0000000..4326a59
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircrc-dvicomce.txt
@@ -0,0 +1,475 @@
+# Channel Up
+begin
+prog = mythtv
+button = chup
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = chdn
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = volup
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = voldown
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = ok
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = playpause
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = playpause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = ff
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = rew
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = skip
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = back
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = guide
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = info
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = aspect
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = guide
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = playpause
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = rew
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = ff
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = skip
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = back
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = zoom
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = playpause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = ok
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = menu
+config = Menu
+end
+ 
+begin
+prog = xine
+button = ff
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = rew
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = volup
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = voldown
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = skip
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = back
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = info
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircd-dvicomceold.conf b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircd-dvicomceold.conf
new file mode 100755
index 0000000..d814713
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircd-dvicomceold.conf
@@ -0,0 +1,76 @@
+#
+# this config file was automatically generated
+# using lirc-0.7.0(dvico) on Sat Jun 18 00:56:01 2005
+#
+# contributed by anonymous
+#
+# brand:                       DVICO
+# model no. of remote control: MCE Remote
+#
+
+begin remote
+
+  name           DVICO_MCE
+  bits           32
+  eps            30
+  aeps          100
+
+  one             0     0
+  zero            0     0
+  pre_data_bits   8
+  pre_data       0x0
+  post_data_bits  8
+  post_data      0x0
+  gap          195956
+  toggle_bit      0
+
+
+      begin codes
+          ok                       0x0000000000FE5E00
+          dtv                      0x0000000000FE0200
+          mp3                      0x0000000000FE0E00
+          dvd                      0x0000000000FE1A00
+          cpf                      0x0000000000FE1E00
+          setup                    0x0000000000FE1600
+          tv_onoff                 0x0000000000FE4600
+          guide                    0x0000000000FE0A00
+          back                     0x0000000000FE4900
+          more                     0x0000000000FE5900
+          dvd_menu                 0x0000000000FE4D00
+          alt_tab                  0x0000000000FE5500
+          replay                   0x0000000000FE0F00
+          skip                     0x0000000000FE1200
+          up                       0x0000000000FE5100
+          down                     0x0000000000FE5300
+          left                     0x0000000000FE5B00
+          right                    0x0000000000FE5F00
+          start                    0x0000000000FE4200
+          vol_up                   0x0000000000FE1500
+          vol_down                 0x0000000000FE0500
+          ch_up                    0x0000000000FE1100
+          ch_down                  0x0000000000FE0900
+          snapshot                 0x0000000000FE5200
+          live                     0x0000000000FE5A00
+          folder_open              0x0000000000FE1900
+          1                        0x0000000000FE0B00
+          2                        0x0000000000FE1700
+          3                        0x0000000000FE1B00
+          4                        0x0000000000FE0700
+          5                        0x0000000000FE5000
+          6                        0x0000000000FE5400
+          7                        0x0000000000FE4800
+          8                        0x0000000000FE4C00
+          9                        0x0000000000FE5800
+          0                        0x0000000000FE0300
+          aspect                   0x0000000000FE1300
+          fullscreen               0x0000000000FE1F00
+          rewind                   0x0000000000FE4300
+          playpause                0x0000000000FE4700
+          fastforward              0x0000000000FE4F00
+          stop                     0x0000000000FE0D00
+          mute                     0x0000000000FE5700
+          record                   0x0000000000FE0100
+	  white_onoff              0x0000000000FE4E00
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircrc-dvicomceold.txt b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircrc-dvicomceold.txt
new file mode 100755
index 0000000..3d196c4
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircrc-dvicomceold.txt
@@ -0,0 +1,526 @@
+ 
+   # Power Button
+   begin
+   prog = irexec
+   button = power_onoff
+   repeat = 3
+   config = /usr/bin/mythpowerbutton.sh
+   end
+
+   
+   # Channel Up
+   begin
+   prog = mythtv
+   button = ch_up
+   repeat = 3
+   config = Up
+   end
+   
+   # Channel Down
+   begin
+   prog = mythtv
+   button = ch_down
+   repeat = 3
+   config = Down
+   end
+   
+   # OK/Select
+   begin
+   prog = mythtv
+   button = ok
+   config = Space
+   end
+   
+   # Play/Pause
+   begin
+   prog = mythtv
+   button = playpause
+   config = P
+   end
+   
+   begin
+   prog = mythtv
+   button = stop
+   config = Esc
+   end
+   
+   # Escape/Exit/Back
+   begin
+   prog = mythtv
+   button = back
+   config = Esc
+   end
+   
+   # Escape/Exit/Back
+   begin
+   prog = mythtv
+   button = tv_onoff
+   config = Esc
+   end
+   
+   # big green start button
+   begin
+   prog = mythtv
+   button = start
+   repeat = 3
+   config = Esc
+   end
+   
+   # Mute
+   begin
+   prog = mythtv
+   button = mute
+   repeat = 3
+   config = F9
+   end
+   
+   # Fast forward (30 sec default)
+   begin
+   prog = mythtv
+   button = fastforward
+   repeat = 24
+   config = Right
+   end
+   
+   # Back (10 sec default)
+   begin
+   prog = mythtv
+   button = rewind
+   repeat = 24
+   config = Left
+   end
+   
+   # Skip forward (10 min default)
+   begin
+   prog = mythtv
+   button = skip
+   repeat = 3
+   config = PgDown
+   end
+   
+   # Skip backward (10 min default)
+   begin
+   prog = mythtv
+   button = replay
+   repeat = 3
+   config = PgUp
+   end
+   
+   # Record
+   begin
+   prog = mythtv
+   button = record
+   repeat = 3
+   config = R
+   end
+   
+   # OSD browse
+   begin
+   prog = mythtv
+   button = guide
+   repeat = 3
+   config = O
+   end
+   
+   # Display EPG while in live TV,
+   # View selected show while in EPG
+   begin
+   prog = mythtv
+   button = setup
+   repeat = 3
+   config = M
+   end
+   
+   # Scroll up
+   begin
+   prog = mythtv
+   button = up
+   repeat = 3
+   config = Up
+   end
+   
+   # Scroll down
+   begin
+   prog = mythtv
+   button = down
+   repeat = 3
+   config = Down
+   end
+   
+   # Scroll Left
+   begin
+   prog = mythtv
+   button = left
+   repeat = 3
+   config = Left
+   end
+   
+   # Scroll Right
+   begin
+   prog = mythtv
+   button = right
+   repeat = 3
+   config = Right
+   end
+   
+   # Bring up OSD info
+   begin
+   prog = mythtv
+   button = more
+   repeat = 3
+   config = I
+   end
+   
+   # Change display aspect ratio
+   begin
+   prog = mythtv
+   button = aspect
+   repeat = 3
+   config = W
+   end
+   
+   # Seek to previous commercial cut point
+   begin
+   prog = mythtv
+   button = snapshot
+   repeat = 3
+   config = Q
+   end
+   
+   # Seek to next commercial cut point
+   begin
+   prog = mythtv
+   button = folder_open
+   repeat = 3
+   config = Z
+   end
+   
+   # Numbers 0-9
+   
+   begin
+   prog = mythtv
+   button = 0
+   repeat = 3
+   config = 0
+   end
+   
+   begin
+   prog = mythtv
+   button = 1
+   repeat = 3
+   config = 1
+   end
+   
+   begin
+   prog = mythtv
+   button = 2
+   repeat = 3
+   config = 2
+   end
+   
+   begin
+   prog = mythtv
+   button = 3
+   repeat = 3
+   config = 3
+   end
+   
+   begin
+   prog = mythtv
+   button = 4
+   repeat = 3
+   config = 4
+   end
+   
+   begin
+   prog = mythtv
+   button = 5
+   repeat = 3
+   config = 5
+   end
+   
+   begin
+   prog = mythtv
+   button = 6
+   repeat = 3
+   config = 6
+   end
+   
+   begin
+   prog = mythtv
+   button = 7
+   repeat = 3
+   config = 7
+   end
+   
+   begin
+   prog = mythtv
+   button = 8
+   repeat = 3
+   config = 8
+   end
+   
+   begin
+   prog = mythtv
+   button = 9
+   repeat = 3
+   config = 9
+   end
+   
+   begin
+   prog = mythtv
+   button = dvd_menu
+   config = M
+   end
+   
+   begin
+   prog = mythtv
+   button = vol_down
+   repeat = 3
+   config = [
+   end
+   
+   begin
+   prog = mythtv
+   button = vol_up
+   repeat = 3
+   config = ]
+   end
+   
+   begin
+   prog = mythtv
+   button = dtv
+   config = C
+   end
+
+### MPlayer/Xine lirc setup
+   
+   # Show OSD
+   begin
+   prog = mplayer
+   button = guide
+   repeat = 3
+   config = osd
+   end
+   
+   # Pause playback
+   begin
+   prog = mplayer
+   button = stop
+   repeat = 3
+   config = pause
+   end
+   
+   # Skip ahead a minute if playing
+   # If paused, resume playing
+   begin
+   prog = mplayer
+   button = playpause
+   repeat = 3
+   config = seek +1
+   end
+   
+   # Stop playback and exit
+   begin
+   prog = mplayer
+   button = tv_onoff
+   repeat = 3
+   config = quit
+   end
+   begin
+   prog = mplayer
+   button = back
+   repeat = 3
+   config = quit
+   end
+   
+   # big green start button
+   begin
+   prog = mplayer
+   button = start
+   repeat = 3
+   config = quit
+   end
+   
+   # Mute
+   begin
+   prog = mplayer
+   button = mute
+   repeat = 3
+   config = mute
+   end
+   
+   # Seek back 10 seconds
+   begin
+   prog = mplayer
+   button = left
+   repeat = 3
+   config = seek -10
+   end
+   
+   # Seek forward 30 seconds
+   begin
+   prog = mplayer
+   button = right
+   repeat = 3
+   config = seek +30
+   end
+   
+   # Seek forward 3 minutes
+   begin
+   prog = mplayer
+   button = fastforward
+   repeat = 3
+   config = seek +180
+   end
+   
+   # Seek backward 3 minutes
+   begin
+   prog = mplayer
+   button = rewind
+   repeat = 3
+   config = seek -180
+   end
+   
+   # Seek forward 10 minutes
+   begin
+   prog = mplayer
+   button = skip
+   repeat = 3
+   config = seek +600
+   end
+   
+   # Seek backward 10 minutes
+   begin
+   prog = mplayer
+   button = replay
+   repeat = 3
+   config = seek -600
+   end
+   
+   # Toggle full-screen
+   begin
+   prog = mplayer
+   button = fullscreen
+   repeat = 3
+   config = vo_fullscreen
+   end
+   
+   # Xine
+   
+   begin
+   prog = xine
+   button = playpause
+   repeat = 3
+   config = Play
+   end
+   
+   begin
+   prog = xine
+   button = stop
+   repeat = 3
+   config = Pause
+   end
+   
+   begin
+   prog = xine
+   button = back
+   config = Quit
+   end
+   
+   begin
+   prog = xine
+   button = tv_onoff
+   config = Quit
+   end
+   
+   begin
+   prog = xine
+   button = right
+   repeat = 3
+   config = SeekRelative+10
+   end
+   
+   begin
+   prog = xine
+   button = left
+   repeat = 3
+   config = SeekRelative-10
+   end
+   
+   begin
+   prog = xine
+   button = fastforward
+   repeat = 3
+   config = SeekRelative+30
+   end
+   
+   begin
+   prog = xine
+   button = rewind
+   repeat = 3
+   config = SeekRelative-30
+   end
+   
+   begin
+   prog = xine
+   button = skip
+   repeat = 3
+   config = SeekRelative+300
+   end
+   
+   begin
+   prog = xine
+   button = replay
+   repeat = 3
+   config = SeekRelative-300
+   end
+   
+   begin
+   prog = xine
+   button = up
+   repeat = 1
+   config = EventUp
+   end
+   
+   begin
+   prog = xine
+   button = down
+   repeat = 1
+   config = EventDown
+   end
+   
+   begin
+   prog = xine
+   button = ok
+   repeat = 0
+   config = EventSelect
+   end
+   
+   begin
+   prog = xine
+   button = guide
+   repeat = 0
+   config = Menu
+   end
+   
+   begin
+   prog = xine
+   button = setup
+   repeat = 0
+   config = Menu
+   end
+   
+   begin
+   prog = xine
+   button = vol_up
+   repeat = 1
+   config = Volume+
+   end
+   
+   begin
+   prog = xine
+   button = vol_down
+   repeat = 1
+   config = Volume-
+   end
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircd-dvicoslim.conf b/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircd-dvicoslim.conf
new file mode 100755
index 0000000..b49c0f6
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircd-dvicoslim.conf
@@ -0,0 +1,63 @@
+#
+# contributed by  Chris Pascoe
+#
+# brand:                       DVICO
+# model no. of remote control: DVB-T 
+# devices being controlled by this remote:
+#
+
+begin remote
+
+  name  DVICO
+  bits            32
+  eps             0
+  aeps            0
+
+  one             0     0
+  zero            0     0
+  pre_data_bits   32
+  pre_data 0x10046
+  gap          195755
+  post_data_bits  0
+  toggle_bit     0
+
+      begin codes
+          1                        0x00000000000011F9
+          2                        0x00000000000012F9
+          3                        0x00000000000013F9
+          4                        0x00000000000014F9
+          5                        0x00000000000015F9
+          6                        0x00000000000016F9
+          7                        0x00000000000017F9
+          8                        0x00000000000018F9
+          9                        0x00000000000019F9
+          0                        0x00000000000010F9
+          power                    0x0000000000000AF9
+          pcoff                    0x0000000000000CF9
+          camera                   0x0000000000001AF9
+          record                   0x0000000000001BF9
+          chup                     0x00000000000000F9
+          chdown                   0x00000000000001F9
+          volup                    0x00000000000002F9
+          voldown                  0x00000000000003F9
+          playpause                0x0000000000001FF9
+          rew                      0x0000000000001CF9
+          stop                     0x0000000000001EF9
+          ff                       0x0000000000001DF9
+          folder                   0x00000000000040F9
+          atvdtv                   0x00000000000006F9
+          dvhs                     0x00000000000041F9
+          menu                     0x00000000000008F9
+          aspect                   0x00000000000007F9
+          zoom                     0x00000000000004F9
+          epg                      0x0000000000000BF9
+          mute                     0x0000000000000DF9
+          back                     0x0000000000000EF9
+          hd                       0x0000000000000FF9
+          red                      0x00000000000005F9
+          green                    0x00000000000009F9
+          yellow                   0x00000000000042F9
+          blue                     0x00000000000043F9
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircrc-dvicoslim.txt b/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircrc-dvicoslim.txt
new file mode 100755
index 0000000..b3e6089
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircrc-dvicoslim.txt
@@ -0,0 +1,475 @@
+# Channel Up
+begin
+prog = mythtv
+button = chup
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = chdown
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = chup
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = chdown
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = volup
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = voldown
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = playpause
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = back
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = playpause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = ff
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = rew
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = record
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = red
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = yellow
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = menu
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = blue
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = aspect
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = green
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = menu
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = playpause
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = ff
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = rew
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = back
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = aspect
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = playpause
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = playpause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = 
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = menu
+config = Menu
+end
+ 
+begin
+prog = xine
+button = ff
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = rew
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = volup
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = voldown
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = back
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = aspect
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_slim/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Dvico_slim/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Dvico_slim/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/lircd-flyvideo2000.conf b/abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/lircd-flyvideo2000.conf
new file mode 100755
index 0000000..03a5f14
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/lircd-flyvideo2000.conf
@@ -0,0 +1,57 @@
+# Please make this file available to others
+# by sending it to <lirc@bartelmus.de>
+#
+# this config file was automatically generated
+# using lirc-0.8.1(dev/input) on Wed Jun 13 19:09:39 2007
+#
+# contributed by
+#
+# brand: /tmp/lirc.conf
+# model no. of remote control:
+# devices being controlled by this remote:
+#
+
+begin remote
+
+name	FlyVideo_2000
+bits		16
+eps		30
+aeps		100
+
+one	0 0
+zero		0 0
+pre_data_bits	 16
+pre_data	 0x8001
+gap		208092
+toggle_bit	0
+
+
+begin codes
+	Air/catTV		0x0175
+	Video		0x0189
+	Audio		0x0188
+	Power		0x0074
+	AVSource		0x0182
+	FullScreen	0x0174
+	Stereo		0x0170
+	Mute			0x0071
+	Vol+			0x0073
+	Vol-			0x0072
+	Ch+			0x0192
+	Ch-			0x0193
+	Recall		0x0081
+	Enter		0x001C
+	1			0x0002
+	2			0x0003
+	3			0x0004
+	4			0x0005
+	5			0x0006
+	6			0x0007
+	7			0x0008
+	8			0x0009
+	9			0x000A
+	0			0x000B
+		
+end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/lircrc-flyvideo2000.txt b/abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/lircrc-flyvideo2000.txt
new file mode 100755
index 0000000..08fb7fb
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/lircrc-flyvideo2000.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = Ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = Ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = Ch+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = Ch-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = Vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = Vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = Enter
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = 
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = Power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = 
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = Mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = 
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = 
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = Recall
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = 
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = 
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = Mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = 
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = 
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = 
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = FullScreen
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = 
+config = Play
+end
+ 
+begin
+prog = xine
+button = 
+config = Stop
+end
+ 
+begin
+prog = xine
+button = 
+config = Quit
+end
+ 
+begin
+prog = xine
+button = 
+config = Pause
+end
+ 
+begin
+prog = xine
+button = Ch+
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = Ch-
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = Enter
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = 
+config = Menu
+end
+ 
+begin
+prog = xine
+button = 
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = 
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = Vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = Vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = Mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = 
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = 
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Flyvideo_2000/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/lircd-flyvideo3000.conf b/abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/lircd-flyvideo3000.conf
new file mode 100755
index 0000000..8b4f23e
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/lircd-flyvideo3000.conf
@@ -0,0 +1,47 @@
+# lircd.conf.Flyvideo_3000_devinput
+#
+# Lirc configuration file for the LifeView FlyVideo 3000 remote.
+#
+# Adapted from the standard linux input layer config file found at
+# http://linux.bytesex.org/v4l2/linux-input-layer-lircd.conf
+# The remote name and button names are consistent with lircd.conf.Flyvideo_3000.
+#
+# Created January 22, 2005
+#
+# contributed by Jason Anderson (jasonofhoulton@hotmail.com)
+#
+# brand:                        Lifeview
+# model no. of remote control:  Flyvideo 3000
+# devices being controlled by this remote:   
+#
+
+begin remote
+	name	Flyvideo_3000
+	bits		32
+	begin codes
+		air/catv             0x10182
+		video                0x10189
+		audio                0x10188
+		power                0x10074
+		av_source            0x100b0
+		full_screen          0x10174
+		stereo               0x100c0
+		Mute                 0x10071
+		1                    0x1004f
+		2                    0x10050
+		3                    0x10051
+		vol+                 0x10073
+		4                    0x1004b
+		5                    0x1004c
+		6                    0x1004d
+		vol-                 0x10072
+		7                    0x10047
+		8                    0x10048
+		9                    0x10049
+		ch+                  0x10192
+		recall               0x10081
+		0                    0x10052
+		enter                0x10060
+		ch-                  0x10193
+	end codes
+end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/lircrc-flyvideo3000.txt b/abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/lircrc-flyvideo3000.txt
new file mode 100755
index 0000000..565c2d9
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/lircrc-flyvideo3000.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = ch-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = enter
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = 
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = 
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = Mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = 
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = 
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = recall
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = 
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = 
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = Mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = 
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = 
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = 
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = full_Screen
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = 
+config = Play
+end
+ 
+begin
+prog = xine
+button = 
+config = Stop
+end
+ 
+begin
+prog = xine
+button = 
+config = Quit
+end
+ 
+begin
+prog = xine
+button = 
+config = Pause
+end
+ 
+begin
+prog = xine
+button = ch+
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = ch-
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = enter
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = 
+config = Menu
+end
+ 
+begin
+prog = xine
+button = 
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = 
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = Mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = 
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = 
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Flyvideo_3000/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Hercules/lircd-hercules.conf b/abs/core-testing/system-templates/templates/remotes/Hercules/lircd-hercules.conf
new file mode 100755
index 0000000..a745dbb
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Hercules/lircd-hercules.conf
@@ -0,0 +1,61 @@
+#
+# this config file was automatically generated
+# using lirc-0.6.6(any) on Mon Oct  6 01:10:14 2003
+#
+# contributed by Dimitris Michail <dmichail|yahoo.com>
+#
+# brand: Hercules                      
+# model no. of remote control: unknown
+# devices being controlled by this remote: Hercules SmartTV Stereo
+#
+# Works with module lirc_i2c, reports PV951 IR
+
+begin remote
+
+  name  HERCULES_SMARTTV_STEREO
+  bits           16
+  eps            30
+  aeps          100
+
+  one             0     0
+  zero            0     0
+  pre_data_bits   16
+  pre_data       0x61D6
+  gap          199964
+  toggle_bit      0
+
+
+      begin codes
+          POWER                    0x00000000000048B7
+          MUTE                     0x000000000000C837
+          PREVIEW                  0x000000000000F00F
+          FULLSCREEN               0x00000000000038C7
+          AV/TV                    0x0000000000008877
+          TELETEXT                 0x00000000000008F7
+          1                        0x000000000000807F
+          2                        0x00000000000040BF
+          3                        0x000000000000C03F
+          4                        0x00000000000020DF
+          5                        0x000000000000A05F
+          6                        0x000000000000609F
+          7                        0x000000000000E01F
+          8                        0x00000000000010EF
+          9                        0x000000000000906F
+          0                        0x00000000000000FF
+          SNAPSHOT                 0x00000000000050AF
+          100+                     0x000000000000E817
+          CH+                      0x00000000000058A7
+          CH-                      0x0000000000007887
+          VOL+                     0x000000000000D827
+          VOL-                     0x000000000000F807
+          PAUSE                    0x000000000000B04F
+          RECORD                   0x000000000000708F
+          STOP                     0x000000000000B847
+          PLAY                     0x0000000000009867
+          TV_REPLAY                0x0000000000006897
+          TIME_SHIFT               0x00000000000028D7
+          SEEK_BACK                0x00000000000018E7
+          SEEK_FWD                 0x00000000000030CF
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Hercules/lircrc-hercules.txt b/abs/core-testing/system-templates/templates/remotes/Hercules/lircrc-hercules.txt
new file mode 100755
index 0000000..c54873b
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Hercules/lircrc-hercules.txt
@@ -0,0 +1,475 @@
+# Channel Up
+begin
+prog = mythtv
+button = CH+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CH-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = CH+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = CH-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VOL+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VOL-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = PLAY
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = STOP
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = POWER
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = PAUSE
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = MUTE
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = SEEK_FWD
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = SEEK_BACK
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = RECORD
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = PREVIEW
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = FULLSCREEN
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Closed Captioning
+begin
+prog = mythtv
+button = TELETEXT
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = PREVIEW
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = PAUSE
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = MUTE
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = SEEK_BACK
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = SEEK_FWD
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = STOP
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = FULLSCREEN
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = PLAY
+config = Play
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Stop
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Quit
+end
+ 
+begin
+prog = xine
+button = PAUSE
+config = Pause
+end
+ 
+begin
+prog = xine
+button = 
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = PREVIEW
+config = Menu
+end
+ 
+begin
+prog = xine
+button = SEEK_FWD
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = SEEK_BACK
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VOL+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VOL-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = MUTE
+config = Mute
+end
+ 
+begin
+prog = xine
+button = STOP
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = TELETEXT
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Hercules/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Hercules/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Hercules/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_110/lircd-kworld110.conf b/abs/core-testing/system-templates/templates/remotes/Kworld_110/lircd-kworld110.conf
new file mode 100755
index 0000000..eab7fa2
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_110/lircd-kworld110.conf
@@ -0,0 +1,84 @@
+#
+# this config file was automatically generated
+# using lirc-0.8.1-CVS(default) on Sun Jan 14 20:53:40 2007
+#
+# contributed by Craig Courtney <craig at dawnsedge.com>
+#
+# brand: Kworld
+# model no. of remote control: ATSC 110 Remote
+# devices being controlled by this remote: ATSC 110 HDTV Tuner Card
+# 
+# Generated with homebrew serial circuit connect to reciever that came 
+# with the card.
+#
+
+begin remote
+
+  name  Kworld_ATSC_110
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       9084  4466
+  one           604  1650
+  zero          604   526
+  ptrail        603
+  repeat       9082  2218
+  pre_data_bits   16
+  pre_data       0xDF
+  gap          108354
+  toggle_bit      0
+
+
+      begin codes
+          power                    0x30CF
+          ch+                      0x7887
+          ch-                      0xF807
+          vol+                     0x38C7
+          vol-                     0xB847
+          1                        0x00FF
+          2                        0x807F
+          3                        0x40BF
+          4                        0xC03F
+          5                        0x20DF
+          6                        0xA05F
+          7                        0x609F
+          8                        0xE01F
+          9                        0x10EF
+          0                        0x50AF
+          numpad_up                0x906F
+          numpad_enter             0xD02F
+          standby                  0xB04F
+          mute                     0x28D7
+          stereo                   0xA857
+          source                   0x6897
+          zoom                     0xE817
+          shut_down                0x18E7
+          up                       0x08F7
+          left                     0x48B7
+          right                    0xC837
+          down                     0x8877
+          select                   0x708F
+          timeshift                0x9867
+          stop                     0x58A7
+          rec                      0xD827
+          scan_rev                 0x02FD
+          scan_fwd                 0x827D
+          play_pause               0x22DD
+          play_stop                0xA25D
+          chapter_rev              0x42BD
+          chapter_fwd              0xC23D
+          a                        0x12ED
+          b                        0x926D
+          c                        0x52AD
+          d                        0xD22D
+          e                        0x32CD
+          f                        0xB24D
+          g                        0x728D
+          h                        0xF20D
+      end codes
+
+end remote
+
+
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_110/lircrc-kworld110.txt b/abs/core-testing/system-templates/templates/remotes/Kworld_110/lircrc-kworld110.txt
new file mode 100755
index 0000000..7447a46
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_110/lircrc-kworld110.txt
@@ -0,0 +1,482 @@
+# Channel Up
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = select
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play_pause
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = play_pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = scan_fwd
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = scan_rev
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = chapter_fwd
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = chapter_rev
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = d
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = b
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = e
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = c
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = zoom
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = h
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = f
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = g
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = source
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = play_pause
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = scan_rev
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = seek_fwd
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = chapter_fwd
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = chapter_rev
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = zoom
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play_pause
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = play_pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = select
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = a
+config = Menu
+end
+ 
+begin
+prog = xine
+button = seek_fwd
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = seek_rev
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = chapter_fwd
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = chapter_rev
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = source
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_110/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Kworld_110/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Kworld_110/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_220/lircd-kworld220.conf b/abs/core-testing/system-templates/templates/remotes/Kworld_220/lircd-kworld220.conf
new file mode 100755
index 0000000..a483e7f
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_220/lircd-kworld220.conf
@@ -0,0 +1,80 @@
+#
+# this config file only works with a home-brew receiver!!!
+#
+
+#
+# this config file was automatically generated
+# using lirc-0.8.1(default) on Sun Jul  1 22:59:56 2007
+#
+# contributed by Bruce Schultz <brucejs71 at yahoo.com.au>
+#
+# brand: KWorld
+# model no. of remote control: 
+# devices being controlled by this remote: DVB-T 220 tuner card
+#
+
+begin remote
+
+  name  KWorld-DVBT-220
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       9144  4394
+  one           673  1578
+  zero          673   453
+  ptrail        666
+  repeat       9146  2141
+  pre_data_bits   16
+  pre_data       0xDF
+  gap          108141
+  toggle_bit      0
+
+
+      begin codes
+          power                    0x30CF
+          standby                  0xB04F
+          sub_tv                   0x7887
+          preview                  0xF807
+          snap                     0x38C7
+          shut_down                0xB847
+          1                        0x00FF
+          2                        0x807F
+          3                        0x40BF
+          4                        0xC03F
+          5                        0x20DF
+          6                        0xA05F
+          7                        0x609F
+          8                        0xE01F
+          9                        0x10EF
+          0                        0x50AF
+          numpad_up                0x906F
+          numpad_enter             0xD02F
+          mute                     0x28D7
+          stereo                   0xA857
+          source                   0x6897
+          zoom                     0xE817
+          min                      0x18E7
+          left                     0x48B7
+          right                    0xC837
+          up                       0x08F7
+          down                     0x8877
+          select                   0x708F
+          timeshift                0x9867
+          stop                     0x58A7
+          rec                      0xD827
+          scan_rev                 0x02FD
+          scan_fwd                 0x827D
+          play_pause               0x22DD
+          play_stop                0xA25D
+          chapter_rev              0x42BD
+          chapter_fwd              0xC23D
+          fun1                     0x12ED
+          fun2                     0x926D
+          fun3                     0x52AD
+          fun4                     0xD22D
+      end codes
+
+end remote
+
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_220/lircrc-kworld220.txt b/abs/core-testing/system-templates/templates/remotes/Kworld_220/lircrc-kworld220.txt
new file mode 100755
index 0000000..702d238
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_220/lircrc-kworld220.txt
@@ -0,0 +1,482 @@
+# Channel Up
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = down
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = right
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = left
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = select
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play_pause
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = play_pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = scan_fwd
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = scan_rev
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = chapter_fwd
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = chapter_rev
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = fun1
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = fun2
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = zoom
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = fun3
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = source
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = play_pause
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = scan_rev
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = seek_fwd
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = chapter_fwd
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = chapter_rev
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = zoom
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play_pause
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = play_pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = select
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = preview
+config = Menu
+end
+ 
+begin
+prog = xine
+button = seek_fwd
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = seek_rev
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = right
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = left
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = chapter_fwd
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = chapter_rev
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = source
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_220/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Kworld_220/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Kworld_220/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_310/lircd-kworld310.conf b/abs/core-testing/system-templates/templates/remotes/Kworld_310/lircd-kworld310.conf
new file mode 100755
index 0000000..7ee4bdd
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_310/lircd-kworld310.conf
@@ -0,0 +1,80 @@
+#
+# this config file only works with a home-brew receiver!!!
+#
+
+#
+# this config file was automatically generated
+# using lirc-0.8.1(default) on Sun Jul  1 23:10:43 2007
+#
+# contributed by Bruce Schultz <brucejs71 at yahoo.com.au>
+#
+# brand:KWorld
+# model no. of remote control:
+# devices being controlled by this remote: DVB-T PE310 tuner card
+#
+
+begin remote
+
+  name  KWorld-DVBT-PE310
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       9175  4402
+  one           677  1580
+  zero          677   452
+  ptrail        667
+  repeat       9177  2145
+  pre_data_bits   16
+  pre_data       0xDF
+  gap          108444
+  toggle_bit      0
+
+
+      begin codes
+          power                    0x30CF
+          standby                  0xB04F
+          sub_tv                   0x7887
+          preview                  0xF807
+          snap                     0x38C7
+          shut_down                0xB847
+          1                        0x00FF
+          2                        0x807F
+          3                        0x40BF
+          4                        0xC03F
+          5                        0x20DF
+          6                        0xA05F
+          7                        0x609F
+          8                        0xE01F
+          9                        0x10EF
+          0                        0x50AF
+          numpad_up                0x906F
+          numpad_enter             0xD02F
+          mute                     0x28D7
+          stereo                   0xA857
+          source                   0x6897
+          zoom                     0xE817
+          min                      0x18E7
+          left                     0x48B7
+          right                    0xC837
+          up                       0x08F7
+          down                     0x8877
+          select                   0x708F
+          timeshift                0x9867
+          stop                     0x58A7
+          rec                      0xD827
+          scan_rev                 0x02FD
+          scan_fwd                 0x827D
+          play_pause               0x22DD
+          play_stop                0xA25D
+          chapter_rev              0x42BD
+          chapter_fwd              0xC23D
+          fun1                     0x12ED
+          fun2                     0x926D
+          fun3                     0x52AD
+          fun4                     0xD22D
+      end codes
+
+end remote
+
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_310/lircrc-kworld310.txt b/abs/core-testing/system-templates/templates/remotes/Kworld_310/lircrc-kworld310.txt
new file mode 100755
index 0000000..702d238
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_310/lircrc-kworld310.txt
@@ -0,0 +1,482 @@
+# Channel Up
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = down
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = right
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = left
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = select
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play_pause
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = play_pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = scan_fwd
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = scan_rev
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = chapter_fwd
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = chapter_rev
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = fun1
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = fun2
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = zoom
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = fun3
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = source
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = play_pause
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = scan_rev
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = seek_fwd
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = chapter_fwd
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = chapter_rev
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = zoom
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play_pause
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = play_pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = select
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = preview
+config = Menu
+end
+ 
+begin
+prog = xine
+button = seek_fwd
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = seek_rev
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = right
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = left
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = chapter_fwd
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = chapter_rev
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = source
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_310/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Kworld_310/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Kworld_310/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/lircd-kworlddvbt.conf b/abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/lircd-kworlddvbt.conf
new file mode 100755
index 0000000..425e107
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/lircd-kworlddvbt.conf
@@ -0,0 +1,71 @@
+#
+# this config file was automatically generated
+# using lirc-0.6.6(sa1100) on Sun Feb 23 17:02:27 2003
+#
+# contributed by Denes Balatoni <pnis at coder.hu>
+#   Modified by Daniel Foote <freefoote at dview dot net> to
+#     work with remote that came with DVB-T card.
+#
+# brand: kworld
+# model no. of remote control: ?
+# devices being controlled by this remote: tv878r tuner card
+#
+
+begin remote
+
+  name  KWorld_DVB-T
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       8853  4526
+  one           533  1713
+  zero          533   589
+  ptrail        531
+  repeat       8853  2281
+  pre_data_bits   16
+  pre_data       0x61D6
+  gap          107839
+  toggle_bit      0
+
+
+      begin codes
+          ch-                      0x0000000000007887
+          7                        0x000000000000E01F
+          preview                  0x00000000000038C7
+          zoom                     0x00000000000018E7
+          3                        0x000000000000C03F
+          1                        0x000000000000807F
+          epg                      0x000000000000D02F
+          vol+                     0x000000000000D827
+          vol-                     0x000000000000F807
+          5                        0x000000000000A05F
+          9                        0x000000000000906F
+          reset                    0x000000000000A857
+          turnleft                 0x000000000000E817
+          6                        0x000000000000609F
+          0                        0x00000000000050AF
+          power                    0x00000000000048B7
+          scan                     0x00000000000030CF
+          2                        0x00000000000040BF
+          mute                     0x00000000000008F7
+          snap                     0x000000000000C837
+          4                        0x00000000000020DF
+          turnup                   0x00000000000000FF
+          8                        0x00000000000010EF
+          backward                 0x0000000000008877
+          source                   0x000000000000F00F
+          forward                  0x0000000000009867
+          pip                      0x00000000000028D7
+          ch-                      0x000000000000E817
+          play                     0x0000000000006897
+          ch+                      0x00000000000058A7
+          stop                     0x000000000000B04F
+          function-                0x00000000000020DF
+          pause                    0x000000000000708F
+          function+                0x00000000000030CF
+          rec                      0x000000000000B847
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/lircrc-kworlddvbt.txt b/abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/lircrc-kworlddvbt.txt
new file mode 100755
index 0000000..70272b7
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/lircrc-kworlddvbt.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = ch-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = forward
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = backward
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = function+
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = function-
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = preview
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = epg
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = source
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = zoom
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = reset
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = pip
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = snap
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = epg
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = backward
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = forward
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = function+
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = function-
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = zoom
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = turnup
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = epg
+config = Menu
+end
+ 
+begin
+prog = xine
+button = forward
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = backward
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = function+
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = function-
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = source
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Kworld_DVBT/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_tv878/lircd-kworldtv878.conf b/abs/core-testing/system-templates/templates/remotes/Kworld_tv878/lircd-kworldtv878.conf
new file mode 100755
index 0000000..5817bfd
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_tv878/lircd-kworldtv878.conf
@@ -0,0 +1,70 @@
+#
+# this config file was automatically generated
+# using lirc-0.6.6(sa1100) on Sun Feb 23 17:02:27 2003
+#
+# contributed by Denes Balatoni <pnis at coder.hu>
+#
+# brand: kworld
+# model no. of remote control: ?
+# devices being controlled by this remote: tv878r tuner card
+#
+
+begin remote
+
+  name  kworld-878
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       8853  4526
+  one           533  1713
+  zero          533   589
+  ptrail        531
+  repeat       8853  2281
+  pre_data_bits   16
+  pre_data       0x61D6
+  gap          107839
+  toggle_bit      0
+
+
+      begin codes
+          power                    0x0000000000007887
+          source                   0x000000000000E01F
+          scan                     0x00000000000038C7
+          mute                     0x00000000000018E7
+          tv/fm                    0x000000000000C03F
+          1                        0x000000000000807F
+          2                        0x000000000000D02F
+          3                        0x000000000000D827
+          fm_scan+                 0x000000000000F807
+          4                        0x000000000000A05F
+          5                        0x000000000000906F
+          6                        0x000000000000A857
+          fm_scan-                 0x000000000000E817
+          7                        0x000000000000609F
+          8                        0x00000000000050AF
+          9                        0x00000000000048B7
+          fm_freq+                 0x00000000000030CF
+          0                        0x00000000000040BF
+          +                        0x00000000000008F7
+          recall                   0x000000000000C837
+          fm-freq-                 0x00000000000020DF
+          record                   0x00000000000000FF
+          stop                     0x00000000000010EF
+          play                     0x0000000000008877
+          minimze                  0x000000000000F00F
+          ch+                      0x000000000000F807
+          zoom                     0x0000000000009867
+          vol-                     0x00000000000028D7
+          ch-                      0x000000000000E817
+          vol+                     0x0000000000006897
+          snapshot                 0x00000000000058A7
+          mts                      0x000000000000B04F
+          function-                0x00000000000020DF
+          function                 0x000000000000708F
+          function+                0x00000000000030CF
+          reset                    0x000000000000B847
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_tv878/lircrc-kworldv878.txt b/abs/core-testing/system-templates/templates/remotes/Kworld_tv878/lircrc-kworldv878.txt
new file mode 100755
index 0000000..e1ca297
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Kworld_tv878/lircrc-kworldv878.txt
@@ -0,0 +1,482 @@
+# Channel Up
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = ch-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = snapshot
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = function+
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = function-
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = record
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = function
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = scan
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = minimze
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = recall
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = scan
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = snapshot
+config = pause
+end
+ 
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = 
+config = seek +1
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = function-
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = function+
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = zoom
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = snapshot
+config = Pause
+end
+ 
+begin
+prog = xine
+button = 
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = source
+config = Menu
+end
+ 
+begin
+prog = xine
+button = function+
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = function-
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = +
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = recall
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = reset
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_tv878/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Kworld_tv878/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Kworld_tv878/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/lircd-leadtek2000xp.conf b/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/lircd-leadtek2000xp.conf
new file mode 100755
index 0000000..4238a02
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/lircd-leadtek2000xp.conf
@@ -0,0 +1,77 @@
+# Please make this file available to others
+# by sending it to <lirc at bartelmus.de>
+#
+# this config file was automatically generated
+# using lirc-0.8.3-CVS(dev/input) on Tue Nov  6 17:04:54 2007
+#
+# contributed by: Jeff Kosowsky
+#
+# brand:		LeadTek
+# model no. of remote control: Y0400046 (bundled with Winfast 2000XP Deluxe)
+# devices being controlled by this remote: LeadTek Winfast 2000XP Deluxe
+
+# brand:             Leadtek
+# model:             Y0400052 (bundeled with Winfast PVR2000 TV-card)
+#
+# Note: Only CH_UP, CH_DOWN, VOL_UP and VOL_DOWN will repeat. This
+# seems to be a limitation of the remote control.
+
+begin remote
+
+  name  Leadtek_2000XP
+  bits           16
+  eps            30
+  aeps          100
+
+  one             0     0
+  zero            0     0
+  pre_data_bits   16
+  pre_data       0x8001
+  gap          423871
+  toggle_bit_mask 0x80010073
+
+      begin codes
+          POWER                    0x0074
+          MTS                      0x0188
+          TV/FM                    0x0182
+          VIDEO                    0x0189
+          DISPLAY                  0x0166
+          CH+                      0x0192
+          CH-                      0x0193
+          VOL-                     0x0072
+          VOL+                     0x0073
+          FULLSCREEN               0x0174
+          TELETEXT                 0x0184
+          SLEEP                    0x008E
+          BOSSKEY                  0x0163
+          MUTE                     0x0071
+          RED                      0x018E
+          GREEN                    0x018F
+          YELLOW                   0x0190
+          BLUE                     0x0191
+          1                        0x0002
+          2                        0x0003
+          3                        0x0004
+          4                        0x0005
+          5                        0x0006
+          6                        0x0007
+          7                        0x0008
+          8                        0x0009
+          9                        0x000A
+          0                        0x000B
+          .                        0x0034
+          FINETUNE+                0x004E
+          FINETUNE-                0x004A
+          PIP                      0x00E2
+          ENTER                    0x001C
+          RECALL                   0x0195
+          BACK                     0x019C
+          PLAY                     0x00A4
+          NEXT                     0x0197
+          TIMESHIFTING             0x0169
+          STOP                     0x0080
+          REC                      0x00A7
+          SNAPSHOT                 0x00EA
+      end codes
+
+end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/lircrc-leadtek2000xp.txt b/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/lircrc-leadtek2000xp.txt
new file mode 100755
index 0000000..f16beb3
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/lircrc-leadtek2000xp.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = CH+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CH-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = FINETUNE+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = FINETUNE-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VOL+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VOL-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = ENTER
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = PLAY
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = STOP
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = POWER
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = SNAPSHOT
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = MUTE
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = NEXT
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = BACK
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = REC
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = RED
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = GREEN
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = YELLOW
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = DISPLAY
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = RECALL
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = PIP
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = BLUE
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = DISPLAY
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = SNAPSHOT
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = MUTE
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = BACK
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = NEXT
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = STOP
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = FINETUNE+
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = FINETUNE-
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = FULLSCREEN
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = PLAY
+config = Play
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Stop
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Quit
+end
+ 
+begin
+prog = xine
+button = SNAPSHOT
+config = Pause
+end
+ 
+begin
+prog = xine
+button = CH+
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = CH-
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = FINETUNE-
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = FINETUNE+
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = ENTER
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = DISPLAY
+config = Menu
+end
+ 
+begin
+prog = xine
+button = NEXT
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = BACK
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VOL+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VOL-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = MUTE
+config = Mute
+end
+ 
+begin
+prog = xine
+button = STOP
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = TELETEXT
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/lircd-leadtekPVR.conf b/abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/lircd-leadtekPVR.conf
new file mode 100755
index 0000000..460ddcf
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/lircd-leadtekPVR.conf
@@ -0,0 +1,82 @@
+#
+# this config file was automatically generated
+# using lirc-0.8.2-CVS(default) on Thu Oct 25 23:27:29 2007
+#
+# contributed by 
+#
+# brand:                       Leadtek
+# model no. of remote control: 
+# devices being controlled by this remote: PVR2000
+#
+
+begin remote
+
+  name   PVR2000
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       8946  4535
+  one           530  1716
+  zero          530   593
+  ptrail        532
+  repeat       8945  2286
+  pre_data_bits   16
+  pre_data       0xC03F
+  gap          107856
+  toggle_bit_mask 0x0
+
+      begin codes
+          POWER                    0x00FF
+          TV                       0x6A95
+          FM                       0xEA15
+          DVD                      0x1AE5
+          RED                      0xD22D
+          GREEN                    0x32CD
+          YELLOW                   0xB24D
+          BLUE                     0x728D
+          TELETEXT                 0xF807
+          SLEEP                    0x02FD
+          MUTE                     0x28D7
+          BOSS_KEY                 0x926D
+          CH_UP                    0x30CF
+          CH_DOWN                  0x08F7
+          VOL_DOWN                 0x10EF
+          VOL_UP                   0x20DF
+          ENTER                    0xC837
+          CC                       0x0AF5
+          FULLSCREEN               0xC03F
+          MENU                     0xF20D
+          SCAN                     0x8A75
+          REPLAY                   0x42BD
+          PLAY                     0xC23D
+          SKIP                     0x22DD
+          OSD                      0x4AB5
+          BACK                     0x2AD5
+          STOP                     0x629D
+          FORWARD                  0xAA55
+          LANGUAGE                 0xCA35
+          1                        0xA05F
+          2                        0x609F
+          3                        0xE01F
+          4                        0x906F
+          5                        0x50AF
+          6                        0xD02F
+          7                        0xB04F
+          8                        0x708F
+          9                        0xF00F
+          0                        0x48B7
+          .                        0x827D
+          RECALL                   0x8877
+          VIDEO                    0x7887
+          AUDIO                    0xD827
+          DISPLAY                  0x6897
+          SNAPSHOT                 0x12ED
+          PIP                      0x52AD
+          RECSTOP                  0x629D
+          REC                      0xE21D
+          TIMESHIFT                0xA25D
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/lircrc-leadtekPVR.txt b/abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/lircrc-leadtekPVR.txt
new file mode 100755
index 0000000..a15ee21
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/lircrc-leadtekPVR.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = CH_UP
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CH_DOWN
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = CH_UP
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = CH_DOWN
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VOL_UP
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VOL_DOWN
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = ENTER
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = PLAY
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = STOP
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = POWER
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = SNAPSHOT
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = MUTE
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = FORWARD
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = BACK
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = REC
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = RED
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = GREEN
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = YELLOW
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = DISPLAY
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = RECALL
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = PIP
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = BLUE
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = DISPLAY
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = SNAPSHOT
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = MUTE
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = BACK
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = FORWARD
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = STOP
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = FULLSCREEN
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = PLAY
+config = Play
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Stop
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Quit
+end
+ 
+begin
+prog = xine
+button = SNAPSHOT
+config = Pause
+end
+ 
+begin
+prog = xine
+button = CH_UP
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = CH_DOWN
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = ENTER
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = DISPLAY
+config = Menu
+end
+ 
+begin
+prog = xine
+button = FORWARD
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = BACK
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VOL_UP
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VOL_DOWN
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = MUTE
+config = Mute
+end
+ 
+begin
+prog = xine
+button = STOP
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = TELETEXT
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Leadtek_PVR/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Lifeview/lircd-lifeview.conf b/abs/core-testing/system-templates/templates/remotes/Lifeview/lircd-lifeview.conf
new file mode 100755
index 0000000..2df0bc6
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Lifeview/lircd-lifeview.conf
@@ -0,0 +1,48 @@
+begin remote
+  name            Lifeview_trio
+  bits            16
+  eps             30
+  aeps            100
+  one             0     0
+  zero            0     0
+  gap             199996
+  pre_data_bits   16
+  pre_data        0x8001
+
+  begin codes
+       fullscreen      0x0174
+       power           0x0074
+       one             0x0002
+       two             0x0003
+       three           0x0004
+       four            0x0005
+       five            0x0006
+       six             0x0007
+       seven           0x0008
+       eight           0x0009
+       nine            0x000A
+       zero            0x000B
+       recall          0x0081
+       mute            0x0071
+       tv/radio        0x0181
+       sap             0x0170
+       ch+             0x0192
+       vol-            0x0072
+       enter           0x001C
+       vol+            0x0073
+       ch-             0x0193
+       pip             0x0175
+       source          0x0182
+       record/pause    0x00A7
+       timeshift/pause 0x0077
+       rewind          0x009E
+       play/pause      0x00A4
+       forward         0x009F
+       back            0x019C
+       stop            0x0080
+       next            0x0197
+       blank           0x0173
+
+  end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Lifeview/lircrc-lifeview.txt b/abs/core-testing/system-templates/templates/remotes/Lifeview/lircrc-lifeview.txt
new file mode 100755
index 0000000..845742a
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Lifeview/lircrc-lifeview.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = ch-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = enter
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play/pause
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = play/pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = forward
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = rewind
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = next
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = back
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = record/pause
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = source
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = blank
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  zero
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  one
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  two
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  three
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  four
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  five
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  six
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  seven
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  eight
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  nine
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = recall
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = pip
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = source
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = play/pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = rewind
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = forward
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = next
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = back
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = fullscreen
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play/pause
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = play/pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = ch+
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = ch-
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = enter
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = source
+config = Menu
+end
+ 
+begin
+prog = xine
+button = forward
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = rewind
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = next
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = back
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = blank
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Lifeview/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Lifeview/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Lifeview/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Medion_RF/lircd-medion-rf.conf b/abs/core-testing/system-templates/templates/remotes/Medion_RF/lircd-medion-rf.conf
new file mode 100755
index 0000000..8793475
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Medion_RF/lircd-medion-rf.conf
@@ -0,0 +1,82 @@
+# Please make this file available to others
+# by sending it to <lirc at bartelmus.de>
+#
+# this config file was automatically generated
+# using lirc-0.7.0(atiusb) on Sun Jan 23 11:18:36 2005
+#
+# contributed by Dirk Aust
+#
+# brand:	Medion, Made by X10, China
+# Remote P/N:	20016398
+# Receiver P/N:	20016397
+
+begin remote
+
+  name		Medion
+  bits           40
+  eps            30
+  aeps          100
+
+  one             0     0
+  zero            0     0
+  gap          139873
+  toggle_bit      0
+
+
+      begin codes
+          TV                       0x00000014012C0000
+          VCR                      0x00000014022D0000
+          DVD                      0x00000014D9040000
+          MUSIC                    0x00000014DB060000
+          RADIO                    0x00000014032E0000
+          PHOTO                    0x00000014DA050000
+          TV_PREVIEW               0x00000014042F0000
+          CHANNEL_LIST             0x0000001405300000
+          SETUP                    0x00000014F01B0000
+          VIDEO_DESKTOP            0x0000001406310000
+          CHAN+                    0x00000014E00B0000
+          VOL-                     0x00000014DD080000
+          MUTE                     0x00000014D5000000
+          VOL+                     0x00000014DE090000
+          CHAN-                    0x00000014E10C0000
+          RED                      0x0000001407320000
+          GREEN                    0x0000001408330000
+          YELLOW                   0x0000001409340000
+          BLUE                     0x000000140A350000
+          TXT                      0x00000014FE290000
+          1                        0x00000014E20D0000
+          2                        0x00000014E30E0000
+          3                        0x00000014E40F0000
+          4                        0x00000014E5100000
+          5                        0x00000014E6110000
+          6                        0x00000014E7120000
+          7                        0x00000014E8130000
+          8                        0x00000014E9140000
+          9                        0x00000014EA150000
+          TV/RADIO                 0x00000014F11C0000
+          0                        0x00000014EC170000
+          DELETE                   0x00000014F5200000
+          RENAME                   0x000000140B360000
+          SNAPSHOT                 0x00000014ED180000
+          UP                       0x00000014EF1A0000
+          LEFT                     0x00000014F21D0000
+          OK                       0x00000014F31E0000
+          RIGHT                    0x00000014F41F0000
+          DOWN                     0x00000014F7220000
+          ACQ_IMAGE                0x000000140C370000
+          EDIT_IMAGE               0x000000140D380000
+          REW                      0x00000014F9240000
+          PLAY                     0x00000014FA250000
+          FFW                      0x00000014FB260000
+          RECORD                   0x00000014FC270000
+          STOP                     0x00000014FD280000
+          PAUSE                    0x00000014FE290000
+          PREV                     0x00000014F6210000
+          FULL                     0x000000140E390000
+          NEXT                     0x00000014F8230000
+          DVD_MENU                 0x00000014EE190000
+          DVD_AUDIO                0x000000140F3A0000
+          POWER                    0x00000014D7020000
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Medion_RF/lircrc-medion-rf.txt b/abs/core-testing/system-templates/templates/remotes/Medion_RF/lircrc-medion-rf.txt
new file mode 100755
index 0000000..cc69f96
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Medion_RF/lircrc-medion-rf.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = CH+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CH-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = LEFT
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = RIGHT
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = UP
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = DOWN
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VOL+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VOL-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = OK
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = PLAY_PAUSE
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = STOP
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = PC
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = PLAY_PAUSE
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = MUTE
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = FFWD
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = FRWND
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = NEXT
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = PREV
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = RECORD
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = 
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = RC
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = 
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = PLAY_PAUSE
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = MUTE
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = FRWND
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = FFWD
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = STOP
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = NEXT
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = PREV
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = PLAY_PAUSE
+config = Play
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Stop
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Quit
+end
+ 
+begin
+prog = xine
+button = PLAY_PAUSE
+config = Pause
+end
+ 
+begin
+prog = xine
+button = UP
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = DOWN
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = LEFT
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = RIGHT
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = OK
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = 
+config = Menu
+end
+ 
+begin
+prog = xine
+button = FFWD
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = FRWND
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VOL+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VOL-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = MUTE
+config = Mute
+end
+ 
+begin
+prog = xine
+button = STOP
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = NEXT
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = PREV
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = 
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Medion_RF/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Medion_RF/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Medion_RF/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/lircd-medionx10-8080.conf b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/lircd-medionx10-8080.conf
new file mode 100755
index 0000000..68c9179
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/lircd-medionx10-8080.conf
@@ -0,0 +1,68 @@
+begin remote
+  name            Medion_8080
+  bits            16
+  eps             30
+  aeps            100
+  one             0     0
+  zero            0     0
+  gap             139996
+  pre_data_bits   8
+  pre_data        0x14
+
+  begin codes
+       dvdaudio        0x0F3A
+       power           0xD702
+       dvdmenu         0xEE19
+       ff              0xF823
+       fullscreen      0x0E39
+       bb              0xF621
+       pause           0xFE29
+       stop            0xFD28
+       rec             0xFC27
+       f               0xFB26
+       play            0xFA25
+       b               0xF924
+       editimage       0x0D38
+       acquireimage    0x0C37
+       ok              0xF31E
+       right           0xF41F
+       left            0xF21D
+       down            0xF722
+       up              0xEF1A
+       snapshot        0xED18
+       rename          0x0B36
+       delete          0xF520
+       tvradio         0xF11C
+       0               0xEC17
+       9               0xEA15
+       8               0xE914
+       7               0xE813
+       6               0xE712
+       5               0xE611
+       4               0xE510
+       3               0xE40F
+       2               0xE30E
+       1               0xE20D
+       txt             0xEB16
+       blue            0x0A35
+       yellow          0x0934
+       green           0x0833
+       red             0x0732
+       vol+            0xDE09
+       vol-            0xDD08
+       chan-           0xE10C
+       chan+           0xE00B
+       videodesktop    0x0631
+       setup           0xF01B
+       channellist     0x0530
+       tvpreview       0x042F
+       photo           0xDA05
+       radio           0x032E
+       music           0xDB06
+       dvd             0xD904
+       vcr             0x022D
+       tv              0x012C
+
+  end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/lircrc-medionx10-8080.txt b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/lircrc-medionx10-8080.txt
new file mode 100755
index 0000000..2476f76
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/lircrc-medionx10-8080.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = chan+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = chan-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = ok
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = 
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = ff
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = bb
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = delete
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = tvpreview
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = channellist
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = setup
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = fullscreen
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = snapshot
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = txt
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = pip
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = tvpreview
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = play
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = 
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = bb
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = ff
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = fullscreen
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = chan+
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = chan-
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = ok
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = tvpreview
+config = Menu
+end
+ 
+begin
+prog = xine
+button = forward
+#config = ff
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = rewind
+#config = bb
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = 
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = channellist
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8080/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/lircd-medionx10-8802.conf b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/lircd-medionx10-8802.conf
new file mode 100755
index 0000000..f897a64
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/lircd-medionx10-8802.conf
@@ -0,0 +1,126 @@
+#
+# this config file was hand crafted for
+# lirc-0.8.0(atiusb) on Sun June 11 22:49:23 2006
+#
+# contributed by Ted Schipper <t.schipper@tsux.org>
+#
+# brand:                       Medion 8802
+# Remote P/N:                  20029724
+# Receiver P/N:                20024123
+# model no. of remote control: Medion RF remote
+# devices being controlled by this remote: Medion 8802 Multimedia Home Entertainment Design Center
+#
+
+begin remote
+
+  name  Medion_8802
+  bits           16
+  eps            30
+  aeps          100
+
+  one             0     0
+  zero            0     0
+  pre_data_bits   8
+  pre_data       0x14
+  post_data_bits  16
+  post_data      0x0
+  gap          227999
+  min_repeat      5
+  toggle_bit      0
+
+
+      begin codes
+          Line_TV                  0x719C
+          Line_TV                  0xF11C
+          Rec_TV                   0x6D98
+          Rec_TV                   0xED18
+          On/Standby               0xD702
+          Photo                    0x5A85
+          Photo                    0xDA05
+          Music                    0x5B86
+          Music                    0xDB06
+          Guide                    0x0631
+          Guide                    0x86B1
+          DVD_Menu                 0x5984
+          DVD_Menu                 0xD904
+          Video                    0x022D
+          Video                    0x82AD
+          Text                     0x6B96
+          Text                     0xEB16
+          RED/Audio                0x0732
+          RED/Audio                0x87B2
+          YELLOW/Angle             0x0934
+          YELLOW/Angle             0x89B4
+          BLUE/Title               0x0A35
+          BLUE/Title               0x8AB5
+          GREEN/Subtitle           0x0833
+          GREEN/Subtitle           0x88B3
+          Vol+                     0x5E89
+          Vol+                     0xDE09
+          Vol-                     0x5D88
+          Vol-                     0xDD08
+          Up                       0x6F9A
+          Up                       0xEF1A
+          Down                     0x77A2
+          Down                     0xF722
+          Left                     0x729D
+          Left                     0xF21D
+          Right                    0x749F
+          Right                    0xF41F
+          Ok                       0x739E
+          Ok                       0xF31E
+          Mute                     0x5580
+          Mute                     0xD500
+          Ch+                      0x608B
+          Ch+                      0xE00B
+          Ch-                      0x618C
+          Ch-                      0xE10C
+          1                        0x628D
+          1                        0xE20D
+          2                        0x638E
+          2                        0xE30E
+          3                        0x648F
+          3                        0xE40F
+          4                        0x6590
+          4                        0xE510
+          5                        0x6691
+          5                        0xE611
+          6                        0x6792
+          6                        0xE712
+          7                        0x6893
+          7                        0xE813
+          8                        0x6994
+          8                        0xE994
+          9                        0x6A95
+          9                        0xEA15
+          *                        0x0C37
+          *                        0x8CB7
+          0                        0x6C97
+          0                        0xEC17
+          #                        0x0D38
+          #                        0x8DB8
+          Back                     0x75A0
+          Back                     0xF520
+          Info                     0x042F
+          Info                     0x84AF
+          Select                   0x709B
+          Select                   0xF01B
+          Rewind                   0x79A4
+          Rewind                   0xF924
+          Play                     0x7AA5
+          Play                     0xFA25
+          Fast_Forward             0x7BA6
+          Fast_Forward             0xFB26
+          Pause                    0x7EA9
+          Pause                    0xFE29
+          Start                    0x76A1
+          Start                    0xF621
+          End                      0x78A3
+          End                      0xF823
+          Stop                     0x7DA8
+          Stop                     0xFD28
+          Record                   0x7CA7
+          Record                   0xFC27
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/lircrc-medionx10-8802.txt b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/lircrc-medionx10-8802.txt
new file mode 100755
index 0000000..fb91d72
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/lircrc-medionx10-8802.txt
@@ -0,0 +1,487 @@
+# Channel Up
+begin
+prog = mythtv
+button = Ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = Ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = Left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = Right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = Up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = Down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = Vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = Vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = Ok
+config = Space
+end
+ 
+# OK/Select
+begin
+prog = mythtv
+button = Select
+config = Space
+end
+
+# Play
+begin
+prog = mythtv
+button = Play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = Stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = On/Standby
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = Pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = Mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = Fast_Forward
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = Rewind
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = Record
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = RED/Audio
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = Guide
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = Info
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = back
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = Guide
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = Pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = Mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = Fast_Forward
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = Rewind
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = Stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = Right
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = Left
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = Play
+config = Play
+end
+ 
+begin
+prog = xine
+button = Stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = Stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = Pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = Up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = Down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = Left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = Right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = Select
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = Ok
+config = EventSelect
+end
+
+begin
+prog = xine
+button = Guide
+config = Menu
+end
+ 
+begin
+prog = xine
+button = Fast_Forward
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = Rewind
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = Vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = Vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = Mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = Stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = Ch+
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = Ch-
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = Info
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Medion_X10_8802/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Nebula/lircd-nebula.conf b/abs/core-testing/system-templates/templates/remotes/Nebula/lircd-nebula.conf
new file mode 100755
index 0000000..611c804
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nebula/lircd-nebula.conf
@@ -0,0 +1,88 @@
+
+# this config file was automatically generated
+# using lirc-0.8.0(userspace) on Wed Dec 20 19:35:11 2006
+#
+# contributed by Peter Wood
+#
+# brand: Nebula Electronics
+# model no. of remote control: DigiTV-PCI Remote
+# devices being controlled by this remote: DVB-Card
+#
+# Note unlike the existing lircd.conf, this one was captured with
+# the DigiTV IR receiver via the DVB card it's self. This was the
+# remote which came with a Revision B PCI card (Brought Dec 2006).
+
+begin remote
+
+  name  Nebula_DVB
+  bits           16
+  eps            30
+  aeps          100
+
+  one             0     0
+  zero            0     0
+  pre_data_bits   16
+  pre_data       0x8001
+  gap          135906
+  toggle_bit      0
+
+
+      begin codes
+          TV                       0x0179
+          AUX                      0x0186
+          DVD/CD                   0x0185
+          1                        0x0002
+          2                        0x0003
+          3                        0x0004
+          4                        0x0005
+          5                        0x0006
+          6                        0x0007
+          7                        0x0008
+          8                        0x0009
+          9                        0x000A
+          0                        0x000B
+          16:9                     0x00B7
+          14:9                     0x00B8
+          EXIT                     0x00AE
+          POWER                    0x0074
+          PICTURE                  0x016F
+          AUDIO                    0x0188
+          I                        0x0166
+          EPG                      0x016D
+          MENU                     0x008B
+          UP                       0x0067
+          DOWN                     0x006C
+          LEFT                     0x0069
+          RIGHT                    0x006A
+          OK                       0x001C
+          CH+                      0x0192
+          CH-                      0x0193
+          VOLUME+                  0x0073
+          VOLUME-                  0x0072
+          RED                      0x018E
+          GREEN                    0x018F
+          YELLOW                   0x0190
+          BLUE                     0x0191
+          SUBT                     0x0172
+          AD                       0x00B9
+          TEXT                     0x0184
+          MUTE                     0x0071
+          REWIND                   0x00A8
+          STOP                     0x0080
+          PLAY                     0x00CF
+          FFORWARD                 0x00D0
+          CHAPTER                  0x00BA
+          PAUSE                    0x0077
+          PLAYSPEED                0x80010CF
+          RECORD                   0x00A7
+          PIP                      0x00BB
+          ZOOM-                    0x004E
+          ZOOM+                    0x004A
+          CAPTURE                  0x00BC
+          WEB                      0x00BD
+          EMAIL                    0x00D7
+          PHONE                    0x00A9
+          PC                       0x0178
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nebula/lircrc-nebula.txt b/abs/core-testing/system-templates/templates/remotes/Nebula/lircrc-nebula.txt
new file mode 100755
index 0000000..c3d70b0
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nebula/lircrc-nebula.txt
@@ -0,0 +1,402 @@
+# lircrc.example.[[Nebula Digi T V]]-nativelirc
+# 2005-04-02, Samuel Jacobs
+# Save this file in ~/.mythtv/lircrc
+
+# There are so many buttons on this remote, 55 to be exact. I don't really 
+#  know what to do with all of them, yet I'm discovering that Myth has 
+#  functions for all of them and much, much more! All in all, 407 lines of 
+#  yummy remote-controlled icing on the delicious cake that is MythTV.
+
+# Intended for use with:
+# http://lirc.sourceforge.net/remotes/nebula_electronics/DigiTV
+# NOTE: On my system I renamed the remote to "nebdtv". To use this file 
+#  with the download from lirc.sf.net (which is otherwise identical to my 
+#  copy) simply replace all instances of "nebdtv" with "Nebula_DVB".
+
+# NOTE 2: Not all buttons are used yet, and some key binding customisations 
+#  will probably be made to get the most out of the extra buttons. In 
+#  particular "Picture" and "Audio" are currently unused so I could 
+#  possibly set jumppoints to [[Myth Photo]] and [[Myth Music]] in future.
+
+# NOTE 3: The buttons on the remote are listed from the top left down, row 
+#  by row, left to right, with any unused buttons given comments where it 
+#  would appear if it was used here. The number buttons are listed in their 
+#  entirety before starting back at the "Picture" button.
+
+# NOTE 4: I just thought of another thing that could cause confusion, the 
+#  volume buttons are commented out because I use KDELIRC for that. They 
+#  are defined however, so just uncomment them if you want to use them.
+
+# Based on, and thanks to:
+# lircrc.example.[[Hauppauge Grey]]-nativelirc
+# 2003-09-17, Robert Kulagowski
+# mailto:rkulagow@rocketmail.com
+
+# TODO: TV (will probably use for launching mythfrontend)
+# TODO: Aux (probably a jumppoint to Live TV)
+# TODO: DVD/CD (there's currently no jumppoint for generic optical media, 
+#  so will probably use for DVD)
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Power
+    config = Esc
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 1
+    config = 1  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 2
+    config = 2  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 3
+    config = 3  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 4
+    config = 4  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 5
+    config = 5  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 6
+    config = 6  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 7
+    config = 7  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 8
+    config = 8  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 9
+    config = 9  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = 0
+    config = 0  
+end
+
+# TODO: Picture
+# TODO: Audio
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = I
+   config = I
+end
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = 16:9
+   config = W
+end
+
+# Unused: 14:9
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+# this will only work in live tv mode
+   button = EPG
+   config = S
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Exit
+    config = Esc
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Menu
+    config = M  
+end
+
+# Note the "repeat =" strings in the arrows, volume and channel.
+# This means that if you hold down the key, every nth instance will be
+# passed.  This depends on your system, so you may want to increase or
+# decrease this and see what happens.  repeat = 1 is probably too
+# fast.
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Up
+# This is the "up" on the central diamond 
+    repeat = 3
+    config = Up
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Down
+# This is the "down" on the central diamond 
+    repeat = 3
+    config = Down
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Left
+# This is the "left" on the central diamond 
+    repeat = 3
+    config = Left
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Right
+# This is the "right" on the central diamond 
+    repeat = 3
+    config = Right
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Ok
+# Middle button on the diamond
+    config = Return
+end
+
+# The channel buttons are mapped to Page Up and Page Down.
+
+begin
+  prog = mythtv
+  remote = Nebula_DVB
+  button = Ch+
+  repeat = 3
+  config = [[Pg Up]]
+end
+
+begin
+  prog = mythtv
+  remote = Nebula_DVB
+  button = Ch-
+  repeat = 3
+  config = [[Pg Down]]
+end
+
+# These are the volume buttons. Uncomment them if you want myth to handle 
+#  the volume.
+
+begin
+  prog = mythtv
+  remote = Nebula_DVB
+  button = Volume+
+  repeat = 3
+  config = F11  
+end
+
+begin
+  prog = mythtv
+  remote = Nebula_DVB
+  button = Volume-
+  repeat = 3
+  config = F10  
+end
+
+# colours
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = Red
+# This is the Red button
+# We'll use it for "Delete"
+   config = D  
+end
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = Green
+# This is the Green button
+# We'll use it for "Extended Info"
+   config = U
+end
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = Yellow
+# This is the Yellow button
+# We'll use it for "Edit"
+   config = E
+end
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = Blue
+# This is the Blue button
+# We'll use it for "Toggle browse mode"
+   config = O
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = SubT
+    config = T
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = AD
+    config = A
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Text
+# I REALLY can't think of anything to put here, so it does the same as EPG.
+    config = S
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Mute
+    config = |  
+end
+
+# Here begineth a stickered area, so I assume the labels for these buttons 
+#  could be easily changed post-manufacture.
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Rewind
+    config = <
+end
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = Stop
+# Again, I couldn't think of an appropriate function, so it's ESC.
+   config = Esc
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Play
+    config = P  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = FForward
+    config = >
+end
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = Chapter
+# Change focus for PiP (to change channel in the other window)
+   config = B  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Pause
+    config = P  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Playspeed
+    config = J
+end
+
+begin
+  prog = mythtv
+  remote = Nebula_DVB
+  button = Record
+  config = R  
+end
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = PiP
+# Toggle PiP on/off
+   config = V  
+end
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = Zoom-
+# Use for backwards commercial skip
+    config = Q  
+end
+
+begin
+   prog = mythtv
+   remote = Nebula_DVB
+   button = Zoom+
+# Use for forward commercial skip
+    config = Z  
+end
+
+begin
+    prog = mythtv
+    remote = Nebula_DVB
+    button = Capture
+# Swap the PiP windows
+    config = N  
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nebula/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Nebula/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Nebula/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Nexus/lircd-nexus.conf b/abs/core-testing/system-templates/templates/remotes/Nexus/lircd-nexus.conf
new file mode 100755
index 0000000..229db28
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nexus/lircd-nexus.conf
@@ -0,0 +1,73 @@
+#
+# this config file was automatically generated
+# using lirc-0.7.0pre4(serial) on Sun Oct  2 00:24:32 2005
+#
+# contributed by anton|ganthaler.at and juergen.wilhelm|aon.at
+# members of linux user group Vorarlberg www.lugv.at
+# 
+# for ir remote controler from Hauppauge WinTV Nexus-S
+# most of the keys are supported
+#
+# brand:                       Hauppauge
+# model no. of remote control: WinTV Nexus-S
+# devices being controlled by this remote:
+#
+
+begin remote
+
+  name  Hauppauge_WinTV_Nexus-S
+  bits           13
+  flags RC5|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  one           944   828
+  zero          944   828
+  plead         980
+  gap          113932
+  min_repeat      1
+  toggle_bit      2
+
+
+      begin codes
+          Up                       0x0000000000001794
+          Down                     0x0000000000001795
+          Left                     0x0000000000001796
+          Right                    0x0000000000001797
+          Power                    0x00000000000017BD
+          Ok                       0x00000000000017A5
+          Menu                     0x000000000000178D
+          Back                     0x000000000000179F
+          Red                      0x000000000000178B
+          Green                    0x00000000000017AE
+          Yellow                   0x00000000000017B8
+          Blue                     0x00000000000017A9
+          0                        0x0000000000001780
+          1                        0x0000000000001781
+          2                        0x0000000000001782
+          3                        0x0000000000001783
+          4                        0x0000000000001784
+          5                        0x0000000000001785
+          6                        0x0000000000001786
+          7                        0x0000000000001787
+          8                        0x0000000000001788
+          9                        0x0000000000001789
+          Play                     0x00000000000017B5
+          Pause                    0x00000000000017B0
+          Stop                     0x00000000000017B6
+          Record                   0x00000000000017B7
+          FastFwd                  0x00000000000017B4
+          FastRwd                  0x00000000000017B2
+          Channel+                 0x00000000000017A0
+          Channel-                 0x00000000000017A1
+          Volume+                  0x0000000000001790
+          Volume-                  0x0000000000001791
+          Mute                     0x000000000000178F
+          Timers                   0x000000000000178A
+          Recordings               0x000000000000178E
+          Back                     0x000000000000179F
+          Record                   0x00000000000017B7
+   end codes
+
+end remote
+
diff --git a/abs/core-testing/system-templates/templates/remotes/Nexus/lircrc-nexus.txt b/abs/core-testing/system-templates/templates/remotes/Nexus/lircrc-nexus.txt
new file mode 100755
index 0000000..169da14
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nexus/lircrc-nexus.txt
@@ -0,0 +1,459 @@
+# ~/.mythtv/lircrc
+#
+# MythTV native LIRC config file for
+# the new grey Hauppauge remote
+#
+
+
+
+begin 
+prog = mythtv
+button = Go
+repeat = 3
+config = I
+end
+
+begin
+prog = mythtv
+button = Up
+repeat = 3
+config = Up
+end
+
+begin
+prog = mythtv
+button = Down
+repeat = 3
+config = Down
+end
+
+begin
+prog = mythtv
+button = Left
+repeat = 3
+config = Left
+end
+
+begin
+prog = mythtv
+button = Right
+repeat = 3
+config = Right
+end
+
+# Channel Up
+begin
+prog = mythtv
+button = Channel+
+repeat = 3
+config = Up
+end
+
+# Channel Down
+begin
+prog = mythtv
+button = Channel-
+repeat = 3
+config = Down
+end
+
+# OKSelect
+begin
+prog = mythtv
+button = Ok
+repeat = 3
+config = Space
+end
+
+# Play
+begin
+prog = mythtv
+button = Play
+repeat = 3
+config = Return
+end
+
+# Stop
+begin
+prog = mythtv
+button = Stop
+repeat = 3
+config = Esc
+end
+
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = Back
+repeat = 3
+config = Esc
+end
+
+# Power Off/Exit
+begin
+prog = irxevent
+button = Power
+repeat = 3
+config = /usr/bin/mythpowerbutton.sh
+end
+
+# Pause
+begin
+prog = mythtv
+button = Pause
+repeat = 3
+config = P
+end
+
+# Mute
+begin
+prog = mythtv
+button = Mute
+repeat = 3
+config = |
+end
+
+# Fast forward 
+begin
+prog = mythtv
+button = FastFwd
+repeat = 3
+config = <
+end
+
+# Rewind 
+begin
+prog = mythtv
+button = FastRwd
+repeat = 3
+config = >
+end
+
+# Record
+begin
+prog = mythtv
+button = Record
+repeat = 3
+config = R
+end
+
+# Delete
+begin
+prog = mythtv
+button = Red
+repeat = 3
+config = D
+end
+
+# Decrease play speed
+begin
+prog = mythtv
+button = Green
+repeat = 3
+config = U
+end
+
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = Menu
+repeat = 3
+config = M
+end
+
+# Scroll up
+begin
+prog = mythtv
+button = Volume+
+repeat = 3
+config = F11
+end
+
+# Scroll down
+begin
+prog = mythtv
+button = Volume-
+repeat = 3
+config = F10
+end
+
+# double speed watch
+begin
+prog = mythtv
+button = Yellow
+repeat = 3
+config = J
+end
+
+# Bring up Time stretch
+begin
+prog = mythtv
+button = Blue
+repeat = 3
+config = A
+end
+
+# Numbers 0-9
+begin
+prog = mythtv
+button = 0
+repeat = 3
+config = 0
+end
+
+begin
+prog = mythtv
+button = 1
+repeat = 3
+config = 1
+end
+
+begin
+prog = mythtv
+button = 2
+repeat = 3
+config = 2
+end
+
+begin
+prog = mythtv
+button = 3
+repeat = 3
+config = 3
+end
+
+begin
+prog = mythtv
+button = 4
+repeat = 3
+config = 4
+end
+
+begin
+prog = mythtv
+button = 5
+repeat = 3
+config = 5
+end
+
+begin
+prog = mythtv
+button = 6
+repeat = 3
+config = 6
+end
+
+begin
+prog = mythtv
+button = 7
+repeat = 3
+config = 7
+end
+
+begin
+prog = mythtv
+button = 8
+repeat = 3
+config = 8
+end
+
+begin
+prog = mythtv
+button = 9
+repeat = 3
+config = 9
+end
+
+
+
+###### MPlayer lirc setup
+# Show OSD
+begin
+prog = mplayer
+button = Menu
+repeat = 3
+config = osd
+end
+
+# Pause playback
+begin
+prog = mplayer
+button = Pause
+repeat = 3
+config = pause
+end
+
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = Play
+repeat = 3
+config = seek +1
+end
+
+# Stop playback and exit
+begin
+prog = mplayer
+button = Stop
+repeat = 3
+config = quit
+end
+
+# Mute
+begin
+prog = mplayer
+button = Mute
+repeat = 3
+config = mute
+end
+
+begin
+prog = mplayer
+button = Left
+repeat = 3
+config = seek -10
+end
+
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = FastRwd
+repeat = 3
+config = seek -10
+end
+
+begin
+prog = mplayer
+button = Right
+repeat = 3
+config = seek +30
+end
+
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = FastFwd
+repeat = 3
+config = seek +30
+end
+
+# Quit
+begin
+prog = mplayer
+button = Back
+repeat = 3
+config = quit
+end
+
+
+
+
+###### Xine lirc setup
+begin
+prog = xine
+button = Play
+repeat = 3
+config = Play
+end
+
+begin
+prog = xine
+button = Stop
+repeat = 3
+config = Stop
+end
+
+begin
+prog = xine
+button = Back
+repeat = 3
+config = Quit
+end
+
+begin
+prog = xine
+button = Pause
+repeat = 3
+config = Pause
+end
+
+begin
+prog = xine
+button = Up
+repeat = 3
+config = EventUp
+end
+
+begin
+prog = xine
+button = Down
+repeat = 3
+config = EventDown
+end
+
+begin
+prog = xine
+button = Left
+repeat = 3
+config = EventLeft
+end
+
+begin
+prog = xine
+button = Right
+repeat = 3
+config = EventRight
+end
+
+begin
+prog = xine
+button = Ok
+repeat = 3
+config = EventSelect
+end
+
+begin
+prog = xine
+button = FastFwd
+repeat = 3
+config = SpeedFaster
+end
+
+begin
+prog = xine
+button = FastRwd
+repeat = 3
+config = SpeedSlower
+end
+
+begin
+prog = xine
+button = Volume+
+repeat = 3
+config = Volume+
+end
+
+begin
+prog = xine
+button = Volume-
+repeat = 3
+config = Volume-
+end
+
+begin
+prog = xine
+button = Mute
+repeat = 3
+config = Mute
+end
+
+begin
+prog = xine
+button = Menu
+repeat = 3
+config = RootMenu
+end
+
+
diff --git a/abs/core-testing/system-templates/templates/remotes/Nexus/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Nexus/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Nexus/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Nova_500/lircd-nova500.conf b/abs/core-testing/system-templates/templates/remotes/Nova_500/lircd-nova500.conf
new file mode 100755
index 0000000..c66c9e5
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nova_500/lircd-nova500.conf
@@ -0,0 +1,69 @@
+#
+# brand:                       Hauppauge NOVA-T-500
+# model no. of remote control: Hauppage Nova-T-500 Snowboard Shape Silver over Black
+#
+
+begin remote
+
+ name  NOVA-T500
+ bits           16
+ eps            30
+ aeps          100
+
+ one             0     0
+ zero            0     0
+ pre_data_bits   16
+ pre_data       0x1
+ gap          199999
+ toggle_bit      0
+
+
+     begin codes
+         Go                       0x0162
+         Power                    0x0074
+         TV                       0x0179
+         Videos                   0x0189
+         Music                    0x0188
+         Pictures                 0x00E2
+         Guide                    0x016D
+         Radio                    0x0181
+         ArrowUp                  0x0067
+         ArrowLeft                0x0069
+         OK                       0x0160
+         ArrowRight               0x006A
+         ArrowDown                0x006C
+         BackExit                 0x009E
+         Menu                     0x008B
+         VolumeUp                 0x0073
+         VolumeDown               0x0072
+         PrevCh                   0x016B
+         Mute                     0x0071
+         ChannelUp                0x0192
+         ChannelDown              0x0193
+         Record                   0x00A7
+         Rewind                   0x00A8
+         SkipBack                 0x0195
+         Play                     0x00CF
+         Pause                    0x0077
+         Stop                     0x0080
+         Fwdwind                  0x00D0
+         SkipFwd                  0x0197
+         1                        0x0002
+         2                        0x0003
+         3                        0x0004
+         4                        0x0005
+         5                        0x0006
+         6                        0x0007
+         7                        0x0008
+         8                        0x0009
+         9                        0x000A
+         Star                     0x0037
+         0                        0x000B
+         #                        0x0029
+         Red                      0x018E
+         Green                    0x018F
+         Yellow                   0x0190
+         Blue                     0x0191
+     end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nova_500/lircrc-nova500.txt b/abs/core-testing/system-templates/templates/remotes/Nova_500/lircrc-nova500.txt
new file mode 100755
index 0000000..2d74c3d
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nova_500/lircrc-nova500.txt
@@ -0,0 +1,559 @@
+# /etc/lircrc
+# ln ~mythtv/.mythtv/lircrc
+#
+# MythTV native LIRC config file for
+# Hauppage Nova-T-500 PCI Dual Tuners DVB-T
+# Snowboard shape remote
+# Silver on top Black underneath
+# 45 buttons
+#
+# Originally 
+# By Jarod Wilson, 2003/12/21
+# Amalgamated from Jeff Campbell's .lircrc
+
+
+
+################## MythTV Control ######################
+### http://www.mythtv.org/wiki/index.php/Keybindings ###
+
+#	Remote Button
+##	MythTV function
+
+
+#	Go
+##	Go to home page
+begin
+prog = mythtv
+button = Go
+config = ALT+H
+end
+
+#	Power
+##	Turns monitor in Standby
+#begin
+#prog = irexec
+#button = Power
+#config = sudo vbetool dpms on ; sudo vbetool dpms off
+#end
+
+#	TV
+##	Go to Watch TV
+begin
+prog = mythtv
+button = TV
+config = ALT+T
+end
+
+#	Videos
+##	Go to MythVideo
+begin
+prog = mythtv
+button = Videos
+config = ALT+V
+end
+
+#	Music
+##	Go to MythMusic
+begin
+prog = mythtv
+button = Music
+config = ALT+M
+end
+
+#	Pictures
+##	Go to MythGallery
+begin
+prog = mythtv
+button = Pictures
+config = ALT+P
+end
+
+#	Guide
+##	display EPG
+begin
+prog = mythtv
+button = Guide
+config = s
+end
+
+#	Radio
+
+
+
+#	ArrowUp
+##	Up
+begin
+prog = mythtv
+button = ArrowUp
+config = Up
+end
+
+#	ArrowLeft
+##	Left
+begin
+prog = mythtv
+button = ArrowLeft
+config = Left
+end
+
+#	OK
+##	Select/enter/resolve
+begin
+prog = mythtv
+button = OK
+config = Space
+end
+
+#	ArrowRight
+##	Right
+begin
+prog = mythtv
+button = ArrowRight
+config = Right
+end
+
+#	ArrowDown
+##	Down
+begin
+prog = mythtv
+button = ArrowDown
+config = Down
+end
+
+#	BackExit
+##	Exit/go back/cancel
+begin
+prog = mythtv
+button = BackExit
+config = Esc
+end
+
+#	Menu
+##	Menu
+begin
+prog = mythtv
+button = Menu
+config = m
+end
+
+#	VolumeUp
+##	Volume Up
+begin
+prog = mythtv
+button = VolumeUp
+config = F11
+end
+
+#	VolumeDown
+##	Volume down
+begin
+prog = mythtv
+button = VolumeDown
+config = F10
+end
+
+#	PrevCh
+##	Change tuner card input
+begin
+prog = mythtv
+button = PrevCh
+config = c
+end
+
+#	Mute
+##	Mute
+begin
+prog = mythtv
+button = Mute
+config = |
+end
+
+#	ChannelUp
+begin
+prog = mythtv
+button = ChannelUp
+config = Up
+end
+
+#	ChannelDown
+begin
+prog = mythtv
+button = ChannelDown
+config = Down
+end
+
+#	Record
+begin
+prog = mythtv
+button = Record
+config = R
+end
+
+#	Rewind
+begin
+prog = mythtv
+button = Rewind
+config = Left
+end
+
+#	SkipBack
+begin
+prog = mythtv
+button = SkipBack
+config = PgUp
+end
+
+#	Play
+begin
+prog = mythtv
+button = Play
+config = Return
+end
+
+#	Pause
+begin
+prog = mythtv
+button = Pause
+config = P
+end
+
+#	Stop
+begin
+prog = mythtv
+button = Stop
+config = Esc
+end
+
+#	Fwdwind
+begin
+prog = mythtv
+button = Fwdwind
+config = Right
+end
+
+#	SkipFwd
+begin
+prog = mythtv
+button = SkipFwd
+config = PgDown
+end
+
+#	1
+begin
+prog = mythtv
+button = 1
+config = 1
+end
+
+#	2
+begin
+prog = mythtv
+button = 2
+config = 2
+end
+
+#	3
+begin
+prog = mythtv
+button = 3
+config = 3
+end
+
+#	4
+begin
+prog = mythtv
+button = 4
+config = 4
+end
+
+#	5
+begin
+prog = mythtv
+button = 5
+config = 5
+end
+
+#	6
+begin
+prog = mythtv
+button = 6
+config = 6
+end
+
+#	7
+begin
+prog = mythtv
+button = 7
+config = 7
+end
+
+#	8
+begin
+prog = mythtv
+button = 8
+config = 8
+end
+
+#	9
+begin
+prog = mythtv
+button = 9
+config = 9
+end
+
+#	Star
+##	Info
+begin
+prog = mythtv
+button = Star
+config = i
+end
+
+#	0
+begin
+prog = mythtv
+button = 0
+config = 0
+end
+
+#	#
+##	Toggle recording of current program (cycles through types)
+begin
+prog = mythtv
+button = #
+config = r
+end
+
+#	Red
+##	Picture zoom
+begin
+prog = mythtv
+button = Red
+config = W
+end
+
+#	Green
+#	OSD navigation through channels/programs
+begin
+prog = mythtv
+button = Green
+config = O
+end
+
+#	Yellow
+begin
+prog = mythtv
+button = Yellow
+config = Q
+end
+
+#	Blue
+begin
+prog = mythtv
+button = Blue
+config = Z
+end
+
+
+
+##### MPlayer lirc setup
+# Show OSD
+begin
+prog = mplayer
+button = Menu
+config = osd
+end
+
+# Pause playback
+begin
+prog = mplayer
+button = Pause
+config = pause
+end
+
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = Play
+config = seek +1
+end
+
+# Stop playback and exit
+begin
+prog = mplayer
+button = Stop
+config = quit
+end
+
+# Mute
+begin
+prog = mplayer
+button = Mute
+config = mute
+end
+
+begin
+prog = mplayer
+button = ArrowLeft
+config = seek -10
+end
+
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = Rewind
+config = seek -10
+end
+
+begin
+prog = mplayer
+button = ArrowRight
+config = seek +30
+end
+
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = Fwdwind
+config = seek +30
+end
+
+# Quit
+begin
+prog = mplayer
+button = BackExit
+config = quit
+end
+
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = SkipFwd
+config = seek +600
+end
+
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = SkipBack
+config = seek -600
+end
+
+# Toggle full-screen
+begin
+prog = mplayer
+button = Star
+config = vo_fullscreen
+end
+
+
+
+###### Xine lirc setup
+begin
+prog = xine
+button = Play
+config = Play
+end
+
+begin
+prog = xine
+button = Stop
+config = Stop
+end
+
+begin
+prog = xine
+button = BackExit
+config = Quit
+end
+
+begin
+prog = xine
+button = Pause
+config = Pause
+end
+
+begin
+prog = xine
+button = ArrowUp
+config = EventUp
+end
+
+begin
+prog = xine
+button = ArrowDown
+config = EventDown
+end
+
+begin
+prog = xine
+button = ArrowLeft
+config = EventLeft
+end
+
+begin
+prog = xine
+button = ArrowRight
+config = EventRight
+end
+
+begin
+prog = xine
+button = OK
+config = EventSelect
+end
+
+begin
+prog = xine
+button = Fwdwind
+config = SpeedFaster
+end
+
+begin
+prog = xine
+button = Rewind
+config = SpeedSlower
+end
+
+begin
+prog = xine
+button = VolumeUp
+config = Volume+
+end
+
+begin
+prog = xine
+button = VolumeDown
+config = Volume-
+end
+
+begin
+prog = xine
+button = Mute
+config = Mute
+end
+
+begin
+prog = xine
+button = Menu
+config = RootMenu
+end
+
+begin
+prog = xine
+button = SkipFwd
+config = EventNext
+end
+
+begin
+prog = xine
+button = SkipBack
+config = EventPrior
+end
+
+begin
+prog = xine
+button = Go
+config = OSDStreamInfos
+end 
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nova_500/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Nova_500/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Nova_500/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Nova_T/lircd-novat.conf b/abs/core-testing/system-templates/templates/remotes/Nova_T/lircd-novat.conf
new file mode 100755
index 0000000..27a575d
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nova_T/lircd-novat.conf
@@ -0,0 +1,60 @@
+begin remote
+  name            nova-t
+  bits            16
+  eps             30
+  aeps            100
+  one             0     0
+  zero            0     0
+  gap             135988
+  pre_data_bits   16
+  pre_data        0x8001
+
+  begin codes
+       1               0x0002
+       2               0x0003
+       3               0x0004
+       4               0x0005
+       5               0x0006
+       6               0x0007
+       7               0x0008
+       8               0x0009
+       9               0x000A
+       0               0x000B
+       *               0x0184
+       #               0x0172
+       red             0x018E
+       green           0x018F
+       yellow          0x0190
+       blue            0x0191
+       power           0x0074
+       go              0x0161
+       tv              0x0179
+       videos          0x0189
+       music           0x0188
+       pictures        0x016F
+       guide           0x016D
+       radio           0x0181
+       up              0x0067
+       left            0x0069
+       right           0x006A
+       down            0x006C
+       ok              0x001C
+       back            0x00A8
+       menu            0x008B
+       prev-ch         0x019C
+       mute            0x0071
+       volup           0x0073
+       voldown         0x0072
+       chanup          0x0192
+       chandown        0x0193
+       rec             0x00A7
+       stop            0x0080
+       forward         0x00D0
+       skipback        0x00A5
+       skipforward     0x00A3
+       play            0x00CF
+       pause           0x0077
+
+  end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nova_T/lircrc-novat.txt b/abs/core-testing/system-templates/templates/remotes/Nova_T/lircrc-novat.txt
new file mode 100755
index 0000000..f075729
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nova_T/lircrc-novat.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = chanup
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = chandown
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = volup
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = voldown
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = ok
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = forward
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = back
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = skipforward
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = skipback
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = red
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = menu
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = guide
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = yellow
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = blue
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = prev-ch
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = guide
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = back
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = forward
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = skipforward
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = skipback
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = ok
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = menu
+config = Menu
+end
+ 
+begin
+prog = xine
+button = forward
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = back
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = volup
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = voldown
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = skipforward
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = skipback
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = guide
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nova_T/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Nova_T/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Nova_T/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/lircd-novatusb2.conf b/abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/lircd-novatusb2.conf
new file mode 100755
index 0000000..d2bbee6
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/lircd-novatusb2.conf
@@ -0,0 +1,77 @@
+# Please make this file available to others
+# by sending it to <lirc@bartelmus.de>
+#
+# this config file was automatically generated
+# using lirc-0.8.1-CVS(dev/input) on Sun Oct  8 22:51:46 2006
+#
+# contributed by JonS
+#
+# brand:                       irrecord.nova-T-usb
+# model no. of remote control: Hauppage Nova-T USB Snowboard Shape Silver over Black
+# devices being controlled by this remote: MythTV
+#
+ 
+begin remote
+ 
+  name  nova-T-usb
+  bits           16
+  eps            30
+  aeps          100
+ 
+  one             0     0
+  zero            0     0
+  pre_data_bits   16
+  pre_data       0x1
+  gap          199999
+  toggle_bit      0
+ 
+ 
+      begin codes
+          Go                       0x0162
+          Power                    0x0074
+          TV                       0x0179
+          Videos                   0x0189
+          Music                    0x0188
+          Pictures                 0x00E2
+          Guide                    0x016D
+          Radio                    0x0181
+          ArrowUp                  0x0067
+          ArrowLeft                0x0069
+          OK                       0x0160
+          ArrowRight               0x006A
+          ArrowDown                0x006C
+          BackExit                 0x009E
+          Menu                     0x008B
+          VolumeUp                 0x0073
+          VolumeDown               0x0072
+          PrevCh                   0x016B
+          Mute                     0x0071
+          ChannelUp                0x0192
+          ChannelDown              0x0193
+          Record                   0x00A7
+          Rewind                   0x00A8
+          SkipBack                 0x0195
+          Play                     0x00CF
+          Pause                    0x0077
+          Stop                     0x0080
+          Fwdwind                  0x00D0
+          SkipFwd                  0x0197
+          1                        0x0002
+          2                        0x0003
+          3                        0x0004
+          4                        0x0005
+          5                        0x0006
+          6                        0x0007
+          7                        0x0008
+          8                        0x0009
+          9                        0x000A
+          *                        0x0037
+          0                        0x000B
+          #                        0x0029
+          Red                      0x018E
+          Green                    0x018F
+          Yellow                   0x0190
+          Blue                     0x0191
+      end codes
+ 
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/lircrc-novatusb2.txt b/abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/lircrc-novatusb2.txt
new file mode 100755
index 0000000..fad1483
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/lircrc-novatusb2.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = ChannelUp
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ChannelDown
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = ArrowLeft
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = ArrowRight
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = ArrowUp
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = ArrowDown
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VolumeUp
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VolumeDown
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = OK
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = Play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = Stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = BackExit
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = Power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = Pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = Mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = FwdWind
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = Rewind
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = SkipFwd
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = SkipBack
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = Record
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = Red
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = Green
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = Guide
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = Yellow
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = Blue
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = PrevCh
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = Guide
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = Pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = Mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = Rewind
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = FwdWind
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = Stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = SkipFwd
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = SkipBack
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = Play
+config = Play
+end
+ 
+begin
+prog = xine
+button = Stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = BackExit
+config = Quit
+end
+ 
+begin
+prog = xine
+button = Pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = ArrowUp
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = ArrowDown
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = ArrowLeft
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = ArrowRight
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = OK
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = Guide
+config = Menu
+end
+ 
+begin
+prog = xine
+button = FwdWind
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = Rewind
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VolumeUp
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VolumeDown
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = Mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = Stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = SkipFwd
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = SkipBack
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = Menu
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Nova_T_USB2/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Nvidia/lircd-nvidia.conf b/abs/core-testing/system-templates/templates/remotes/Nvidia/lircd-nvidia.conf
new file mode 100755
index 0000000..133ac00
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nvidia/lircd-nvidia.conf
@@ -0,0 +1,62 @@
+begin remote
+  name            nvidia
+  bits            16
+  eps             30
+  aeps            100
+  one             0     0
+  zero            0     0
+  gap             227970
+  pre_data_bits   8
+  pre_data        0x14
+
+  begin codes
+       CANCIL          0xDF0A
+       RIGHTMOUSE      0x517C
+       LEFTMOUSE       0x4D78
+       PAUSE           0x4D78
+       STOP            0xFD28
+       REC             0xFC27
+       ADVANCE         0xFB26
+       PLAY            0xFA25
+       REPLAY          0xF924
+       FFORWARD        0xF823
+       REWIND          0xF621
+       OK              0xF31E
+       SLOW            0xF520
+       LIVETV          0xF11C
+       LEFT            0xF21D
+       RIGHT           0xF41F
+       DOWN            0xF722
+       UP              0xEF1A
+       SETUP           0xF01B
+       DVDMENU         0xEE19
+       SNAPSHOT        0xED18
+       CC              0xEB16
+       0               0xEC17
+       9               0xEA15
+       8               0xE914
+       7               0xE813
+       6               0xE712
+       5               0xE611
+       4               0xE510
+       3               0xE40F
+       2               0xE30E
+       1               0xE20D
+       ZOOM            0xFF2A
+       INPUT           0x002B
+       CHAN-           0xE10C
+       CHAN+           0xE00B
+       VOL-            0xDD08
+       VOL+            0xDE09
+       WEB             0xDC07
+       MUSIC           0xDB06
+       PHOTO           0xDA05
+       DVDVCD          0xD904
+       DVR             0xD803
+       CHSURF          0xD702
+       CHGUIDE         0xD601
+       MUTE            0xD500
+
+  end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nvidia/lircrc-nvidia.txt b/abs/core-testing/system-templates/templates/remotes/Nvidia/lircrc-nvidia.txt
new file mode 100755
index 0000000..53c133b
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nvidia/lircrc-nvidia.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = CHAN+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CHAN-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = LEFT
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = RIGHT
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = UP
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = DOWN
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VOL+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VOL-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = OK
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = PLAY
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = STOP
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = CANCIL
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = 
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = PAUSE
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = MUTE
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = FFORWARD
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = REWIND
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = ADVANCE
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = REPLAY
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = REC
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = CHGUIDE
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = CHSURF
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = INPUT
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = SETUP
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = 
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = CHGUIDE
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = PAUSE
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = MUTE
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = REWIND
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = FFORWARD
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = STOP
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = ADVANCE
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = REPLAY
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = ZOOM
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = PLAY
+config = Play
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Stop
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Quit
+end
+ 
+begin
+prog = xine
+button = PAUSE
+config = Pause
+end
+ 
+begin
+prog = xine
+button = UP
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = DOWN
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = LEFT
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = RIGHT
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = OK
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = CHGUIDE
+config = Menu
+end
+ 
+begin
+prog = xine
+button = FFORWARD
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = REWIND
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VOL+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VOL-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = MUTE
+config = Mute
+end
+ 
+begin
+prog = xine
+button = STOP
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = ADVANCE
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = REPLAY
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = CHSURF
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nvidia/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Nvidia/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Nvidia/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Nvidia_X10/lircd-nvidiax10.conf b/abs/core-testing/system-templates/templates/remotes/Nvidia_X10/lircd-nvidiax10.conf
new file mode 100755
index 0000000..1c06639
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nvidia_X10/lircd-nvidiax10.conf
@@ -0,0 +1,71 @@
+begin remote
+  name            nvidiax10
+  bits            40
+  eps             30
+  aeps            100
+  one             0     0
+  zero            0     0
+  gap             235987
+
+  begin codes
+       mute            0x14D5000000
+       playlist        0x14D6010000
+       chSurf          0x14D7020000
+       dvr             0x14D8030000
+       dvd             0x14D9040000
+       photo           0x14DA050000
+       music           0x14DB060000
+       web             0x14DC070000
+       L               0x144D780000
+       R               0x14517C0000
+       ESC             0x14DF0A0000
+       VOL+            0x14DE090000
+       VOL-            0x14DD080000
+       CHAN-           0x14E10C0000
+       CHAN+           0x14E00B0000
+       angle           0x14002B0000
+       zoom            0x14FF2A0000
+       0               0x14EC170000
+       1               0x14E20D0000
+       2               0x14E30E0000
+       3               0x14E40F0000
+       4               0x14E5100000
+       5               0x14E6110000
+       6               0x14E7120000
+       7               0x14E8130000
+       8               0x14E9140000
+       9               0x14EA150000
+       TXT             0x14EB160000
+       SnapShot        0x14ED180000
+       DVDMenu         0x14EE190000
+       setup           0x14F01B0000
+       audio           0x14F11C0000
+       slow            0x14F5200000
+       up              0x14EF1A0000
+       down            0x14F7220000
+       left            0x14F21D0000
+       right           0x14F41F0000
+       ok              0x14F31E0000
+       back            0x14F6210000
+       forward         0x14F8230000
+       fRewind         0x14F9240000
+       play            0x14FA250000
+       ffw             0x14FB260000
+       rec             0x14FC270000
+       stop            0x14FD280000
+       pause           0x14FE290000
+                       
+       mouse_n         0x0000001447720000
+       mouse_ne        0x000000144A750000
+       mouse_e         0x0000001446710000
+       mouse_se        0x000000144B760000
+       mouse_s         0x0000001448730000
+       mouse_sw        0x000000144C770000
+       mouse_w         0x0000001445700000
+       mouse_nw        0x0000001449740000
+       mouse_left      0x000000144E790000
+       mouse_right     0x00000014527D0000
+
+  end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nvidia_X10/lircrc-nvidiax10.txt b/abs/core-testing/system-templates/templates/remotes/Nvidia_X10/lircrc-nvidiax10.txt
new file mode 100755
index 0000000..0774c10
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Nvidia_X10/lircrc-nvidiax10.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = CHAN+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CHAN-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VOL+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VOL-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = ok
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = ESC
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = 
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = ffw
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = fRewind
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = forward
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = back
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = chSurf
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = 
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = TXT
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = chSurf
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = fRewind
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = ffw
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = forward
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = back
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = zoom
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = ESC
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = ok
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = chSurf
+config = Menu
+end
+ 
+begin
+prog = xine
+button = ffw
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = fRewind
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VOL+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VOL-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = forward
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = back
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = 
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Nvidia_X10/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Nvidia_X10/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Nvidia_X10/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All/lircd-one4all.conf b/abs/core-testing/system-templates/templates/remotes/One4All/lircd-one4all.conf
new file mode 100755
index 0000000..00060fd
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/One4All/lircd-one4all.conf
@@ -0,0 +1,111 @@
+#------------------------------------------------------------------------------
+# contributed by     Claas Langbehn (claas@bigfoot.com)         01-May-2000
+#------------------------------------------------------------------------------
+#
+# filename:			 RC-5
+# encoding:			 shift encoded, RC-5
+# brand:             Philips (and others)
+# model:             all
+# supported devices: all
+#
+#------------------------------------------------------------------------------
+
+begin remote
+
+  name  one4all
+  bits           11
+  flags RC5|CONST_LENGTH
+  eps            20
+  aeps            0
+
+  header          0     0
+  one           889  889
+  zero          889  889
+  plead         889
+  ptrail          0
+  foot            0     0
+  repeat          0     0
+  pre_data_bits   2
+  pre_data       0x02
+  post_data_bits  0
+  post_data      0x0
+  pre             0     0
+  post            0     0
+  gap          113792
+  toggle_bit      2
+  frequency    36000
+  duty_cycle   50
+
+      begin codes
+	0	0x0000000000000140
+	1	0x0000000000000141
+	2	0x0000000000000142
+	3	0x0000000000000143
+	4	0x0000000000000144
+	5	0x0000000000000145
+	6	0x0000000000000146
+	7	0x0000000000000147
+	8	0x0000000000000148
+	9	0x0000000000000149
+	GUIDE	0x000000000000014a
+	SELECT	0x000000000000014b
+	POWER	0x000000000000014c
+	Mute	0x000000000000014d
+	Move	0x000000000000014e
+	VOL+	0x0000000000000150
+	VOL-	0x0000000000000151
+	PREVCH	0x0000000000000152
+	NEXTCH	0x0000000000000153
+	SLOMO	0x0000000000000154
+	ANGLE	0x0000000000000155
+	MENU	0x000000000000015d
+	SUBT	0x000000000000015e
+	CH+	0x0000000000000160
+	CH-	0x0000000000000161
+	PIP	0x0000000000000162
+	Swap	0x0000000000000163
+	PAUSE	0x0000000000000169
+	PVRMENU	0x000000000000016e
+	EXIT	0x0000000000000171
+	REW	0x0000000000000172
+	REPLAY	0x0000000000000173
+	FFW	0x0000000000000174
+	PLAY	0x0000000000000175
+	STOP	0x0000000000000176
+	REC	0x0000000000000177
+	SKIP	0x0000000000000178
+	Prev	0x000000000000017b
+	INFO	0x000000000000017c
+	TV/VID	0x000000000000017e
+	Audio	0x000000000000017f
+	THDN	0x0000000000000268
+	THUP	0x0000000000000269
+      end codes
+
+end remote
+
+begin remote
+
+  name  PHILIPS_RC-5_ALT
+  bits           13
+  flags RC5|CONST_LENGTH
+  eps            20
+  aeps            0
+
+  one           889   889
+  zero          889   889
+  plead         889
+  gap          113792
+  min_repeat      1
+  toggle_bit      2
+
+  frequency    36000
+  duty_cycle   50
+
+      begin codes
+          LEFT                     0x0000000000000155
+          RIGHT                    0x0000000000000156
+      end codes
+
+end remote
+
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All/lircrc-one4all.txt b/abs/core-testing/system-templates/templates/remotes/One4All/lircrc-one4all.txt
new file mode 100755
index 0000000..0b67174
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/One4All/lircrc-one4all.txt
@@ -0,0 +1,730 @@
+# lircrc.URC-6131/RC-5 (Hauppauge PVR-250)
+# 2004-01-25, Joe Votour
+# mailto:vulturej@vulturesnest.net
+# Save this file in ~/.mythtv/lircrc, and make a symlink with ~/.lircrc
+# TODO: Test/configure the mplayer buttons
+#       Finish the rest of the remote buttons for MythTV
+
+# Power button/quit
+#begin
+#    prog = mythtv
+#    button = POWER
+#    config = Esc
+#end
+
+# Change TV card input
+begin
+    prog = mythtv
+    button = TV/VID
+    config = C
+end
+
+# Toggle Picture-In-Picture
+begin
+    prog = mythtv
+    button = PIP
+    config = V
+end
+
+# Swap the PiP windows
+begin
+    prog = mythtv
+    button = Swap
+    config = N
+end
+
+# Number keys
+begin
+    prog = mythtv
+    button = 1
+    config = 1
+end
+
+begin
+    prog = mythtv
+    button = 2
+    config = 2
+end
+
+begin
+    prog = mythtv
+    button = 3
+    config = 3
+end
+
+begin
+    prog = mythtv
+    button = 4
+    config = 4
+end
+
+begin
+    prog = mythtv
+    button = 5
+    config = 5
+end
+
+begin
+    prog = mythtv
+    button = 6
+    config = 6
+end
+
+begin
+    prog = mythtv
+    button = 7
+    config = 7
+end
+
+begin
+    prog = mythtv
+    button = 8
+    config = 8
+end
+
+begin
+    prog = mythtv
+    button = 9
+    config = 9
+end
+
+begin
+    prog = mythtv
+    button = 0
+    config = 0
+end
+
+# Exit button (returning to menu)
+begin
+    prog = mythtv
+    button = EXIT
+    config = Esc
+end
+
+# Menu button (TV menu)
+begin
+    prog = mythtv
+    button = MENU
+    config = M
+end
+
+# Guide button (EPG)
+begin
+    prog = mythtv
+    button = GUIDE
+    config = S
+end
+
+# Delete (i.e. View recordings screen)
+begin
+    prog = mythtv
+    button = POWER
+    config = D
+end
+
+# View program info (OSD)
+begin
+    prog = mythtv
+    button = INFO
+    config = I
+end
+
+# Note the "repeat =" strings in the volume and channel.
+# This means that if you hold down the key, every nth instance will be
+# passed.  This depends on your system, so you may want to increase or
+# decrease this and see what happens.  repeat = 1 is probably too
+# fast.
+
+# Volume Down
+begin
+    prog = mythtv
+    button = VOL-
+    repeat = 3
+    config = F10
+end
+
+# Volume Up
+begin
+    prog = mythtv
+    button = VOL+
+    repeat = 3
+    config = F11
+end
+
+# Channel Up
+begin
+    prog = mythtv
+    button = THUP
+    repeat = 3
+    config = Up
+end
+
+# Channel Down
+begin
+    prog = mythtv
+    button = THDN
+    repeat = 3
+    config = Down
+end
+
+# Navigational arrows
+begin
+    prog = mythtv
+    button = LEFT
+    repeat = 3
+    config = Left
+end
+
+begin
+    prog = mythtv
+    button = RIGHT
+    repeat = 3
+    config = Right
+end
+
+begin
+    prog = mythtv
+    button = SELECT
+    config = Return
+end
+
+# Mute
+begin
+    prog = mythtv
+    button = Mute
+    config = F9
+end
+
+# Browse mode
+#begin
+#    prog = mythtv
+#    button = DISPLAY
+#    config = O
+#end
+
+# Channel history
+begin
+    prog = mythtv
+    button = Prev
+    config = H
+end
+
+# Rewind
+begin
+    prog = mythtv
+    button = REW
+    config = Left
+end
+
+# Play
+begin
+    prog = mythtv
+    button = PLAY
+    config = P
+end
+
+# Fast-forward
+begin
+    prog = mythtv
+    button = FFW
+    config = Right
+end
+
+# Next chapter (page down for EPG)
+begin
+    prog = mythtv
+    button = NEXTCH
+    config = PgDown
+end
+
+# Previous chapter (page up for EPG)
+begin
+    prog = mythtv
+    button = PREVCH
+    config = PgUp
+end
+
+# Record
+begin
+    prog = mythtv
+    button = REC
+    config = R
+end
+
+# Teletext/Closed Captioning
+# Audio button doubles as CC
+begin
+    prog = mythtv
+    button = Audio
+    config = T
+end
+
+# Pause
+begin
+    prog = mythtv
+    button = PAUSE
+    config = P
+end
+
+# Backwards commercial skip
+begin
+    prog = mythtv
+    button = REPLAY
+    config = Q
+end
+
+# Forward commercial skip
+begin
+    prog = mythtv
+    button = SKIP
+    config = Z
+end
+
+#
+# mplayer keys (Untested)
+#
+begin
+    prog = mplayer
+    button = EXIT
+    config = quit
+end
+
+begin
+    prog = mplayer
+    button = MUTE
+    config = mute
+end
+
+begin
+    prog = mplayer
+    button = VOL-
+    config = volume -1
+    repeat = 1
+end
+
+begin
+    prog = mplayer
+    button = VOL+
+    config = volume 1
+    repeat = 1
+end
+
+begin
+    prog = mplayer
+    button = PLAY
+    config = pause
+end
+
+begin
+    prog = mplayer
+    button = PAUSE
+    config = pause
+end
+
+begin
+    prog = mplayer
+    button = STOP
+    config = quit
+end
+
+begin
+    prog = mplayer
+    button = DISPLAY
+    config = osd
+end
+
+begin
+    prog = mplayer
+    button = FFW
+    config = skip 1
+end
+
+begin
+    prog = mplayer
+    button = REW
+    config = skip -1
+end
+
+begin
+    prog = mplayer
+    button = REPLAY
+    config = skip -60
+end
+
+begin
+    prog = mplayer
+    button = SKIP
+    config = skip 60
+end
+
+##
+# xine key bindings.
+# Automatically generated by xine-ui version 0.9.23.
+# To run xine:
+# MythVideo: xine -D -pfh %s
+# MythDVD: xine -D -pfhq --auto-scan dvd (for DVD)
+#          xine -D -pfhq --auto-scan vcdo (for VCD)
+##
+
+# start playback
+begin
+	button = PLAY
+	prog   = xine
+	repeat = 3
+	config = Play
+end
+
+# playback pause toggle
+begin
+	button = PAUSE
+	prog   = xine
+	repeat = 3
+	config = Pause
+end
+
+# stop playback
+begin
+	button = STOP
+	prog   = xine
+	repeat = 3
+	config = Stop
+end
+
+# set position to -10 minutes in current stream
+begin
+	button = REPLAY
+	prog   = xine
+	repeat = 3
+	config = SeekRelative-600
+end
+
+# set position to +10 minutes in current stream
+begin
+	button = SKIP
+	prog   = xine
+	repeat = 3
+	config = SeekRelative+600
+end
+
+# set position to -30 seconds in current stream
+begin
+	button = REW
+	prog   = xine
+	repeat = 3
+	config = SeekRelative-30
+end
+
+# set position to +30 seconds in current stream
+begin
+	button = FFW
+	prog   = xine
+	repeat = 3
+	config = SeekRelative+30
+end
+
+# decrement playback speed
+begin
+	button = SLOMO
+	prog   = xine
+	repeat = 3
+	config = SpeedSlower
+end
+
+# reset playback speed
+begin
+	button = PLAY
+	prog   = xine
+	repeat = 3
+	config = SpeedReset
+end
+
+# increment audio volume
+begin
+	button = VOL+
+	prog   = xine
+	repeat = 2
+	config = Volume+
+end
+
+# decrement audio volume
+begin
+	button = VOL-
+	prog   = xine
+	repeat = 2
+	config = Volume-
+end
+
+# increment amplification level
+#begin
+#	remote = xxxxx
+#	button = xxxxx
+#	prog   = xine
+#	repeat = 3
+#	config = Amp+
+#end
+
+# decrement amplification level
+#begin
+#	remote = xxxxx
+#	button = xxxxx
+#	prog   = xine
+#	repeat = 3
+#	config = Amp-
+#end
+
+# reset amplification to default value
+#begin
+#	remote = xxxxx
+#	button = xxxxx
+#	prog   = xine
+#	repeat = 3
+#	config = ResetAmp
+#end
+
+# audio muting toggle
+begin
+	button = Mute
+	prog   = xine
+	repeat = 3
+	config = Mute
+end
+
+# select next audio channel
+begin
+	button = Audio
+	prog   = xine
+	repeat = 3
+	config = AudioChannelNext
+end
+
+# select next sub picture (subtitle) channel
+begin
+	button = SUBT
+	prog   = xine
+	repeat = 3
+	config = SpuNext
+end
+
+# jump to media Menu
+#begin
+#	button = MENU
+#	prog   = xine
+#	repeat = 3
+#	config = Menu
+#end
+
+# jump to Title Menu
+#begin
+#	remote = xxxxx
+#	button = xxxxx
+#	prog   = xine
+#	repeat = 3
+#	config = TitleMenu
+#end
+
+# jump to Root Menu
+begin
+	button = MENU
+	prog   = xine
+	repeat = 3
+	config = RootMenu
+end
+
+# jump to Subpicture Menu
+begin
+	remote = xxxxx
+	button = xxxxx
+	prog   = xine
+	repeat = 3
+	config = SubpictureMenu
+end
+
+# jump to Audio Menu
+begin
+	button = Audio
+	prog   = xine
+	repeat = 3
+	config = AudioMenu
+end
+
+# jump to Angle Menu
+begin
+	button = Angle
+	prog   = xine
+	repeat = 3
+	config = AngleMenu
+end
+
+# jump to Part Menu
+#begin
+#	remote = xxxxx
+#	button = xxxxx
+#	prog   = xine
+#	repeat = 3
+#	config = PartMenu
+#end
+
+# menu navigate up
+begin
+	button = CH+
+	prog   = xine
+	repeat = 3
+	config = EventUp
+end
+
+# menu navigate down
+begin
+	button = CH-
+	prog   = xine
+	repeat = 3
+	config = EventDown
+end
+
+# menu navigate left
+begin
+	button = LEFT
+	prog   = xine
+	repeat = 3
+	config = EventLeft
+end
+
+# menu navigate right
+begin
+	button = RIGHT
+	prog   = xine
+	repeat = 3
+	config = EventRight
+end
+
+# menu select
+begin
+	button = SELECT
+	prog   = xine
+	repeat = 3
+	config = EventSelect
+end
+
+# jump to next chapter
+begin
+	button = NEXTCH
+	prog   = xine
+	repeat = 3
+	config = EventNext
+end
+
+# jump to previous chapter
+begin
+	button = PREVCH
+	prog   = xine
+	repeat = 3
+	config = EventPrior
+end
+
+# select next angle
+begin
+	button = ANGLE
+	prog   = xine
+	repeat = 3
+	config = EventAngleNext
+end
+
+# display stream information using OSD
+begin
+	button = INFO
+	prog   = xine
+	repeat = 3
+	config = OSDStreamInfos
+end
+
+# enter the number 0
+begin
+	button = 0
+	prog   = xine
+	repeat = 3
+	config = Number0
+end
+
+# enter the number 1
+begin
+	button = 1
+	prog   = xine
+	repeat = 3
+	config = Number1
+end
+
+# enter the number 2
+begin
+	button = 2
+	prog   = xine
+	repeat = 3
+	config = Number2
+end
+
+# enter the number 3
+begin
+	button = 3
+	prog   = xine
+	repeat = 3
+	config = Number3
+end
+
+# enter the number 4
+begin
+	button = 4
+	prog   = xine
+	repeat = 3
+	config = Number4
+end
+
+# enter the number 5
+begin
+	button = 5
+	prog   = xine
+	repeat = 3
+	config = Number5
+end
+
+# enter the number 6
+begin
+	button = 6
+	prog   = xine
+	repeat = 3
+	config = Number6
+end
+
+# enter the number 7
+begin
+	button = 7
+	prog   = xine
+	repeat = 3
+	config = Number7
+end
+
+# enter the number 8
+begin
+	button = 8
+	prog   = xine
+	repeat = 3
+	config = Number8
+end
+
+# enter the number 9
+begin
+	button = 9
+	prog   = xine
+	repeat = 3
+	config = Number9
+end
+
+# quit the program
+begin
+	button = POWER
+	prog   = xine
+	repeat = 3
+	config = Quit
+end
+
+##
+# End of xine key bindings.
+##
+
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All/preview.jpg b/abs/core-testing/system-templates/templates/remotes/One4All/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/One4All/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_6131/lircd-one4all6131.conf b/abs/core-testing/system-templates/templates/remotes/One4All_6131/lircd-one4all6131.conf
new file mode 100755
index 0000000..9562f79
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/One4All_6131/lircd-one4all6131.conf
@@ -0,0 +1,31 @@
+begin remote
+  name            OneForAll_6131
+  bits            20
+  flags           SPACE_ENC|CONST_LENGTH
+  eps             30
+  aeps            100
+  header          2449   542
+  one             1259   527
+  zero            675   527
+  gap             45430
+
+  begin codes
+       Left            0xDEB92
+       Right           0x3EB92
+       Up              0x9EB92
+       Down            0x5EB92
+       Select          0xD0B92
+       Exit            0x70B92
+       Info            0x2AB92
+       Guide           0x58B92
+       Menu            0xD8B92
+       Play            0x4CB92
+       Pause           0x9CB92
+       Stop            0x1CB92
+       JumpBack        0x6CB92
+       JumpAhead       0xECB92
+       JumpToStart     0x0CB92
+
+  end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_6131/lircrc-one4all6131.txt b/abs/core-testing/system-templates/templates/remotes/One4All_6131/lircrc-one4all6131.txt
new file mode 100755
index 0000000..728c046
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/One4All_6131/lircrc-one4all6131.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = Up
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = Down
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = Up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = Down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = Right
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = Left
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = Select
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = Play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = Stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = Exit
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = 
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = Pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = 
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = JumpAhead
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = JumpBack
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = 
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = Menu
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = Guide
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = Info
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = 
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = Menu
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = Pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = 
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = JumpBack
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = JumpAhead
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = Stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = Play
+config = Play
+end
+ 
+begin
+prog = xine
+button = Stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = Exit
+config = Quit
+end
+ 
+begin
+prog = xine
+button = Pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = Up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = Down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = Select
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = Menu
+config = Menu
+end
+ 
+begin
+prog = xine
+button = JumpAhead
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = JumpBack
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = Right
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = Left
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = 
+config = Mute
+end
+ 
+begin
+prog = xine
+button = Stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = Info
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_6131/preview.jpg b/abs/core-testing/system-templates/templates/remotes/One4All_6131/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/One4All_6131/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_7544/lircd-one4all7544.conf b/abs/core-testing/system-templates/templates/remotes/One4All_7544/lircd-one4all7544.conf
new file mode 100755
index 0000000..c1787ef
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/One4All_7544/lircd-one4all7544.conf
@@ -0,0 +1,49 @@
+begin remote
+  name            one4all_7544
+  bits            12
+  flags           SPACE_ENC|CONST_LENGTH
+  eps             30
+  aeps            100
+  header          2399   615
+  one             1175   620
+  zero            572   620
+  gap             45451
+
+  begin codes
+       1		0x01A
+       2               0x81A
+       3               0x41A
+       4               0xC1A
+       5               0x21A
+       6               0xA1A
+       7               0x61A
+       8               0xE1A
+       9               0x11A
+       10              0x51A
+       0               0x91A
+       av              0x55A
+       c+              0x09A
+       c-              0x89A
+       exit            0x55A
+       ok              0x8BA
+       up              0x43A
+       down            0xC3A
+       left            0x47A
+       right           0x87A
+       v+              0x49A
+       v-              0xC9A
+       mute            0xADA
+       rr              0xD9A
+       play            0x59A
+       pause           0x99A
+       ff              0x39A
+       red             0x1BA
+       green           0x19A
+       yellow          0xB9A
+       blue            0xE5A
+       menu            0xB3A
+       power           0xA9A
+
+  end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_7544/lircrc-one4all7544.txt b/abs/core-testing/system-templates/templates/remotes/One4All_7544/lircrc-one4all7544.txt
new file mode 100755
index 0000000..57e702a
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/One4All_7544/lircrc-one4all7544.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = c+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = c-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = v+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = v-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = ok
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = exit
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = ff
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = rr
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = red
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = yellow
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = menu
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = green
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = blue
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = 
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = menu
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = rr
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = ff
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = exit
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = exit
+config = Stop
+end
+ 
+begin
+prog = xine
+button = exit
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = ok
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = menu
+config = Menu
+end
+ 
+begin
+prog = xine
+button = ff
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = rr
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = v+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = v-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = exit
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = green
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_7544/preview.jpg b/abs/core-testing/system-templates/templates/remotes/One4All_7544/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/One4All_7544/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_9910/lircd-one4all9910.conf b/abs/core-testing/system-templates/templates/remotes/One4All_9910/lircd-one4all9910.conf
new file mode 100755
index 0000000..504718b
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/One4All_9910/lircd-one4all9910.conf
@@ -0,0 +1,53 @@
+begin remote
+  name            one4all_9910
+  bits            24
+  flags           SPACE_ENC|CONST_LENGTH
+  eps             30
+  aeps            100
+  header          4074  3901
+  one             584  1909
+  zero            584   909
+  ptrail          589
+  gap             64326
+
+  begin codes
+       1               0x7318CE
+       2               0x7328CD
+       3               0x7338CC
+       4               0x7348CB
+       5               0x7358CA
+       6               0x7368C9
+       7               0x7378C8
+       8               0x7388C7
+       9               0x7398C6
+       0               0x7308CF
+       enter           0x7F480B
+       tvvid           0x7A385C
+       rew             0x71D8E2
+       play            0x7158EA
+       fwd             0x72D8D2
+       rec             0x7178E8
+       pause           0x7198E6
+       frew            0x72C8D3
+       stop            0x71F8E0
+       ffwd            0x72D8D2
+       pip             0x71B8E4
+       swap            0x7C383C
+       fav             0x72D8D2
+       ch-             0x72C8D3
+       ch+             0x72D8D2
+       prev            0x7278D8
+       left            0x7568A9
+       up              0x7598A6
+       down            0x7588A7
+       right           0x7578A8
+       select          0x7F480B
+       menu            0x7088F7
+       guide           0x71A8E5
+       exit            0x7068F9
+       info            0x73C8C3
+       power           0x72A8D5
+
+  end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_9910/lircrc-one4all9910.txt b/abs/core-testing/system-templates/templates/remotes/One4All_9910/lircrc-one4all9910.txt
new file mode 100755
index 0000000..ea40c6a
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/One4All_9910/lircrc-one4all9910.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = 
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = 
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = select
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = exit
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = 
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = fwd
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = rew
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = ffwd
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = frew
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = menu
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = info
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = prev
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = pip
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = menu
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = 
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = rew
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = fwd
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = ffwd
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = frew
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = enter
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = menu
+config = Menu
+end
+ 
+begin
+prog = xine
+button = ffwd
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = frew
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = ch+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = ch-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = 
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = prev
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = info
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_9910/preview.jpg b/abs/core-testing/system-templates/templates/remotes/One4All_9910/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/One4All_9910/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Packard_bell/lircd-packard.conf b/abs/core-testing/system-templates/templates/remotes/Packard_bell/lircd-packard.conf
new file mode 100755
index 0000000..9e0e783
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Packard_bell/lircd-packard.conf
@@ -0,0 +1,92 @@
+# Config file for Packard Bell Remotes (with repeat codes!)
+# created by Samuel Wood (sjw@umr.edu)
+#
+# brand:             Packard Bell Remote
+# model:             El Cheapo Packard Bell Remote
+#
+# This is a config file for the cheap excess Packard Bell remotes 
+# you sometimes can buy from online auctions like www.onsale.com.
+#
+# The receiver that comes with it hooks into the serial port and works 
+# fine with lirc 0.5.4.
+#
+# The receiver that comes with the remote is near garbage. If 
+# you don't point almost directly at it, it will not detect. But
+# it's simpler than building your own. :-)
+#
+# Repeat works fine for me. You just have to modify or add the 
+# "repeat=" lines in your .lircrc.
+#
+# irrecord was used to generate the file, then I modified and 
+# added repeat codes. 
+#
+# The button names used are identical to what was printed on the 
+# remote, except for the number pads (using actual numbers like 
+# "1" and so forth did not seem to work. Similarly, '*' is Star 
+# and '#' is Hash. LMB and RMB refer to the two mousepad buttons
+# on the left and right respectively.
+#
+# I still need to modify the gap setting. Right now, if you don't 
+# hold the button down long enough, it may not register, but if
+# you hold it too long, it will detect a repeat or two. Feel free
+# to modify this to work better. If you get it to work better, send
+# me a copy. :-)
+
+begin remote
+
+  name  PackBell
+  bits           15
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          400
+
+  header       9065  4500
+  one           597   532
+  zero          597  1643
+  ptrail        597
+  pre_data_bits   16
+  pre_data       0xF708
+  post_data_bits  1
+  post_data      0x0
+  gap          107000
+  repeat_bit      0
+  repeat          9050 2250
+ 
+      begin codes
+          Help                     0x0000000000006F90
+          Phone                    0x0000000000004FB0
+          Message                  0x0000000000006E91
+          SRS                      0x0000000000004EB1
+          CD                       0x0000000000002FD0
+          Aux1                     0x0000000000000FF0
+          Aux2                     0x0000000000002ED1
+          Aux3                     0x0000000000000EF1
+          LMB                      0x00000000000023DC
+          RMB                      0x000000000000639C
+          Up                       0x00000000000037C8
+          Down                     0x00000000000057A8
+          Left                     0x0000000000007788
+          Right                    0x00000000000017E8
+          Menu                     0x0000000000007B84
+          Mute                     0x0000000000003BC4
+          Enter                    0x00000000000047B8
+          CHUp                     0x00000000000027D8
+          CHDown                   0x0000000000006798
+          VolUp                    0x0000000000005BA4
+          VolDown                  0x0000000000001BE4
+          Display                  0x00000000000007F8
+          One                      0x0000000000005EA1
+          Two                      0x0000000000001EE1
+          Three                    0x0000000000000BF4
+          Four                     0x0000000000007E81
+          Five                     0x0000000000003EC1
+          Six                      0x0000000000004BB4
+          Seven                    0x0000000000005FA0
+          Eight                    0x0000000000001FE0
+          Nine                     0x0000000000002BD4
+          Zero                     0x0000000000003FC0
+          Star                     0x0000000000007F80
+          Hash                     0x0000000000006B94
+      end codes
+
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Packard_bell/lircrc-packard.txt b/abs/core-testing/system-templates/templates/remotes/Packard_bell/lircrc-packard.txt
new file mode 100755
index 0000000..5e54f7a
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Packard_bell/lircrc-packard.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = CHUp
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CHDown
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = Left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = Right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = Up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = Down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VolUp
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VolDown
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = Enter
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = 
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = 
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = 
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = Mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = 
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = Menu
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  Zero
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  One
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  Two
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  Three
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  Four
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  Five
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  Six
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  Seven
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  Eight
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  Nine
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = 
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = Menu
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = 
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = Mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = Left
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = Right
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = 
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = 
+config = Play
+end
+ 
+begin
+prog = xine
+button = 
+config = Stop
+end
+ 
+begin
+prog = xine
+button = 
+config = Quit
+end
+ 
+begin
+prog = xine
+button = 
+config = Pause
+end
+ 
+begin
+prog = xine
+button = Up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = Down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = Left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = Right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = Menu
+config = Menu
+end
+ 
+begin
+prog = xine
+button = 
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = 
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VolUp
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VolDown
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = Mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = 
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = Help
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Packard_bell/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Packard_bell/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Packard_bell/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Pinnacle/lircd-pinnacle.conf b/abs/core-testing/system-templates/templates/remotes/Pinnacle/lircd-pinnacle.conf
new file mode 100755
index 0000000..ebc04d9
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Pinnacle/lircd-pinnacle.conf
@@ -0,0 +1,97 @@
+#
+# contributed by Bart Alewijnse <scarfboy@yahoo.com>
+#
+# brand:             Pinnacle Systems
+# model:             PCTV Remote (Perhaps other ones as well)
+# supported devices: there's only one I know of. (serial) 
+#
+# Mail me if your remote is only partly supported, or if it has different
+# buttons than listed below.
+#
+
+begin remote
+
+  name  PinnacleSysPCTVRemote
+  bits              16
+  eps               30
+  aeps             100
+
+  one                0     0
+  zero               0     0
+  pre_data_bits      8
+  pre_data        0xFE
+  gap           180000
+  toggle_bit         0
+
+  begin codes
+          Mute                     0xB53C                     #Mute                     0x000000000000003C
+          Power                    0x2D2F                     #Power                    0x000000000000002F
+          Chan+Play                0x173F                     #Chan+Play                0x000000000000003F
+          Chan-Stop                0xC63E                     #Chan-Stop                0x000000000000003E
+          Vol+FF                   0xF13B                     #Vol+FF                   0x000000000000003B
+          Vol-Rew                  0x643D                     #Vol-Rew                  0x000000000000003D
+          1                        0x9F31                     #1                        0x0000000000000031
+          2                        0x3D32                     #2                        0x0000000000000032
+          3                        0xEC33                     #3                        0x0000000000000033
+          4                        0xA834                     #4                        0x0000000000000034
+          5                        0x7935                     #5                        0x0000000000000035
+          6                        0xDB36                     #6                        0x0000000000000036
+          7                        0x0A37                     #7                        0x0000000000000037
+          8                        0x5338                     #8                        0x0000000000000038
+          9                        0x8239                     #9                        0x0000000000000039
+          Fullscreen               0x5E2D                     #Fullscreen               0x000000000000002D
+          0/AV                     0x203A                     #0/AV                     0x000000000000003A
+          Info                     0xCB2B                     #Info                     0x000000000000002B
+          Preview                  0xFC2E                     #Preview                  0x000000000000002E
+          Record                   0x3027                     #Record                   0x0000000000000027
+          Chan_Last                0x4325                     #Chan_Last                0x0000000000000025
+          F_TV                     0xE126                     #F_TV                     0x0000000000000026
+          F_TELETEXT               0xB829                     #F_TELETEXT               0x0000000000000029
+          F_RADIO                  0x1A2A                     #F_RADIO                  0x000000000000002A
+
+#
+# here are some extra buttons a new version of the remote seems to have
+#
+# contributed by Robbert Monna <rjmonna@kabelfoon.nl>
+#
+# brand:             Pinnacle Systems
+# model:             PCTV Remote (newest version?)
+# supported devices: dongle on serial port (from TV-Card)
+#
+          L                        0x631F                     #L                        0x000000000000001F
+          Zoom                     0xB21E                     #Zoom                     0x000000000000001E
+          vol+                     0x851B                     #vol+                     0x000000000000001B
+          vol-                     0x590F                     #vol-                     0x000000000000000F
+          channel+                 0x7E17                     #channel+                 0x0000000000000017
+          channel-                 0xC11C                     #channel-                 0x000000000000001C
+          middle                   0x541A                     #middle                   0x000000000000001A
+          Menu                     0x101D                     #Menu                     0x000000000000001D
+          next                     0xF619                     #next                     0x0000000000000019
+          undo                     0xAF16                     #undo                     0x0000000000000016
+          pause                    0x0D15                     #pause                    0x0000000000000015
+          redo                     0x9813                     #redo                     0x0000000000000013
+          Rewind                   0x880E                     #Rewind                   0x000000000000000E
+          Play                     0x2A0D                     #Play                     0x000000000000000D
+          Stop                     0xBF0B                     #Stop                     0x000000000000000B
+          FForward                 0x4407                     #FForward                 0x0000000000000007
+          EPG                      0x2718                     #EPG                      0x0000000000000018
+ 
+# here are some more buttons that seem to be mapped differently from
+# the ones above 
+ 
+# contributed by InterCeptor ceptor_7@freemail.hu
+#
+# brand:   Pinnacle Systems PCTV Pro Remote
+# model no. of remote control: (I can't find any numbers on it)
+# supported devices: serial
+#
+
+          9                        0x0000000000000082
+          Zoom                     0x00000000000000B2
+          middle                   0x0000000000000014
+
+
+  end codes
+end remote
+
+
diff --git a/abs/core-testing/system-templates/templates/remotes/Pinnacle/lircrc-pinnacle.txt b/abs/core-testing/system-templates/templates/remotes/Pinnacle/lircrc-pinnacle.txt
new file mode 100755
index 0000000..d3b9261
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Pinnacle/lircrc-pinnacle.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = channel+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = channel-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = channel+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = channel-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = Play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = Stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = undo
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = Power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = Mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = FForward
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = Rewind
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = Vol+FF
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = Vol-Rew
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = Record
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = Menu
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = EPG
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = Info
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = Chan_Last
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = F_TELETEXT
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = Fullscreen
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = Menu
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = Mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = Rewind
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = FForward
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = Stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = Vol+FF
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = Vol-Rew
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = Fullscreen
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = Play
+config = Play
+end
+ 
+begin
+prog = xine
+button = Stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = Stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = channel+
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = channel-
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = Menu
+config = Menu
+end
+ 
+begin
+prog = xine
+button = FForward
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = Rewind
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = Mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = Stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = next
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = undo
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = Info
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Pinnacle/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Pinnacle/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Pinnacle/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Provideo/lircd-provideo.conf b/abs/core-testing/system-templates/templates/remotes/Provideo/lircd-provideo.conf
new file mode 100755
index 0000000..d20ad85
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Provideo/lircd-provideo.conf
@@ -0,0 +1,52 @@
+begin remote
+
+  name  PV951
+  bits           16
+  flags SPACE_ENC|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  header       9067  4482
+  one           597  1650
+  zero          597   529
+  ptrail        584
+  repeat       9068  2232
+  pre_data_bits   16
+  pre_data       0x61D6
+  gap          107983
+  repeat_bit      0
+
+      begin codes
+          power                    0x00000000000048B7
+          air/cbl                  0x000000000000D02F
+          pc/tv                    0x0000000000008877
+          source                   0x000000000000F00F
+          mts                      0x000000000000C837
+          mute                     0x00000000000008F7
+          1                        0x000000000000807F
+          2                        0x00000000000040BF
+          3                        0x000000000000C03F
+          4                        0x00000000000020DF
+          5                        0x000000000000A05F
+          6                        0x000000000000609F
+          7                        0x000000000000E01F
+          8                        0x00000000000010EF
+          9                        0x000000000000906F
+          0                        0x00000000000000FF
+          +100                     0x00000000000050AF
+          ch_rtn                   0x000000000000E817
+          ch+                      0x00000000000058A7
+          ch-                      0x0000000000007887
+          vol+                     0x000000000000D827
+          vol-                     0x000000000000F807
+          func                     0x0000000000009867
+          ttx                      0x000000000000B04F
+          pg+                      0x000000000000708F
+          pg-                      0x000000000000B847
+          cc                       0x0000000000006897
+          sync                     0x00000000000028D7
+          ch+-                     0x00000000000018E7
+          autoscan                 0x00000000000030CF
+      end codes
+
+end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/Provideo/lircrc-provideo.txt b/abs/core-testing/system-templates/templates/remotes/Provideo/lircrc-provideo.txt
new file mode 100755
index 0000000..90972b6
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Provideo/lircrc-provideo.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = pg+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = pg-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = 
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = 
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = 
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = func
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = ch_rtn
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = cc
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = func
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = 
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = 
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = 
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = 
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = 
+config = Play
+end
+ 
+begin
+prog = xine
+button = 
+config = Stop
+end
+ 
+begin
+prog = xine
+button = 
+config = Quit
+end
+ 
+begin
+prog = xine
+button = 
+config = Pause
+end
+ 
+begin
+prog = xine
+button = ch+
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = ch-
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = 
+config = Menu
+end
+ 
+begin
+prog = xine
+button = pg+
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = pg-
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = 
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = ch_rtn
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = ttx
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Provideo/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Provideo/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Provideo/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Sasem/lircd-sasem.conf b/abs/core-testing/system-templates/templates/remotes/Sasem/lircd-sasem.conf
new file mode 100755
index 0000000..25d6521
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Sasem/lircd-sasem.conf
@@ -0,0 +1,81 @@
+#
+# this config file was automatically generated
+# using lirc-0.7.0pre4(sasem) on Mon May 24 03:11:34 2004
+#
+# contributed by Oliver Stabel (oliver.stabel@gmx.de)
+#
+# brand: Sasem OnAir
+# model no. of remote control: n/a
+# devices being controlled by this remote:
+#	This IR came with the Dign HV5 HTPC case, manufactured
+#       by Uneed in Korea (www.iuneed.com).
+#       AFAIK the case is called Ahanix HV5 in the US.
+#       The IR/VFD device is originally manufactured by Sasem,
+#       and sold as OnAir Remocon-V (?looks different from 
+#       mine but should be the same?)
+#
+
+begin remote
+
+  name  sasem
+  bits           16
+  eps            30
+  aeps          100
+
+  one             0     0
+  zero            0     0
+  pre_data_bits   24
+  pre_data        0x0C807F
+  post_data_bits  24
+  post_data       0x000000
+  gap             196000
+  toggle_bit      0
+
+
+      begin codes
+          1                        0x08F7
+          2                        0x09F6
+          3                        0x0AF5
+          4                        0x10EF
+          5                        0x11EE
+          6                        0x12ED
+          7                        0x18E7
+          8                        0x19E6
+          9                        0x1AE5
+          start                    0x40BF
+          0                        0x41BE
+          full_down                0x06F9
+          vol-                     0x0FF0
+          vol+                     0x0EF1
+          esc                      0x05FA
+          up                       0x0BF4
+          close                    0x07F8
+          left                     0x03FC
+          enter                    0x13EC
+          right                    0x1BE4
+          prev                     0x0CF3
+          down                     0x43BC
+          next                     0x01FE
+          mute                     0x0DF2
+          step                     0x04FB
+          play_pause               0x49B6
+          stop                     0x48B7
+          winamp                   0x1EE1
+          media_player             0x15EA
+          hdtv                     0x17E8
+          cd_player                0x16E9
+          win_dvd                  0x44BB
+          power_dvd                0x14EB
+          internet                 0x46B9
+          email                    0x47B8
+          a                        0x45BA
+          b                        0x1DE2
+          c                        0x1CE3
+          d                        0x1FE0
+          eject                    0x02FD
+          power                    0x00FF
+      end codes
+
+end remote
+
+
diff --git a/abs/core-testing/system-templates/templates/remotes/Sasem/lircrc-sasem.txt b/abs/core-testing/system-templates/templates/remotes/Sasem/lircrc-sasem.txt
new file mode 100755
index 0000000..9d73415
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Sasem/lircrc-sasem.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = down
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = enter
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play_pause
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = esc
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = play_pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = next
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = prev
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = 
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = 
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = 
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = 
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = 
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = 
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = play_pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = prev
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = next
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = full_down
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play_pause
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = esc
+config = Quit
+end
+ 
+begin
+prog = xine
+button = play_pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = enter
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = 
+config = Menu
+end
+ 
+begin
+prog = xine
+button = next
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = prev
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = 
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Sasem/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Sasem/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Sasem/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Technisat/lircd-technisat.conf b/abs/core-testing/system-templates/templates/remotes/Technisat/lircd-technisat.conf
new file mode 100755
index 0000000..3f0f3d4
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Technisat/lircd-technisat.conf
@@ -0,0 +1,68 @@
+# Please make this file available to others
+# by sending it to <lirc@bartelmus.de>
+#
+# this config file was automatically generated
+# using lirc-0.6.6(any) on Sun Mar 27 11:39:40 2005
+#
+# contributed by 
+#
+# brand:                      
+# model no. of remote control: TS35 - Airstar2
+# devices being controlled by this remote: DVB-T
+#
+
+begin remote
+
+  name  technisat
+  bits           13
+  flags RC5|CONST_LENGTH
+  eps            30
+  aeps          100
+
+  one           907   885
+  zero          907   885
+  plead         954
+  gap          113935
+  toggle_bit      2
+
+
+      begin codes
+          1                        0x0000000000001A81
+          2                        0x0000000000001A82
+          3                        0x0000000000001283
+          4                        0x0000000000001284
+          5                        0x0000000000001A85
+          6                        0x0000000000001286
+          7                        0x0000000000001A87
+          8                        0x0000000000001288
+          9                        0x0000000000001A89
+          0                        0x0000000000001A80
+          Mute                     0x000000000000128D
+          Ext                      0x0000000000001AB8
+          a/b                      0x00000000000012A3
+          Power                    0x0000000000001A8C
+          tv/radio                 0x0000000000000293
+          -/--                     0x0000000000001A8A
+          Menu                     0x0000000000000292
+          Back                     0x0000000000000A8F
+          Up                       0x0000000000001AA0
+          Down                     0x00000000000012A1
+          Left                     0x0000000000001A91
+          Right                    0x0000000000001A90
+          Sfi                      0x0000000000001AAF
+          Repeat                   0x0000000000001AA2
+          Red                      0x00000000000002AB
+          Green                    0x0000000000000AAC
+          Yellow                   0x0000000000000AAD
+          Blue                     0x0000000000000AAE
+          Ok                       0x0000000000000297
+          Check                    0x00000000000002B6
+          txt                      0x0000000000001ABC
+          stop                     0x00000000000012A9
+          help                     0x0000000000001A8F
+          tv/radio                 0x0000000000000A93
+      end codes
+
+end remote
+
+
diff --git a/abs/core-testing/system-templates/templates/remotes/Technisat/lircrc-technisat.txt b/abs/core-testing/system-templates/templates/remotes/Technisat/lircrc-technisat.txt
new file mode 100755
index 0000000..8baa6b9
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Technisat/lircrc-technisat.txt
@@ -0,0 +1,347 @@
+begin
+    prog = mythtv
+    button = Up
+    config = Up
+end
+
+begin
+    prog = mythtv
+    button = Down
+    config = Down
+end
+
+begin
+    prog = mythtv
+    button = Left
+    config = Left
+end
+
+begin
+    prog = mythtv
+    button = Right
+    config = Right
+end
+
+begin
+    prog = mythtv
+    button = 1
+    config = 1
+end
+
+begin
+    prog = mythtv
+    button = 2
+    config = 2
+end
+
+begin
+    prog = mythtv
+    button = 3
+    config = 3
+end
+
+begin
+    prog = mythtv
+    button = 4
+    config = 4
+end
+
+begin
+    prog = mythtv
+    button = 5
+    config = 5
+end
+
+begin
+    prog = mythtv
+    button = 6
+    config = 6
+end
+
+begin
+    prog = mythtv
+    button = 7
+    config = 7
+end
+
+begin
+    prog = mythtv
+    button = 8
+    config = 8
+end
+
+begin
+    prog = mythtv
+    button = 9
+    config = 9
+end
+
+begin
+    prog = mythtv
+    button = 0
+    config = 0
+end
+
+begin
+  prog = mythtv
+  button = Menu
+  config = M
+end
+
+begin
+  prog = mythtv
+  button = Repeat
+  config = H
+end
+
+begin
+  prog = mythtv
+  button = Check
+  config = /
+end
+
+begin
+  prog = mythtv
+  button = help
+  config = T
+end
+
+
+begin
+   prog = mythtv
+# This is the Red key
+# We'll use it for "Delete"
+   button = Red
+   config = D
+end
+
+begin
+   prog = mythtv
+# This is the Green key
+# We'll use it for "Information"
+   button = Green
+   config = I
+end
+
+begin
+   prog = mythtv
+# This is the Green key
+# We'll use it for "View details"
+   button = Yellow
+   config = U
+end
+
+begin
+   prog = mythtv
+# This is the Green key
+# We'll use it for "Upcoming episodes"
+   button = Blue
+   config = O
+end
+
+
+# Note the "repeat =" strings in the volume and channel.
+# This means that if you hold down the key, every nth instance will be
+# passed.  This depends on your system, so you may want to increase or
+# decrease this and see what happens.  repeat = 1 is probably too
+# fast.
+
+begin
+  prog = mythtv
+  button = Left
+  repeat = 3
+  config = F10
+end
+
+begin
+  prog = mythtv
+  button = Right
+  repeat = 3
+  config = F11
+end
+
+begin
+    prog = mythtv
+# Middle button on the diamond
+    button = Ok
+    config = P
+end
+
+begin
+    prog = mythtv
+    button = Mute
+    config = |
+end
+
+begin
+    prog = mythtv
+    button = back
+    config = Esc
+end
+
+
+begin
+   prog = mythtv
+   button = stop
+   config = Esc
+end
+
+
+#MPlayer
+begin
+   prog = mplayer
+   button = stop
+   config = quit
+end
+
+begin
+   prog = mplayer
+   button = help
+   config = osd
+end
+
+begin
+    prog = mplayer
+    button = Ok
+    config = play
+end
+
+
+
+begin
+    prog = mplayer
+    button = Ok
+    config = pause
+end
+
+begin
+   prog = mplayer
+   button = Right
+   config = volume +1
+   repeat = 1
+end
+
+begin
+   prog = mplayer
+   button = Left
+   config = volume -1
+   repeat = 1
+end
+
+begin
+   prog = mplayer
+   button = Mute
+   config = mute
+end
+##XINE
+
+ begin
+ prog = xine
+ button = Ok
+ repeat = 3
+ config = Play
+ end
+
+ begin
+ prog = xine
+ button = stop
+ repeat = 3
+ config = Stop
+ end
+
+ begin
+ prog = xine
+ button = Back
+ config = Quit
+ end
+
+ begin
+ prog = xine
+ button = Ok
+ repeat = 3
+ config = Pause
+ end
+
+ begin
+ prog = xine
+ button = Up
+ repeat = 4
+ config = EventUp
+ end
+
+ begin
+ prog = xine
+ button = Down
+ repeat = 4
+ config = EventDown
+ end
+
+ begin
+ prog = xine
+ button = Left
+ repeat = 4
+ config = Volume-
+ end
+
+ begin
+ prog = xine
+ button = Right
+ repeat = 4
+ config = Volume+
+ end
+
+ begin
+ prog = xine
+ button = Ok
+ repeat = 0
+ config = EventSelect
+ end
+
+ begin
+ prog = xine
+ button = Menu
+ repeat = 0
+ config = Menu
+ end
+
+ #vol down
+ begin
+ prog = xine
+ button = Yellow
+ repeat = 1
+ config = EventLeft
+ end
+
+ #vol up
+ begin
+ prog = xine
+ button = Red
+ repeat = 1
+ config = EventRight
+ end
+
+ 
+ #ch up
+ begin
+ prog = xine
+ button = Green
+ repeat = 1
+ config = SeekRelative+60
+ end
+
+ #ch down
+ begin
+ prog = xine
+ button = Blue
+ repeat = 1
+ config = SeekRelative-60
+ end
+
+ 
+  #skip chapter backward
+ begin
+ prog = xine
+ button = Repeat
+ repeat = 1
+ config = EventPrior
+ end
diff --git a/abs/core-testing/system-templates/templates/remotes/Technisat/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Technisat/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Technisat/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Tekram/lircd-tekram.conf b/abs/core-testing/system-templates/templates/remotes/Tekram/lircd-tekram.conf
new file mode 100755
index 0000000..90ae8f8
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Tekram/lircd-tekram.conf
@@ -0,0 +1,48 @@
+#
+# This is for the remote that Tekram bundles with its M230 card (Mach64)
+# Commands from the remote are hardware-decoded
+#
+# contributed by Froenchenko Leonid <lfroen@galileo.co.il>
+#
+# brand:             Tekram M230 (ATI Mach64)
+# supported devices: This remote control comes with TV Tuner cards from
+#                    Tekram based on ATI 264VT (btt829)
+#
+
+begin remote
+  name  tekram_m230
+  bits  8
+      begin codes
+	0		0x00
+	1		0x01
+	2		0x02
+	3		0x03
+	4		0x04
+	5		0x05
+	6		0x06
+	7		0x07
+	8		0x08
+	9		0x09
+	RECALL		0x0A
+	ENTER		0x17
+	POWER		0x1C
+	SOURCE		0x15
+	PC_VID		0x12
+	STILL		0x11
+	TTX		0x0F
+	FAV		0x13
+	MUTE		0x10
+	VOL_UP		0x1A
+	VOL_DN		0x1E
+	CH_UP		0x1B
+	CH_DN		0x1F
+	PLAY		0x0D
+	STOP		0x0E
+	REW		0x1D
+	FFW		0x19
+	ADD_ER		0x16
+	FUNC		0x14
+ 	F_PLUS		0x18
+	F_MINUS		0x0C
+     end codes
+end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/Tekram/lircrc-tekram.txt b/abs/core-testing/system-templates/templates/remotes/Tekram/lircrc-tekram.txt
new file mode 100755
index 0000000..6226f3d
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Tekram/lircrc-tekram.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = CH_UP
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = CH_DN
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = CH_UP
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = CH_DN
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VOL_UP
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VOL_DN
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = ENTER
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = PLAY
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = STOP
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = POWER
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = STILL
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = MUTE
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = FFW
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = REW
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = F_PLUS
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = F_MINUS
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = FUNC
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = SOURCE
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = FAV
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = PC_VID
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = RECALL
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = TTX
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = FAV
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = STILL
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = MUTE
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = REW
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = FFW
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = STOP
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = F_PLUS
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = F_MINUS
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = SOURCE
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = PLAY
+config = Play
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Stop
+end
+ 
+begin
+prog = xine
+button = STOP
+config = Quit
+end
+ 
+begin
+prog = xine
+button = STILL
+config = Pause
+end
+ 
+begin
+prog = xine
+button = CH_UP
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = CH_DN
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = ENTER
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = SOURCE
+config = Menu
+end
+ 
+begin
+prog = xine
+button = FFW
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = REW
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VOL_UP
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VOL_DN
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = MUTE
+config = Mute
+end
+ 
+begin
+prog = xine
+button = STOP
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = F_PLUS
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = F_MINUS
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = TTX
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Tekram/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Tekram/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Tekram/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Twinham/lircd-twinhan.conf b/abs/core-testing/system-templates/templates/remotes/Twinham/lircd-twinhan.conf
new file mode 100755
index 0000000..3fb3652
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Twinham/lircd-twinhan.conf
@@ -0,0 +1,44 @@
+begin remote
+  name  TwinHanRemote
+  bits           32
+  eps            30
+  aeps          100
+  one             0     0
+  zero            0     0
+  gap          115899
+  toggle_bit      0
+      begin codes
+          fullscreen               0x8001002C
+          Power                    0x8001001D
+          1                        0x80010002
+          2                        0x80010003
+          3                        0x80010004
+          4                        0x80010005
+          5                        0x80010006
+          6                        0x80010007
+          7                        0x80010008
+          8                        0x80010009
+          9                        0x8001000A
+          0                        0x8001000B
+          rec                      0x80010066
+          favorite                 0x8001002F
+          rewind                   0x80010017
+          forward                  0x80010031
+          ch+                      0x80010068
+          ch-                      0x8001006D
+          vol-                     0x8001006C
+          vol+                     0x80010067
+          recall                   0x8001002E
+          play                     0x8001001C
+          stop                     0x8001006B
+          pause                    0x80010014
+          mute                     0x80010032
+          cancel                   0x80010001
+          capture                  0x80010019
+          preview                  0x80010025
+          epg                      0x80010012
+          recordlist               0x80010026
+          tab                      0x8001000F
+          teletext                 0x8001001E
+      end codes
+end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Twinham/lircrc-twinhan.txt b/abs/core-testing/system-templates/templates/remotes/Twinham/lircrc-twinhan.txt
new file mode 100755
index 0000000..296876c
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/Twinham/lircrc-twinhan.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ch-
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = 
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = 
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = ch+
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = ch-
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = vol+
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = vol-
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = 
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = 
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = Power
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = forward
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = rewind
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = 
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = rec
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = epg
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = preview
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = recall
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = teletext
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = epg
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = rewind
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = forward
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = 
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = fullscreen
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = play
+config = Play
+end
+ 
+begin
+prog = xine
+button = stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = stop
+config = Quit
+end
+ 
+begin
+prog = xine
+button = pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = ch+
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = ch-
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = 
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = 
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = 
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = epg
+config = Menu
+end
+ 
+begin
+prog = xine
+button = forward
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = rewind
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = vol+
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = vol-
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = 
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = 
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = teletext
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Twinham/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Twinham/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/Twinham/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/X10_Lola/lircd-x10lola.conf b/abs/core-testing/system-templates/templates/remotes/X10_Lola/lircd-x10lola.conf
new file mode 100755
index 0000000..7bfad44
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/X10_Lola/lircd-x10lola.conf
@@ -0,0 +1,78 @@
+# lircd.conf for X-10 Lola remote
+#
+# this config file was automatically generated
+# using lirc-0.6.6(any) on Sat May 15 14:41:38 2004
+# matching MythTV configuration file at http://wendy.seltzer.org/mythtv/lircrc
+#
+#
+# brand:	X-10 Lola                       
+# model no. of remote control:  UR89A
+# devices being controlled by this remote: mythtv
+#
+
+begin remote
+
+  name  x10_lola
+  bits           16
+  eps            30
+  aeps          100
+
+  one             0     0
+  zero            0     0
+  
+  pre_data_bits   8
+  pre_data       0x14
+  post_data_bits  16
+  post_data      0x0
+  gap          219972
+  toggle_bit      0
+
+
+      begin codes
+          up                       0x000000000000600B
+          down                     0x000000000000610C
+          left                     0x0000000000005D08
+          right                    0x0000000000005E09
+          M                        0x0000000000005F0A
+          1                        0x000000000000620D
+          2                        0x000000000000630E
+          3                        0x000000000000640F
+          4                        0x0000000000006510
+          5                        0x0000000000006611
+          6                        0x0000000000006712
+          7                        0x0000000000006813
+          8                        0x0000000000006914
+          9                        0x0000000000006A15
+          0                        0x0000000000006C17
+          a-d                      0x0000000000006B16
+          a-b                      0x0000000000006D18
+          pageup                   0x000000000000711C
+          pagedown                 0x0000000000007520
+          T                        0x000000000000832E
+          E                        0x000000000000842F
+          F                        0x0000000000005C07
+          S                        0x0000000000008530
+          scan-                    0x000000000000802B
+          rew                      0x0000000000007924
+          play                     0x0000000000007A25
+          ff                       0x0000000000007B26
+          scan+                    0x0000000000007F2A
+          rec                      0x0000000000007C27
+          stop                     0x0000000000007D28
+          pause                    0x0000000000007E29
+          playlist                 0x0000000000005601
+          playing                  0x000000000000822D
+          enter                    0x000000000000731E
+          eu                       0x0000000000006F1A
+          ed                       0x0000000000007722
+          el                       0x000000000000721D
+          er                       0x000000000000741F
+          alb                      0x0000000000006E19
+          art                      0x000000000000701B
+          gen                      0x0000000000007621
+          trk                      0x0000000000007823
+      end codes
+
+end remote
+
+
diff --git a/abs/core-testing/system-templates/templates/remotes/X10_Lola/lircrc-x10lola.txt b/abs/core-testing/system-templates/templates/remotes/X10_Lola/lircrc-x10lola.txt
new file mode 100755
index 0000000..5fc949e
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/X10_Lola/lircrc-x10lola.txt
@@ -0,0 +1,334 @@
+# lircrc
+# lircrc configuration file for X-10 Lola remote for use with MythTV
+# for use with keymapping at http://wendy.seltzer.org/mythtv/lircd.conf
+# common keymappings from the keys.txt suggestions
+# 
+# This file is public domain.  No rights reserved.
+ 
+###number keys
+begin
+	prog = mythtv
+	button = 0
+	config =  0 
+end
+begin
+	prog = mythtv
+	button = 1
+	config =  1 
+end
+begin
+	prog = mythtv
+	button = 2
+	config =  2 
+end
+begin
+	prog = mythtv
+	button = 3
+	config =  3 
+end
+begin
+	prog = mythtv
+	button = 4
+	config =  4 
+end
+begin
+	prog = mythtv
+	button = 5
+	config =  5 
+end
+begin
+	prog = mythtv
+	button = 0
+	config =  0 
+end
+begin
+	prog = mythtv
+	button = 6
+	config =  6 
+end
+begin
+	prog = mythtv
+	button = 7
+	config =  7 
+end
+begin
+	prog = mythtv
+	button = 8
+	config =  8 
+end
+begin
+	prog = mythtv
+	button = 9
+	config =  9 
+end
+
+##arrows
+begin
+	prog = mythtv
+	button = play
+	config =  Space 
+end
+
+### arrows with the multibutton
+begin
+	prog = mythtv
+	button = eu
+	config =  Up 
+end
+begin
+	prog = mythtv
+	button = ed
+	config =  Down 
+end
+begin
+	prog = mythtv
+	button = el
+	config =  Left 
+end
+begin
+	prog = mythtv
+	button = er
+	config =  Right 
+end
+begin
+	prog = mythtv
+	button = enter
+	config =  Space 
+end
+begin
+	prog = mythtv
+	button = stop
+	config =  Escape 
+end
+begin
+	prog = mythtv
+	button = alb
+	config =  m 
+end
+begin
+	prog = mythtv
+	button = art
+	config =  e 
+end
+begin
+	prog = mythtv
+	button = gen
+	config =  i 
+end
+begin
+	prog = mythtv
+	button = trk
+	config =  y 
+end
+begin
+	prog = mythtv
+	button = rec
+	config =  r 
+end
+
+begin
+	prog = mythtv
+	button = pause
+	config = p
+end
+
+begin
+	prog = mythtv
+	button = T
+	config = t
+end
+
+begin 
+	prog = mythtv
+	button = E
+	config = u
+end
+
+begin
+	prog = mythtv
+	button = S
+	config = a
+end
+
+begin
+	prog = mythtv
+	button = F
+	config = +
+end
+
+begin
+	prog = mythtv
+	button = playing
+	config = s
+end
+
+begin
+	prog=mythtv
+	button = playlist
+	config = w
+end
+
+begin
+	prog = mythtv
+	button = a-d
+	config = d
+end
+
+begin
+	prog = mythtv
+	button = a-b
+	config = b
+end
+##Volume (with pageup)
+begin
+	prog=mythtv
+	button = pageup
+	config = Page Up
+end
+begin
+        prog=mythtv
+	button = pagedown
+	config = Page Down
+end
+
+begin
+	prog=mythtv
+	button = ch+
+	config = ]
+end
+
+begin
+	prog=mythtv
+	button = ch-
+	config = [
+end
+
+begin
+	prog=mythtv
+	button = vol-
+	config = q
+end
+
+begin
+	prog=mythtv
+	button = vol+
+	config = z
+end	
+
+begin
+	prog=mythtv
+	button = ff
+	config = >
+end
+
+begin 
+	prog=mythtv
+	button = rew
+	config = <
+end
+
+begin
+	prog=mythtv
+	button = scan+
+	config = }
+end
+
+begin
+	prog=mythtv
+	button = scan-
+	config = {
+end
+
+
+##mplayer
+### MPlayer lirc setup
+
+# Show OSD
+begin
+prog = mplayer
+button = alb
+repeat = 3
+config = osd
+end
+
+# Pause playback
+begin
+prog = mplayer
+button = pause
+repeat = 3
+config = pause
+end
+
+# Skip ahead a minute if playing
+# If paused, resume playing
+begin
+prog = mplayer
+button = play
+repeat = 3
+config = seek +1
+end
+
+# Stop playback and exit
+begin
+prog = mplayer
+button = stop
+repeat = 3
+config = quit
+end
+
+# Mute
+begin
+prog = mplayer
+button = 
+repeat = 3
+config = mute
+end
+
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = rew
+repeat = 3
+config = seek -10
+end
+
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = ff
+repeat = 3
+config = seek +30
+end
+
+# Quit
+begin
+prog = mplayer
+button = E
+repeat = 3
+config = quit
+end
+
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = vol+
+repeat = 3
+config = seek +600
+end
+
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = vol-
+repeat = 3
+config = seek -600
+end
+
+# Toggle full-screen
+begin
+prog = mplayer
+button = playlist
+repeat = 3
+config = vo_fullscreen
+end
+
diff --git a/abs/core-testing/system-templates/templates/remotes/X10_Lola/preview.jpg b/abs/core-testing/system-templates/templates/remotes/X10_Lola/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/X10_Lola/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/snapstream_mini/lircd-snapstreammini.conf b/abs/core-testing/system-templates/templates/remotes/snapstream_mini/lircd-snapstreammini.conf
new file mode 100755
index 0000000..edc97f5
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/snapstream_mini/lircd-snapstreammini.conf
@@ -0,0 +1,70 @@
+#
+# this config file was automatically generated
+# using WinLIRC 0.6.5 (LIRC 0.6.1pre3) on Sat Sep 09 22:22:16 2006
+#
+# contributed by David Salisbury
+#
+# brand:             SnapStream
+# model:             Firefly-Mini
+# supported devices: 
+#
+
+begin remote
+
+  name  SnapStream_Firefly-Mini
+  bits           16
+  flags SPACE_ENC
+  eps            25
+  aeps          100
+
+  header       9052  4475
+  one           627  1623
+  zero          627   496
+  ptrail        627
+  repeat       9081  2206
+  pre_data_bits   16
+  pre_data       0xFF
+  gap          39962
+  toggle_bit      0
+
+
+      begin codes
+          Close                    0xC23D
+          Mute                     0xE21D
+          1                        0xD22D
+          2                        0xF20D
+          3                        0xCA35
+          4                        0xEA15
+          5                        0xDA25
+          6                        0xFA05
+          7                        0x827D
+          8                        0xA25D
+          9                        0x926D
+          0                        0x8A75
+          VolumeUp                 0xB24D
+          VolumeDown               0x9A65
+          ChannelUp                0xAA55
+          ChannelDown              0x02FD
+          Up                       0xBA45
+          Down                     0x0AF5
+          Left                     0x22DD
+          Right                    0x32CD
+          OK                       0x12ED
+          Last                     0x2AD5
+          Exit                     0x1AE5
+          Option                   0x3AC5
+          Firefly                  0xC03F
+          Menu                     0xE01F
+          Record                   0xD02F
+          Guide                    0xF00F
+          Stop                     0xC837
+          Previous                 0xE817
+          Play                     0xD827
+          Next                     0xF807
+          Rewind                   0x40BF
+          Pause                    0x609F
+          FastForward              0x50AF
+      end codes
+
+end remote
+
diff --git a/abs/core-testing/system-templates/templates/remotes/snapstream_mini/lircrc-snapstreammini.txt b/abs/core-testing/system-templates/templates/remotes/snapstream_mini/lircrc-snapstreammini.txt
new file mode 100755
index 0000000..4c557a2
--- /dev/null
+++ b/abs/core-testing/system-templates/templates/remotes/snapstream_mini/lircrc-snapstreammini.txt
@@ -0,0 +1,474 @@
+# Channel Up
+begin
+prog = mythtv
+button = ChannelUp
+config = Up
+end
+ 
+# Channel Down
+begin
+prog = mythtv
+button = ChannelDown
+config = Down
+end
+ 
+# General Left
+begin
+prog = mythtv
+button = Left
+config = Left
+end
+ 
+# General Right
+begin 
+prog = mythtv
+button = Right
+config = Right
+end
+
+ # LiveTV browse up channel
+begin
+prog = mythtv
+button = Up
+config = Up
+end
+ 
+# LiveTV browse down channel
+begin 
+prog = mythtv
+button = Down
+config = Down
+end
+
+# Volume Up
+begin
+prog = mythtv
+button = VolumeUp
+config = F11
+end
+ 
+# Volume Down
+begin
+prog = mythtv
+button = VolumeDown
+config = F10
+end
+ 
+ # OK/Select
+begin
+prog = mythtv
+button = OK
+config = Space
+end
+ 
+# Play
+begin
+prog = mythtv
+button = Play
+config = Return
+end
+ 
+# Stop
+begin
+prog = mythtv
+button = Stop
+config = Esc
+end
+ 
+# Escape/Exit/Back
+begin
+prog = mythtv
+button = Exit
+config = Esc
+end
+ 
+# Power Off/Exit
+begin
+prog = irexec
+button = Firefly
+config = /usr/bin/mythpowerbutton.sh
+end
+ 
+# Pause
+begin
+prog = mythtv
+button = Pause
+config = P
+end
+ 
+# Mute
+begin
+prog = mythtv
+button = Mute
+config = |
+end
+ 
+# Fast forward (10 sec default)
+begin
+prog = mythtv
+button = FastForward
+config = Right
+end
+ 
+# Rewind (10 sec default)
+begin
+prog = mythtv
+button = Rewind
+config = Left
+end
+ 
+# Skip forward (10 min default)
+begin
+prog = mythtv
+button = Next
+config = PgDown
+end
+ 
+# Skip backward (10 min default)
+begin
+prog = mythtv
+button = Previous
+config = PgUp
+end
+ 
+# Record
+begin
+prog = mythtv
+button = Record
+config = R
+end
+ 
+# Delete
+begin
+prog = mythtv
+button = 
+config = D
+end
+ 
+# OSD browse
+begin
+prog = mythtv
+button = 
+config = O
+end
+ 
+# Display EPG while in live TV,
+# View selected show while in EPG
+begin
+prog = mythtv
+button = Guide
+config = M
+end
+ 
+# Bring up OSD info
+begin
+prog = mythtv
+button = 
+config = I
+end
+ 
+# Change display aspect ratio
+begin
+prog = mythtv
+button = Option
+config = W
+end
+ 
+# Seek to previous commercial cut point
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+# Seek to next commercial cut point
+begin
+prog = mythtv
+button = 
+config = Z
+end
+ 
+# Numbers 0-9
+ 
+begin
+prog = mythtv
+button =  0
+config = 0
+end
+ 
+begin
+prog = mythtv
+button =  1
+config = 1
+end
+ 
+begin
+prog = mythtv
+button =  2
+config = 2
+end
+ 
+begin
+prog = mythtv
+button =  3
+config = 3
+end
+ 
+begin 
+prog = mythtv
+button =  4
+config = 4
+end
+ 
+begin
+prog = mythtv
+button =  5
+config = 5
+end
+ 
+begin
+prog = mythtv
+button =  6
+config = 6
+end
+ 
+begin
+prog = mythtv
+button =  7
+config = 7
+end
+ 
+begin
+prog = mythtv
+button =  8
+config = 8
+end
+ 
+begin
+prog = mythtv
+button =  9
+config = 9
+end 
+ 
+# Previous channel
+begin
+prog = mythtv
+button = Last
+config = H
+end
+
+# Closed Captioning
+begin
+prog = mythtv
+button = Close
+config = T
+end
+ 
+# Picture in Picture
+begin
+prog = mythtv
+button = 
+config = V
+end
+ 
+# Change channels on both cards
+begin
+prog = mythtv
+button = 
+config = N
+end
+ 
+# Clear cutpoints in cutlist
+begin
+prog = mythtv
+button = 
+config = Q
+end
+ 
+
+
+
+### MPlayer lirc setup
+ 
+# Show OSD
+begin
+prog = mplayer
+button = Guide
+config = osd
+end
+ 
+# Pause playback
+begin
+prog = mplayer
+button = Pause
+config = pause
+end
+ 
+# Mute
+begin
+prog = mplayer
+button = Mute
+config = mute
+end
+ 
+# Seek back 10 seconds
+begin
+prog = mplayer
+button = Rewind
+config = seek -10
+end
+ 
+# Seek forward 30 seconds
+begin
+prog = mplayer
+button = FastForward
+config = seek +30
+end
+ 
+# Quit
+begin
+prog = mplayer
+button = Stop
+config = quit
+end
+ 
+# Seek forward 10 minutes
+begin
+prog = mplayer
+button = Next
+config = seek +600
+end
+ 
+# Seek backward 10 minutes
+begin
+prog = mplayer
+button = Previous
+config = seek -600
+end
+ 
+# Toggle full-screen
+begin
+prog = mplayer
+button = 
+config = vo_fullscreen
+end
+ 
+
+
+### Xine lirc setup
+ 
+begin
+prog = xine
+button = Play
+config = Play
+end
+ 
+begin
+prog = xine
+button = Stop
+config = Stop
+end
+ 
+begin
+prog = xine
+button = Exit
+config = Quit
+end
+ 
+begin
+prog = xine
+button = Pause
+config = Pause
+end
+ 
+begin
+prog = xine
+button = Up
+config = EventUp
+end 
+ 
+begin
+prog = xine
+button = Down
+config = EventDown
+end
+ 
+begin
+prog = xine
+button = Left
+config = EventLeft
+end
+ 
+begin
+prog = xine
+button = Right
+config = EventRight
+end
+ 
+begin
+prog = xine
+button = OK
+config = EventSelect
+end
+ 
+begin
+prog = xine
+button = Guide
+config = Menu
+end
+ 
+begin
+prog = xine
+button = FastForward
+#config = SpeedFaster
+config = SeekRelative+60
+end
+ 
+begin
+prog = xine
+button = Rewind
+#config = SpeedSlower
+config = SeekRelative-60
+end
+ 
+begin
+prog = xine
+button = VolumeUp
+config = Volume+
+end
+ 
+begin
+prog = xine
+button = VolumeDown
+config = Volume-
+end
+ 
+begin
+prog = xine
+button = Mute
+config = Mute
+end
+ 
+begin
+prog = xine
+button = Stop
+config = RootMenu
+end 
+ 
+begin
+prog = xine
+button = Next
+config = EventNext
+end
+ 
+begin
+prog = xine
+button = Previous
+config = EventPrior
+end
+ 
+begin
+prog = xine
+button = Firefly
+config = OSDStreamInfos
+end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/snapstream_mini/preview.jpg b/abs/core-testing/system-templates/templates/remotes/snapstream_mini/preview.jpg
new file mode 100644
index 0000000..a034186
Binary files /dev/null and b/abs/core-testing/system-templates/templates/remotes/snapstream_mini/preview.jpg differ
-- 
cgit v0.12


From 4159bd66e3adbf81679c68dfbe6a01486a3f53db Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 29 Jul 2009 18:59:30 +0930
Subject: firefox3.5.1upgrade: firefox nss nspr sqlite3 xulrunner

---
 abs/core-testing/sqlite3/PKGBUILD                  |   8 +-
 abs/extra-testing/community/firefox/PKGBUILD       |  60 ++++----
 .../community/firefox/browser-app-makefile.patch   |  11 ++
 .../community/firefox/browser-defaulturls.patch    |  26 ++++
 .../community/firefox/firefox-appversion.patch     |  11 --
 .../community/firefox/firefox-version.patch        |  11 ++
 .../community/firefox/mozbug421977.patch           | 158 ---------------------
 abs/extra-testing/community/firefox/mozconfig      |   4 +-
 .../community/firefox/mozilla-firstrun.patch       |  49 -------
 abs/extra-testing/nspr/PKGBUILD                    |   6 +-
 abs/extra-testing/nss/PKGBUILD                     |  15 +-
 .../100-system-hunspell-corrections.patch          | 116 ---------------
 abs/extra-testing/xulrunner/PKGBUILD               |  45 ++----
 .../bzXXX_pc_honour_system_nspr_nss.patch          | 114 ---------------
 .../xulrunner/fix-mozilla-launcher.patch           |  23 ---
 .../xulrunner/mozilla-pkgconfig.patch              |  88 ------------
 .../mozilla-ps-pdf-simplify-operators.patch        |  42 ------
 abs/extra-testing/xulrunner/nsThreadUtils.patch    |  42 ------
 18 files changed, 100 insertions(+), 729 deletions(-)
 create mode 100644 abs/extra-testing/community/firefox/browser-app-makefile.patch
 create mode 100644 abs/extra-testing/community/firefox/browser-defaulturls.patch
 delete mode 100644 abs/extra-testing/community/firefox/firefox-appversion.patch
 create mode 100644 abs/extra-testing/community/firefox/firefox-version.patch
 delete mode 100644 abs/extra-testing/community/firefox/mozbug421977.patch
 delete mode 100644 abs/extra-testing/community/firefox/mozilla-firstrun.patch
 delete mode 100644 abs/extra-testing/xulrunner/100-system-hunspell-corrections.patch
 delete mode 100644 abs/extra-testing/xulrunner/bzXXX_pc_honour_system_nspr_nss.patch
 delete mode 100644 abs/extra-testing/xulrunner/fix-mozilla-launcher.patch
 delete mode 100644 abs/extra-testing/xulrunner/mozilla-pkgconfig.patch
 delete mode 100644 abs/extra-testing/xulrunner/mozilla-ps-pdf-simplify-operators.patch
 delete mode 100644 abs/extra-testing/xulrunner/nsThreadUtils.patch

diff --git a/abs/core-testing/sqlite3/PKGBUILD b/abs/core-testing/sqlite3/PKGBUILD
index b40c3ee..31f6a30 100644
--- a/abs/core-testing/sqlite3/PKGBUILD
+++ b/abs/core-testing/sqlite3/PKGBUILD
@@ -3,8 +3,8 @@
 # Contributor: Tom Newsom <Jeepster@gmx.co.uk>
 
 pkgname=sqlite3
-pkgver=3.6.7
-pkgrel=2
+pkgver=3.6.10
+pkgrel=3
 pkgdesc="A C library that implements an SQL database engine"
 arch=('i686' 'x86_64')
 license=('custom')
@@ -15,9 +15,9 @@ conflicts=('sqlite')
 replaces=('sqlite')
 source=(http://www.sqlite.org/sqlite-$pkgver.tar.gz
 	license.txt)
-options=(!libtool)
-md5sums=('5223d1f459b608ed8c2c54f8847f8e1a'
+md5sums=('a03bdc86df4025b6881d58557e4b5bd3'
          'c1cdbc5544034d9012e421e75a5e4890')
+options=(!libtool)
 
 build() {
   cd ${srcdir}/sqlite-${pkgver}
diff --git a/abs/extra-testing/community/firefox/PKGBUILD b/abs/extra-testing/community/firefox/PKGBUILD
index c72e419..1d2ea63 100644
--- a/abs/extra-testing/community/firefox/PKGBUILD
+++ b/abs/extra-testing/community/firefox/PKGBUILD
@@ -1,14 +1,15 @@
-# $Id: PKGBUILD 36426 2009-04-22 11:55:02Z pierre $
+# $Id: PKGBUILD 46468 2009-07-18 13:24:45Z jgc $
 # Contributor: Jakub Schmidtke <sjakub@gmail.com>
 
 pkgname=firefox
-pkgver=3.0.9
-pkgrel=2
+pkgver=3.5.1
+pkgrel=1
+_xulver=1.9.1.1
 pkgdesc="Standalone web browser from mozilla.org"
 arch=(i686 x86_64)
 license=('MPL' 'GPL' 'LGPL')
-depends=('xulrunner=1.9.0.9' 'desktop-file-utils')
-makedepends=('zip' 'pkgconfig' 'diffutils' 'libgnomeui>=2.24.1' 'python' 'xorg-server')
+depends=("xulrunner>=${_xulver}" 'desktop-file-utils' "nspr>=4.8")
+makedepends=('zip' 'pkgconfig' 'diffutils' 'libgnomeui>=2.24.1' 'python')
 replaces=('firefox3')
 install=firefox.install
 url="http://www.mozilla.org/projects/firefox"
@@ -17,47 +18,42 @@ source=(http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${pkgver}/s
         firefox.desktop
         firefox-safe.desktop
         mozilla-firefox-1.0-lang.patch
-	mozbug421977.patch
-	firefox-appversion.patch)
-md5sums=('f80b085699db8201e5db6b30fc63c60d'
-         '8b6e5f7d0a9e3f64747a024cf8f12069'
+        browser-defaulturls.patch
+        firefox-version.patch
+	browser-app-makefile.patch)
+md5sums=('18169e189785d680827d4fce94524449'
+         '3c928b11918d22377eba01de34debc19'
          '68cf02788491c6e846729b2f2913bf79'
          '5e68cabfcf3c021806b326f664ac505e'
          'bd5db57c23c72a02a489592644f18995'
-         '7976e3ff52e01af3388dfc3a479c4955'
-         'c6f27fca2e6bd2a570b271ec3ce35782')
+         '346d74ec560e7bbf453c02ff21f4b868'
+         '1dd9a10df0b9e4cf332eadc326d78e07'
+         '165c43a5b03a0bf7ad2e7210b0d8c82c')
 
 build() {
-  cd ${srcdir}/mozilla
-
-  patch -Np1 -i ${srcdir}/mozilla-firefox-1.0-lang.patch || return 1
-
-  # FS#10836: fixes backgroundcolor parsing with gnome
-  patch -Np0 -i ${srcdir}/mozbug421977.patch || return 1
-
-  patch -Np1 -i ${srcdir}/firefox-appversion.patch || return 1
-
-  cp ${srcdir}/mozconfig .mozconfig
+  cd "${srcdir}/mozilla-1.9.1"
+  patch -Np1 -i "${srcdir}/mozilla-firefox-1.0-lang.patch" || return 1
+  patch -Np0 -i "${srcdir}/browser-defaulturls.patch" || return 1
+  patch -Np1 -i "${srcdir}/firefox-version.patch" || return 1
 
+  cp "${srcdir}/mozconfig" .mozconfig
   unset CFLAGS
   unset CXXFLAGS
 
-  export LDFLAGS="-Wl,-rpath,/usr/lib/firefox-3.0"
-
-  LD_PRELOAD="" /usr/bin/Xvfb -nolisten tcp -extension GLX :99 &
-  XPID=$!
-  export DISPLAY=:99
-
-  LD_PRELOAD="" make -j1 -f client.mk profiledbuild MOZ_MAKE_FLAGS="${MAKEFLAGS}" || return 1
-  kill $XPID
+  export LDFLAGS="-Wl,-rpath,/usr/lib/firefox-3.5"
 
-  make -j1 DESTDIR=${pkgdir} -C ff-opt-obj install || return 1
+  make -j1 -f client.mk configure MOZ_MAKE_FLAGS="${MAKEFLAGS}" || return 1
+  cd browser/app
+  patch -p2 < "${srcdir}/browser-app-makefile.patch" || return 1
+  cd ../..
+  make -j1 -f client.mk build MOZ_MAKE_FLAGS="${MAKEFLAGS}" || return 1
+  make -j1 DESTDIR="${pkgdir}" install || return 1
 
-  rm -f ${pkgdir}/usr/lib/firefox-3.0/libjemalloc.so
+  rm -f ${pkgdir}/usr/lib/firefox-3.5/libjemalloc.so
 
   install -m755 -d ${pkgdir}/usr/share/applications
   install -m755 -d ${pkgdir}/usr/share/pixmaps
-  install -m644 ${srcdir}/mozilla/browser/branding/unofficial/default48.png ${pkgdir}/usr/share/pixmaps/firefox.png || return 1
+  install -m644 ${srcdir}/mozilla-1.9.1/browser/branding/unofficial/default48.png ${pkgdir}/usr/share/pixmaps/firefox.png || return 1
   install -m644 ${srcdir}/firefox.desktop ${pkgdir}/usr/share/applications/ || return 1
   install -m644 ${srcdir}/firefox-safe.desktop ${pkgdir}/usr/share/applications/ || return 1
 }
diff --git a/abs/extra-testing/community/firefox/browser-app-makefile.patch b/abs/extra-testing/community/firefox/browser-app-makefile.patch
new file mode 100644
index 0000000..9a02c40
--- /dev/null
+++ b/abs/extra-testing/community/firefox/browser-app-makefile.patch
@@ -0,0 +1,11 @@
+--- browser/app/Makefile	2009-07-27 22:41:13.000000000 +0930
++++ browser-new/app/Makefile	2009-07-27 22:42:51.000000000 +0930
+@@ -279,7 +279,7 @@
+ 
+ ifneq (,$(filter-out OS2 WINNT WINCE,$(OS_ARCH)))
+ 
+-$(MOZ_APP_NAME):: $(topsrcdir)/build/unix/mozilla.in $(GLOBAL_DEPS)
++$(MOZ_APP_NAME): $(topsrcdir)/build/unix/mozilla.in $(GLOBAL_DEPS)
+ 	cat $< | sed -e "s|%MOZAPPDIR%|$(installdir)|" \
+ 		-e "s|%MOZ_APP_DISPLAYNAME%|$(MOZ_APP_DISPLAYNAME)|" > $@
+ 	chmod +x $@
diff --git a/abs/extra-testing/community/firefox/browser-defaulturls.patch b/abs/extra-testing/community/firefox/browser-defaulturls.patch
new file mode 100644
index 0000000..42a2e1d
--- /dev/null
+++ b/abs/extra-testing/community/firefox/browser-defaulturls.patch
@@ -0,0 +1,26 @@
+--- browser/branding/unofficial/locales/browserconfig.properties~	2009-06-13 17:04:42.000000000 +0200
++++ browser/branding/unofficial/locales/browserconfig.properties	2009-06-13 17:05:28.000000000 +0200
+@@ -1,3 +1,3 @@
+ # Do NOT localize or otherwise change these values
+-browser.startup.homepage=http://www.mozilla.org/projects/shiretoko/
++browser.startup.homepage=http://www.google.com/firefox
+ 
+--- browser/branding/unofficial/pref/firefox-branding.js~	2009-06-13 16:57:53.000000000 +0200
++++ browser/branding/unofficial/pref/firefox-branding.js	2009-06-13 16:59:17.000000000 +0200
+@@ -1,5 +1,5 @@
+-pref("startup.homepage_override_url","http://www.mozilla.org/projects/%APP%/%VERSION%/whatsnew/");
+-pref("startup.homepage_welcome_url","http://www.mozilla.org/projects/%APP%/%VERSION%/firstrun/");
++pref("startup.homepage_override_url","http://www.mozilla.com/%APP%/%VERSION%/whatsnew/");
++pref("startup.homepage_welcome_url","http://www.mozilla.com/%APP%/%VERSION%/firstrun/");
+ // The time interval between checks for a new version (in seconds)
+ // nightly=8 hours, official=24 hours
+ pref("app.update.interval", 28800);
+@@ -11,7 +11,7 @@
+ pref("app.update.url.details", "http://www.mozilla.org/projects/%APP%/");
+ 
+ // Release notes URL
+-pref("app.releaseNotesURL", "http://www.mozilla.org/projects/%APP%/%VERSION%/releasenotes/");
++pref("app.releaseNotesURL", "http://www.mozilla.com/%APP%/%VERSION%/releasenotes/");
+ 
+ // Search codes belong only in builds with official branding
+ pref("browser.search.param.yahoo-fr", "");
diff --git a/abs/extra-testing/community/firefox/firefox-appversion.patch b/abs/extra-testing/community/firefox/firefox-appversion.patch
deleted file mode 100644
index 458904e..0000000
--- a/abs/extra-testing/community/firefox/firefox-appversion.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- mozilla/browser/installer/Makefile.in.orig	2008-11-19 22:49:15.000000000 +0100
-+++ mozilla/browser/installer/Makefile.in	2008-11-19 22:49:32.000000000 +0100
-@@ -43,6 +43,8 @@
- 
- include $(DEPTH)/config/autoconf.mk
- 
-+MOZ_APP_VERSION=3.0
-+
- NO_PKG_FILES = \
- 	$(MOZ_APP_NAME)-config \
- 	$(MOZ_APP_NAME)-bin.elf \
diff --git a/abs/extra-testing/community/firefox/firefox-version.patch b/abs/extra-testing/community/firefox/firefox-version.patch
new file mode 100644
index 0000000..b0a4552
--- /dev/null
+++ b/abs/extra-testing/community/firefox/firefox-version.patch
@@ -0,0 +1,11 @@
+--- mozilla-1.9.1/browser/installer/Makefile.in.ver	2009-07-18 13:32:35.000000000 +0200
++++ mozilla-1.9.1/browser/installer/Makefile.in	2009-07-18 13:33:12.000000000 +0200
+@@ -43,6 +43,8 @@
+ 
+ include $(DEPTH)/config/autoconf.mk
+ 
++MOZ_APP_VERSION="3.5"
++
+ NO_PKG_FILES = \
+ 	$(MOZ_APP_NAME)-config \
+ 	$(MOZ_APP_NAME)-bin.elf \
diff --git a/abs/extra-testing/community/firefox/mozbug421977.patch b/abs/extra-testing/community/firefox/mozbug421977.patch
deleted file mode 100644
index df8371a..0000000
--- a/abs/extra-testing/community/firefox/mozbug421977.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-Index: browser/components/shell/src/nsGNOMEShellService.cpp
-===================================================================
-RCS file: /cvsroot/mozilla/browser/components/shell/src/nsGNOMEShellService.cpp,v
-retrieving revision 1.21
-diff -d -u -p -U 8 -r1.21 nsGNOMEShellService.cpp
---- browser/components/shell/src/nsGNOMEShellService.cpp	1 Oct 2007 18:25:26 -0000	1.21
-+++ browser/components/shell/src/nsGNOMEShellService.cpp	15 Mar 2008 07:08:47 -0000
-@@ -58,16 +58,17 @@
- #include "nsIImage.h"
- #include "prprf.h"
- #ifdef MOZ_WIDGET_GTK2
- #include "nsIImageToPixbuf.h"
- #endif
- 
- #include <glib.h>
- #include <glib-object.h>
-+#include <gdk/gdk.h>
- #include <gdk-pixbuf/gdk-pixbuf.h>
- #include <limits.h>
- #include <stdlib.h>
- 
- struct ProtocolAssociation
- {
-   const char *name;
-   PRBool essential;
-@@ -442,117 +443,56 @@ nsGNOMEShellService::SetDesktopBackgroun
-                    EmptyCString());
- 
-   gconf->SetString(NS_LITERAL_CSTRING(kDesktopImageKey), filePath);
-   gconf->SetBool(NS_LITERAL_CSTRING(kDesktopDrawBGKey), PR_TRUE);
- 
-   return rv;
- }
- 
--// In: pointer to two characters CC
--// Out: parsed color number
--static PRUint8
--HexToNum(char ch)
--{
--  if ('0' <= ch && '9' >= ch)
--    return ch - '0';
--
--  if ('A' <= ch && 'F' >= ch)
--    return ch - 'A';
--
--  if ('a' <= ch && 'f' >= ch)
--    return ch - 'a';
--
--  return 0;
--}
--  
--
--// In: 3 or 6-character RRGGBB hex string
--// Out: component colors
--static PRBool
--HexToRGB(const nsCString& aColorSpec,
--         PRUint8 &aRed,
--         PRUint8 &aGreen,
--         PRUint8 &aBlue)
--{
--  const char *buf = aColorSpec.get();
--
--  if (aColorSpec.Length() == 6) {
--    aRed =    HexToNum(buf[0]) >> 4 |
--              HexToNum(buf[1]);
--    aGreen =  HexToNum(buf[2]) >> 4 |
--              HexToNum(buf[3]);
--    aBlue =   HexToNum(buf[4]) >> 4 |
--              HexToNum(buf[5]);
--    return PR_TRUE;
--  }
--
--  if (aColorSpec.Length() == 3) {
--    aRed = HexToNum(buf[0]);
--    aGreen = HexToNum(buf[1]);
--    aBlue = HexToNum(buf[2]);
--
--    aRed |= aRed >> 4;
--    aGreen |= aGreen >> 4;
--    aBlue |= aBlue >> 4;
--
--    return PR_TRUE;
--  }
--
--  return PR_FALSE;
--}
-+#define COLOR_16_TO_8_BIT(_c) ((_c) >> 8)
-+#define COLOR_8_TO_16_BIT(_c) ((_c) << 8)
- 
- NS_IMETHODIMP
- nsGNOMEShellService::GetDesktopBackgroundColor(PRUint32 *aColor)
- {
-   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
- 
-   nsCAutoString background;
-   gconf->GetString(NS_LITERAL_CSTRING(kDesktopColorKey), background);
- 
-   if (background.IsEmpty()) {
-     *aColor = 0;
-     return NS_OK;
-   }
- 
--  // Chop off the leading '#' character
--  background.Cut(0, 1);
-+  GdkColor color;
-+  gboolean success = gdk_color_parse(background.get(), &color);
- 
--  PRUint8 red, green, blue;
--  if (!HexToRGB(background, red, green, blue))
--      return NS_ERROR_FAILURE;
-+  NS_ENSURE_TRUE(success, NS_ERROR_FAILURE);
- 
--  // The result must be in RGB order with the high 8 bits zero.
--  *aColor = (red << 16 | green << 8  | blue);
-+  *aColor = COLOR_16_TO_8_BIT(color.red) << 16 |
-+            COLOR_16_TO_8_BIT(color.green) << 8 |
-+            COLOR_16_TO_8_BIT(color.blue);
-   return NS_OK;
- }
- 
--static void
--ColorToHex(PRUint32 aColor, nsCString& aResult)
--{
--  char *buf = aResult.BeginWriting(7);
--  if (!buf)
--    return;
--
--  PRUint8 red = (aColor >> 16);
--  PRUint8 green = (aColor >> 8) & 0xff;
--  PRUint8 blue = aColor & 0xff;
--
--  PR_snprintf(buf, 8, "#%02x%02x%02x", red, green, blue);
--}
--
- NS_IMETHODIMP
- nsGNOMEShellService::SetDesktopBackgroundColor(PRUint32 aColor)
- {
-   nsCOMPtr<nsIGConfService> gconf = do_GetService(NS_GCONFSERVICE_CONTRACTID);
- 
--  nsCString colorString;
--  ColorToHex(aColor, colorString);
-+  GdkColor color;
-+  color.red = COLOR_8_TO_16_BIT(aColor >> 16);
-+  color.green = COLOR_8_TO_16_BIT((aColor >> 8) & 0xff);
-+  color.blue = COLOR_8_TO_16_BIT(aColor & 0xff);
- 
--  gconf->SetString(NS_LITERAL_CSTRING(kDesktopColorKey), colorString);
-+  gchar *colorString = gdk_color_to_string(&color);
-+  gconf->SetString(NS_LITERAL_CSTRING(kDesktopColorKey), nsDependentCString(colorString));
-+  g_free (colorString);
- 
-   return NS_OK;
- }
- 
- NS_IMETHODIMP
- nsGNOMEShellService::OpenApplication(PRInt32 aApplication)
- {
-   nsCAutoString scheme;
diff --git a/abs/extra-testing/community/firefox/mozconfig b/abs/extra-testing/community/firefox/mozconfig
index b40ce01..030317d 100644
--- a/abs/extra-testing/community/firefox/mozconfig
+++ b/abs/extra-testing/community/firefox/mozconfig
@@ -23,11 +23,9 @@ ac_add_options --enable-canvas
 ac_add_options --enable-startup-notification
 ac_add_options --enable-libxul
 ac_add_options --disable-crashreporter
-ac_add_options --with-libxul-sdk=/usr/lib/xulrunner-devel-1.9
+ac_add_options --with-libxul-sdk=/usr/lib/xulrunner-devel-1.9.1.1
 ac_add_options --enable-safe-browsing
 ac_add_options --with-branding=browser/branding/unofficial
-mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt-obj
-mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py'
 
 export BUILD_OFFICIAL=1
 export MOZILLA_OFFICIAL=1
diff --git a/abs/extra-testing/community/firefox/mozilla-firstrun.patch b/abs/extra-testing/community/firefox/mozilla-firstrun.patch
deleted file mode 100644
index 3a75328..0000000
--- a/abs/extra-testing/community/firefox/mozilla-firstrun.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff -up mozilla/browser/base/jar.mn.firstrun mozilla/browser/base/jar.mn
---- mozilla/browser/base/jar.mn.firstrun	2008-06-15 12:39:28.000000000 -0700
-+++ mozilla/browser/base/jar.mn	2008-06-15 12:39:34.000000000 -0700
-@@ -21,9 +21,6 @@ browser.jar:
- *       content/browser/browser.js                    (content/browser.js)
- *       content/browser/browser.xul                   (content/browser.xul)
- *       content/browser/credits.xhtml                 (content/credits.xhtml)
--*       content/browser/EULA.js                       (content/EULA.js)
--*       content/browser/EULA.xhtml                    (content/EULA.xhtml)
--*       content/browser/EULA.xul                      (content/EULA.xul)
- *       content/browser/metaData.js                   (content/metaData.js)
- *       content/browser/metaData.xul                  (content/metaData.xul)
- *       content/browser/pageinfo/pageInfo.xul         (content/pageinfo/pageInfo.xul)
---- mozilla/browser/components/nsBrowserGlue.js	2008-09-16 19:07:25.000000000 +0000
-+++ mozilla/browser/components/nsBrowserGlue.js.new	2008-10-03 14:54:50.955760018 +0000
-@@ -175,33 +175,6 @@
-   // profile startup handler (contains profile initialization routines)
-   _onProfileStartup: function() 
-   {
--    // Check to see if the EULA must be shown on startup
--
--    var prefBranch = Cc["@mozilla.org/preferences-service;1"].
--                     getService(Ci.nsIPrefBranch);
--    var mustDisplayEULA = false;
--    try {
--      mustDisplayEULA = !prefBranch.getBoolPref("browser.EULA.override");
--    } catch (e) {
--      // Pref might not exist
--    }
--
--    // Make sure it hasn't already been accepted
--    if (mustDisplayEULA) {
--      try {
--        var EULAVersion = prefBranch.getIntPref("browser.EULA.version");
--        mustDisplayEULA = !prefBranch.getBoolPref("browser.EULA." + EULAVersion + ".accepted");
--      } catch(ex) {
--      }
--    }
--
--    if (mustDisplayEULA) {
--      var ww2 = Cc["@mozilla.org/embedcomp/window-watcher;1"].
--                getService(Ci.nsIWindowWatcher);
--      ww2.openWindow(null, "chrome://browser/content/EULA.xul", 
--                     "_blank", "chrome,centerscreen,modal,resizable=yes", null);
--    }
--
-     this.Sanitizer.onStartup();
-     // check if we're in safe mode
-     var app = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo).
diff --git a/abs/extra-testing/nspr/PKGBUILD b/abs/extra-testing/nspr/PKGBUILD
index 57d9d3c..453b515 100644
--- a/abs/extra-testing/nspr/PKGBUILD
+++ b/abs/extra-testing/nspr/PKGBUILD
@@ -2,8 +2,8 @@
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=nspr
-pkgver=4.7.3
-pkgrel=1
+pkgver=4.8
+pkgrel=2
 pkgdesc="Netscape Portable Runtime"
 arch=(i686 x86_64)
 url="http://www.mozilla.org/projects/nspr/"
@@ -13,7 +13,7 @@ makedepends=('zip')
 options=(!emptydirs)
 source=(ftp://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v${pkgver}/src/${pkgname}-${pkgver}.tar.gz
 	nspr.pc.in)
-md5sums=('3496d6656f3e02dddc7e29f1b122b744'
+md5sums=('e0916a72bcc6c427551ea262183fdb26'
          'bce1611f3117b53fc904cab549c09967')
 
 build() {
diff --git a/abs/extra-testing/nss/PKGBUILD b/abs/extra-testing/nss/PKGBUILD
index c3e5869..8e7d434 100644
--- a/abs/extra-testing/nss/PKGBUILD
+++ b/abs/extra-testing/nss/PKGBUILD
@@ -2,27 +2,28 @@
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=nss
-pkgver=3.12.2
-_nssver=3.12.2.0
-pkgrel=1
+pkgver=3.12.3
+_pkgver=3_12_3
+_nssver=3.12.3.0
+pkgrel=2
 pkgdesc="Mozilla Network Security Services"
 arch=(i686 x86_64)
 url="http://www.mozilla.org/projects/security/pki/nss/"
 license=('MPL' 'GPL')
-_nsprver=4.7.3
+_nsprver=4.8
 depends=("nspr>=${_nsprver}" 'sqlite3>=3.6.7')
 replaces=('nss-nspr')
-source=(ftp://ftp.archlinux.org/other/nss/${pkgname}-${pkgver}.tar.gz
+source=(https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_${_pkgver}_RTM/src/nss-${pkgver}.tar.bz2
 	nss-nolocalsql.patch
 	nss.pc.in
 	nss-config.in)
-md5sums=('30ee9cf4a2b415435b16b71bae367060'
+md5sums=('ecb7079ba4ebcf29b7716775384f1f18'
          '1837781eed35bfb6f826cfb3efcd6409'
          'c547b030c57fe1ed8b77c73bf52b3ded'
          '46bee81908f1e5b26d6a7a2e14c64d9f')
 
 build() {
-  cd "${srcdir}"
+  cd ${srcdir}/nss-${pkgver}
   patch -Np0 -i "${srcdir}/nss-nolocalsql.patch" || return 1
   unset CFLAGS
   unset CXXFLAGS
diff --git a/abs/extra-testing/xulrunner/100-system-hunspell-corrections.patch b/abs/extra-testing/xulrunner/100-system-hunspell-corrections.patch
deleted file mode 100644
index 5533e10..0000000
--- a/abs/extra-testing/xulrunner/100-system-hunspell-corrections.patch
+++ /dev/null
@@ -1,116 +0,0 @@
---- ./extensions/spellcheck/hunspell/src/mozHunspell.cpp.orig	2008-02-15 19:21:21.000000000 +0000
-+++ ./extensions/spellcheck/hunspell/src/mozHunspell.cpp	2008-02-15 19:23:20.000000000 +0000
-@@ -63,6 +63,9 @@
- #include "nsISimpleEnumerator.h"
- #include "nsIDirectoryEnumerator.h"
- #include "nsIFile.h"
-+#ifdef MOZ_NATIVE_HUNSPELL
-+#include "nsILocalFile.h"
-+#endif
- #include "nsDirectoryServiceUtils.h"
- #include "nsDirectoryServiceDefs.h"
- #include "mozISpellI18NManager.h"
-@@ -307,7 +310,16 @@
-     return;
- 
-   nsCOMPtr<nsIFile> dictDir;
--  rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY,
-+  #ifdef MOZ_NATIVE_HUNSPELL
-+    nsCOMPtr<nsILocalFile>  localFile;
-+    rv = NS_NewNativeLocalFile(nsDependentCString("/usr/share/myspell"),PR_TRUE, getter_AddRefs(localFile));
-+    if (localFile && NS_SUCCEEDED(rv)) {
-+      localFile->QueryInterface(NS_GET_IID(nsIFile), getter_AddRefs(dictDir));
-+      LoadDictionariesFromDir(dictDir);
-+    }
-+    else {
-+  #endif
-+    rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY,
-                    NS_GET_IID(nsIFile), getter_AddRefs(dictDir));
-   if (NS_SUCCEEDED(rv)) {
-     LoadDictionariesFromDir(dictDir);
-@@ -332,6 +344,9 @@
-       LoadDictionariesFromDir(appDir);
-     }
-   }
-+#ifdef MOZ_NATIVE_HUNSPELL
-+  }
-+#endif
- 
-   nsCOMPtr<nsISimpleEnumerator> dictDirs;
-   rv = dirSvc->Get(DICTIONARY_SEARCH_DIRECTORY_LIST,
---- ./extensions/spellcheck/src/Makefile.in.orig	2008-02-15 19:25:58.000000000 +0000
-+++ ./extensions/spellcheck/src/Makefile.in	2008-02-15 19:28:36.000000000 +0000
-@@ -63,9 +63,16 @@
- 		  txtsvc \
- 		  uconv \
- 		  unicharutil \
-+		  xulapp \
- 		  $(NULL)
- 
--CPPSRCS		= \
-+ifdef MOZ_NATIVE_HUNSPELL
-+CPPSRCS         += mozHunspell.cpp
-+ifdef MOZ_XUL_APP
-+CPPSRCS         += mozHunspellDirProvider.cpp
-+endif
-+endif
-+CPPSRCS		+= \
- 		mozSpellCheckerFactory.cpp	\
- 		mozSpellChecker.cpp		\
- 		mozPersonalDictionary.cpp	\
-@@ -80,8 +87,14 @@
- SHARED_LIBRARY_LIBS += ../osxspell/src/$(LIB_PREFIX)osxspell_s.$(LIB_SUFFIX)
- LOCAL_INCLUDES += -I$(srcdir)/../osxspell/src
- else
-+ifndef MOZ_NATIVE_HUNSPELL
- SHARED_LIBRARY_LIBS += ../hunspell/src/$(LIB_PREFIX)hunspell_s.$(LIB_SUFFIX)
- LOCAL_INCLUDES += -I$(srcdir)/../hunspell/src
-+else
-+LOCAL_INCLUDES += $(MOZ_HUNSPELL_CFLAGS) \
-+		-DMOZ_NATIVE_HUNSPELL \
-+		$(NULL)
-+endif
- endif
- 
- EXTRA_DSO_LDOPTS = \
-@@ -96,3 +112,18 @@
- LOCAL_INCLUDES += \
- 	-I$(topsrcdir)/xpcom/io \
- 	$(NULL)
-+
-+ifdef MOZ_NATIVE_HUNSPELL
-+export:: $(srcdir)/../hunspell/src/mozHunspell.cpp
-+	$(INSTALL) $(srcdir)/../hunspell/src/mozHunspell.* .
-+GARBAGE += mozHunspell.$(OBJ_SUFFIX) mozHunspell.cpp
-+clean::
-+	rm -f mozHunspell.*
-+ifdef MOZ_XUL_APP
-+export:: $(srcdir)/../hunspell/src/mozHunspellDirProvider.cpp
-+	$(INSTALL) $(srcdir)/../hunspell/src/mozHunspellDirProvider.* .
-+GARBAGE += mozHunspellDirProvider.$(OBJ_SUFFIX) mozHunspellDirProvider.cpp
-+clean::
-+	rm -f mozHunspellDirProvider.*
-+endif
-+endif
---- ./extensions/spellcheck/Makefile.in.orig	2008-02-15 19:23:39.000000000 +0000
-+++ ./extensions/spellcheck/Makefile.in	2008-02-15 19:24:34.000000000 +0000
-@@ -42,13 +42,19 @@
- include $(DEPTH)/config/autoconf.mk
- 
- MODULE		= spellchecker
--DIRS		= idl locales
-+ifndef MOZ_NATIVE_HUNSPELL
-+DIRS		= idl locales
-+else
-+DIRS		= idl
-+endif
- 
- ifeq (camino,$(MOZ_BUILD_APP))
- DIRS		+= osxspell
- else
-+ifndef MOZ_NATIVE_HUNSPELL
- DIRS		+= hunspell
- endif
-+endif
- 
- DIRS += src
diff --git a/abs/extra-testing/xulrunner/PKGBUILD b/abs/extra-testing/xulrunner/PKGBUILD
index 3f3f757..84d6734 100644
--- a/abs/extra-testing/xulrunner/PKGBUILD
+++ b/abs/extra-testing/xulrunner/PKGBUILD
@@ -2,56 +2,27 @@
 # Maintainer: Alexander Baldeck <alexander@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 pkgname=xulrunner
-pkgver=1.9.0.9
-_ffoxver=3.0.9
+pkgver=1.9.1.1
+_ffoxver=3.5.1
 pkgrel=2
 pkgdesc="Mozilla Runtime Environment"
 arch=(i686 x86_64)
 license=('MPL' 'GPL' 'LGPL')
-depends=('gtk2>=2.16.0' 'gcc-libs>=4.3.3' 'libidl2>=0.8.13' 'mozilla-common' 'nss>=3.12.2' 'libxt' 'lcms' 'hunspell>=1.2.8' 'startup-notification>=0.9')
+depends=('gtk2>=2.16.0' 'gcc-libs>=4.3.3' 'libidl2>=0.8.13' 'mozilla-common' 'nss>=3.12.3' 'libxt' 'lcms' 
+         'hunspell>=1.2.8' 'startup-notification>=0.9')
 makedepends=('zip' 'pkgconfig' 'diffutils' 'libgnomeui>=2.24.1')
 provides=(gecko-sdk)
 replaces=(gecko-sdk)
 url="http://wiki.mozilla.org/XUL:Xul_Runner"
 source=(http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${_ffoxver}/source/firefox-${_ffoxver}-source.tar.bz2
-        mozconfig
-	100-system-hunspell-corrections.patch
-	bzXXX_pc_honour_system_nspr_nss.patch
-	mozilla-pkgconfig.patch
-	fix-mozilla-launcher.patch
-	mozilla-ps-pdf-simplify-operators.patch
-	nsThreadUtils.patch)
-md5sums=('f80b085699db8201e5db6b30fc63c60d'
-         '6509d12e6b17bfc51c09e1dc35259035'
-         '5efd6772ed0ecf8eddec5d5650191d3c'
-         '7a5151f90cb360bc1ea911e5cf7208e9'
-         'dfbfb4e35912112668ac66dae0783686'
-         '63eee2d1da3b43c9d604f2253f242f40'
-         '13dca58c04e62a8916691c63c5c492a0'
-         'ccc3a0672c783c043434f256fbd38c86')
+        mozconfig)
+md5sums=('18169e189785d680827d4fce94524449'
+         '6509d12e6b17bfc51c09e1dc35259035')
 
 build() {
-  cd ${startdir}/src/mozilla
+  cd ${startdir}/src/mozilla-1.9.1
   cp ${startdir}/src/mozconfig .mozconfig
 
-  #Upstream patch. Still not applied to 1.9.0.1
-  patch -Np1 -i ${srcdir}/mozilla-ps-pdf-simplify-operators.patch || return 1
-
-  #fix build with system hunspell - gentoo
-  patch -Np0 -i ${srcdir}/100-system-hunspell-corrections.patch || return 1
-
-  #fix pkgconfig files when building with system nss/nspr - ubuntu
-  patch -Np1 -i ${srcdir}/bzXXX_pc_honour_system_nspr_nss.patch || return 1
-
-  #fix libdir/sdkdir - fedora - with local modifications
-  patch -Np1 -i ${srcdir}/mozilla-pkgconfig.patch || return 1
-
-  #Fix stub launcher - archlinux
-  patch -Np0 -i ${srcdir}/fix-mozilla-launcher.patch || return 1
-
-  #Fix epiphany crashes - requires epiphany rebuild
-  patch -Np1 -i ${srcdir}/nsThreadUtils.patch || return 1
-
   unset CFLAGS
   unset CXXFLAGS
   export LDFLAGS="-Wl,-rpath,/usr/lib/xulrunner-1.9"
diff --git a/abs/extra-testing/xulrunner/bzXXX_pc_honour_system_nspr_nss.patch b/abs/extra-testing/xulrunner/bzXXX_pc_honour_system_nspr_nss.patch
deleted file mode 100644
index be2e872..0000000
--- a/abs/extra-testing/xulrunner/bzXXX_pc_honour_system_nspr_nss.patch
+++ /dev/null
@@ -1,114 +0,0 @@
----
- xulrunner/installer/Makefile.in                     |   17 ++++++++++++++---
- xulrunner/installer/libxul-embedding-unstable.pc.in |    2 +-
- xulrunner/installer/libxul-embedding.pc.in          |    2 +-
- xulrunner/installer/mozilla-nss.pc.in               |    6 +++---
- 4 files changed, 19 insertions(+), 8 deletions(-)
-
-Index: mozilla/xulrunner/installer/Makefile.in
-===================================================================
---- mozilla.orig/xulrunner/installer/Makefile.in
-+++ mozilla/xulrunner/installer/Makefile.in
-@@ -90,40 +90,51 @@
- 	mozilla-plugin.pc \
- 	mozilla-gtkmozembed.pc \
- 	mozilla-gtkmozembed-embedding.pc \
- 	$(NULL)
- 
- ifdef MOZ_NATIVE_NSPR
- NSPR_NAME=nspr
- NSPR_VERSION=$(shell $(NSPR_CONFIG) --version)
-+FULL_NSPR_CFLAGS=$(shell $(NSPR_CONFIG) --cflags)
-+FULL_NSPR_LIBS=$(shell $(NSPR_CONFIG) --libs)
- else
--pkg_config_files += mozilla-nspr.pc
- NSPR_NAME=mozilla-nspr
- FULL_NSPR_CFLAGS=-I\$${includedir}/stable
- FULL_NSPR_LIBS=$(subst $(prefix),\$${sdkdir},$(shell $(DEPTH)/nsprpub/config/nspr-config --libs))
- NSPR_VERSION=$(shell $(DEPTH)/nsprpub/config/nspr-config --version)
- endif
-+pkg_config_files += mozilla-nspr.pc
- 
- $(warning FULL_NSPR_CFLAGS=$(FULL_NSPR_CFLAGS))
- 
--ifndef MOZ_NATIVE_NSS
--pkg_config_files += mozilla-nss.pc
-+ifdef MOZ_NATIVE_NSS
-+NSS_VERSION=$(shell $(NSS_CONFIG) --version)
-+FULL_NSS_CFLAGS=$(shell $(NSS_CONFIG) --cflags)
-+FULL_NSS_LIBS=$(shell $(NSS_CONFIG) --libs)
-+else
-+NSS_VERSION=$(shell $(DEPTH)/nsprpub/config/nss-config --version)
-+FULL_NSS_CFLAGS=-I\$${includedir}/stable
-+FULL_NSS_LIBS=$(subst $(prefix),\$${sdkdir},$(shell $(DEPTH)/nsprpub/config/nss-config --libs))
- endif
-+pkg_config_files += mozilla-nss.pc
- 
- %.pc: $(srcdir)/%.pc.in Makefile.in Makefile $(DEPTH)/config/autoconf.mk
- 	cat $< | sed \
- 	-e "s|%prefix%|$(prefix)|" \
- 	-e "s|%includedir%|$(includedir)|" \
- 	-e "s|%idldir%|$(idldir)|" \
- 	-e "s|%sdkdir%|$(sdkdir)|" \
- 	-e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
- 	-e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
- 	-e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
- 	-e "s|%FULL_NSPR_CFLAGS%|$(FULL_NSPR_CFLAGS)|" \
-+	-e "s|%FULL_NSS_LIBS%|$(FULL_NSS_LIBS)|" \
-+	-e "s|%FULL_NSS_CFLAGS%|$(FULL_NSS_CFLAGS)|" \
- 	-e "s|%NSPR_NAME%|$(NSPR_NAME)|" \
- 	-e "s|%NSPR_VERSION%|$(NSPR_VERSION)|" > $@
- 	chmod 644 $@
- 
- install:: $(pkg_config_files)
- 	@echo pkg_config_file: $(pkg_config_files)
- 	$(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(libdir)/pkgconfig
- 
-Index: mozilla/xulrunner/installer/libxul-embedding-unstable.pc.in
-===================================================================
---- mozilla.orig/xulrunner/installer/libxul-embedding-unstable.pc.in
-+++ mozilla/xulrunner/installer/libxul-embedding-unstable.pc.in
-@@ -3,9 +3,9 @@
- includedir=%includedir%
- idldir=%idldir%
- includetype=unstable
- 
- Name: libxul-embedding-unstable
- Description: Static library for version-independent embedding of the Mozilla runtime (unstable API)
- Version: %MOZILLA_VERSION%
- Libs: -L${sdkdir}/lib -lxpcomglue
--Cflags: -DXPCOM_GLUE -I${includedir}/${includetype} -fshort-wchar
-+Cflags: -DXPCOM_GLUE -I${includedir}/${includetype} -fshort-wchar %FULL_NSPR_CFLAGS%
-Index: mozilla/xulrunner/installer/libxul-embedding.pc.in
-===================================================================
---- mozilla.orig/xulrunner/installer/libxul-embedding.pc.in
-+++ mozilla/xulrunner/installer/libxul-embedding.pc.in
-@@ -7,9 +7,9 @@
- # Note: the default pkg-config cflags will only list include directories
- # that contain stable (frozen or safe for linking) header files. To include
- # nonfrozen headers, run pkg-config with --define-variable=includetype=unstable
- 
- Name: libxul-embedding
- Description: Static library for version-independent embedding of the Mozilla runtime
- Version: %MOZILLA_VERSION%
- Libs: -L${sdkdir}/lib -lxpcomglue
--Cflags: -DXPCOM_GLUE -I${includedir}/${includetype} -fshort-wchar
-+Cflags: -DXPCOM_GLUE -I${includedir}/${includetype} -fshort-wchar %FULL_NSPR_CFLAGS%
-Index: mozilla/xulrunner/installer/mozilla-nss.pc.in
-===================================================================
---- mozilla.orig/xulrunner/installer/mozilla-nss.pc.in
-+++ mozilla/xulrunner/installer/mozilla-nss.pc.in
-@@ -1,10 +1,10 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
- includedir=%includedir%
- 
- Name: NSS
- Description: Mozilla Network Security Services
--Version: %MOZILLA_VERSION%
-+Version: %NSS_VERSION%
- Requires: %NSPR_NAME% >= %NSPR_VERSION%
--Libs: -L${sdkdir}/lib -lnss3 -lnssutil3 -lsmime3 -lssl3 -lsoftokn3
--Cflags: -I${includedir}/stable
-+Libs: %FULL_NSS_LIBS%
-+Cflags: %FULL_NSS_CFLAGS%
diff --git a/abs/extra-testing/xulrunner/fix-mozilla-launcher.patch b/abs/extra-testing/xulrunner/fix-mozilla-launcher.patch
deleted file mode 100644
index de64e4c..0000000
--- a/abs/extra-testing/xulrunner/fix-mozilla-launcher.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- xulrunner/stub/nsXULStub.cpp	2008-07-17 21:43:11.000000000 +0200
-+++ xulrunner/stub/nsXULStub.cpp	2008-07-17 21:47:04.000000000 +0200
-@@ -208,8 +208,10 @@
-   // 3) give up
- 
-   struct stat fileStat;
-+  char *testp;
- 
--  if (!realpath(argv[0], iniPath) || stat(iniPath, &fileStat)) {
-+  testp = realpath(argv[0], iniPath);
-+  if (!(testp != NULL && stat(iniPath, &fileStat) == 0 && S_ISREG(fileStat.st_mode) && fileStat.st_mode & S_IXUSR) || (testp != NULL && stat(iniPath, &fileStat))) {
-     const char *path = getenv("PATH");
-     if (!path)
-       return 1;
-@@ -222,7 +224,7 @@
-     char *token = strtok(pathdup, ":");
-     while (token) {
-       sprintf(tmpPath, "%s/%s", token, argv[0]);
--      if (realpath(tmpPath, iniPath) && stat(iniPath, &fileStat) == 0) {
-+      if (realpath(tmpPath, iniPath) && stat(iniPath, &fileStat) == 0 && S_ISREG(fileStat.st_mode) && fileStat.st_mode & S_IXUSR) {
-         found = PR_TRUE;
-         break;
-       }
diff --git a/abs/extra-testing/xulrunner/mozilla-pkgconfig.patch b/abs/extra-testing/xulrunner/mozilla-pkgconfig.patch
deleted file mode 100644
index 1ce40fd..0000000
--- a/abs/extra-testing/xulrunner/mozilla-pkgconfig.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-diff -ruN mozilla/xulrunner/installer/libxul-embedding.pc.in mozilla/xulrunner/installer/libxul-embedding.pc.in
---- mozilla/xulrunner/installer/libxul-embedding.pc.in	2008-07-16 20:27:31.000000000 +0200
-+++ mozilla/xulrunner/installer/libxul-embedding.pc.in	2008-07-16 21:43:47.000000000 +0200
-@@ -1,7 +1,7 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
- includedir=%includedir%
--idldir=%idldir%
-+idldir=%idldir%/stable
- includetype=stable
- 
- # Note: the default pkg-config cflags will only list include directories
-diff -ruN mozilla/xulrunner/installer/libxul-embedding-unstable.pc.in mozilla/xulrunner/installer/libxul-embedding-unstable.pc.in
---- mozilla/xulrunner/installer/libxul-embedding-unstable.pc.in	2008-07-16 20:27:31.000000000 +0200
-+++ mozilla/xulrunner/installer/libxul-embedding-unstable.pc.in	2008-07-16 21:44:06.000000000 +0200
-@@ -1,7 +1,7 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
- includedir=%includedir%
--idldir=%idldir%
-+idldir=%idldir%/unstable
- includetype=unstable
- 
- Name: libxul-embedding-unstable
-diff -ruN mozilla/xulrunner/installer/libxul.pc.in mozilla/xulrunner/installer/libxul.pc.in
---- mozilla/xulrunner/installer/libxul.pc.in	2007-08-03 16:46:28.000000000 +0200
-+++ mozilla/xulrunner/installer/libxul.pc.in	2008-07-16 21:44:33.000000000 +0200
-@@ -1,7 +1,8 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
--idldir=%idldir%
-+idldir=%idldir%/stable
- includetype=stable
- 
- # Note: the default pkg-config includes will only list include directories
-@@ -13,4 +14,4 @@
- Version: %MOZILLA_VERSION%
- Requires: %NSPR_NAME% >= %NSPR_VERSION%
- Libs: -L${sdkdir}/lib -lxpcomglue_s -lxul -lxpcom
--Cflags: -I${includedir}/${includetype} -fshort-wchar
-\ No newline at end of file
-+Cflags: -I${includedir}/${includetype} -fshort-wchar
-diff -ruN mozilla/xulrunner/installer/libxul-unstable.pc.in mozilla/xulrunner/installer/libxul-unstable.pc.in
---- mozilla/xulrunner/installer/libxul-unstable.pc.in	2008-01-05 07:50:34.000000000 +0100
-+++ mozilla/xulrunner/installer/libxul-unstable.pc.in	2008-07-16 21:45:11.000000000 +0200
-@@ -1,7 +1,8 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
--idldir=%idldir%
-+idldir=%idldir%/unstable
- includetype=unstable
- 
- Name: libxul
-diff -ruN mozilla/xulrunner/installer/Makefile.in mozilla/xulrunner/installer/Makefile.in
---- mozilla/xulrunner/installer/Makefile.in	2008-07-16 20:27:31.000000000 +0200
-+++ mozilla/xulrunner/installer/Makefile.in	2008-07-16 21:45:51.000000000 +0200
-@@ -125,6 +125,7 @@
- 	-e "s|%includedir%|$(includedir)|" \
- 	-e "s|%idldir%|$(idldir)|" \
- 	-e "s|%sdkdir%|$(sdkdir)|" \
-+	-e "s|%libdir%|$(installdir)|" \
- 	-e "s|%MOZ_APP_NAME%|$(MOZ_APP_NAME)|" \
- 	-e "s|%MOZILLA_VERSION%|$(MOZ_APP_VERSION)|" \
- 	-e "s|%FULL_NSPR_LIBS%|$(FULL_NSPR_LIBS)|" \
-diff -ruN mozilla/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in mozilla/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in
---- mozilla/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in	2008-01-10 10:17:49.000000000 +0100
-+++ mozilla/xulrunner/installer/mozilla-gtkmozembed-embedding.pc.in	2008-07-16 21:46:14.000000000 +0200
-@@ -1,5 +1,6 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
- 
- Name: mozilla-gtkembedmoz
-diff -ruN mozilla/xulrunner/installer/mozilla-gtkmozembed.pc.in mozilla/xulrunner/installer/mozilla-gtkmozembed.pc.in
---- mozilla/xulrunner/installer/mozilla-gtkmozembed.pc.in	2008-01-10 10:17:49.000000000 +0100
-+++ mozilla/xulrunner/installer/mozilla-gtkmozembed.pc.in	2008-07-16 21:46:28.000000000 +0200
-@@ -1,5 +1,6 @@
- prefix=%prefix%
- sdkdir=%sdkdir%
-+libdir=%libdir%
- includedir=%includedir%
- 
- Name: mozilla-gtkembedmoz
diff --git a/abs/extra-testing/xulrunner/mozilla-ps-pdf-simplify-operators.patch b/abs/extra-testing/xulrunner/mozilla-ps-pdf-simplify-operators.patch
deleted file mode 100644
index cab1341..0000000
--- a/abs/extra-testing/xulrunner/mozilla-ps-pdf-simplify-operators.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-https://bugzilla.mozilla.org/show_bug.cgi?id=435313
-
-Index: mozilla/gfx/thebes/public/gfxPDFSurface.h
-===================================================================
-RCS file: /cvsroot/mozilla/gfx/thebes/public/gfxPDFSurface.h,v
-retrieving revision 1.13
-diff -d -u -p -r1.13 gfxPDFSurface.h
---- mozilla/gfx/thebes/public/gfxPDFSurface.h	19 Mar 2008 20:51:42 -0000	1.13
-+++ mozilla/gfx/thebes/public/gfxPDFSurface.h	23 May 2008 00:50:31 -0000
-@@ -63,7 +63,11 @@ public:
-     // this is in points!
-     const gfxSize& GetSize() const { return mSize; }
- 
--    virtual PRInt32 GetDefaultContextFlags() const { return gfxContext::FLAG_DISABLE_SNAPPING; }
-+    virtual PRInt32 GetDefaultContextFlags() const
-+    {
-+        return gfxContext::FLAG_SIMPLIFY_OPERATORS |
-+               gfxContext::FLAG_DISABLE_SNAPPING;
-+    }
- 
- private:
-     nsCOMPtr<nsIOutputStream> mStream;
-Index: mozilla/gfx/thebes/public/gfxPSSurface.h
-===================================================================
-RCS file: /cvsroot/mozilla/gfx/thebes/public/gfxPSSurface.h,v
-retrieving revision 1.13
-diff -d -u -p -r1.13 gfxPSSurface.h
---- mozilla/gfx/thebes/public/gfxPSSurface.h	19 Mar 2008 20:51:42 -0000	1.13
-+++ mozilla/gfx/thebes/public/gfxPSSurface.h	23 May 2008 00:50:31 -0000
-@@ -63,7 +63,11 @@ public:
-     // this is in points!
-     const gfxSize& GetSize() const { return mSize; }
- 
--    virtual PRInt32 GetDefaultContextFlags() const { return gfxContext::FLAG_DISABLE_SNAPPING; }
-+    virtual PRInt32 GetDefaultContextFlags() const
-+    {
-+        return gfxContext::FLAG_SIMPLIFY_OPERATORS |
-+               gfxContext::FLAG_DISABLE_SNAPPING;
-+    }
- 
- private:
-     nsCOMPtr<nsIOutputStream> mStream;
diff --git a/abs/extra-testing/xulrunner/nsThreadUtils.patch b/abs/extra-testing/xulrunner/nsThreadUtils.patch
deleted file mode 100644
index 69609c0..0000000
--- a/abs/extra-testing/xulrunner/nsThreadUtils.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- xulrunner-1.9.0.4.orig/xpcom/glue/nsThreadUtils.cpp
-+++ xulrunner-1.9.0.4/xpcom/glue/nsThreadUtils.cpp
-@@ -187,24 +187,27 @@
- }
- #endif // XPCOM_GLUE_AVOID_NSPR
- 
-+inline PRBool
-+hasPendingEvents(nsIThread *thread)
-+{
-+  PRBool val;
-+  return NS_SUCCEEDED(thread->HasPendingEvents(&val)) && val;
-+}
-+
- PRBool
- NS_HasPendingEvents(nsIThread *thread)
- {
--#ifdef MOZILLA_INTERNAL_API
-   if (!thread) {
-+#ifndef MOZILLA_INTERNAL_API
-+    nsCOMPtr<nsIThread> current;
-+    NS_GetCurrentThread(getter_AddRefs(current));
-+    return hasPendingEvents(current);
-+#else
-     thread = NS_GetCurrentThread();
-     NS_ENSURE_TRUE(thread, PR_FALSE);
--  }
--#else
--  nsCOMPtr<nsIThread> current;
--  if (!thread) {
--    NS_GetCurrentThread(getter_AddRefs(current));
--    NS_ENSURE_TRUE(current, PR_FALSE);
--    thread = current.get();
--  }
- #endif
--  PRBool val;
--  return NS_SUCCEEDED(thread->HasPendingEvents(&val)) && val;
-+  }
-+  return hasPendingEvents(thread);
- }
- 
- PRBool
-
-- 
cgit v0.12


From 5da2b0606766c4574963f91f7b1da92e62baa4aa Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 29 Jul 2009 20:33:16 +0930
Subject: gtk2: bump and rebuild for libjpeg problem

---
 abs/core-testing/gtk2/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/gtk2/PKGBUILD b/abs/core-testing/gtk2/PKGBUILD
index f3fb952..4279aee 100644
--- a/abs/core-testing/gtk2/PKGBUILD
+++ b/abs/core-testing/gtk2/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=gtk2
 pkgver=2.16.1
-pkgrel=4
+pkgrel=5
 pkgdesc="The GTK+ Toolkit (v2)"
 arch=(i686 x86_64)
 url="http://www.gtk.org/"
-- 
cgit v0.12


From 01f9323c9fa039173ca4967b5faf7be1d25008f4 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 29 Jul 2009 22:08:35 +0930
Subject: system-templates: update some remote images

---
 .../templates/remotes/One4All/preview.jpg            | Bin 1587 -> 7432 bytes
 .../templates/remotes/One4All_6131/preview.jpg       | Bin 1587 -> 10324 bytes
 .../templates/remotes/One4All_7544/preview.jpg       | Bin 1587 -> 14880 bytes
 .../templates/remotes/One4All_9910/preview.jpg       | Bin 1587 -> 18720 bytes
 .../templates/remotes/Packard_bell/preview.jpg       | Bin 1587 -> 21260 bytes
 .../templates/remotes/Pinnacle/preview.jpg           | Bin 1587 -> 11124 bytes
 .../templates/remotes/Sasem/preview.jpg              | Bin 1587 -> 15114 bytes
 .../templates/remotes/Technisat/preview.jpg          | Bin 1587 -> 11111 bytes
 .../templates/remotes/X10_Lola/preview.jpg           | Bin 1587 -> 11610 bytes
 .../templates/remotes/snapstream_mini/preview.jpg    | Bin 1587 -> 17713 bytes
 10 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/abs/core-testing/system-templates/templates/remotes/One4All/preview.jpg b/abs/core-testing/system-templates/templates/remotes/One4All/preview.jpg
index a034186..770d54b 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/One4All/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/One4All/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_6131/preview.jpg b/abs/core-testing/system-templates/templates/remotes/One4All_6131/preview.jpg
index a034186..cc0751e 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/One4All_6131/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/One4All_6131/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_7544/preview.jpg b/abs/core-testing/system-templates/templates/remotes/One4All_7544/preview.jpg
index a034186..cb75f0b 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/One4All_7544/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/One4All_7544/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/One4All_9910/preview.jpg b/abs/core-testing/system-templates/templates/remotes/One4All_9910/preview.jpg
index a034186..827cb9a 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/One4All_9910/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/One4All_9910/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Packard_bell/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Packard_bell/preview.jpg
index a034186..76453bb 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Packard_bell/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Packard_bell/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Pinnacle/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Pinnacle/preview.jpg
index a034186..bd8e19e 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Pinnacle/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Pinnacle/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Sasem/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Sasem/preview.jpg
index a034186..ec2b595 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Sasem/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Sasem/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Technisat/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Technisat/preview.jpg
index a034186..25ecd0d 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Technisat/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Technisat/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/X10_Lola/preview.jpg b/abs/core-testing/system-templates/templates/remotes/X10_Lola/preview.jpg
index a034186..915a3b2 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/X10_Lola/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/X10_Lola/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/snapstream_mini/preview.jpg b/abs/core-testing/system-templates/templates/remotes/snapstream_mini/preview.jpg
index a034186..aa6d9d2 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/snapstream_mini/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/snapstream_mini/preview.jpg differ
-- 
cgit v0.12


From 69ce31edd076acb6912332ddd852137d7542e8c5 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 29 Jul 2009 22:51:01 +0930
Subject: system-templates: update some remote images

---
 .../templates/remotes/Avermedia_98/preview.jpg       | Bin 1587 -> 12175 bytes
 .../templates/remotes/Cinergy_1400/preview.jpg       | Bin 1587 -> 14916 bytes
 .../templates/remotes/Cinergy_T2/preview.jpg         | Bin 1587 -> 14916 bytes
 .../templates/remotes/Hercules/preview.jpg           | Bin 1587 -> 13313 bytes
 4 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/abs/core-testing/system-templates/templates/remotes/Avermedia_98/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Avermedia_98/preview.jpg
index a034186..a2382d2 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Avermedia_98/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Avermedia_98/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/preview.jpg
index a034186..b777ac9 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Cinergy_1400/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/preview.jpg
index a034186..b777ac9 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Cinergy_T2/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Hercules/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Hercules/preview.jpg
index a034186..8ffa652 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Hercules/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Hercules/preview.jpg differ
-- 
cgit v0.12


From 6ad014b48c55fd178f31546fc47d63d481ed2057 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Wed, 29 Jul 2009 22:53:35 +0930
Subject: system-templates: bump for new remote images

---
 abs/core-testing/system-templates/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/system-templates/PKGBUILD b/abs/core-testing/system-templates/PKGBUILD
index 5add985..41cf68a 100755
--- a/abs/core-testing/system-templates/PKGBUILD
+++ b/abs/core-testing/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=system-templates
 pkgver=1.0
-pkgrel=30
+pkgrel=31
 conflicts=( )
 pkgdesc="Templates used for system configuration"
 depends=()
-- 
cgit v0.12


From 9377977d66348b665488e660bfcdefcbd9dedc03 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Wed, 29 Jul 2009 14:26:16 -0400
Subject: now that libjpeg is updated, we can use the latest gnuplot version

---
 abs/extra-testing/gnuplot/PKGBUILD   | 6 +++---
 abs/extra-testing/graphload/PKGBUILD | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/abs/extra-testing/gnuplot/PKGBUILD b/abs/extra-testing/gnuplot/PKGBUILD
index 24a801a..ec372f0 100644
--- a/abs/extra-testing/gnuplot/PKGBUILD
+++ b/abs/extra-testing/gnuplot/PKGBUILD
@@ -3,16 +3,16 @@
 # Contributor: Niklas Volbers <mithrandir42@web.de>
 
 pkgname=gnuplot
-pkgver=4.0.0
+pkgver=4.2.5
 pkgrel=1
 pkgdesc="Command-line driven interactive data and function plotting utility"
 url="http://www.gnuplot.info"
-depends=('gd>=2.0.29' 'wxgtk')
+depends=('gd>=2.0.29' 'wxgtk' 'libjpeg>=7')
 makedepends=('texinfo')
 license='custom'
 arch=('i686')
 source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz)
-md5sums=(66258443d9f93cc4f46b147dac33e63a)
+md5sums=(85d042f8efd7aae3d9cbfd85b14d06d2)
 
 build() {
   cd $startdir/src/$pkgname-$pkgver
diff --git a/abs/extra-testing/graphload/PKGBUILD b/abs/extra-testing/graphload/PKGBUILD
index 4fa0e66..6af2f95 100644
--- a/abs/extra-testing/graphload/PKGBUILD
+++ b/abs/extra-testing/graphload/PKGBUILD
@@ -2,7 +2,7 @@ pkgname=graphload
 pkgver=1
 pkgrel=1
 pkgdesc="command to graph the total CPU utilization for N-core systems for a given interval"
-depends=('gnuplot>=4.0.0')
+depends=('gnuplot>=4.2.5')
 license='GPLv2'
 arch=('i686')
 
-- 
cgit v0.12


From 1d5f046165432186448fff1f852800bbd21c4f05 Mon Sep 17 00:00:00 2001
From: Bob Igo <bob@stormlogic.com>
Date: Wed, 29 Jul 2009 14:26:34 -0400
Subject: bumped tweaker version for sync

---
 abs/core-testing/tweaker/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/tweaker/PKGBUILD b/abs/core-testing/tweaker/PKGBUILD
index 67bfb3d..43ca495 100644
--- a/abs/core-testing/tweaker/PKGBUILD
+++ b/abs/core-testing/tweaker/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=tweaker
 pkgver=1
-pkgrel=46
+pkgrel=48
 pkgdesc="applies tweaks to the baseline configuration and attempts to optimize settings for the hardware it finds"
 arch=('i686' 'x86_64')
 
-- 
cgit v0.12


From 890eb90dbb9fe9d386de0ab7741de651a2efac12 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Thu, 30 Jul 2009 16:33:43 +0930
Subject: system-templates: more remote images

---
 abs/core-testing/sqlite3/PKGBUILD                    |   2 +-
 .../templates/remotes/Kworld_110/preview.jpg         | Bin 1587 -> 16642 bytes
 .../templates/remotes/Kworld_310/preview.jpg         | Bin 1587 -> 25987 bytes
 .../templates/remotes/Leadtek_2000XP/preview.jpg     | Bin 1587 -> 16424 bytes
 4 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/sqlite3/PKGBUILD b/abs/core-testing/sqlite3/PKGBUILD
index 31f6a30..3706e73 100644
--- a/abs/core-testing/sqlite3/PKGBUILD
+++ b/abs/core-testing/sqlite3/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=sqlite3
 pkgver=3.6.10
-pkgrel=3
+pkgrel=4
 pkgdesc="A C library that implements an SQL database engine"
 arch=('i686' 'x86_64')
 license=('custom')
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_110/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Kworld_110/preview.jpg
index a034186..f83f474 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Kworld_110/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Kworld_110/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Kworld_310/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Kworld_310/preview.jpg
index a034186..f024370 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Kworld_310/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Kworld_310/preview.jpg differ
diff --git a/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/preview.jpg
index a034186..aeecf95 100644
Binary files a/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/preview.jpg and b/abs/core-testing/system-templates/templates/remotes/Leadtek_2000XP/preview.jpg differ
-- 
cgit v0.12


From 119aa3f8720b900c1ac605a0daa43a2dd14b8b79 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Thu, 30 Jul 2009 16:34:43 +0930
Subject: system-templates: bump to build

---
 abs/core-testing/system-templates/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/system-templates/PKGBUILD b/abs/core-testing/system-templates/PKGBUILD
index 41cf68a..c9b0265 100755
--- a/abs/core-testing/system-templates/PKGBUILD
+++ b/abs/core-testing/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=system-templates
 pkgver=1.0
-pkgrel=31
+pkgrel=32
 conflicts=( )
 pkgdesc="Templates used for system configuration"
 depends=()
-- 
cgit v0.12


From 2a44e7d62b7a9b1f554ccbbb2691b6b7e6cfa13c Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Fri, 31 Jul 2009 07:41:54 +0930
Subject: runit-scripts: remove ugly startup command logging from lircd/run

---
 abs/core-testing/runit-scripts/PKGBUILD                        |  2 +-
 abs/core-testing/runit-scripts/runitscripts/services/lircd/run | 10 +++++-----
 abs/core-testing/sqlite3/PKGBUILD                              |  2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/abs/core-testing/runit-scripts/PKGBUILD b/abs/core-testing/runit-scripts/PKGBUILD
index aa26834..6bea389 100755
--- a/abs/core-testing/runit-scripts/PKGBUILD
+++ b/abs/core-testing/runit-scripts/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=runit-scripts
 pkgver=1.8.0
-pkgrel=93
+pkgrel=94
 pkgdesc="collection of startup scripts for runit"
 url="http://smarden.org/runit/"
 license="BSD"
diff --git a/abs/core-testing/runit-scripts/runitscripts/services/lircd/run b/abs/core-testing/runit-scripts/runitscripts/services/lircd/run
index 7067b90..0a398ac 100755
--- a/abs/core-testing/runit-scripts/runitscripts/services/lircd/run
+++ b/abs/core-testing/runit-scripts/runitscripts/services/lircd/run
@@ -85,13 +85,13 @@ else
         CMD="/usr/sbin/lircd -n  --driver=commandir"
 	printhl "	Using commandir"
         $CMD >>$LOG 2>>$LOG
-echo $CMD
+#echo $CMD
     elif [  x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ]
     then
 	sv start igdaemon
         CMD="/usr/sbin/lircd -n  --driver=iguanaIR"
 	printhl "       Using iguanaIR usb"
-echo $CMD
+#echo $CMD
         $CMD >>$LOG 2>>$LOG
     else
         LASTCMD=""
@@ -100,7 +100,7 @@ echo $CMD
         do
             CMD="/usr/sbin/lircd -d /dev/lirc$i --output=/dev/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
 	    printhl "	Device $i"
-echo $CMD
+#echo $CMD
             $CMD >>$LOG 2>>$LOG
             LASTCMD="--connect=localhost:876$i   $LASTCMD    "
         done
@@ -118,7 +118,7 @@ echo $CMD
 	    then
 		# Only run Dvico
 		printhl "   Device $Remotetype"
-echo $LCMD
+#echo $LCMD
             	exec $LCMD >>$LOG 2>>$LOG
 	    elif [ $num_lirc -gt -1  ]
 	    then
@@ -131,7 +131,7 @@ echo $LCMD
 	    fi
 	else
 	    LCMD="/usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD"
-echo $LCMD
+#echo $LCMD
      	    exec $LCMD >>$LOG 2>>$LOG
 	fi
     fi
diff --git a/abs/core-testing/sqlite3/PKGBUILD b/abs/core-testing/sqlite3/PKGBUILD
index 3706e73..acf7a94 100644
--- a/abs/core-testing/sqlite3/PKGBUILD
+++ b/abs/core-testing/sqlite3/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=sqlite3
 pkgver=3.6.10
-pkgrel=4
+pkgrel=5
 pkgdesc="A C library that implements an SQL database engine"
 arch=('i686' 'x86_64')
 license=('custom')
-- 
cgit v0.12


From 6bdaa3665834b2eab044680e711aab9fccbeb017 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Fri, 31 Jul 2009 08:24:32 +0930
Subject: firefox: update fluxbox keys when firefox is installed (alt-w =
 firefox) w for web.

---
 abs/extra-testing/community/firefox/PKGBUILD        |  2 +-
 abs/extra-testing/community/firefox/firefox.install | 12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/abs/extra-testing/community/firefox/PKGBUILD b/abs/extra-testing/community/firefox/PKGBUILD
index 1d2ea63..babf777 100644
--- a/abs/extra-testing/community/firefox/PKGBUILD
+++ b/abs/extra-testing/community/firefox/PKGBUILD
@@ -3,7 +3,7 @@
 
 pkgname=firefox
 pkgver=3.5.1
-pkgrel=1
+pkgrel=2
 _xulver=1.9.1.1
 pkgdesc="Standalone web browser from mozilla.org"
 arch=(i686 x86_64)
diff --git a/abs/extra-testing/community/firefox/firefox.install b/abs/extra-testing/community/firefox/firefox.install
index 7463b6e..cd50dec 100644
--- a/abs/extra-testing/community/firefox/firefox.install
+++ b/abs/extra-testing/community/firefox/firefox.install
@@ -1,5 +1,17 @@
 post_install() {
   update-desktop-database -q
+
+  # For LinHES: check for a fluxbox keys file that doesnt have a mapping
+  # for Alt-w and map it to firefox.
+
+  if [ -e /home/mythtv/.fluxbox/keys ] 
+  then
+    if ! grep -q "Mod1 w" /home/mythtv/.fluxbox/keys 
+    then
+      echo Adding fluxbox key for firefox.
+      echo "Mod1 w :ExecCommand firefox" >> /home/mythtv/.fluxbox/keys
+    fi
+  fi
 }
 
 post_upgrade() {
-- 
cgit v0.12


From d7bafd5bce0a8b81fc12540765183b2ce4a1cb37 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Fri, 31 Jul 2009 08:44:48 +0930
Subject: system-templates: Removed Dvico_MCE_old that cesman added with his 44
 remotes because it is suported by the existing dvico

---
 .../remotes/Dvico_MCE_old/lircd-dvicomceold.conf   |  76 ---
 .../remotes/Dvico_MCE_old/lircrc-dvicomceold.txt   | 526 ---------------------
 .../templates/remotes/Dvico_MCE_old/preview.jpg    | Bin 1587 -> 0 bytes
 3 files changed, 602 deletions(-)
 delete mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircd-dvicomceold.conf
 delete mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircrc-dvicomceold.txt
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/preview.jpg

diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircd-dvicomceold.conf b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircd-dvicomceold.conf
deleted file mode 100755
index d814713..0000000
--- a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircd-dvicomceold.conf
+++ /dev/null
@@ -1,76 +0,0 @@
-#
-# this config file was automatically generated
-# using lirc-0.7.0(dvico) on Sat Jun 18 00:56:01 2005
-#
-# contributed by anonymous
-#
-# brand:                       DVICO
-# model no. of remote control: MCE Remote
-#
-
-begin remote
-
-  name           DVICO_MCE
-  bits           32
-  eps            30
-  aeps          100
-
-  one             0     0
-  zero            0     0
-  pre_data_bits   8
-  pre_data       0x0
-  post_data_bits  8
-  post_data      0x0
-  gap          195956
-  toggle_bit      0
-
-
-      begin codes
-          ok                       0x0000000000FE5E00
-          dtv                      0x0000000000FE0200
-          mp3                      0x0000000000FE0E00
-          dvd                      0x0000000000FE1A00
-          cpf                      0x0000000000FE1E00
-          setup                    0x0000000000FE1600
-          tv_onoff                 0x0000000000FE4600
-          guide                    0x0000000000FE0A00
-          back                     0x0000000000FE4900
-          more                     0x0000000000FE5900
-          dvd_menu                 0x0000000000FE4D00
-          alt_tab                  0x0000000000FE5500
-          replay                   0x0000000000FE0F00
-          skip                     0x0000000000FE1200
-          up                       0x0000000000FE5100
-          down                     0x0000000000FE5300
-          left                     0x0000000000FE5B00
-          right                    0x0000000000FE5F00
-          start                    0x0000000000FE4200
-          vol_up                   0x0000000000FE1500
-          vol_down                 0x0000000000FE0500
-          ch_up                    0x0000000000FE1100
-          ch_down                  0x0000000000FE0900
-          snapshot                 0x0000000000FE5200
-          live                     0x0000000000FE5A00
-          folder_open              0x0000000000FE1900
-          1                        0x0000000000FE0B00
-          2                        0x0000000000FE1700
-          3                        0x0000000000FE1B00
-          4                        0x0000000000FE0700
-          5                        0x0000000000FE5000
-          6                        0x0000000000FE5400
-          7                        0x0000000000FE4800
-          8                        0x0000000000FE4C00
-          9                        0x0000000000FE5800
-          0                        0x0000000000FE0300
-          aspect                   0x0000000000FE1300
-          fullscreen               0x0000000000FE1F00
-          rewind                   0x0000000000FE4300
-          playpause                0x0000000000FE4700
-          fastforward              0x0000000000FE4F00
-          stop                     0x0000000000FE0D00
-          mute                     0x0000000000FE5700
-          record                   0x0000000000FE0100
-	  white_onoff              0x0000000000FE4E00
-      end codes
-
-end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircrc-dvicomceold.txt b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircrc-dvicomceold.txt
deleted file mode 100755
index 3d196c4..0000000
--- a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/lircrc-dvicomceold.txt
+++ /dev/null
@@ -1,526 +0,0 @@
- 
-   # Power Button
-   begin
-   prog = irexec
-   button = power_onoff
-   repeat = 3
-   config = /usr/bin/mythpowerbutton.sh
-   end
-
-   
-   # Channel Up
-   begin
-   prog = mythtv
-   button = ch_up
-   repeat = 3
-   config = Up
-   end
-   
-   # Channel Down
-   begin
-   prog = mythtv
-   button = ch_down
-   repeat = 3
-   config = Down
-   end
-   
-   # OK/Select
-   begin
-   prog = mythtv
-   button = ok
-   config = Space
-   end
-   
-   # Play/Pause
-   begin
-   prog = mythtv
-   button = playpause
-   config = P
-   end
-   
-   begin
-   prog = mythtv
-   button = stop
-   config = Esc
-   end
-   
-   # Escape/Exit/Back
-   begin
-   prog = mythtv
-   button = back
-   config = Esc
-   end
-   
-   # Escape/Exit/Back
-   begin
-   prog = mythtv
-   button = tv_onoff
-   config = Esc
-   end
-   
-   # big green start button
-   begin
-   prog = mythtv
-   button = start
-   repeat = 3
-   config = Esc
-   end
-   
-   # Mute
-   begin
-   prog = mythtv
-   button = mute
-   repeat = 3
-   config = F9
-   end
-   
-   # Fast forward (30 sec default)
-   begin
-   prog = mythtv
-   button = fastforward
-   repeat = 24
-   config = Right
-   end
-   
-   # Back (10 sec default)
-   begin
-   prog = mythtv
-   button = rewind
-   repeat = 24
-   config = Left
-   end
-   
-   # Skip forward (10 min default)
-   begin
-   prog = mythtv
-   button = skip
-   repeat = 3
-   config = PgDown
-   end
-   
-   # Skip backward (10 min default)
-   begin
-   prog = mythtv
-   button = replay
-   repeat = 3
-   config = PgUp
-   end
-   
-   # Record
-   begin
-   prog = mythtv
-   button = record
-   repeat = 3
-   config = R
-   end
-   
-   # OSD browse
-   begin
-   prog = mythtv
-   button = guide
-   repeat = 3
-   config = O
-   end
-   
-   # Display EPG while in live TV,
-   # View selected show while in EPG
-   begin
-   prog = mythtv
-   button = setup
-   repeat = 3
-   config = M
-   end
-   
-   # Scroll up
-   begin
-   prog = mythtv
-   button = up
-   repeat = 3
-   config = Up
-   end
-   
-   # Scroll down
-   begin
-   prog = mythtv
-   button = down
-   repeat = 3
-   config = Down
-   end
-   
-   # Scroll Left
-   begin
-   prog = mythtv
-   button = left
-   repeat = 3
-   config = Left
-   end
-   
-   # Scroll Right
-   begin
-   prog = mythtv
-   button = right
-   repeat = 3
-   config = Right
-   end
-   
-   # Bring up OSD info
-   begin
-   prog = mythtv
-   button = more
-   repeat = 3
-   config = I
-   end
-   
-   # Change display aspect ratio
-   begin
-   prog = mythtv
-   button = aspect
-   repeat = 3
-   config = W
-   end
-   
-   # Seek to previous commercial cut point
-   begin
-   prog = mythtv
-   button = snapshot
-   repeat = 3
-   config = Q
-   end
-   
-   # Seek to next commercial cut point
-   begin
-   prog = mythtv
-   button = folder_open
-   repeat = 3
-   config = Z
-   end
-   
-   # Numbers 0-9
-   
-   begin
-   prog = mythtv
-   button = 0
-   repeat = 3
-   config = 0
-   end
-   
-   begin
-   prog = mythtv
-   button = 1
-   repeat = 3
-   config = 1
-   end
-   
-   begin
-   prog = mythtv
-   button = 2
-   repeat = 3
-   config = 2
-   end
-   
-   begin
-   prog = mythtv
-   button = 3
-   repeat = 3
-   config = 3
-   end
-   
-   begin
-   prog = mythtv
-   button = 4
-   repeat = 3
-   config = 4
-   end
-   
-   begin
-   prog = mythtv
-   button = 5
-   repeat = 3
-   config = 5
-   end
-   
-   begin
-   prog = mythtv
-   button = 6
-   repeat = 3
-   config = 6
-   end
-   
-   begin
-   prog = mythtv
-   button = 7
-   repeat = 3
-   config = 7
-   end
-   
-   begin
-   prog = mythtv
-   button = 8
-   repeat = 3
-   config = 8
-   end
-   
-   begin
-   prog = mythtv
-   button = 9
-   repeat = 3
-   config = 9
-   end
-   
-   begin
-   prog = mythtv
-   button = dvd_menu
-   config = M
-   end
-   
-   begin
-   prog = mythtv
-   button = vol_down
-   repeat = 3
-   config = [
-   end
-   
-   begin
-   prog = mythtv
-   button = vol_up
-   repeat = 3
-   config = ]
-   end
-   
-   begin
-   prog = mythtv
-   button = dtv
-   config = C
-   end
-
-### MPlayer/Xine lirc setup
-   
-   # Show OSD
-   begin
-   prog = mplayer
-   button = guide
-   repeat = 3
-   config = osd
-   end
-   
-   # Pause playback
-   begin
-   prog = mplayer
-   button = stop
-   repeat = 3
-   config = pause
-   end
-   
-   # Skip ahead a minute if playing
-   # If paused, resume playing
-   begin
-   prog = mplayer
-   button = playpause
-   repeat = 3
-   config = seek +1
-   end
-   
-   # Stop playback and exit
-   begin
-   prog = mplayer
-   button = tv_onoff
-   repeat = 3
-   config = quit
-   end
-   begin
-   prog = mplayer
-   button = back
-   repeat = 3
-   config = quit
-   end
-   
-   # big green start button
-   begin
-   prog = mplayer
-   button = start
-   repeat = 3
-   config = quit
-   end
-   
-   # Mute
-   begin
-   prog = mplayer
-   button = mute
-   repeat = 3
-   config = mute
-   end
-   
-   # Seek back 10 seconds
-   begin
-   prog = mplayer
-   button = left
-   repeat = 3
-   config = seek -10
-   end
-   
-   # Seek forward 30 seconds
-   begin
-   prog = mplayer
-   button = right
-   repeat = 3
-   config = seek +30
-   end
-   
-   # Seek forward 3 minutes
-   begin
-   prog = mplayer
-   button = fastforward
-   repeat = 3
-   config = seek +180
-   end
-   
-   # Seek backward 3 minutes
-   begin
-   prog = mplayer
-   button = rewind
-   repeat = 3
-   config = seek -180
-   end
-   
-   # Seek forward 10 minutes
-   begin
-   prog = mplayer
-   button = skip
-   repeat = 3
-   config = seek +600
-   end
-   
-   # Seek backward 10 minutes
-   begin
-   prog = mplayer
-   button = replay
-   repeat = 3
-   config = seek -600
-   end
-   
-   # Toggle full-screen
-   begin
-   prog = mplayer
-   button = fullscreen
-   repeat = 3
-   config = vo_fullscreen
-   end
-   
-   # Xine
-   
-   begin
-   prog = xine
-   button = playpause
-   repeat = 3
-   config = Play
-   end
-   
-   begin
-   prog = xine
-   button = stop
-   repeat = 3
-   config = Pause
-   end
-   
-   begin
-   prog = xine
-   button = back
-   config = Quit
-   end
-   
-   begin
-   prog = xine
-   button = tv_onoff
-   config = Quit
-   end
-   
-   begin
-   prog = xine
-   button = right
-   repeat = 3
-   config = SeekRelative+10
-   end
-   
-   begin
-   prog = xine
-   button = left
-   repeat = 3
-   config = SeekRelative-10
-   end
-   
-   begin
-   prog = xine
-   button = fastforward
-   repeat = 3
-   config = SeekRelative+30
-   end
-   
-   begin
-   prog = xine
-   button = rewind
-   repeat = 3
-   config = SeekRelative-30
-   end
-   
-   begin
-   prog = xine
-   button = skip
-   repeat = 3
-   config = SeekRelative+300
-   end
-   
-   begin
-   prog = xine
-   button = replay
-   repeat = 3
-   config = SeekRelative-300
-   end
-   
-   begin
-   prog = xine
-   button = up
-   repeat = 1
-   config = EventUp
-   end
-   
-   begin
-   prog = xine
-   button = down
-   repeat = 1
-   config = EventDown
-   end
-   
-   begin
-   prog = xine
-   button = ok
-   repeat = 0
-   config = EventSelect
-   end
-   
-   begin
-   prog = xine
-   button = guide
-   repeat = 0
-   config = Menu
-   end
-   
-   begin
-   prog = xine
-   button = setup
-   repeat = 0
-   config = Menu
-   end
-   
-   begin
-   prog = xine
-   button = vol_up
-   repeat = 1
-   config = Volume+
-   end
-   
-   begin
-   prog = xine
-   button = vol_down
-   repeat = 1
-   config = Volume-
-   end
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/preview.jpg
deleted file mode 100644
index a034186..0000000
Binary files a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE_old/preview.jpg and /dev/null differ
-- 
cgit v0.12


From 6728f9d09e98a460a24d295893ed705bd9803e20 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Fri, 31 Jul 2009 08:46:47 +0930
Subject: system-templates: Removed Dvico_MCE that cesman added with his 44
 remotes because it is suported by the existing Dvico-Dual-Digital4-rev2

---
 .../remotes/Dvico_MCE/lircd-dvicomce.conf          |  77 ----
 .../remotes/Dvico_MCE/lircrc-dvicomce.txt          | 475 ---------------------
 .../templates/remotes/Dvico_MCE/preview.jpg        | Bin 1587 -> 0 bytes
 3 files changed, 552 deletions(-)
 delete mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircd-dvicomce.conf
 delete mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircrc-dvicomce.txt
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/Dvico_MCE/preview.jpg

diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircd-dvicomce.conf b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircd-dvicomce.conf
deleted file mode 100755
index be3d537..0000000
--- a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircd-dvicomce.conf
+++ /dev/null
@@ -1,77 +0,0 @@
-# Please make this file available to others
-    # by sending it to <lirc@bartelmus.de>
-    #
-    # this config file was automatically generated
-    # using lirc-0.8.1pre1(dev/input) on Tue Jun 20 19:52:04 2006
-    #
-    # contributed by  Craig Cook
-    #
-    # brand:                      DViCO FusionHDTV DVB-T Dual Digital
-    # model no. of remote control: Fusion MCE
-    # devices being controlled by this remote:
-    #
-    
-    begin remote
-    
-      name  DViCO_Dual_Digital
-      bits           16
-      eps            30
-      aeps          100
-    
-      one             0     0
-      zero            0     0
-      pre_data_bits   16
-      pre_data       0x1
-      gap            251756
-      toggle_bit      0
-    
-    
-          begin codes
-              1                        0x0002
-              2                        0x0003
-              3                        0x0004
-              4                        0x0005
-              5                        0x0006
-              6                        0x0007
-              7                        0x0008
-              8                        0x0009
-              9                        0x000A
-              0                        0x000B
-              rew                      0x00A8
-              playpause                0x00A4
-              ff                       0x00D0
-              mute                     0x0071
-              stop                     0x0080
-              rec                      0x00A7
-              power                    0x0074
-              camera                   0x00D4
-              live                     0x0182
-              folder                   0x0086
-              voldown                  0x0072
-              volup                    0x0073
-              chup                     0x0192
-              chdn                     0x0193
-              start                    0x001C
-              replay                   0x00A5
-              skip                     0x00A3
-              down                     0x006C
-              right                    0x006A
-              left                     0x0069
-              up                       0x0067
-              ok                       0x0160
-              dvdmenu                  0x008B
-              back                     0x009E
-              setup                    0x008D
-              tvpower                  0x0164
-              guide                    0x016D
-              info                     0x0166
-              alttab                   0x000F
-              dtv                      0x0179
-              mp3                      0x0187
-              dvd                      0x0185
-              cpf                      0x016C
-              aspect                   0x0173
-              zoom                     0x0174
-          end codes
-    
-    end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircrc-dvicomce.txt b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircrc-dvicomce.txt
deleted file mode 100755
index 4326a59..0000000
--- a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/lircrc-dvicomce.txt
+++ /dev/null
@@ -1,475 +0,0 @@
-# Channel Up
-begin
-prog = mythtv
-button = chup
-config = Up
-end
- 
-# Channel Down
-begin
-prog = mythtv
-button = chdn
-config = Down
-end
- 
-# General Left
-begin
-prog = mythtv
-button = left
-config = Left
-end
- 
-# General Right
-begin 
-prog = mythtv
-button = right
-config = Right
-end
-
- # LiveTV browse up channel
-begin
-prog = mythtv
-button = up
-config = Up
-end
- 
-# LiveTV browse down channel
-begin 
-prog = mythtv
-button = down
-config = Down
-end
-
-# Volume Up
-begin
-prog = mythtv
-button = volup
-config = F11
-end
- 
-# Volume Down
-begin
-prog = mythtv
-button = voldown
-config = F10
-end
- 
- # OK/Select
-begin
-prog = mythtv
-button = ok
-config = Space
-end
- 
-# Play
-begin
-prog = mythtv
-button = playpause
-config = Return
-end
- 
-# Stop
-begin
-prog = mythtv
-button = stop
-config = Esc
-end
- 
-# Escape/Exit/Back
-begin
-prog = mythtv
-button = 
-config = Esc
-end
- 
-# Power Off/Exit
-begin
-prog = irexec
-button = power
-config = /usr/bin/mythpowerbutton.sh
-end
- 
-# Pause
-begin
-prog = mythtv
-button = playpause
-config = P
-end
- 
-# Mute
-begin
-prog = mythtv
-button = mute
-config = |
-end
- 
-# Fast forward (10 sec default)
-begin
-prog = mythtv
-button = ff
-config = Right
-end
- 
-# Rewind (10 sec default)
-begin
-prog = mythtv
-button = rew
-config = Left
-end
- 
-# Skip forward (10 min default)
-begin
-prog = mythtv
-button = skip
-config = PgDown
-end
- 
-# Skip backward (10 min default)
-begin
-prog = mythtv
-button = back
-config = PgUp
-end
- 
-# Record
-begin
-prog = mythtv
-button = rec
-config = R
-end
- 
-# Delete
-begin
-prog = mythtv
-button = 
-config = D
-end
- 
-# OSD browse
-begin
-prog = mythtv
-button = 
-config = O
-end
- 
-# Display EPG while in live TV,
-# View selected show while in EPG
-begin
-prog = mythtv
-button = guide
-config = M
-end
- 
-# Bring up OSD info
-begin
-prog = mythtv
-button = info
-config = I
-end
- 
-# Change display aspect ratio
-begin
-prog = mythtv
-button = aspect
-config = W
-end
- 
-# Seek to previous commercial cut point
-begin
-prog = mythtv
-button = 
-config = Q
-end
- 
-# Seek to next commercial cut point
-begin
-prog = mythtv
-button = 
-config = Z
-end
- 
-# Numbers 0-9
- 
-begin
-prog = mythtv
-button =  0
-config = 0
-end
- 
-begin
-prog = mythtv
-button =  1
-config = 1
-end
- 
-begin
-prog = mythtv
-button =  2
-config = 2
-end
- 
-begin
-prog = mythtv
-button =  3
-config = 3
-end
- 
-begin 
-prog = mythtv
-button =  4
-config = 4
-end
- 
-begin
-prog = mythtv
-button =  5
-config = 5
-end
- 
-begin
-prog = mythtv
-button =  6
-config = 6
-end
- 
-begin
-prog = mythtv
-button =  7
-config = 7
-end
- 
-begin
-prog = mythtv
-button =  8
-config = 8
-end
- 
-begin
-prog = mythtv
-button =  9
-config = 9
-end 
- 
-# Closed Captioning
-begin
-prog = mythtv
-button = 
-config = T
-end
- 
-# Picture in Picture
-begin
-prog = mythtv
-button = 
-config = V
-end
- 
-# Change channels on both cards
-begin
-prog = mythtv
-button = 
-config = N
-end
- 
-# Clear cutpoints in cutlist
-begin
-prog = mythtv
-button = 
-config = Q
-end
- 
-
-
-
-### MPlayer lirc setup
- 
-# Show OSD
-begin
-prog = mplayer
-button = guide
-config = osd
-end
- 
-# Pause playback
-begin
-prog = mplayer
-button = playpause
-config = pause
-end
- 
-# Skip ahead a minute if playing
-# If paused, resume playing
-begin
-prog = mplayer
-button = 
-config = seek +1
-end
- 
-# Mute
-begin
-prog = mplayer
-button = mute
-config = mute
-end
- 
-# Seek back 10 seconds
-begin
-prog = mplayer
-button = rew
-config = seek -10
-end
- 
-# Seek forward 30 seconds
-begin
-prog = mplayer
-button = ff
-config = seek +30
-end
- 
-# Quit
-begin
-prog = mplayer
-button = stop
-config = quit
-end
- 
-# Seek forward 10 minutes
-begin
-prog = mplayer
-button = skip
-config = seek +600
-end
- 
-# Seek backward 10 minutes
-begin
-prog = mplayer
-button = back
-config = seek -600
-end
- 
-# Toggle full-screen
-begin
-prog = mplayer
-button = zoom
-config = vo_fullscreen
-end
- 
-
-
-### Xine lirc setup
- 
-begin
-prog = xine
-button = play
-config = Play
-end
- 
-begin
-prog = xine
-button = stop
-config = Stop
-end
- 
-begin
-prog = xine
-button = stop
-config = Quit
-end
- 
-begin
-prog = xine
-button = playpause
-config = Pause
-end
- 
-begin
-prog = xine
-button = up
-config = EventUp
-end 
- 
-begin
-prog = xine
-button = down
-config = EventDown
-end
- 
-begin
-prog = xine
-button = left
-config = EventLeft
-end
- 
-begin
-prog = xine
-button = right
-config = EventRight
-end
- 
-begin
-prog = xine
-button = ok
-config = EventSelect
-end
- 
-begin
-prog = xine
-button = menu
-config = Menu
-end
- 
-begin
-prog = xine
-button = ff
-#config = SpeedFaster
-config = SeekRelative+60
-end
- 
-begin
-prog = xine
-button = rew
-#config = SpeedSlower
-config = SeekRelative-60
-end
- 
-begin
-prog = xine
-button = volup
-config = Volume+
-end
- 
-begin
-prog = xine
-button = voldown
-config = Volume-
-end
- 
-begin
-prog = xine
-button = mute
-config = Mute
-end
- 
-begin
-prog = xine
-button = stop
-config = RootMenu
-end 
- 
-begin
-prog = xine
-button = skip
-config = EventNext
-end
- 
-begin
-prog = xine
-button = back
-config = EventPrior
-end
- 
-begin
-prog = xine
-button = info
-config = OSDStreamInfos
-end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/preview.jpg
deleted file mode 100644
index a034186..0000000
Binary files a/abs/core-testing/system-templates/templates/remotes/Dvico_MCE/preview.jpg and /dev/null differ
-- 
cgit v0.12


From 869b9a9fe3f7f0ede298f824f74e471c13724079 Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Fri, 31 Jul 2009 08:49:05 +0930
Subject: system-templates: Removed Dvico_Slim that cesman added with his 44
 remotes because it is suported by the existing dvico

---
 .../remotes/Dvico_slim/lircd-dvicoslim.conf        |  63 ---
 .../remotes/Dvico_slim/lircrc-dvicoslim.txt        | 475 ---------------------
 .../templates/remotes/Dvico_slim/preview.jpg       | Bin 1587 -> 0 bytes
 3 files changed, 538 deletions(-)
 delete mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircd-dvicoslim.conf
 delete mode 100755 abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircrc-dvicoslim.txt
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/Dvico_slim/preview.jpg

diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircd-dvicoslim.conf b/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircd-dvicoslim.conf
deleted file mode 100755
index b49c0f6..0000000
--- a/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircd-dvicoslim.conf
+++ /dev/null
@@ -1,63 +0,0 @@
-#
-# contributed by  Chris Pascoe
-#
-# brand:                       DVICO
-# model no. of remote control: DVB-T 
-# devices being controlled by this remote:
-#
-
-begin remote
-
-  name  DVICO
-  bits            32
-  eps             0
-  aeps            0
-
-  one             0     0
-  zero            0     0
-  pre_data_bits   32
-  pre_data 0x10046
-  gap          195755
-  post_data_bits  0
-  toggle_bit     0
-
-      begin codes
-          1                        0x00000000000011F9
-          2                        0x00000000000012F9
-          3                        0x00000000000013F9
-          4                        0x00000000000014F9
-          5                        0x00000000000015F9
-          6                        0x00000000000016F9
-          7                        0x00000000000017F9
-          8                        0x00000000000018F9
-          9                        0x00000000000019F9
-          0                        0x00000000000010F9
-          power                    0x0000000000000AF9
-          pcoff                    0x0000000000000CF9
-          camera                   0x0000000000001AF9
-          record                   0x0000000000001BF9
-          chup                     0x00000000000000F9
-          chdown                   0x00000000000001F9
-          volup                    0x00000000000002F9
-          voldown                  0x00000000000003F9
-          playpause                0x0000000000001FF9
-          rew                      0x0000000000001CF9
-          stop                     0x0000000000001EF9
-          ff                       0x0000000000001DF9
-          folder                   0x00000000000040F9
-          atvdtv                   0x00000000000006F9
-          dvhs                     0x00000000000041F9
-          menu                     0x00000000000008F9
-          aspect                   0x00000000000007F9
-          zoom                     0x00000000000004F9
-          epg                      0x0000000000000BF9
-          mute                     0x0000000000000DF9
-          back                     0x0000000000000EF9
-          hd                       0x0000000000000FF9
-          red                      0x00000000000005F9
-          green                    0x00000000000009F9
-          yellow                   0x00000000000042F9
-          blue                     0x00000000000043F9
-      end codes
-
-end remote
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircrc-dvicoslim.txt b/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircrc-dvicoslim.txt
deleted file mode 100755
index b3e6089..0000000
--- a/abs/core-testing/system-templates/templates/remotes/Dvico_slim/lircrc-dvicoslim.txt
+++ /dev/null
@@ -1,475 +0,0 @@
-# Channel Up
-begin
-prog = mythtv
-button = chup
-config = Up
-end
- 
-# Channel Down
-begin
-prog = mythtv
-button = chdown
-config = Down
-end
- 
-# General Left
-begin
-prog = mythtv
-button = 
-config = Left
-end
- 
-# General Right
-begin 
-prog = mythtv
-button = 
-config = Right
-end
-
- # LiveTV browse up channel
-begin
-prog = mythtv
-button = chup
-config = Up
-end
- 
-# LiveTV browse down channel
-begin 
-prog = mythtv
-button = chdown
-config = Down
-end
-
-# Volume Up
-begin
-prog = mythtv
-button = volup
-config = F11
-end
- 
-# Volume Down
-begin
-prog = mythtv
-button = voldown
-config = F10
-end
- 
- # OK/Select
-begin
-prog = mythtv
-button = 
-config = Space
-end
- 
-# Play
-begin
-prog = mythtv
-button = playpause
-config = Return
-end
- 
-# Stop
-begin
-prog = mythtv
-button = stop
-config = Esc
-end
- 
-# Escape/Exit/Back
-begin
-prog = mythtv
-button = back
-config = Esc
-end
- 
-# Power Off/Exit
-begin
-prog = irexec
-button = power
-config = /usr/bin/mythpowerbutton.sh
-end
- 
-# Pause
-begin
-prog = mythtv
-button = playpause
-config = P
-end
- 
-# Mute
-begin
-prog = mythtv
-button = mute
-config = |
-end
- 
-# Fast forward (10 sec default)
-begin
-prog = mythtv
-button = ff
-config = Right
-end
- 
-# Rewind (10 sec default)
-begin
-prog = mythtv
-button = rew
-config = Left
-end
- 
-# Skip forward (10 min default)
-begin
-prog = mythtv
-button = 
-config = PgDown
-end
- 
-# Skip backward (10 min default)
-begin
-prog = mythtv
-button = 
-config = PgUp
-end
- 
-# Record
-begin
-prog = mythtv
-button = record
-config = R
-end
- 
-# Delete
-begin
-prog = mythtv
-button = red
-config = D
-end
- 
-# OSD browse
-begin
-prog = mythtv
-button = yellow
-config = O
-end
- 
-# Display EPG while in live TV,
-# View selected show while in EPG
-begin
-prog = mythtv
-button = menu
-config = M
-end
- 
-# Bring up OSD info
-begin
-prog = mythtv
-button = blue
-config = I
-end
- 
-# Change display aspect ratio
-begin
-prog = mythtv
-button = aspect
-config = W
-end
- 
-# Seek to previous commercial cut point
-begin
-prog = mythtv
-button = 
-config = Q
-end
- 
-# Seek to next commercial cut point
-begin
-prog = mythtv
-button = 
-config = Z
-end
- 
-# Numbers 0-9
- 
-begin
-prog = mythtv
-button =  0
-config = 0
-end
- 
-begin
-prog = mythtv
-button =  1
-config = 1
-end
- 
-begin
-prog = mythtv
-button =  2
-config = 2
-end
- 
-begin
-prog = mythtv
-button =  3
-config = 3
-end
- 
-begin 
-prog = mythtv
-button =  4
-config = 4
-end
- 
-begin
-prog = mythtv
-button =  5
-config = 5
-end
- 
-begin
-prog = mythtv
-button =  6
-config = 6
-end
- 
-begin
-prog = mythtv
-button =  7
-config = 7
-end
- 
-begin
-prog = mythtv
-button =  8
-config = 8
-end
- 
-begin
-prog = mythtv
-button =  9
-config = 9
-end 
- 
-# Closed Captioning
-begin
-prog = mythtv
-button = 
-config = T
-end
- 
-# Picture in Picture
-begin
-prog = mythtv
-button = green
-config = V
-end
- 
-# Change channels on both cards
-begin
-prog = mythtv
-button = 
-config = N
-end
- 
-# Clear cutpoints in cutlist
-begin
-prog = mythtv
-button = 
-config = Q
-end
- 
-
-
-
-### MPlayer lirc setup
- 
-# Show OSD
-begin
-prog = mplayer
-button = menu
-config = osd
-end
- 
-# Pause playback
-begin
-prog = mplayer
-button = playpause
-config = pause
-end
- 
-# Skip ahead a minute if playing
-# If paused, resume playing
-begin
-prog = mplayer
-button = 
-config = seek +1
-end
- 
-# Mute
-begin
-prog = mplayer
-button = mute
-config = mute
-end
- 
-# Seek back 10 seconds
-begin
-prog = mplayer
-button = ff
-config = seek -10
-end
- 
-# Seek forward 30 seconds
-begin
-prog = mplayer
-button = rew
-config = seek +30
-end
- 
-# Quit
-begin
-prog = mplayer
-button = stop
-config = quit
-end
- 
-# Seek forward 10 minutes
-begin
-prog = mplayer
-button = 
-config = seek +600
-end
- 
-# Seek backward 10 minutes
-begin
-prog = mplayer
-button = back
-config = seek -600
-end
- 
-# Toggle full-screen
-begin
-prog = mplayer
-button = aspect
-config = vo_fullscreen
-end
- 
-
-
-### Xine lirc setup
- 
-begin
-prog = xine
-button = playpause
-config = Play
-end
- 
-begin
-prog = xine
-button = stop
-config = Stop
-end
- 
-begin
-prog = xine
-button = stop
-config = Quit
-end
- 
-begin
-prog = xine
-button = playpause
-config = Pause
-end
- 
-begin
-prog = xine
-button = 
-config = EventUp
-end 
- 
-begin
-prog = xine
-button = 
-config = EventDown
-end
- 
-begin
-prog = xine
-button = 
-config = EventLeft
-end
- 
-begin
-prog = xine
-button = 
-config = EventRight
-end
- 
-begin
-prog = xine
-button = 
-config = EventSelect
-end
- 
-begin
-prog = xine
-button = menu
-config = Menu
-end
- 
-begin
-prog = xine
-button = ff
-#config = SpeedFaster
-config = SeekRelative+60
-end
- 
-begin
-prog = xine
-button = rew
-#config = SpeedSlower
-config = SeekRelative-60
-end
- 
-begin
-prog = xine
-button = volup
-config = Volume+
-end
- 
-begin
-prog = xine
-button = voldown
-config = Volume-
-end
- 
-begin
-prog = xine
-button = mute
-config = Mute
-end
- 
-begin
-prog = xine
-button = stop
-config = RootMenu
-end 
- 
-begin
-prog = xine
-button = 
-config = EventNext
-end
- 
-begin
-prog = xine
-button = back
-config = EventPrior
-end
- 
-begin
-prog = xine
-button = aspect
-config = OSDStreamInfos
-end
\ No newline at end of file
diff --git a/abs/core-testing/system-templates/templates/remotes/Dvico_slim/preview.jpg b/abs/core-testing/system-templates/templates/remotes/Dvico_slim/preview.jpg
deleted file mode 100644
index a034186..0000000
Binary files a/abs/core-testing/system-templates/templates/remotes/Dvico_slim/preview.jpg and /dev/null differ
-- 
cgit v0.12


From 9cf983bd1e1aa7e9d35bc345085b7a9d28d4c29a Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Fri, 31 Jul 2009 11:23:00 +0930
Subject: system-templates: remove one of the mceusb lircd files that was just
 a subset of the other one

---
 .../templates/remotes/mceusb/lircd-mceusb.conf     | 88 ----------------------
 1 file changed, 88 deletions(-)
 delete mode 100644 abs/core-testing/system-templates/templates/remotes/mceusb/lircd-mceusb.conf

diff --git a/abs/core-testing/system-templates/templates/remotes/mceusb/lircd-mceusb.conf b/abs/core-testing/system-templates/templates/remotes/mceusb/lircd-mceusb.conf
deleted file mode 100644
index ec3b73e..0000000
--- a/abs/core-testing/system-templates/templates/remotes/mceusb/lircd-mceusb.conf
+++ /dev/null
@@ -1,88 +0,0 @@
-#
-# RC-6 config file
-#
-# source: http://home.hccnet.nl/m.majoor/projects__remote_control.htm
-#         http://home.hccnet.nl/m.majoor/pronto.pdf
-#
-# used by: Philips
-#
-#########
-#
-# Philips Media Center Edition remote control
-# For use with the USB MCE ir receiver
-#
-# Dan Conti  dconti|acm.wwu.edu
-#
-# Radio, Print, RecTV are only available on the HP Media Center remote control
-#
-
-begin remote
-
-  name mceusb
-  bits           16
-  flags RC6|CONST_LENGTH
-  eps            30
-  aeps          100
-
-  header       2667   889
-  one           444   444
-  zero          444   444
-  pre_data_bits 21
-  pre_data      0x37FF0
-  gap          105000
-  toggle_bit     22
-  rc6_mask     0x100000000
-
-
-      begin codes
-
-# starts at af
-        Radio    0x00007baf
-        Print    0x00007bb1
-        Videos   0x00007bb5
-        Pictures 0x00007bb6
-        RecTV    0x00007bb7
-        Music    0x00007bb8
-        TV       0x00007bb9
-# no ba - d8
-        Guide    0x00007bd9
-        LiveTV   0x00007bda
-        DVD      0x00007bdb
-        Back     0x00007bdc
-        OK       0x00007bdd
-        Right    0x00007bde
-        Left     0x00007bdf
-        Down     0x00007be0
-        Up       0x00007be1
-# no e2,e3
-        Replay   0x00007be4
-        Skip     0x00007be5
-        Stop     0x00007be6
-        Pause    0x00007be7
-        Record   0x00007be8
-        Play     0x00007be9
-        Rewind   0x00007bea
-        Forward  0x00007beb
-        ChanDown 0x00007bec
-        ChanUp   0x00007bed
-        VolDown  0x00007bee
-        VolUp    0x00007bef
-        More     0x00007bf0
-        Mute     0x00007bf1
-        Home     0x00007bf2
-        Power    0x00007bf3
-        Enter    0x00007bf4
-        Clear    0x00007bf5
-        Nine     0x00007bf6
-        Eight    0x00007bf7
-        Seven    0x00007bf8
-        Six      0x00007bf9
-        Five     0x00007bfa
-        Four     0x00007bfb
-        Three    0x00007bfc
-        Two      0x00007bfd
-        One      0x00007bfe
-        Zero     0x00007bff
-      end codes
-
-end remote
-- 
cgit v0.12


From d5b30b14e06db375bcf5069f23f47213a65adeed Mon Sep 17 00:00:00 2001
From: Greg Frost <gregfrost1@bigpond.com>
Date: Fri, 31 Jul 2009 12:59:25 +0930
Subject: system-templates: updates for mceusb remote

---
 abs/core-testing/system-templates/PKGBUILD         |   2 +-
 .../templates/remotes/mceusb/lircd.conf.mceusb     | 203 +++--
 .../templates/remotes/mceusb/lircrc-mceusb         | 922 ++++++++++++++++-----
 3 files changed, 835 insertions(+), 292 deletions(-)

diff --git a/abs/core-testing/system-templates/PKGBUILD b/abs/core-testing/system-templates/PKGBUILD
index c9b0265..c93b210 100755
--- a/abs/core-testing/system-templates/PKGBUILD
+++ b/abs/core-testing/system-templates/PKGBUILD
@@ -1,6 +1,6 @@
 pkgname=system-templates
 pkgver=1.0
-pkgrel=32
+pkgrel=33
 conflicts=( )
 pkgdesc="Templates used for system configuration"
 depends=()
diff --git a/abs/core-testing/system-templates/templates/remotes/mceusb/lircd.conf.mceusb b/abs/core-testing/system-templates/templates/remotes/mceusb/lircd.conf.mceusb
index 041c2cb..b1c26b6 100644
--- a/abs/core-testing/system-templates/templates/remotes/mceusb/lircd.conf.mceusb
+++ b/abs/core-testing/system-templates/templates/remotes/mceusb/lircd.conf.mceusb
@@ -24,81 +24,140 @@
 
 begin remote
 
-  name mceusb
-  bits           16
-  flags RC6|CONST_LENGTH
-  eps            30
-  aeps          100
+  name 		mceusb
+  bits        	16
+  flags 	RC6|CONST_LENGTH
+  eps         	30
+  aeps     	100
 
-  header       2667   889
-  one           444   444
-  zero          444   444
+  header       	2667   	889
+  one           444   	444
+  zero          444   	444
   pre_data_bits 21
   pre_data      0x37FF0
-  gap          105000
-  toggle_bit     22
-  rc6_mask     0x100000000
+  gap          	105000
+  toggle_bit    22
+  rc6_mask    	0x100000000
 
-
-      begin codes
-
-	Blue	0x00007ba1
-	Yellow	0x00007ba2
-	Green	0x00007ba3
-	Red	0x00007ba4
+  begin codes
+#-------------------------------------------------------------b9
+	Testb90		0x00007b90
+	Testb91		0x00007b91
+	Testb92		0x00007b92
+	Testb93		0x00007b93
+	Testb94		0x00007b94
+	Testb95		0x00007b95
+	Testb96		0x00007b96
+	Testb97		0x00007b97
+	Testb98		0x00007b98
+	Testb99		0x00007b99
+	TV?????		0x00007b9a
+	Messenger	0x00007b9b
+	Testb9c		0x00007b9c
+	Testb9d		0x00007b9d
+	Testb9e		0x00007b9e
+	Testb9f		0x00007b9f
+#-------------------------------------------------------------ba
+	Testba0 	0x00007ba0
+	Blue		0x00007ba1
+	Yellow		0x00007ba2
+	Green		0x00007ba3
+	Red		0x00007ba4
 	Teletext	0x00007ba5
-
-# starts at af
-        Radio    0x00007baf
-        Print    0x00007bb1
-        Videos   0x00007bb5
-        Pictures 0x00007bb6
-        RecTV    0x00007bb7
-        Music    0x00007bb8
-        TV       0x00007bb9
-# no ba - d8
-
-        Guide    0x00007bd9
-        LiveTV   0x00007bda
-        DVD      0x00007bdb
-        Back     0x00007bdc
-        OK       0x00007bdd
-        Right    0x00007bde
-        Left     0x00007bdf
-        Down     0x00007be0
-        Up       0x00007be1
-
-        Star       0x00007be2
-        Hash       0x00007be3
-
-        Replay   0x00007be4
-        Skip     0x00007be5
-        Stop     0x00007be6
-        Pause    0x00007be7
-        Record   0x00007be8
-        Play     0x00007be9
-        Rewind   0x00007bea
-        Forward  0x00007beb
-        ChanDown 0x00007bec
-        ChanUp   0x00007bed
-        VolDown  0x00007bee
-        VolUp    0x00007bef
-        More     0x00007bf0
-        Mute     0x00007bf1
-        Home     0x00007bf2
-        Power    0x00007bf3
-        Enter    0x00007bf4
-        Clear    0x00007bf5
-        Nine     0x00007bf6
-        Eight    0x00007bf7
-        Seven    0x00007bf8
-        Six      0x00007bf9
-        Five     0x00007bfa
-        Four     0x00007bfb
-        Three    0x00007bfc
-        Two      0x00007bfd
-        One      0x00007bfe
-        Zero     0x00007bff
-      end codes
-
+	Testba6 	0x00007ba6
+	Testba7 	0x00007ba7
+	Testba8 	0x00007ba8
+	Testba9 	0x00007ba9
+	Testbaa 	0x00007baa
+	Testbab 	0x00007bab
+	Testbac 	0x00007bac
+	Testbad 	0x00007bad
+	Testbae 	0x00007bae
+        Radio    	0x00007baf
+#-------------------------------------------------------------bb
+	Testbb0 	0x00007bb0
+	Print           0x00007bb1
+	Testbb2 	0x00007bb2
+	Testbb3 	0x00007bb3
+	Testbb4 	0x00007bb4
+	Videos		0x00007bb5
+	Pictures 	0x00007bb6
+	RecordedTV      0x00007bb7
+	Music 		0x00007bb8
+	TV            	0x00007bb9
+	Testbba 	0x00007bba
+	Testbbb 	0x00007bbb
+	Testbbc 	0x00007bbc
+	Testbbd 	0x00007bbd
+	Testbbe 	0x00007bbe
+	Testbbf 	0x00007bbf
+#-------------------------------------------------------------- bc
+        Testbc0     	0x00007bc0
+	Testbc1     	0x00007bc1
+        Testbc2     	0x00007bc2
+        Testbc3     	0x00007bc3
+        Testbc4     	0x00007bc4
+       	Testbc5     	0x00007bc5
+       	Testbc6     	0x00007bc6
+       	Testbc7     	0x00007bc7
+       	Testbc8     	0x00007bc8
+       	Testbc9     	0x00007bc9
+        Testbca     	0x00007bca
+        Testbcb     	0x00007bcb
+        Testbcc     	0x00007bcc
+        Testbcd     	0x00007bcd
+        Testbce     	0x00007bce
+       	Testbcf     	0x00007bcf
+#---------------------------------------------------------------bd
+       	Testbd0 	0x00007bd0
+       	Testbd1 	0x00007bd1
+       	Testbd2 	0x00007bd2
+       	Testbd3 	0x00007bd3
+       	Testbd4 	0x00007bd4
+       	Testbd5 	0x00007bd5
+       	Testbd6 	0x00007bd6
+       	Testbd7 	0x00007bd7
+       	Testbd8 	0x00007bd8
+       	Guide           0x00007bd9
+       	LiveTV          0x00007bda
+       	DVDMenu 	0x00007bdb
+       	Back            0x00007bdc
+       	OK              0x00007bdd
+       	Right           0x00007bde
+       	Left            0x00007bdf
+#--------------------------------------------------------------be
+       	Down            0x00007be0
+       	Up              0x00007be1
+       	Star            0x00007be2
+       	Hash            0x00007be3
+       	Replay          0x00007be4
+       	Skip            0x00007be5
+       	Stop            0x00007be6
+       	Pause           0x00007be7
+       	Record          0x00007be8
+       	Play            0x00007be9
+       	Rewind          0x00007bea
+       	Forward 	0x00007beb
+       	ChannelDown     0x00007bec
+       	ChannelUp       0x00007bed
+       	VolumeDown      0x00007bee
+       	VolumeUp        0x00007bef
+#---------------------------------------------------------------bf
+       	More            0x00007bf0
+       	Mute            0x00007bf1
+       	Start           0x00007bf2
+       	Power           0x00007bf3
+       	Enter           0x00007bf4
+       	Clear           0x00007bf5
+       	Nine            0x00007bf6
+       	Eight           0x00007bf7
+       	Seven           0x00007bf8
+       	Six             0x00007bf9
+       	Five            0x00007bfa
+       	Four            0x00007bfb
+       	Three           0x00007bfc
+       	Two             0x00007bfd
+       	One             0x00007bfe
+       	Zero            0x00007bff
+  end codes
 end remote
diff --git a/abs/core-testing/system-templates/templates/remotes/mceusb/lircrc-mceusb b/abs/core-testing/system-templates/templates/remotes/mceusb/lircrc-mceusb
index 3738bfa..a6a8c48 100644
--- a/abs/core-testing/system-templates/templates/remotes/mceusb/lircrc-mceusb
+++ b/abs/core-testing/system-templates/templates/remotes/mceusb/lircrc-mceusb
@@ -1,393 +1,877 @@
-# lircrc.mceusb
-
-###################
+# /home/mythtv/.mythtv/lircrc
+#
+# From Knoppmyth R5.5 - Copied by UniCav
 #
-#  MythTV
+# Media Center Edition Remote Control and 
+# Remote Control Keys on Media Center Keyboard
 #
-###################
+##############################################################################
+# For use with the USB MCE ir receiver
+# MythTV LIRC config file for the mceusb2 or lirc_mod_mce module
+
+# Info about lircrc statment
+#begin
+#  prog    = ... Program controlled, irxevent, irexec, mythtv, mplayer, 
+#                xine, or others
+#  remote  = ... mceusb, or what ever you happen to have or want to call it
+#  button  = ... remote keys names from your lircd.conf file
+#  repeat  = ... repeat = 2 is fast, repeat = 4 is slower
+#  delay   = ... delay before repeat, 1 is short, 4 is longer
+#  config  = ... output key presses to key bindings editor
+#  mode    = ...
+#  flags   = ...
+#end
+
+# Test your new Lirc settings
+#   /etc/init.d/lirc restart    To restart Lirc
+#   ctrl-alt-backspace          To restart the frontend
+
+# Updated January 30th 2008 BAK
+# for the Knoppmyth project
+
+################################### irexec ###################################
+# the lirc irexec program must be running for this section
+
+# Will perform a complete shutdown
+#begin
+#       prog   = irexec
+#       button = Power
+#       config = /usr/bin/sudo halt
+#end
+
+############################### Mythtv Section ###############################
+# MythTV Key Binding Editor     location
+# Mythtv Menu >>Utilities / Setup >>Edit Keys
+# Key Bindings can also be found in Myth Web
+
+# Record
+begin
+  prog   = mythtv
+  button = Record
+  config = R
+end
+
+# Stop
 begin
-    prog = mythtv
-    button = One
-    config = 1  
+  prog   = mythtv
+  button = Stop
+  config = Esc
 end
 
+# Pause
 begin
-    prog = mythtv
-    button = Two
-    config = 2  
+  prog   = mythtv
+  button = Pause
+  config = P
 end
 
+# Rewind (while viewing)
 begin
-    prog = mythtv
-    button = Three
-    config = 3  
+  prog   = mythtv
+  button = Rewind
+  repeat = 0
+  delay  = 1
+  config = <
 end
 
+# Fast forward (while viewing)
 begin
-    prog = mythtv
-    button = Four
-    config = 4  
+  prog   = mythtv
+  button = Forward
+  repeat = 0
+  delay  = 1
+  config = >
 end
 
+# Play
 begin
-    prog = mythtv
-    button = Five
-    config = 5  
+  prog   = mythtv
+  button = Play
+  config = L
 end
 
+# Skip backward (1 min default)
 begin
-    prog = mythtv
-    button = Six
-    config = 6  
+  prog   = mythtv
+  button = Replay
+  repeat = 4
+  delay  = 4
+  config = PgUp
 end
 
+# Skip forward (1 min default)
 begin
-    prog = mythtv
-    button = Seven
-    config = 7  
+  prog   = mythtv
+  button = Skip
+  repeat = 4
+  delay  = 4
+  config = PgDown
 end
 
+#<><><><><><><><><><><> Mythtv Control <><><><>
+
+# Escape/Exit/Back
 begin
-    prog = mythtv
-    button = Eight
-    config = 8  
+  prog   = mythtv
+  button = Back
+  config = Esc
 end
 
+# Bring up OSD info
 begin
-    prog = mythtv
-    button = Nine
-    config = 9  
+  prog   = mythtv
+  button = More
+  config = I
 end
 
 begin
-    prog = mythtv
-    button = Zero
-    config = 0  
+  prog   = mythtv
+  button = Left
+  repeat = 2
+  delay  = 4
+  config = Left
 end
 
 begin
-    prog = mythtv
-    button = Back
-    config = Esc
+  prog   = mythtv
+  button = Right
+  repeat = 2
+  delay  = 4
+  config = Right
 end
 
 begin
-    prog = mythtv
-    button = Guide
-    config = M  
+  prog   = mythtv
+  button = Up
+  repeat = 2
+  delay  = 4
+  config = Up
 end
 
 begin
-   prog = mythtv
-   button = More
-   config = I  
+  prog   = mythtv
+  button = Down
+  repeat = 2
+  delay  = 4
+  config = Down
 end
 
+# OK/Select
 begin
-  prog = mythtv
-  button = VolDown
-  config = F10  
+  prog   = mythtv
+  button = OK
+  config = Return
 end
 
+# The Start Button is really just a Menu key
 begin
-  prog = mythtv
-  button = VolUp
-  config = F11  
+  prog   = mythtv
+  button = Start
+  config = M
+end
+
+#<><><><><><><><><><><><><><><>
+
+# Volume-Up
+begin
+  prog   = mythtv
+  button = VolumeUp
+  repeat = 1
+  config = ]
+end
+
+# Volume-Down
+begin
+  prog   = mythtv
+  button = VolumeDown
+  repeat = 1
+  config = [
+end
+
+# Mute
+begin
+  prog   = mythtv
+  button = Mute
+  config = |
+end
+
+# Channel Up
+begin
+  prog   = mythtv
+  button = ChannelUp
+  repeat = 3
+# delay  = 1
+  config = Up
+end
+
+# Channel Down
+begin
+  prog   = mythtv
+  button = ChannelDown
+  config = Down
+  repeat = 3
+# delay  = 1
+end
+
+# Numbers 0-9 <><><><><><><><><><><>
+
+begin
+  prog   = mythtv
+  button = One
+# repeat = 2
+  config = 1
+end
+
+begin
+  prog   = mythtv
+  button = Two
+# repeat = 2
+  config = 2
+end
+
+begin
+  prog   = mythtv
+  button = Three
+# repeat = 2
+  config = 3
+end
+
+begin
+  prog   = mythtv
+  button = Four
+# repeat = 2
+  config = 4
+end
+
+begin
+  prog   = mythtv
+  button = Five
+# repeat = 2
+  config = 5
 end
 
 begin
-    prog = mythtv
-    button = Up
-    config = Up
+  prog   = mythtv
+  button = Six
+# repeat = 2
+  config = 6
 end
 
 begin
-    prog = mythtv
-    button = Down
-    config = Down
+  prog   = mythtv
+  button = Seven
+# repeat = 2
+  config = 7
 end
 
 begin
-    prog = mythtv
-    button = Left
-    config = Left
+  prog   = mythtv
+  button = Eight
+# repeat = 2
+  config = 8
+End
+
+begin
+  prog   = mythtv
+  button = Nine
+# repeat = 2
+  config = 9
 end
 
 begin
-    prog = mythtv
-    button = Right
-    config = Right
+  prog   = mythtv
+  button = Zero
+# repeat = 2
+  config = 0
 end
 
+#<><><><><><><><><><><><><><><><><><><><>
+# Seek to previous commercial cut point
+# or remove all cut points from the Editing Cutlist
 begin
-    prog = mythtv
-    button = Play
-    config = Return
+  prog   = mythtv
+  button = Star
+  config = Q
 end
 
+# Seek to next commercial cut point
+# or add commericial cut points to the Editing Cutlist
 begin
-    prog = mythtv
-    button = OK
-    config = Return
+  prog   = mythtv
+  button = Hash
+  config = Z
 end
 
+# Brings up the delete box
 begin
-    prog = mythtv
-    button = Mute
-    config = |  
+  prog   = mythtv
+  button = Clear
+  repeat = 0
+  config = D
 end
 
+# Toggle Editing Cutlist on or off
 begin
-    prog = mythtv
-    button = Rewind
-    config = Left  
+  prog   = mythtv
+  button = Enter
+  repeat = 0
+  config = E
 end
 
+#<><><><><><><><> Additional Remote Commands <><><><><><><><>
+# All buttons in this section must be configured using
+# MythTV's KeyBindings JumpPoints editor.
+# >>> Utilities/ Setup >>> Edit Keys >>> JumpPoints >>>
+
+# Listen to Myth Music
 begin
-    prog = mythtv
-    button = Forward
-    config = Right  
+  prog   = mythtv
+  button = Music
+  config = Ctrl+Alt+M
 end
 
+# at this time connects to MythStreem
 begin
   prog = mythtv
-  button = Record
-  config = R  
+  button = Radio
+  config = Ctrl+Alt+S
 end
 
+# View Pictures
 begin
-   prog = mythtv
-   button = Stop
-   config = O  
+  prog   = mythtv
+  button = Pictures
+  config = Ctrl+Alt+P
 end
 
+# Watch Videos
 begin
-    prog = mythtv
-    button = Pause
-    config = P  
+  prog   = mythtv
+  button = Videos
+  config = Ctrl+Alt+V
 end
 
-# Use for backwards commercial skip
+# Watch Live TV with Live TV Guide open
 begin
-   prog = mythtv
-   button = Replay
-   config = Q  
+  prog   = mythtv
+  button = TV
+  config = Ctrl+Alt+K
 end
 
-# Use for forward commercial skip
+# Watch Live TV
 begin
-   prog = mythtv
-   button = Skip
-   config = Z  
+  prog   = mythtv
+  button = LiveTV
+  config = Ctrl+Alt+L
 end
 
+# Recorded TV Programs
+begin
+  prog   = mythtv
+  button = RecordedTV
+  config = Ctrl+Alt+R
+end
 
-###################
-#
-#  MPlayer
-#
-###################
+# Program Guide
+begin
+  prog   = mythtv
+  button = Guide
+  config = Ctrl+Alt+G
+end
+
+# Play DVD
+# There must be a disk in the DVD drive or it dos nothing
 begin
-   prog = mplayer
-   button = Stop
-   config = quit
+  prog   = mythtv
+  button = DVDMenu
+  config = Ctrl+Alt+D
 end
 
+# unused key
+#begin
+#  prog   = mythtv
+#  button = Messenger
+#  config = Ctrl+Alt+A
+#end
+
+# <><><><><><><><><><><><><> Teletext Buttons <><><><><><><><><><><>
+
+# Teletext = Show interactive MHEG screens
 begin
-   prog = mplayer
-   button = Play
-   config = seek +1
+  prog   = mythtv
+  button = Teletext
+  config = F7
 end
-		   
+
+# Red = Red button for interactive screens.
 begin
-   prog = mplayer
-   button = More
-   config = osd
+  prog   = mythtv
+  button = Red
+  config = F2
 end
-			      
+
+# Green = Green button for interactive screens.
 begin
-   prog = mplayer
-   button = Replay
-   config = seek -10
-   repeat = 1
+  prog   = mythtv
+  button = Green
+  config = F3
 end
-							     
+
+# Yellow = Yellow button for interactive screens.
 begin
-   prog = mplayer
-   button = Skip
-   config = seek +10
-   repeat = 1
+  prog   = mythtv
+  button = Yellow
+  config = F4
 end
 
+# Blue = Blue button for interactive screens.
 begin
-   prog = mplayer
-   button = Rewind
-   config = seek -30
-   repeat = 1
+  prog   = mythtv
+  button = Blue
+  config = F5
 end
 
+
+######################## MPlayer Section #####################################
+# "mplayer -input keylist" Prints all keys that can be bound to commands.
+# "mplayer -input cmdlist" Prints all commands that can be bound to keys
+# "man mplayer" Prints documentation for MPlayer
+
+# Show OSD
 begin
-   prog = mplayer
-   button = Forward
-   config = seek +30
-   repeat = 1
+  prog   = mplayer
+  button = OK
+  config = osd
 end
 
+# Pause playback
 begin
-    prog = mplayer
-    button = Pause
-    config = pause
+  prog   = mplayer
+  button = Pause
+  config = pause
 end
-								    
+
+# If paused, resume playing
 begin
-   prog = mplayer
-   button = VolUp
-   config = volume +1
-   repeat = 1
+  prog   = mplayer
+  button = Play
+  config = pause
 end
 
+# Stop playback and exit
 begin
-   prog = mplayer
-   button = VolDown
-   config = volume -1
-   repeat = 1
+  prog   = mplayer
+  button = Stop
+  config = quit
 end
 
+# Volume-Up
 begin
-   prog = mplayer
-   button = Mute
-   config = mute
+  prog   = mplayer
+  button = VolumeUp
+  repeat = 2
+  config = volume +1
 end
 
-###################
-#
-#  Xine
+# Volume-Down
+begin
+  prog   = mplayer
+  button = VolumeDown
+  repeat = 2
+  config = volume -1
+end
+
+# Mute
+begin
+  prog   = mplayer
+  button = Mute
+  config = mute
+end
+
+# Seek back 60 seconds
+begin
+  prog   = mplayer
+  button = Left
+  repeat = 2
+  config = seek -60
+end
+
+# Seek forward 60 seconds
+begin
+  prog   = mplayer
+  button = Right
+  repeat = 2
+  config = seek +60
+end
+
+# Seek back 10 seconds
+begin
+  prog   = mplayer
+  button = Rewind
+  repeat = 2
+  config = seek -10
+end
+
+# Seek forward 30 seconds
+begin
+  prog   = mplayer
+  button = Forward
+  repeat = 2
+  config = seek +30
+end
+
+# Quit
+begin
+  prog   = mplayer
+  button = Back
+  config = quit
+end
+
+# Seek forward 10 minutes
+begin
+  prog   = mplayer
+  button = Skip
+  repeat = 2
+  config = seek +600
+end
+
+# Seek backward 10 minutes
+begin
+  prog   = mplayer
+  button = Replay
+  repeat = 2
+  config = seek -600
+end
+
+# increase brightness
+begin
+  prog   = mplayer
+  button = ChannelUp
+  repeat = 2
+  config = brightness +1
+end
+
+# decrease brightness
+begin
+  prog   = mplayer
+  button = ChannelDown
+  repeat = 2
+  config = brightness -1
+end
+
+# Toggle full-screen
+#begin
+#  prog   = mplayer
+#  button = #???????????????????????????
+#  repeat = 2
+#  config = vo_fullscreen
+#end
+
+
+########################## XINE Section ######################################
 #
-###################
-# Xine lirc setup
+# For a compleate list of Xine's Lirc Keybindings use comand
+#        xine --keymap=lirc>.lircrc.xine.keybindings
+# This creates a file in current directory called ".lircrc.xine.keybindings"
+# Note: Xine has diferent sets of keybindings for lirc and keyboard
+
+##  01/14/2008
+# xine key bindings.
+# Automatically generated by xine-ui version 0.99.6cvs.
+
+#<><><><><><><><><><> Xine Video Movement <><><><>
+
+# start playback
+begin
+  prog   = xine
+  button = Play
+  config = Play
+end
+
+# playback pause toggle
+begin
+  prog   = xine
+  button = Pause
+  config = Pause
+end
+
+# stop playback
+begin
+  prog   = xine
+  button = Stop
+  config = Stop
+end
+
+# take a snapshot
+#begin
+#   prog   = xine
+#   button = Record
+#   repeat = 2
+#   config = Snapshot
+#end
+
+begin
+  prog   = xine
+  button = Forward
+  repeat = 2
+# delay  = 1
+  config = SeekRelative+7
+end
+
 begin
-prog = xine
-button = Play
-repeat = 3
-config = Play
+  prog   = xine
+  button = Rewind
+  repeat = 2
+# delay  = 1
+  config = SeekRelative-7
 end
 
+# set position to -60 seconds in current stream
 begin
-prog = xine
-button = Stop
-repeat = 3
-config = Stop
+  prog   = xine
+  button = Replay
+  repeat = 2
+  delay  = 1
+  config = SeekRelative-60
 end
 
+# set position to +60 seconds in current stream
 begin
-prog = xine
-button = Back
-repeat = 3
-config = Quit
+  prog   = xine
+  button = Skip
+  repeat = 2
+  delay  = 1
+  config = SeekRelative+60
 end
+#<><><><><><><><><><><><>Xine Control<><><><><><><><><>
 
+# quit the program
 begin
-prog = xine
-button = Pause
-repeat = 3
-config = Pause
+  prog   = xine
+  button = Back
+  config = Quit
 end
 
+#display stream information using OSD
 begin
-prog = xine
-button = Up
-repeat = 3
-config = EventUp
+  prog   = xine
+  button = More
+  config = OSDStreamInfos
 end
 
+# menu navigate up
 begin
-prog = xine
-button = Down
-repeat = 3
-config = EventDown
+  prog   = xine
+  button = Up
+  repeat = 2
+  delay  = 2
+  config = EventUp
 end
 
+# menu navigate down
 begin
-prog = xine
-button = Left
-repeat = 3
-config = EventLeft
+  prog   = xine
+  button = Down
+  repeat = 2
+  delay  = 2
+  config = EventDown
 end
 
+# menu navigate left
 begin
-prog = xine
-button = Right
-repeat = 3
-config = EventRight
+  prog   = xine
+  button = Left
+  repeat = 2
+  delay  = 2
+  config = EventLeft
 end
 
+# menu navigate right
 begin
-prog = xine
-button = OK
-repeat = 3
-config = EventSelect
+  prog   = xine
+  button = Right
+  repeat = 2
+  delay  = 2
+  config = EventRight
 end
 
+# menu select
 begin
-prog = xine
-button = Home
-repeat = 3
-config = Menu
+  prog   = xine
+  button = OK
+  config = EventSelect
 end
 
+# jump to Root Menu
+begin
+  prog   = xine
+  button = Start
+  config = Menu
+end
+
+#<><><><><><><><><><><><><><><><><><><> Xine Volume / Channel <><><><><><><><>
+
+# increment audio volume
 begin
-prog = xine
-button = Forward
-repeat = 3
-config = SpeedFaster
+  prog   = xine
+  button = VolumeUp
+  repeat = 1
+  config = Volume+
 end
 
+# decrement audio volume
 begin
-prog = xine
-button = Rewind
-repeat = 3
-config = SpeedSlower
+  prog   = xine
+  button = VolumeDown
+  repeat = 1
+  config = Volume-
 end
 
+# audio muting toggle
 begin
-prog = xine
-button = VolUp
-repeat = 3
-config = Volume+
+  prog   = xine
+  button = Mute
+  config = Mute
 end
 
+# increase brightness by 10
 begin
-prog = xine
-button = VolDown
-repeat = 3
-config = Volume-
+  prog   = xine
+  button = ChannelUp
+  config = BrightnessControl+
 end
 
+# decrease brightness by 10
 begin
-prog = xine
-button = Mute
-repeat = 3
-config = Mute
+  prog   = xine
+  button = ChannelDown
+  config = BrightnessControl-
 end
 
+#<><><><><><><><><><><><><><><><><> Xine Menu <><><><>
+
+# unused key
+#begin
+#   prog   = xine
+#   button = RecordedTV
+#   config = ????????
+#end
+
+# visibility toggle of stream info window
 begin
-prog = xine
-button = ChanUp
-repeat = 3
-config = EventNext
+  prog   = xine
+  button = Guide
+  config = SetupShow
 end
 
+# unused key
+#begin
+#  prog   = xine
+#  button = LiveTV
+#  config = ????????
+#end
+
+# jump to Title Menu
 begin
-prog = xine
-button = ChanDown
-repeat = 3
-config = EventPrior
+  prog   = xine
+  button = DVDMenu
+  config = RootMenu
 end
 
+#<><><><><><><><><><><><><><><><><> Xine Stream Position <><><><>
+
+# set position in current stream
+
 begin
-prog = xine
-button = More
-repeat = 3
-config = OSDStreamInfos
-end 
+  prog   = xine
+  button = Zero
+  config = SetPosition0%
+end
+
+begin
+  prog   = xine
+  button = One
+  config = SetPosition10%
+end
+
+begin
+  prog   = xine
+  button = Two
+  config = SetPosition20%
+end
+
+begin
+  prog   = xine
+  button = Three
+  config = SetPosition30%
+end
+
+begin
+  prog   = xine
+  button = Four
+  config = SetPosition40%
+end
+
+begin
+  prog   = xine
+  button = Five
+  config = SetPosition50%
+end
+
+begin
+  prog   = xine
+  button = Six
+  config = SetPosition60%
+end
+
+begin
+  prog   = xine
+  button = Seven
+  config = SetPosition70%
+end
+
+begin
+  prog   = xine
+  button = Eight
+  config = SetPosition80%
+end
+
+begin
+  prog   = xine
+  button = Nine
+  config = SetPosition90%
+end
+
+#<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
+
+# decrement playback speed (slow motion slowdown)
+begin
+  prog   = xine
+  button = Star
+  config = SpeedSlower
+end
+
+# increment playback speed (slow motion speedup)
+begin
+  prog   = xine
+  button = Hash
+  config = SpeedFaster
+end
+
+# reset playback speed
+begin
+  prog   = xine
+  button = Clear
+  config = SpeedReset
+end
+
+# set position to -30 seconds in current stream     config = SeekRelative-30
+# set position to +30 seconds in current stream     config = SeekRelative+30
+# eject the current medium                          config = Eject
+# zoom in                                           config = ZoomIn
+# zoom out                                          config = ZoomOut
+# fullscreen toggle                                 config = ToggleFullscreen
 
+##
+# End of xine .
+##
-- 
cgit v0.12


From e0745cb76cc8eda2decea99ea693354cfd9980bf Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Thu, 30 Jul 2009 22:44:48 -0700
Subject: Myth2iPod:Adds m2iweb.php to allow for deletion of unwanted videos.

---
 abs/extra-testing/myth2ipod/PKGBUILD          |   5 +-
 abs/extra-testing/myth2ipod/m2iweb.php        | 157 ++++++++++++++++++++++++++
 abs/extra-testing/myth2ipod/myth2ipod.install |   8 +-
 3 files changed, 162 insertions(+), 8 deletions(-)
 create mode 100755 abs/extra-testing/myth2ipod/m2iweb.php

diff --git a/abs/extra-testing/myth2ipod/PKGBUILD b/abs/extra-testing/myth2ipod/PKGBUILD
index 80a8613..bfb7c91 100755
--- a/abs/extra-testing/myth2ipod/PKGBUILD
+++ b/abs/extra-testing/myth2ipod/PKGBUILD
@@ -1,12 +1,12 @@
 pkgname=myth2ipod
 pkgver=0.2
-pkgrel=17
+pkgrel=18
 arch=("i686")
 pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
 url="myth2ipod.com"
 depends=('gpac' 'nuvexport' )
 install="myth2ipod.install"
-source=( myth2ipod iPod.pm myth2ipod-userjob.sh)
+source=( myth2ipod iPod.pm myth2ipod-userjob.sh m2iweb.php)
 
 
 build() {
@@ -14,6 +14,7 @@ build() {
 	install -D -m 755 myth2ipod $startdir/pkg/usr/bin/myth2ipod
 	install -D -m 755 myth2ipod-userjob.sh /$startdir/pkg/usr/bin/myth2ipod-userjob.sh
 	install -D -m755 iPod.pm $startdir/pkg/usr/share/nuvexport/export/ffmpeg/iPod.pm
+	install -D -m755 m2iweb.php $startdir/pkg/myth/ipodfeed
 
 
 }
diff --git a/abs/extra-testing/myth2ipod/m2iweb.php b/abs/extra-testing/myth2ipod/m2iweb.php
new file mode 100755
index 0000000..a8a9e4d
--- /dev/null
+++ b/abs/extra-testing/myth2ipod/m2iweb.php
@@ -0,0 +1,157 @@
+<?
+//archive.php
+// based on m2iweb.php by http://anthony.lusby.us/m2iweb/
+//release 0.1
+//10/05/07
+?>
+
+<html>
+<head>
+    <title>MythWeb - Archive Recordings</title>
+
+    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+
+    <script type="text/javascript" src="/mythweb/js/init.js"></script>
+    <script type="text/javascript" src="/mythweb/js/browser.js"></script>
+    <script type="text/javascript" src="/mythweb/js/utils.js"></script>
+
+    <script type="text/javascript" src="/mythweb/js/mouseovers.js"></script>
+    <script type="text/javascript" src="/mythweb/js/visibility.js"></script>
+    <script type="text/javascript" src="/mythweb/js/ajax.js"></script>
+
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/style.css" />
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/header.css" />
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/menus.css" />
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/programming.css" />
+
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/status.css" />
+
+</head>
+
+<body>
+
+<div id="page_header" class="clearfix">
+    <div id="logo_box">
+        <a id="mythtv_logo" href="/mythweb/">
+        <img src="/mythweb/skins/default/img/mythtv-logo.png" 
+width="174" height="48" border="0" alt="MythTV" class="alpha_png">
+        </a>
+
+    </div>
+    <div id="sections">
+        <a id="tv_link" href="/mythweb/tv" onmouseover="return help_text('TV functions, including recorded programs.')" onmouseout="return help_text()">
+            <img src="/mythweb/skins/default/img/tv.png" width="48" height="48" class="alpha_png" alt="MythTV"/>
+        </a>
+        <a id="video_link" href="/mythweb/video" onmouseover="return help_text('MythVideo on the web.')" onmouseout="return help_text()">
+            <img src="/mythweb/skins/default/img/video.png" width="48" height="48" class="alpha_png" alt="MythVideo" />
+        </a>
+        <a id="weather_link" href="/mythweb/weather" onmouseover="return help_text('MythWeb Weather.')" onmouseout="return help_text()">
+            <img src="/mythweb/skins/default/img/weather.png" width="48" height="48" class="alpha_png" alt="MythWeather" />
+        </a>
+        <a id="settings_link" href="/mythweb/settings" onmouseover="return help_text('Edit MythWeb and some MythTV settings.')" onmouseout="return help_text()">
+            <img src="/mythweb/skins/default/img/settings.png" width="48" height="48" class="alpha_png" alt="Settings" />
+        </a>
+    </div>
+    <div id="extra_header">
+        <div id="help_wrapper">
+            <div id="help_box">
+
+                <div id="help_text_default">
+                MythWeb: Mon May 16, 2006, 09:09 PM                </div>
+                <div id="help_text">
+                </div>
+            </div>
+        </div>
+        <div id="search" >
+            <form action="/mythweb/tv/search" method="post">
+
+                <div id="simple_search">
+                    <input id="search_text" type="text" name="searchstr" size="15" value="">
+                    <input id="search_submit" type="submit" class="submit" value="Search"> (<a href="/mythweb/tv/search">Advanced</a>)
+                </div>
+                <div id="search_options">
+                </div>
+            </form>
+
+        </div>
+    </div>
+</div>
+
+
+<table width="100%" border="0" cellspacing="2" cellpadding="0">
+<tr>
+
+    <td colspan="2" class="menu menu_border_t menu_border_b"><table class="body" width="100%" border="0" 
+
+cellspacing="2" cellpadding="2">
+        <tr>
+            <td><div id="command_choices">
+                    <a href="/mythweb/" id="category_legend" onmouseover="popup('category_legend'); return true;">MythTV:</a> &nbsp; &nbsp;
+
+                    <a href="/mythweb/tv/list">Listings</a>
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/tv/searches">Searches</a>
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/tv/schedules">Recording Schedules</a>
+                    (<a href="/mythweb/tv/schedules/manual">Manual</a>,
+                    <a href="/mythweb/tv/schedules/custom">Custom</a>)
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/tv/upcoming">Upcoming Recordings</a>
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/tv/recorded">Recorded Programs</a>
+                    &nbsp; | &nbsp;
+                    <a href="/ipodfeed/m2iweb.php">Myth2iPod</a>
+                    &nbsp; | &nbsp;
+                    <a href="/archive/archive.php">Myt2XviD3</a>
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/status">Backend Status</a>
+                </div></td>
+        </tr>
+        </table></td>
+
+</tr>
+</table>
+<table width="100%" border="0" cellpadding="4" cellspacing="2" class="list small">
+<tr><td colspan="10" class="list_separator">View information and delete myth2ipod recordings.</td></tr>
+<?php
+if (isset($_REQUEST['delete'])){
+$delete = $_REQUEST['delete'];
+if ($delete AND substr($delete, -9) == ".ipod.xml") {
+  echo '<br><font color="red">';
+  echo $delete;
+  unlink($delete) or print(" failed to be ");
+  echo 'deleted<br>';
+  $deletetoo = substr($delete, 0, -3)."mp4";
+  echo $deletetoo;
+  unlink($deletetoo) or print(" failed to be ");
+  echo 'deleted<br><br><a href="?">Home</a>';
+}
+}
+else {
+  $i=1;
+  foreach (glob("*.ipod.xml") as $file) {
+    $lines = file($file);
+    echo '<tr class="recorded"><td class="list">&nbsp;</td><td>';
+    echo '<font color="';
+    if (!file_exists(substr($file, 0, -3)."mp4")) {
+      echo "red";
+    }
+    echo '">'.$i.'</font>';
+    echo "</td></td><td><a href=".'"'.substr($file, 0, -3)."mp4".'"'."style='color:white'>".strip_tags($lines[1])."</a></td><td>".strip_tags($lines[7])."</td><td>".strip_tags($lines[6])."</td><td nowrap>".filesizeparse(filesize(substr($file, 0, -3)."mp4"))."</td><td>".'<a href="?delete='.$file.'" onclick="return confirm('."'Are you sure you want to delete?'".')">Delete</a>'."</td>".'<td class="list">&nbsp;</td>'."</tr>";
+    $i++;
+  }
+}
+function filesizeparse($size){
+  $i=0;
+  $iec = array(" B", " KB", " MB", " GB", " TB");
+  while (($size/1024)>1) {
+   $size=$size/1024;
+   $i++;
+  }
+  return substr($size,0,strpos($size,'.')+3).$iec[$i];
+}
+?>
+</table>
+</body>
+</html>
+</code>
diff --git a/abs/extra-testing/myth2ipod/myth2ipod.install b/abs/extra-testing/myth2ipod/myth2ipod.install
index 43e3e78..4a7e046 100755
--- a/abs/extra-testing/myth2ipod/myth2ipod.install
+++ b/abs/extra-testing/myth2ipod/myth2ipod.install
@@ -18,21 +18,17 @@ post_install() {
 	ln -s /myth/ipodfeed /data/srv/httpd/htdocs/ipodfeed
 	cp /usr/bin/myth2ipod /tmp
 	sed -e "s/REPLACEME/$hostname/g" /tmp/myth2ipod > /usr/bin/myth2ipod
+	chown -R mythtv:http /myth/ipodfeed
 	
 	
 }
 
 post_upgrade() {
- 
-	
-	mkdir /myth/ipodfeed
-	chown mythtv:users /myth/ipodfeed
-	ln -s /myth/ipodfeed /data/srv/httpd/htdocs/ipodfeed
 	 /usr/bin/myth2ipod -rebuild
 }
 
 post_remove() {
-  post_install
+ 	rm -fr /data/srv/httpd/htdocs/ipodfeed 
 }
 
 op=$1
-- 
cgit v0.12


From d93b37285e6ac8c52254e0dc550e0b798f490fbd Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Thu, 30 Jul 2009 22:49:20 -0700
Subject: Myt2XviD3:Added archive.php to allow for the deletion of unwanted
 videos.

---
 abs/extra-testing/myt2xvid3/PKGBUILD          |   5 +-
 abs/extra-testing/myt2xvid3/archive.php       | 159 ++++++++++++++++++++++++++
 abs/extra-testing/myt2xvid3/myt2xvid3.install |  10 +-
 3 files changed, 164 insertions(+), 10 deletions(-)
 create mode 100644 abs/extra-testing/myt2xvid3/archive.php

diff --git a/abs/extra-testing/myt2xvid3/PKGBUILD b/abs/extra-testing/myt2xvid3/PKGBUILD
index ee20990..231d0b3 100755
--- a/abs/extra-testing/myt2xvid3/PKGBUILD
+++ b/abs/extra-testing/myt2xvid3/PKGBUILD
@@ -1,18 +1,19 @@
 pkgname=myt2xvid3
 pkgver=0.1
-pkgrel=1
+pkgrel=2
 arch=("i686")
 pkgdesc="A multimedia framework based on the MPEG-4 Systems standard"
 url="http://www.knoppmythwiki.org/index.php?page=XvidEncoding"
 depends=('nuvexport')
 install="myt2xvid3.install"
-source=( myt2xvid3 myt2xvid3-userjob.sh)
+source=( myt2xvid3 myt2xvid3-userjob.sh archive.php)
 
 
 build() {
 	cd $startdir/src
 	install -D -m 755 myt2xvid3 $startdir/pkg/usr/bin/myt2xvid3
 	install -D -m 755 myt2xvid3-userjob.sh /$startdir/pkg/usr/bin/myt2xvid3-userjob.sh
+	install -D -m 755 archive.php /myth/video/archive/archive.php
 
 
 }
diff --git a/abs/extra-testing/myt2xvid3/archive.php b/abs/extra-testing/myt2xvid3/archive.php
new file mode 100644
index 0000000..f970868
--- /dev/null
+++ b/abs/extra-testing/myt2xvid3/archive.php
@@ -0,0 +1,159 @@
+<?
+//archive.php
+// based on m2iweb.php by http://anthony.lusby.us/m2iweb/
+//release 0.1
+//10/05/07
+?>
+
+<html>
+<head>
+    <title>MythWeb - Archive Recordings</title>
+
+    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+
+    <script type="text/javascript" src="/mythweb/js/init.js"></script>
+    <script type="text/javascript" src="/mythweb/js/browser.js"></script>
+    <script type="text/javascript" src="/mythweb/js/utils.js"></script>
+
+    <script type="text/javascript" src="/mythweb/js/mouseovers.js"></script>
+    <script type="text/javascript" src="/mythweb/js/visibility.js"></script>
+    <script type="text/javascript" src="/mythweb/js/ajax.js"></script>
+
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/style.css" />
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/header.css" />
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/menus.css" />
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/programming.css" />
+
+    <link rel="stylesheet" type="text/css" href="/mythweb/skins/default/status.css" />
+
+</head>
+
+<body>
+
+<div id="page_header" class="clearfix">
+    <div id="logo_box">
+        <a id="mythtv_logo" href="/mythweb/">
+        <img src="/mythweb/skins/default/img/mythtv-logo.png" 
+width="174" height="48" border="0" alt="MythTV" class="alpha_png">
+        </a>
+
+    </div>
+    <div id="sections">
+        <a id="tv_link" href="/mythweb/tv" onmouseover="return help_text('TV functions, including recorded programs.')" onmouseout="return help_text()">
+            <img src="/mythweb/skins/default/img/tv.png" width="48" height="48" class="alpha_png" alt="MythTV"/>
+        </a>
+        <a id="video_link" href="/mythweb/video" onmouseover="return help_text('MythVideo on the web.')" onmouseout="return help_text()">
+            <img src="/mythweb/skins/default/img/video.png" width="48" height="48" class="alpha_png" alt="MythVideo" />
+        </a>
+        <a id="weather_link" href="/mythweb/weather" onmouseover="return help_text('MythWeb Weather.')" onmouseout="return help_text()">
+            <img src="/mythweb/skins/default/img/weather.png" width="48" height="48" class="alpha_png" alt="MythWeather" />
+        </a>
+        <a id="settings_link" href="/mythweb/settings" onmouseover="return help_text('Edit MythWeb and some MythTV settings.')" onmouseout="return help_text()">
+            <img src="/mythweb/skins/default/img/settings.png" width="48" height="48" class="alpha_png" alt="Settings" />
+        </a>
+    </div>
+    <div id="extra_header">
+        <div id="help_wrapper">
+            <div id="help_box">
+
+                <div id="help_text_default">
+                MythWeb: Mon May 16, 2006, 09:09 PM                </div>
+                <div id="help_text">
+                </div>
+            </div>
+        </div>
+        <div id="search" >
+            <form action="/mythweb/tv/search" method="post">
+
+                <div id="simple_search">
+                    <input id="search_text" type="text" name="searchstr" size="15" value="">
+                    <input id="search_submit" type="submit" class="submit" value="Search"> (<a href="/mythweb/tv/search">Advanced</a>)
+                </div>
+                <div id="search_options">
+                </div>
+            </form>
+
+        </div>
+    </div>
+</div>
+
+
+<table width="100%" border="0" cellspacing="2" cellpadding="0">
+<tr>
+
+    <td colspan="2" class="menu menu_border_t menu_border_b"><table class="body" width="100%" border="0" 
+
+cellspacing="2" cellpadding="2">
+        <tr>
+            <td><div id="command_choices">
+                    <a href="/mythweb/" id="category_legend" onmouseover="popup('category_legend'); return true;">MythTV:</a> &nbsp; &nbsp;
+
+                    <a href="/mythweb/tv/list">Listings</a>
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/tv/searches">Searches</a>
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/tv/schedules">Recording Schedules</a>
+                    (<a href="/mythweb/tv/schedules/manual">Manual</a>,
+                    <a href="/mythweb/tv/schedules/custom">Custom</a>)
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/tv/upcoming">Upcoming Recordings</a>
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/tv/recorded">Recorded Programs</a>
+                    &nbsp; | &nbsp;
+                    <a href="/ipodfeed/m2iweb.php">Myth2iPod</a>
+                    &nbsp; | &nbsp;
+                    <a href="/archive/archive.php">Myt2XviD3</a>
+                    &nbsp; | &nbsp;
+                    <a href="/mythweb/status">Backend Status</a>
+                </div></td>
+        </tr>
+        </table></td>
+
+</tr>
+</table>
+
+<table width="100%" border="0" cellpadding="4" cellspacing="2" class="list small">
+<tr><td colspan="10" class="list_separator">View and delete recordings transcoded to XviD via Myt2XviD3.</td></tr>
+<?php
+if (isset($_REQUEST['delete'])){
+	$delete = $_REQUEST['delete'];
+	if ($delete AND substr($delete, -9) == ".XviD.xml") {
+  echo '<tr><td colspan="10" class="list_separator">
+        <font color="red">';
+  echo $delete;
+  unlink($delete) or print(" failed to be ");
+  echo ' has been deleted, ';
+  $deletetoo = substr($delete, 0, -3)."avi";
+  echo $deletetoo;
+  unlink($deletetoo) or print(" failed to be ");
+  echo ' has been deleted.';
+  echo'</td></tr>';
+	}
+}
+  $i=1;
+  foreach (glob("*.XviD.xml") as $file) {
+    $lines = file($file);
+    echo '<tr class="recorded"><td class="list">&nbsp;</td><td>';
+    echo '<font color="';
+    if (!file_exists(substr($file, 0, -3)."avi")) {
+      echo "red";
+    }
+    echo '">'.$i.'</font>';
+    echo "</td></td><td><a href=".'"'.substr($file, 0, -3)."avi".'"'."style='color:white'>".strip_tags($lines[1])."</a></td><td>".strip_tags($lines[7])."</td><td>".strip_tags($lines[6])."</td><td nowrap>".filesizeparse(filesize(substr($file, 0, -3)."avi"))."</td><td>".'<a href="?delete='.$file.'" onclick="return confirm('."'Are you sure you want to delete?'".')">Delete</a>'."</td>".'<td class="list">&nbsp;</td>'."</tr>";
+    $i++;
+  }
+//}
+
+function filesizeparse($size){
+  $i=0;
+  $iec = array(" B", " KB", " MB", " GB", " TB");
+  while (($size/1024)>1) {
+   $size=$size/1024;
+   $i++;
+  }
+  return substr($size,0,strpos($size,'.')+3).$iec[$i];
+}
+?>
+</table>
+</body>
+</html>
diff --git a/abs/extra-testing/myt2xvid3/myt2xvid3.install b/abs/extra-testing/myt2xvid3/myt2xvid3.install
index abc4256..f363fa2 100755
--- a/abs/extra-testing/myt2xvid3/myt2xvid3.install
+++ b/abs/extra-testing/myt2xvid3/myt2xvid3.install
@@ -18,21 +18,15 @@ post_install() {
 	ln -s /myth/video/archive /data/srv/httpd/htdocs/archive
 	mv /usr/bin/myt2xvid3 /tmp
 	sed -e "s/REPLACEME/$HOSTNAME/g" /tmp/myt2xvid3 > /usr/bin/myt2xvid3
-	
-	
+	chown -R mythtv:http /myth/video/archive
 }
 
 post_upgrade() {
- 
-	
-	mkdir /myth/video/archive
-	chown mythtv:users /myth/video/archive
-	ln -s /myth/video/archive /data/srv/httpd/htdocs/archive
 	/usr/bin/myth2xvid -rebuild
 }
 
 post_remove() {
-  post_install
+ 	rm -fr /data/srv/http/htdocs/archive 
 }
 
 op=$1
-- 
cgit v0.12


From 034b43681d72c72120deff06e5577e0d078597af Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Thu, 30 Jul 2009 23:35:13 -0700
Subject: MythWeb:Adds myth2ipod and myt2xvid3 in headers.

---
 abs/core-testing/mythtv/stable/mythweb/PKGBUILD    |  5 +++--
 .../mythtv/stable/mythweb/transcoders.patch        | 23 ++++++++++++++++++++++
 2 files changed, 26 insertions(+), 2 deletions(-)
 create mode 100644 abs/core-testing/mythtv/stable/mythweb/transcoders.patch

diff --git a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
index 3e3d172..20e9e3d 100644
--- a/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
+++ b/abs/core-testing/mythtv/stable/mythweb/PKGBUILD
@@ -1,13 +1,13 @@
 pkgname=mythweb
 pkgver=0.21
-pkgrel=19
+pkgrel=20
 pkgdesc="Web interface for MythTV's backend"
 arch=('i686' 'x86_64')
 url="http://www.mythtv.org"
 license=('GPL')
 depends=("mythtv>=${pkgver}" 'lighttpd' 'php' 'local-website')
 install=mythweb.install
-source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2" wiiweb.tar.bz2)
+source=("ftp://ftp.knoppmyth.net/R6/sources/mythplugins-$pkgver-fixes.tar.bz2" wiiweb.tar.bz2 transcoders.patch)
 md5sums=('1b3e2a97b7ecf7373e162fe20b6faabe')
 groups=('mythtv-extras')
 DOCROOT=/data/srv/httpd/htdocs/mythweb
@@ -26,6 +26,7 @@ build() {
    # Workaround for LIGHTTPD bug in mythweb.pl (affects DB queries)
    cd $startdir/src/mythplugins/$pkgname/
    patch -p0 < $startdir/patch/mythweb.pl.diff
+   patch -p1 < $startdir/transcoders.patch
 
    cp -r $startdir/src/mythplugins/$pkgname/* $startdir/pkg/$DOCROOT
 #   cp $startdir/src/mythplugins-$pkgver/$pkgname/data/.htaccess $startdir/pkg/$DOCROOT
diff --git a/abs/core-testing/mythtv/stable/mythweb/transcoders.patch b/abs/core-testing/mythtv/stable/mythweb/transcoders.patch
new file mode 100644
index 0000000..c1aeb6c
--- /dev/null
+++ b/abs/core-testing/mythtv/stable/mythweb/transcoders.patch
@@ -0,0 +1,23 @@
+diff -ruaN mythweb.orig/modules/_shared/lang/English.lang mythweb/modules/_shared/lang/English.lang
+--- mythweb.orig/modules/_shared/lang/English.lang	2009-01-09 02:44:23.000000000 +0000
++++ mythweb/modules/_shared/lang/English.lang	2009-07-31 06:29:11.000000000 +0000
+@@ -816,3 +816,5 @@
+ "Year"
+ "Yes"
+ "Yesterday"
++"Myth2iPod"
++"Myt2XviD3"
+diff -ruaN mythweb.orig/modules/_shared/tmpl/default/header.php mythweb/modules/_shared/tmpl/default/header.php
+--- mythweb.orig/modules/_shared/tmpl/default/header.php	2009-01-09 02:44:23.000000000 +0000
++++ mythweb/modules/_shared/tmpl/default/header.php	2009-07-31 06:28:54.000000000 +0000
+@@ -171,6 +171,10 @@
+                     <a href="<?php echo root ?>tv/recorded"><?php echo t('Recorded Programs') ?></a>
+                     &nbsp; | &nbsp;
+                     <a href="<?php echo root ?>status"><?php echo t('Backend Status') ?></a>
++                    &nbsp; | &nbsp;
++                    <a href="/ipodfeed/m2iweb.php"><?php echo t('Myth2iPod') ?></a>
++                    &nbsp; | &nbsp;
++                    <a href="/archive/archive.php"><?php echo t('Myt2XviD3') ?></a>
+ <?php if ($Modules['backend_log']) { ?>
+                     &nbsp; | &nbsp;
+                     <a href="<?php echo root ?>backend_log"><?php echo t('Backend Logs') ?></a>
-- 
cgit v0.12


From cabf71982267a825d98e8d39f6bb3be7c693e2ad Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Thu, 30 Jul 2009 23:53:55 -0700
Subject: xscreensaver:bumped version to recompile for new libjpeg.

---
 abs/extra-testing/xscreensaver/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/extra-testing/xscreensaver/PKGBUILD b/abs/extra-testing/xscreensaver/PKGBUILD
index d39aea7..2eb7b7c 100644
--- a/abs/extra-testing/xscreensaver/PKGBUILD
+++ b/abs/extra-testing/xscreensaver/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=xscreensaver
 pkgver=5.08
-pkgrel=5
+pkgrel=6
 pkgdesc="Screen saver and locker for the X Window System"
 arch=('i686' 'x86_64')
 url="http://www.jwz.org/xscreensaver/"
-- 
cgit v0.12


From 7accc0f042acdfdca9f067b1d4011d6ac01b1a74 Mon Sep 17 00:00:00 2001
From: Cecil Hugh Watson <knoppmyth@gmail.com>
Date: Fri, 31 Jul 2009 00:23:41 -0700
Subject: nvidia:bumped to recompile.

---
 abs/core-testing/nvidia/PKGBUILD | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/abs/core-testing/nvidia/PKGBUILD b/abs/core-testing/nvidia/PKGBUILD
index e8469c8..252a746 100644
--- a/abs/core-testing/nvidia/PKGBUILD
+++ b/abs/core-testing/nvidia/PKGBUILD
@@ -4,7 +4,7 @@
 pkgname=nvidia
 pkgver=185.18.14
 _kernver='2.6.28-LinHES'
-pkgrel=3
+pkgrel=4
 pkgdesc="NVIDIA drivers for kernel26."
 arch=('i686' 'x86_64')
 [ "$CARCH" = "i686"   ] && ARCH=x86
-- 
cgit v0.12