Index: client/bin/gbq
===================================================================
--- client/bin/gbq	(revision 9dee329f37d11fefa55a14b6d822242678a15d8e)
+++ client/bin/gbq	(revision fc8707b40822059c5b6683c85cf2ea7bf76a89f4)
@@ -1,5 +1,6 @@
 #!/usr/bin/perl
 
-# Written by Jessica Hamrick (C) 2010
+# This script was largely written by Jessica Hamrick (jhamrick), with
+# help from Kyle Brogle (broglek)
 
 use strict;
@@ -10,13 +11,33 @@
 use Getopt::Long;
 
-my $usage = "Usage: gbq [-q QUEUE]\n";
+# usage
+my $usage = <<USAGE;
+Usage: gbq [options] [-q QUEUE]
 
+        -q, --queue             Specify a queue other than the default
+        -h, --help              Print this message
+USAGE
+
+# initialize the variables for the options
 my $q = "";
-GetOptions ('q|queue=s' => \$q);
+my $help = 0;
 
+# parse the options
+GetOptions ('q|queue=s' => \$q,
+            'h|help' => \$help);
+
+# if the -h flag was passed, then print the usage and exit
+if ($help) {
+    print $usage;
+    exit 0;
+}
+
+# if the -q option is not specified, then assume we're using the
+# default queue
 if (!$q) {
     $q = "DEFAULT";
 }
 
+# set configuration path, and complain if it doesn't exist
 my $configpath = "$ENV{'HOME'}/.gutenbach/$q";
 if (! -e $configpath) {
@@ -25,6 +46,10 @@
 }
 
+# initialize the host and queue variables: host holds the address for
+# the machine on which the remote queue runs, and queue holds the name
+# of the printer
 my ($host, $queue);
 
+# load the configuration file (this will set $host and $queue)
 if (-r $configpath) {
     local $/;
@@ -34,25 +59,43 @@
 }
 
+# initialize a new CUPS session
 my $cups = Net::CUPS->new();
+# set the server to the one specified in the config file
 $cups->setServer("$host");
+# set the printer name to the one specified in the config file
 my $printer = $cups->getDestination("$queue");
 
+# if $printer is not defined, then throw an error
 unless( $printer){
     print "Cannot access queue $q...do you have network connectivity and permission to view the queue?\n";
     exit 1;
 }
+
+# print pretty headings and stuff
 print "Queue listing for queue '$queue' on '$host'\n\n";
 printf ("%-8s%-15s%s\n","Job","Owner","Title");
 print "-"x70 . "\n";
+
+# get the list of jobs from the printer
 my @jobs = $printer->getJobs(0, 0);
+
+# initialize the job reference and job id variables
 my ($job_ref, $jobid);
 
+# for each job in the list of jobs:
 foreach $jobid(@jobs) 
 {       
-	$job_ref = $printer->getJob($jobid);
-	my $id = $job_ref->{'id'};
-	my $user = $job_ref->{'user'};
-	my $title = $job_ref->{'title'};
+    # get the reference to the job (so we can get various related
+    # variables)
+    $job_ref = $printer->getJob($jobid);
 
-	printf ("%-8s%-15s%s\n","$id",substr("$user",0,15),substr("$title",0,47));
+    # get the id of the job
+    my $id = $job_ref->{'id'};
+    # get the user who printed the job
+    my $user = $job_ref->{'user'};
+    # get the title of the job
+    my $title = $job_ref->{'title'};
+    
+    # print the job information to the screen
+    printf ("%-8s%-15s%s\n","$id",substr("$user",0,15),substr("$title",0,47));
 }
Index: client/bin/gbq.1
===================================================================
--- client/bin/gbq.1	(revision 7cdd65d046c9006576119fc80e12f3d5a5a37478)
+++ client/bin/gbq.1	(revision e83b2d73be009a7e8433f7486a71db8d8e26d5f6)
@@ -1,3 +1,3 @@
-.TH gbq 1 "27 June 2010"
+.TH gbq 1 "02 October 2010"
 .SH NAME
 gbq \- displays a remote Gutenbach queue
@@ -9,8 +9,13 @@
 the current jobs, along with ID numbers, owners, and filenames.  The
 Gutenbach queue must have previously been added with
