| version 1.2, 2006/08/12 01:14:53 |
version 1.3, 2007/02/08 20:04:03 |
|
|
| #!/usr/bin/perl -Tw |
#!/usr/bin/perl -Tw |
| # $RedRiver$ |
# $RedRiver: mixer.pl,v 1.2 2006/08/12 00:14:53 andrew Exp $ |
| ######################################################################## |
######################################################################## |
| # Mixer.pl *** Changes volume on the MP3 player |
# Mixer.pl *** Changes volume on the MP3 player |
| # |
# |
|
|
| print "Content-Type: text/html\n\n"; |
print "Content-Type: text/html\n\n"; |
| print "<html>\n<head>\n\t<meta HTTP-EQUIV='Pragma' CONTENT='no-cache'> "; |
print "<html>\n<head>\n\t<meta HTTP-EQUIV='Pragma' CONTENT='no-cache'> "; |
| |
|
| my $New_Vol = "$Cur_Vol_Left&$Cur_Vol_Right"; |
my ($prefix, $New_Vol_Left, $New_Vol_Right) = split /\&/, $ENV{'QUERY_STRING'}; |
| if ($ENV{'QUERY_STRING'}) { |
if ($New_Vol_Left || $New_Vol_Right) { |
| print "<meta HTTP-EQUIV=Refresh CONTENT=\"1; URL=mixer.pl\">"; |
$New_Vol_Left =~ s/%(..)/pack("c",hex($1))/ge; |
| $New_Vol = $ENV{'QUERY_STRING'}; |
$New_Vol_Right =~ s/%(..)/pack("c",hex($1))/ge; |
| |
print "<meta HTTP-EQUIV=Refresh CONTENT=\"1; URL=mixer.pl?" . EncodeURL($prefix) . "\">"; |
| } |
} |
| |
|
| |
$New_Vol_Left ||= $Cur_Vol_Left; |
| |
$New_Vol_Right ||= $Cur_Vol_Right; |
| |
|
| |
if ($New_Vol_Left =~ /(\d+)/) { $New_Vol_Left = $1; } |
| |
if ($New_Vol_Right =~ /(\d+)/) { $New_Vol_Right = $1; } |
| |
|
| |
if ($prefix) { |
| |
$prefix =~ s/%(..)/pack("c",hex($1))/ge; |
| |
} else { |
| |
$prefix =''; |
| |
} |
| |
|
| print <<EOL; |
print <<EOL; |
| |
|
| <style type="text/css" media="screen"> |
<style type="text/css" media="screen"> |
|
|
| |
|
| Print_Nav(); |
Print_Nav(); |
| |
|
| |
unless ($prefix) { |
| print "Volume - "; |
print "Volume - "; |
| |
|
| |
#print "New_Vol $New_Vol_Left:$New_Vol_Right<BR>\n"; |
| |
|
| #»print "New_Vol $New_Vol<BR>\n"; |
|
| $New_Vol =~ /(\d+)&(\d+)/; |
|
| my $New_Vol_Left = $1; |
|
| my $New_Vol_Right = $2; |
|
| |
|
| my @nav; |
my @nav; |
| foreach my $vol (@Vols) { |
foreach my $vol (@Vols) { |
| if ($$vol[0] == $New_Vol_Left) { |
if ($$vol[0] == $New_Vol_Left) { |
| push @nav, "<B><A HREF='$me?$$vol[0]&$$vol[1]' class=up>$$vol[0]</A></B>\n"; |
push @nav, "<B><A HREF='$me?" . EncodeURL($prefix) . '&' . "$$vol[0]&$$vol[1]' class=up>$$vol[0]</A></B>\n"; |
| } elsif ($$vol[0] < $New_Vol_Left) { |
} elsif ($$vol[0] < $New_Vol_Left) { |
| push @nav, "<A HREF='$me?$$vol[0]&$$vol[1]' class=up>}</A>\n"; |
push @nav, "<A HREF='$me?" . EncodeURL($prefix) . '&' . "$$vol[0]&$$vol[1]' class=up>}</A>\n"; |
| } elsif ($$vol[0] > $New_Vol_Left) { |
} elsif ($$vol[0] > $New_Vol_Left) { |
| push @nav, "<A HREF='$me?$$vol[0]&$$vol[1]' class=down>]</A>\n"; |
push @nav, "<A HREF='$me?" . EncodeURL($prefix) . '&' . "$$vol[0]&$$vol[1]' class=down>]</A>\n"; |
| } |
} |
| #print "$vol - $$vol[0] - $$vol[1]<br>\n"; |
#print "$vol - $$vol[0] - $$vol[1]<br>\n"; |
| } |
} |
|
|
| #print "<br>\n"; |
#print "<br>\n"; |
| |
|
| Set_Vol($Cur_Vol_Left, $Cur_Vol_Right, $New_Vol_Left, $New_Vol_Right); |
Set_Vol($Cur_Vol_Left, $Cur_Vol_Right, $New_Vol_Left, $New_Vol_Right); |
| |
} |
| |
|
| print "</body>\n</head>\n</html>\n"; |
print "</body>\n</head>\n</html>\n"; |
| |
|
|
|
| $new_vol = $new_vol_left > $new_vol_right ? $new_vol_left : $new_vol_right; |
$new_vol = $new_vol_left > $new_vol_right ? $new_vol_left : $new_vol_right; |
| } |
} |
| |
|
| #»print "Old: $old_vol - New: $new_vol<br>\n"; |
#print "Old: $old_vol - New: $new_vol<br>\n"; |
| |
|
| my $Set_Vol; |
my $Set_Vol; |
| |
|
| foreach my $vol ($old_vol < $new_vol ? $old_vol..$new_vol : reverse $new_vol..$old_vol) { |
foreach my $vol ($old_vol < $new_vol ? $old_vol..$new_vol : reverse $new_vol..$old_vol) { |
| #»print "$vol<br>\n"; |
#print "$vol<br>\n"; |
| $Set_Vol = `$mixerctl -w outputs.master=$vol,$vol`; |
$Set_Vol = `$mixerctl -w outputs.master=$vol,$vol`; |
| #»print $Set_Vol . "<br>\n"; |
#print $Set_Vol . "<br>\n"; |
| } |
} |
| return $Set_Vol; |
return $Set_Vol; |
| } |
} |
|
|
| { |
{ |
| open FILE, 'nav.inc' or die "\n\ncouldn't open FILE nav.inc: $!"; |
open FILE, 'nav.inc' or die "\n\ncouldn't open FILE nav.inc: $!"; |
| while (<FILE>) { |
while (<FILE>) { |
| |
s/%PREFIX%/$prefix/g; |
| print; |
print; |
| } |
} |
| close FILE; |
close FILE; |