-.B gutenbach-client-config
-so that gbq knows which host to use.  If no queue is specified,
-.B gbq
-will try to use the default queue, if one is configured.
+\fBgutenbach-client-config\fR so that gbq knows which host to use.  If
+no queue is specified, \fBgbq\fR will try to use the default queue, if
+one is configured.
+.TP
+\fB\-q\fR, \fB\-\-queue\fR
+Specify a queue other than the default
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Print the help message
 .SH SEE ALSO
 gbr(1), gbrm(1), gutenbach-client-config(1)
Index: client/bin/gbr
===================================================================
--- client/bin/gbr	(revision 600e7130ecdae89be4f21ac6ccd5cdd2580265e5)
+++ client/bin/gbr	(revision 43ddb7a9c1e61aa1f2af00e9eed3da8af9731850)
@@ -1,5 +1,6 @@
 #!/usr/bin/perl
 
-# Written by Jessica Hamrick (C) 2010
+# This script was largely written by Jessica Hamrick (jhamrick), with
+# help from Kyle Brogle (broglek)
 
 use strict;
@@ -10,15 +11,90 @@
 use Getopt::Long;
 use Image::ExifTool qw(ImageInfo);
+use List::Util 'shuffle';
+use File::Find;
 
-my $usage = "Usage: gbr QUEUE FILES\n";
+# the usage for this script
+my $usage = <<USAGE;
+Usage: gbr [options] [-q QUEUE] FILES
 
+        -q, --queue             Specify a queue other than the default
+	-d, --dryrun		Just list what would be done
+        -s, --shuffle           Randomize the order that the songs are queued in
+        -r, --recursive         Recursively find files if a directory is passed in
+        -n, --number NUMBER     Only print NUMBER files, if more than NUMBER are given 
+                                (this will print the first NUMBER files if -s is not given)
+        -h, --help              Print this message
+USAGE
+
+# initialize the variables for the options
 my $q = "";
-GetOptions ('q|queue=s' => \$q);
+my $dryrun = 0;
+my $help = 0;
+my $shuffle = 0;
+my $recursive = 0;
+my $number = 0;
 
+# parse the options
+GetOptions ('q|queue=s' => \$q,
+            'd|dryrun' => \$dryrun,
+            'h|help' => \$help,
+            's|shuffle' => \$shuffle,
+            'r|recursive' => \$recursive,
+            'n|number=i' => \$number);
+
+# if the -h flag was passed, then print the usage and exit
+if ($help) {
+    print $usage;
+    exit 0;
+}
+
+# get the files to print from the arguments
 my @files = @ARGV[0 .. $#ARGV];
+my @allfiles;
 
+# if the recursive flag was passed, then recursively find files
+if ($recursive) {
+
+    # helper function to add a file to the end of the list, but only
+    # if it is a file (and not a directory)
+    sub append {
+        my $name = $File::Find::name;
+	if (-f $name) {
+	    push(@allfiles, $name);
+	}
+    }
+    
+    # recursively find all the files and add them to @allfiles
+    find(\&append, @files);
+
+    # if we're not shuffling the list, then sort the files.  If we are
+    # shuffling the list, then don't bother sorting (since we're going
+    # to shuffle it anyway)
+    unless ($shuffle) { 
+	@files = sort(@allfiles);
+    } else {
+	@files = @allfiles;
+    }
+}
+
+# if the shuffle flag was passed, then shuffle the order of the files
+if ($shuffle) {
+    @files = shuffle(@files);
+}
+
+# if the number flag was specified, then only play the specified
+# number of files
+if ($number > 0 and $number < $#files) {
+    @files = @files[0 .. $number-1]
+}
+
+# if the -q option is not specified, then assume we're using the
+# default queue
 if (!$q){
     $q = "DEFAULT";
 }
+
+# if there are no files specified to print, then show the usage,
+# because the user is Doing It Wrong
 if (!@files) {
     print $usage;
@@ -26,4 +102,5 @@
 }
 
+# set configuration path, and complain if it doesn't exist
 my $configpath = "$ENV{'HOME'}/.gutenbach/$q";
 if (! -e $configpath) {
@@ -32,6 +109,10 @@
 }
 
+# initialize the host and queue variables: host holds the address for
+# the machine on which the remote queue runs, and queue holds the name
+# of the printer
 my ($host, $queue);
 
+# load the configuration file (this will set $host and $queue)
 if (-r $configpath) {
     local $/;
@@ -41,14 +122,28 @@
 }
 
+# initialize a new CUPS session
 my $cups = Net::CUPS->new();
+# set the server to the one specified in the config file
 $cups->setServer("$host");
+# set the printer name to the one specified in the config file
 my $printer = $cups->getDestination("$queue");
+
+# if $printer is not defined, then throw an error
 unless( $printer){
-    print "Cannot access queue $q...do you have network connectivity and permission to view the queue?\n";
+    print "Cannot access queue $q... do you have network connectivity and permission to view the queue?\n";
     exit 1;
 }
+
+# initialize the job id and title variables for use below
 my ($jobid, $title);
 
+# for each file that the user wants to print
 foreach my $file(@files) {
+
+    # check to see if the file is a youtube video.  If it is, then
+    # write the URL to a temporary file, and set the number of copies
+    # on the print job to 42 (this is the dirty hack we have in place
+    # to indicate that the job is a youtube file instead of a normal
+    # file)
     if ($file =~ m|http://www\.youtube\.com/watch\?v=|) {
 	open FILE, ">", "/tmp/gutenbach-youtube" or die "Couldn't create temporary file";
@@ -58,4 +153,9 @@
 	$printer->addOption("copies", 42);
     }
+
+    # otherwise, we assume it's a normal file.  Try to use exiftool's
+    # ImageInfo to find out the tag information about the file (i.e.,
+    # title, artist, and album).  If you can, then rename the job to
+    # reflect those tags.  Otherwise, keep the normal title.
     else {
 	my $fileinfo = ImageInfo($file);
@@ -70,11 +170,23 @@
     }
 
-    $jobid = $printer->printFile($file, $title);
-    
-    if ($jobid) {
-	print "Sent job '$title' (id $jobid)\n";
-    }
-    else {
-	print "Error sending job '$title'\n";
-    }
+    # unless it's a dry run, send the print job, given the file and
+    # the job title
+    unless ($dryrun) {
+	$jobid = $printer->printFile($file, $title);
+
+	# if the printFile command returned a job id, then print that out
+	# for the user to see
+	if ($jobid) {
+	    print "Sent job '$title' (id $jobid)\n";
+	}
+
+	# otherwise, let them know that an error occurred
+	else {
+	    print "Error sending job '$title'\n";
+	}
+
+    # otherwise, just print what we would do
+    } else {
+	print "Would send file '$file' with title '$title'\n";
+    }    
 }
Index: client/bin/gbr.1
===================================================================
--- client/bin/gbr.1	(revision 7cdd65d046c9006576119fc80e12f3d5a5a37478)
+++ client/bin/gbr.1	(revision e83b2d73be009a7e8433f7486a71db8d8e26d5f6)
@@ -1,21 +1,39 @@
-.TH gbr 1 "27 June 2010"
+.TH gbr 1 "02 October 2010"
 .SH NAME
 gbr \- sends a file to a Gutenbach queue
 .SH SYNOPSIS
 .B gbr 
-[-q \fIQUEUE\fR] \fIFILES\fR
+[options] [-q \fIQUEUE\fR] \fIFILES\fR
 .SH DESCRIPTION
 Prints files to a Gutenbach queue, given the queue name and the path
-to the files.  gbr correctly handles pathname expansion, so (for
-example), if you wish to play all .mp3 files in a directory, the
-command `gbr $queue *.mp3` will send each .mp3 as a separate job.  The
-path may also be a URL to a
-.B YouTube 
-video (e.g. http://www.youtube.com/watch?v=foo).  The Gutenbach queue
-must have previously been added with
-.B gutenbach-client-config
-so that gbr knows which host to use.  If no queue is specified,
-.B gbr
-will try to use the default queue, if one is configured.
+to the files.  If no queue is specified with the \fB\-q\fR option,
+then the default queue will be used (which should be specified with
+\fBgutenbach-client-config\fR).  gbr correctly handles pathname
+expansion, so (for example), if you wish to play all .mp3 files in a
+directory, the command `gbr $queue *.mp3` will send each .mp3 as a
+separate job.  The path may also be a URL to a \fBYouTube\fR video
+(e.g. http://www.youtube.com/watch?v=foo).  The Gutenbach queue must
+have previously been added with gutenbach-client-config so that gbr
+knows which host to use.  If no queue is specified, gbr will try to
+use the default queue, if one is configured.
+.TP
+\fB\-q\fR, \fB\-\-queue\fR
+Specify a queue other than the default
+.TP
+\fB\-d\fR, \fB\-\-dryrun\fR
+Just list what would be done
+.TP
+\fB\-s\fR, \fB\-\-shuffle\fR
+Randomize the order that the songs are queued in
+.TP
+\fB\-r\fR, \fB\-\-recursive\fR
+Recursively find files if a directory is passed in
+.TP
+\fB\-n\fR, \fB\-\-number\fR \fINUMBER\fR
+Only print NUMBER files, if more than NUMBER are given (this will
+print the first NUMBER files if -s is not given)
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Print the help message
 .SH SEE ALSO
 gbq(1), gbrm(1), gutenbach-client-config(1)
Index: client/bin/gbrm
===================================================================
--- client/bin/gbrm	(revision 7cdd65d046c9006576119fc80e12f3d5a5a37478)
+++ client/bin/gbrm	(revision fc8707b40822059c5b6683c85cf2ea7bf76a89f4)
@@ -1,5 +1,6 @@
 #!/usr/bin/perl
 
-# Written by Jessica Hamrick (C) 2010
+# This script was largely written by Jessica Hamrick (jhamrick), with
+# help from Kyle Brogle (broglek)
 
 use strict;
@@ -10,13 +11,35 @@
 use Getopt::Long;
 
-my $usage = "Usage: gbq [-q QUEUE] ID\n";
+# usage
+my $usage = <<USAGE;
+Usage: gbq [options] [-q QUEUE] ID
+
+        -q, --queue             Specify a queue other than the default
+        -h, --help              Print this message
+USAGE
+
+# initialize the variables for the options
 my $q = "";
-GetOptions ('q|queue=s' => \$q);
+my $help = 0;
+
+# parse the options
+GetOptions ('q|queue=s' => \$q,
+            'h|help', => \$help);
+
+# if the -h flag was passed, then print the usage and exit
+if ($help) {
+    print $usage;
+    exit 0;
+}
 
 my @ids = @ARGV[0 .. $#ARGV];
 
-if (!$q){
+# if the -q option is not specified, then assume we're using the
+# default queue
+if (!$q) {
     $q = "DEFAULT";
 }
+
+# if there are no ids specified to remove, then print the usage
 if (!@ids) {
     print $usage;
@@ -24,5 +47,5 @@
 }
 
-
+# set configuration path, and complain if it doesn't exist
 my $configpath = "$ENV{'HOME'}/.gutenbach/$q";
 if (! -e $configpath) {
@@ -31,6 +54,10 @@
 }
 
+# initialize the host and queue variables: host holds the address for
+# the machine on which the remote queue runs, and queue holds the name
+# of the printer
 my ($host, $queue);
 
+# load the configuration file (this will set $host and $queue)
 if (-r $configpath) {
     local $/;
@@ -40,42 +67,65 @@
 }
 
+# initialize a new CUPS session
 my $cups = Net::CUPS->new();
+# set the server to the one specified in the config file
 $cups->setServer("$host");
+# set the printer name to the one specified in the config file
 my $printer = $cups->getDestination("$queue");
+
+# if $printer is not defined, then throw an error
 unless( $printer){
     print "Cannot access queue $q...do you have network connectivity and permission to view the queue?\n";
     exit 1;
 }
+
+# get the list of jobs from the printer
 my @jobs = $printer->getJobs(0, 0);
+
+# for each id that we want to remove
 foreach my $id(@ids){
-if ($id eq "all") {
-    foreach $id(@jobs) {
+
+    # if the id is 'all', then we remove all jobs
+    if ($id eq "all") {
+	foreach $id(@jobs) {
+	    cancel_job($id, $printer);
+	}
+    }
+
+    # if the id is 'current', then we remove just the currently
+    # playing job
+    elsif ($id eq "current") {
+	$id = $jobs[0];
 	cancel_job($id, $printer);
     }
-}
-elsif ($id eq "current") {
-    $id = $jobs[0];
-    cancel_job($id, $printer);
-}
-elsif ($id eq "last") {
-    $id = $jobs[-1];
-    cancel_job($id, $printer);
-}
-else {
-    foreach my $item(@jobs) {
-	if($item =~ /$id/){
-	    cancel_job($item, $printer);
+
+    # if the id is 'last', then we remove just the last job
+    elsif ($id eq "last") {
+	$id = $jobs[-1];
+	cancel_job($id, $printer);
+    }
+
+    # otherwise, remove the job based on its actual (numeric) id
+    else {
+	foreach my $item(@jobs) {
+	    if($item =~ /$id/){
+		cancel_job($item, $printer);
+	    }
 	}
     }
 }
-}
 
+# helper function to remove a job
 sub cancel_job {
+    # get the id and printer from the arguments
     my ($id, $printer) = @_;
+    # get the reference to the job
     my $job_ref = $printer->getJob($id);
+    # find the job title (so we can print it out for the user)
     my $title = $job_ref->{'title'};
+    # cancel the job
     $printer->cancelJob($id);
 
+    # print out that we canceled the job
     print "Canceled job '$title' (id $id)\n";
- 
 }
Index: client/bin/gbrm.1
===================================================================
--- client/bin/gbrm.1	(revision 7cdd65d046c9006576119fc80e12f3d5a5a37478)
+++ client/bin/gbrm.1	(revision e83b2d73be009a7e8433f7486a71db8d8e26d5f6)
@@ -1,3 +1,3 @@
-.TH gbrm 1 "27 June 2010"
+.TH gbrm 1 "02 October 2010"
 .SH NAME
 gbrm \- removes jobs from a Gutenbach queue
@@ -7,19 +7,19 @@
 .SH DESCRIPTION
 Removes a single job from a Gutenbach queue, given the job id, which
-can be obtained with the 
-.B gbq
-command.  If 
-.B all
-is used in place of an id, then all jobs are removed from the queue.  If
-.B current 
-is used in place of an id, then the current (top) job is removed from
-the queue.  If
-.B last
-is used in place of an id, then the last job is removed from the
-queue.  The queue must have previously been added with
-.B gutenbach-client-config
-so that gbrm knows which host to use.  If no queue is specified,
-.B gbr
-will try to use the default queue, if one is configured.
+can be obtained with the \fBgbq\fR command.  If no queue is specified
+with the \fB\-q\fR option, then the default queue will be used (which
+should be specified with \fBgutenbach-client-config\fR).  If \fBall\fR
+is used in place of an id, then all jobs are removed from the queue.
+If \fBcurrent\fR is used in place of an id, then the current (top) job
+is removed from the queue.  If \fBlast\fR is used in place of an id,
+then the last job is removed from the queue.  The queue must have
+previously been added with gutenbach-client-config so that gbrm knows
+which host to use.
+.TP
+\fB\-q\fR, \fB\-\-queue\fR
+Specify a queue other than the default
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Print the help message
 .SH SEE ALSO
 gbr(1), gbq(1), gutenbach-client-config(1)
Index: client/bin/gutenbach-client-config
===================================================================
--- client/bin/gutenbach-client-config	(revision 7cdd65d046c9006576119fc80e12f3d5a5a37478)
+++ client/bin/gutenbach-client-config	(revision fc8707b40822059c5b6683c85cf2ea7bf76a89f4)
@@ -1,5 +1,6 @@
 #!/usr/bin/perl
 
-# Written by Jessica Hamrick, (C) 2010
+# This script was largely written by Jessica Hamrick (jhamrick), with
+# help from Kyle Brogle (broglek)
 
 use strict;
@@ -7,12 +8,17 @@
 use Getopt::Long;
 
-my $usage = 
-    "Usage: gutenbach-client-config [-l|--list|-a|--add|-d|--delete] [QUEUE] [--host=HOST]\n" .
-    "\n" .
-    "\t-l, --list\t\tList available queues\n" .
-    "\t-a, --add QUEUE\t\tAdd a queue (must be used with -h)\n" .
-    "\t-d, --delete QUEUE\tDelete a queue)\n" .
-    "\t-h, --host HOST\t\tHostname for the queue\n";
+# the usage for the program
+my $usage = <<USAGE;
+Usage: gutenbach-client-config [options]
 
+	-l, --list		List available queues
+	-a, --add QUEUE		Add a queue (must be used with -h)
+	-d, --delete QUEUE	Delete a queue
+        -s, --set-default QUEUE Set the default queue
+	-h, --host HOST		Hostname for the queue (must be used with -a)
+        -H, --help              Print this message
+USAGE
+
+# initialize the variables that will hold the arguments
 my $list = 0;
 my $add = "";
@@ -20,30 +26,53 @@
 my $host = "";
 my $default = "";
+my $help = 0;
 
+# get the options from the command line
 GetOptions ('l|list' => \$list,
 	    's|set-default=s' => \$default,
             'a|add=s' => \$add,
             'd|delete=s' => \$delete,
-	    'h|host=s' => \$host);
+	    'h|host=s' => \$host,
+            'H|help' => \$help);
 
+# if the -H flag was passed, then print the usage and exit
+if ($help) {
+    print $usage;
+    exit 0;
+}
+
+# set the path where the configuration files live
 my $configpath = "$ENV{'HOME'}/.gutenbach";
 
+# if the configuration path doens't exist, then make it
 if (! -e $configpath) {
     mkdir "$configpath";
 }
-#set given queue to default
+
+# if the 'default' option was specified, then set given queue to
+# default
 if($default and !$add and !$delete and !$list) {
+    # if the specified queue doesn't exist, then throw an error
     unless(-e "$configpath/$default") {
 	print "Error: queue '$default' doesn't exist yet...you should add it first.\n";
 	exit 1;
     }
+    
+    # if there already exists a default, then remove it so we can
+    # replace it with the new default
     if( -e "$configpath/DEFAULT"){
 	unlink("$configpath/DEFAULT") or die "Couldn't remove config file '$configpath/DEFAULT'";
     }
+
+    # check to make sure we can create symlinks
     my $symlink_exists = eval { symlink("",""); 1 };
+
+    # if so, then create the symlink and report it
     if ($symlink_exists){
 	symlink("$configpath/$default","$configpath/DEFAULT");
 	print "Changed default queue to $default.\n";
     }
+
+    # otherwise, throw an error
     else
     {
@@ -52,11 +81,12 @@
     }
 }
-    
-	
 
-# list the existing queues
+# if the 'list' option was specified, then list the existing queues
 elsif ($list and !$add and !$delete and !$default) {
+    # get the config files in the configuration path -- these are the queues
     my @queues = glob("$configpath/*") or die "Couldn't find configuration files at '$configpath'";
 
+    # for each of the queues, load the configuration file and print
+    # the queue name and the host it's on
     print "Queue\t\tHost\n";
     foreach my $q (@queues) {
@@ -74,6 +104,9 @@
 }
 
-# add a new queue
+# if the 'add' option was specified, then add a new queue
 elsif (!$list and $add and !$delete) {
+
+    # make sure there was a host specified as well (otherwise, we
+    # won't know where to print to)
     if (!$host) {
 	print $usage;
@@ -81,8 +114,10 @@
     }
 
+    # if the queue already exists, then print a warning
     if (-e "$configpath/$add") {
 	print "Warning: queue '$add' already exists\n";
     }
 
+    # create the configuration file
     open CONFIG, "> $configpath/$add" or die "Couldn't open config file '$configpath/$add'";
     print CONFIG "\$host = \"$host\";\n";
@@ -93,14 +128,18 @@
 }
 
-# delete an existing queue
+# if the 'delete' option was specified, then delete an existing queue
 elsif (!$list and !$add and $delete) {
+
+    # if the queue doesn't exist, then print an error and exit
     if (! -e "$configpath/$delete") {
-	print "Error: queue '$delete' already exists\n";
+	print "Error: queue '$delete' does not exist\n";
 	exit 1;
     }
 
+    # otherwise, remove the configuration file
     unlink("$configpath/$delete") or die "Couldn't remove config file '$configpath/$delete'";
 }
 
+# otherwise, it's an unrecognized option, so print the usage and exit
 else {
     print $usage;
Index: client/bin/gutenbach-client-config.1
===================================================================
--- client/bin/gutenbach-client-config.1	(revision 7cdd65d046c9006576119fc80e12f3d5a5a37478)
+++ client/bin/gutenbach-client-config.1	(revision e83b2d73be009a7e8433f7486a71db8d8e26d5f6)
@@ -1,8 +1,8 @@
-.TH gutenbach-client-config 1 "27 June 2010"
+.TH gutenbach-client-config 1 "02 October 2010"
 .SH NAME
 gutenbach-client-config \- displays a remote Gutenbach queue
 .SH SYNOPSIS
 .B gutenbach-client-config 
-[-l|--list|-a|--add|-d|--delete|-s|--set-default] [\fIQUEUE\fR] [--host \fIHOST\fR]
+[options]
 .SH DESCRIPTION
 Provides options to add, remove, or list remote Gutenbach queues.  The
@@ -25,16 +25,16 @@
 \fB\-a\fR, \fB\-\-add\fR QUEUE
 Add a remote queue.  Must be used in conjunction with
-.B --host
+.B \fB\-\-host\fR
 .TP
-\fB\-d\fR, \fB\-\-delete\fR QUEUE
-Delete a remote queue.  Must be used in conjunction with
-.B --host
-.
+\fB\-d\fR, \fB\-\-delete\fR QUEUE Delete a remote queue.
+.TP
+\fB\-s\fR, \fB\-\-set\-default\fR QUEUE
+Set the default queue
 .TP
 \fB\-h\fR, \fB\-\-host\fR HOST
 Hostname for the queue
 .TP
-\fB\-s\fR, \fB\-\-set\-default\fR QUEUE
-Set the default queue
+\fB\-H\fR, \fB\-\-help\fR
+Print a help message
 .SH SEE ALSO
 gbr(1), gbrm(1), gbq(1)
Index: unes/README
===================================================================
--- itunes/README	(revision 30beeab008c68e1e024ed39a16b17a5d50ed07a3)
+++ 	(revision )
@@ -1,58 +1,0 @@
------------------
-iTunes -> gutenbach
------------------
-This is a simple little script which sends
-music from an iTunes library to the gutenbach
-lpr server.
-
-* Changelog
-29 Nov 2009 -> changed the name from sipbmp3 to gutenbach
-23 Aug 2009 -> broder spun loop into shell script instead of
-    applescript so that iTunes doesn't hang
-9 Jan 2009 -> price added 'quoted form'
-7 Jan 2009 -> kmill created initial version
-
-* System Requirements
-This script will only work under Mac OS X as
-it uses AppleScript.
-
-* Installation
-There are two parts:
-
-1) Launch the Printer Setup Utility and add
-   an IP Printer with the LPD protocol with
-   the following information:
-    Address: hostname
-    Queue: gutenbach
-   It is not necessary to specify the driver.
-
-   *** Note that you MUST give the printer name as the same name as
-       the queue, NOT the address (which it seems to default to). ***
-
-2) Create the directory ~/Library/iTunes/Scripts
-   and place the scripts you want within.
-
-3) Edit those scripts such, replacing "hostname" with the hostname of
-your printer and "gutenbach" with the printername.
-
-* Usage
-When in iTunes, select the songs which you
-would like to hear in the office, and click
-the script you want from the script menu from
-the menu bar.  The script menu looks like a
-little scroll icon.  There will be no
-feedback beyond the pleasant sounds you now
-hear around you.
-
-* Todo
-As it is, there is no feedback, even in the
-event of failure.  This is decidedly not
-optimal.
-
-* And so...
-Do whatever you want with it.  I'd like to
-have a copy if you extend it.
-
-Kyle Miller
-kmill@mit.edu
-
Index: unes/gutenbach - Get Queue.applescript
===================================================================
--- itunes/gutenbach - Get Queue.applescript	(revision 30beeab008c68e1e024ed39a16b17a5d50ed07a3)
+++ 	(revision )
@@ -1,21 +1,0 @@
--- -----------------
--- iTunes -> gutenbach
--- -----------------
--- This is a simple little script which gets the current queue on gutenbach--
--- Changelog:
---
--- 10 Oct 2009 -> pquimby created this script
---
--- Installation:
--- For installation instructions see the INSTALL file in the snippets/sipbmp3-iTunes folder--
-
---
--- Usage:
---
--- Run this script from iTunes
-
-set message to (do shell script "lpq -Pgutenbach")
-tell application "iTunes"
-	display dialog "gutenbach currently is playing: " & "
-" & message buttons "OK" default button "OK"
-end tell
Index: unes/gutenbach - Queue Music.applescript
===================================================================
--- itunes/gutenbach - Queue Music.applescript	(revision 30beeab008c68e1e024ed39a16b17a5d50ed07a3)
+++ 	(revision )
@@ -1,50 +1,0 @@
--- -----------------
--- iTunes -> gutenbach
--- -----------------
--- This is a simple little script which sends
--- music from an iTunes library to the gutenbach
--- lpr server.
---
--- Changelog:
---
--- 23 Aug 2009 -> broder spun loop into shell script instead of
---     applescript so that iTunes doesn't hang
--- 9 Jan 2009 -> price added 'quoted form'
--- 7 Jan 2009 -> kmill created initial version
---
--- Installation:
---
--- 1) Launch the Printer Setup Utility and add
---    an IP Printer with the LPD protocol with
---    the following information:
---     Address: zygorthian-space-raiders.mit.edu
---     Queue: gutenbach
---    It is not necessary to specify the driver.
---
--- 2) Create the directory ~/Library/iTunes/Scripts
---    and place the "Send to gutenbach.scpt" file
---    within.
---
--- Usage:
---
--- When in iTunes, select the songs which you
--- would like to hear in the office, and click
--- "Send to gutenbach" in the script menu from
--- the menu bar.  The script menu looks like a
--- little scroll icon.  There will be no
--- feedback beyond the pleasant sounds you now
--- hear around you.
-
-set ts to ""
-
-tell application "iTunes"
-	repeat with t in selection
-		if class of t is (file track) then
-			set loc to POSIX path of (get location of t)
-			set ts to ts & " " & (quoted form of loc)
-		end if
-	end repeat
-end tell
-
-set command to "(for t in " & ts & "; do lpr -o raw -Pgutenbach \"$t\"; done) >/dev/null 2>&1 </dev/null &"
-do shell script command
Index: unes/gutenbach - Remove All.applescript
===================================================================
--- itunes/gutenbach - Remove All.applescript	(revision 30beeab008c68e1e024ed39a16b17a5d50ed07a3)
+++ 	(revision )
@@ -1,15 +1,0 @@
--- ------------------
--- iTunes -> gutenbach
--- ------------------
-
--- Changelog:
---
--- 10 Oct 2009 -> pquimby created initial version
---
-
--- For installation instructions see the INSTALL file in the snippets/sipbmp3-iTunes folder--
-
--- Usage:
---  This script will remove all of your songs queued to gutenbach
-
-do shell script "lprm -Pgutenbach -"
Index: unes/gutenbach - Toggle Mute.applescript
===================================================================
--- itunes/gutenbach - Toggle Mute.applescript	(revision 30beeab008c68e1e024ed39a16b17a5d50ed07a3)
+++ 	(revision )
@@ -1,20 +1,0 @@
--- -----------------
--- iTunes -> gutenbach
--- -----------------
-
--- Changelog:
--- 10 Nov 2009 -> pquimby created initial version
-
--- Installation:
--- For installation instructions see the INSTALL file in the snippets/sipbmp3-iTunes folder--
-
--- Usage:
---
--- Running this script will toggle the mute on gutenbach on or off.
-
-tell application "iTunes"
-	set vol to sound volume
-end tell
-
-set command to "/usr/local/bin/remctl hostname volume set " & vol
-do shell script command
Index: unes/gutenbach - Volume Get.applescript
===================================================================
--- itunes/gutenbach - Volume Get.applescript	(revision 30beeab008c68e1e024ed39a16b17a5d50ed07a3)
+++ 	(revision )
@@ -1,20 +1,0 @@
--- ------------------
--- iTunes -> gutenbach
--- ------------------
-
--- Changelog:
---
--- 10 Oct 2009 -> pquimby created initial version
---
-
---For installation instructions see the INSTALL file in the snippets/sipbmp3-iTunes folder
-
--- Usage:
---  This script will get the volume of gutenbach and put it on your iTunes volume scaled to the max value of 31 (which is the max volume for gutenbach at the time this script was written).
-
-
-tell application "iTunes"
-	set currentVolume to (do shell script "/usr/local/bin/remctl hostname volume get")
-	set currentVolume to currentVolume / 31 * 100
-	set the sound volume to currentVolume
-end tell
Index: unes/gutenbach - Volume Set.applescript
===================================================================
--- itunes/gutenbach - Volume Set.applescript	(revision 30beeab008c68e1e024ed39a16b17a5d50ed07a3)
+++ 	(revision )
@@ -1,16 +1,0 @@
--- Changelog:
---
--- 5 April 2009 -> pquimby created initial version
---
-
--- Usage:
---  This script will set the volume of gutenbach (assuming you have remctl) to your iTunes volume scaled to the max value of 31 (which is the max volume for gutenbach at the time this script was written).
-
--- Ex:// If your iTunes volume is set at 50% then you will set the gutenbach volume to .50*31 or roughly 15.
-
-tell application "iTunes"
-	set vol to (sound volume * 31 / 100)
-end tell
-
-set command to "/usr/local/bin/remctl hostname volume set " & vol
-do shell script command
Index: remctl/lib/gutenbach/volume-helper.py
===================================================================
--- remctl/lib/gutenbach/volume-helper.py	(revision bbede33a59239c67b8d4c28ee833d499f3fdb0c2)
+++ remctl/lib/gutenbach/volume-helper.py	(revision 86f0b5bb5906cf68e65fead2442f904440bbcb33)
@@ -27,5 +27,5 @@
 	v = getVolume()
 	newV = percent
-	for i in range(10):
+	for i in range(10+1):
 		frac = i/10
 		tempV = int(v + (newV-v)*frac)
