MPFire hinzugefügt - CGI mpg123 Frontend
Hardwaregraphs und Samba korrigiert makegraphs für alle erweitert die ihr Gateway nicht pingen können -> geht jetzt auf ping.ipfire.org git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@654 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8
@@ -81,7 +81,7 @@ sub updatecpugraph {
|
||||
"GPRINT:iowaitpct:AVERAGE:%3.2lf%%",
|
||||
"GPRINT:iowaitpct:MIN:%3.2lf%%",
|
||||
"GPRINT:iowaitpct:LAST:%3.2lf%%\\j",
|
||||
"STACK:irqpct".$color{"color23"}.":$tr{'irq cpu usage'}",
|
||||
"STACK:irqpct".$color{"color23"}.":IRQ CPU ",
|
||||
"GPRINT:irqpct:MAX:%3.2lf%%",
|
||||
"GPRINT:irqpct:AVERAGE:%3.2lf%%",
|
||||
"GPRINT:irqpct:MIN:%3.2lf%%",
|
||||
@@ -366,15 +366,15 @@ sub updatehddgraph {
|
||||
"--color", "BACK".$color{"color21"},
|
||||
"-t $tr{'harddisk temperature'} ($tr{'graph per'} $tr{$period})",
|
||||
"DEF:temperature=$rrdlog/hddtemp-$disk.rrd:temperature:AVERAGE",
|
||||
"AREA:temperature".$color{"color11"}.":$tr{'hdd temperature in'} C\\j",
|
||||
"LINE2:temperature".$color{"color11"}.":$tr{'hdd temperature in'} C\\j",
|
||||
"COMMENT:$tr{'maximal'}",
|
||||
"COMMENT:$tr{'average'}",
|
||||
"COMMENT:$tr{'minimal'}",
|
||||
"COMMENT:$tr{'current'}\\j",
|
||||
"GPRINT:temperature:MAX:%2.0lf Grad C",
|
||||
"GPRINT:temperature:AVERAGE:%2.0lf Grad C",
|
||||
"GPRINT:temperature:MIN:%2.0lf Grad C",
|
||||
"GPRINT:temperature:LAST:%2.0lf Grad C\\j",
|
||||
"GPRINT:temperature:MAX:%3.0lf Grad C",
|
||||
"GPRINT:temperature:AVERAGE:%3.0lf Grad C",
|
||||
"GPRINT:temperature:MIN:%3.0lf Grad C",
|
||||
"GPRINT:temperature:LAST:%3.0lf Grad C\\j",
|
||||
);
|
||||
$ERROR = RRDs::error;
|
||||
print "Error in RRD::graph for hdd-$disk: $ERROR\n" if $ERROR;
|
||||
|
||||
99
config/mpfire/mpfire.pl
Normal file
@@ -0,0 +1,99 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
use MP3::Tag;
|
||||
use MP3::Info;
|
||||
|
||||
require '/var/ipfire/general-functions.pl';
|
||||
require "${General::swroot}/lang.pl";
|
||||
require "${General::swroot}/header.pl";
|
||||
|
||||
my $filename = "";
|
||||
my %songs = "";
|
||||
my $debug = 0;
|
||||
|
||||
if ($ARGV[0] eq 'scan') {
|
||||
my $command = "find ";
|
||||
chomp $ARGV[1];
|
||||
$command .= "\"$ARGV[1]\"";
|
||||
if ($ARGV[2] eq 'off'){$command .= " -maxdepth 1";}
|
||||
$command .= " -name *.mp3";
|
||||
my @files = `$command`;
|
||||
|
||||
&getExistingSongs();
|
||||
|
||||
foreach (@files){
|
||||
$filename = $_;
|
||||
chomp($filename)
|
||||
&getSongInfo();
|
||||
}
|
||||
open(DATEI, ">${General::swroot}/mpfire/db/songs.db") || die "Kann Datenbank nicht speichern";
|
||||
print DATEI %songs;
|
||||
close(DATEI);
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq 'getdb') {
|
||||
&getExistingSongs();
|
||||
print %songs;
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq 'play') {
|
||||
if ($debug){print "Yes we are called and we will play $ARGV[1]\n";}
|
||||
system("/usr/bin/mpg123 -b 1024 --aggressive -q \"$ARGV[1]\" 2>/dev/null >/dev/null &");
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq 'stop') {
|
||||
my $PID = `ps -ef | grep mpg123 | grep playlist | head -1 | awk '{ print \$2 }'`;
|
||||
if ($debug){print "Stopping $PID\n";}
|
||||
system("kill -KILL $PID");
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq 'volup') {
|
||||
if ($debug){print "Increasing Volume\n";}
|
||||
system("/usr/bin/amixer set Master $ARGV[1]%+ 2>/dev/null >/dev/null");
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq 'voldown') {
|
||||
if ($debug){print "Decreasing Volume\n";}
|
||||
system("/usr/bin/amixer set Master $ARGV[1]%- 2>/dev/null >/dev/null");
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq 'playall') {
|
||||
if ($debug){print "Playing everything\n";}
|
||||
system("/usr/bin/mpg123 -b 1024 --aggressive -Zq@ /var/ipfire/mpfire/playlist 2>/dev/null >/dev/null &");
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq 'pause') {
|
||||
my $PID = `ps -ef | grep mpg123 | grep playlist | head -1 | awk '{ print \$2 }'`;
|
||||
if ($debug){print "Pausing Process $PID\n";}
|
||||
system("kill -STOP $PID");
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq 'resume') {
|
||||
my $PID = `ps -ef | grep mpg123 | grep playlist | head -1 | awk '{ print \$2 }'`;
|
||||
if ($debug){print "Resuming Process $PID\n";}
|
||||
system("kill -CONT $PID");
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq 'next') {
|
||||
if ($debug){print "Next Song\n";}
|
||||
my $PID = `ps -ef | grep mpg123 | grep playlist | head -1 | awk '{ print \$2 }'`;
|
||||
system("kill -SIGINT $PID");
|
||||
}
|
||||
|
||||
sub getSongInfo(){
|
||||
my $mp3 = MP3::Tag->new($filename);
|
||||
my ($title, $track, $artist, $album, $comment, $year, $genre) = $mp3->autoinfo();
|
||||
my $info = get_mp3info($filename);
|
||||
$mp3->close();
|
||||
$songs{$filename} = "|".$artist."|".$title."|".$track."|".$album."|".$year."|".$genre."|".$info->{MM}."|".$info->{SS}."|".$info->{BITRATE}."|".$info->{FREQUENCY}."|".$info->{MODE}."\n";
|
||||
}
|
||||
|
||||
sub getExistingSongs(){
|
||||
open(DATEI, "<${General::swroot}/mpfire/db/songs.db") || die "Keine Datenbank vorhanden";
|
||||
my @Zeilen = <DATEI>;
|
||||
close(DATEI);
|
||||
foreach (@Zeilen){
|
||||
my @Zeile = split(/\|/,$_);
|
||||
$songs{$Zeile[0]} = "|".$Zeile[1]."|".$Zeile[2]."|".$Zeile[3]."|".$Zeile[4]."|".$Zeile[5]."|".$Zeile[6]."|".$Zeile[7]."|".$Zeile[8]."|".$Zeile[9]."|".$Zeile[10]."|".$Zeile[11]."\n";
|
||||
}
|
||||
}
|
||||
@@ -340,7 +340,6 @@ WARNING: translation string unused: this months volume
|
||||
WARNING: translation string unused: this update is already installed
|
||||
WARNING: translation string unused: this weeks volume
|
||||
WARNING: translation string unused: time date manually reset
|
||||
WARNING: translation string unused: title
|
||||
WARNING: translation string unused: to email adr
|
||||
WARNING: translation string unused: to install an update
|
||||
WARNING: translation string unused: to warn email bad
|
||||
@@ -388,7 +387,6 @@ WARNING: translation string unused: week
|
||||
WARNING: translation string unused: weekly firewallhits
|
||||
WARNING: translation string unused: written sectors
|
||||
WARNING: translation string unused: xtaccess bad transfert
|
||||
WARNING: translation string unused: year
|
||||
WARNING: translation string unused: yearly firewallhits
|
||||
WARNING: untranslated string: OVPN
|
||||
WARNING: untranslated string: abort
|
||||
|
||||
@@ -347,7 +347,6 @@ WARNING: translation string unused: this months volume
|
||||
WARNING: translation string unused: this update is already installed
|
||||
WARNING: translation string unused: this weeks volume
|
||||
WARNING: translation string unused: time date manually reset
|
||||
WARNING: translation string unused: title
|
||||
WARNING: translation string unused: to email adr
|
||||
WARNING: translation string unused: to install an update
|
||||
WARNING: translation string unused: to warn email bad
|
||||
@@ -392,7 +391,6 @@ WARNING: translation string unused: web proxy configuration
|
||||
WARNING: translation string unused: week
|
||||
WARNING: translation string unused: weekly firewallhits
|
||||
WARNING: translation string unused: written sectors
|
||||
WARNING: translation string unused: year
|
||||
WARNING: translation string unused: yearly firewallhits
|
||||
WARNING: untranslated string: OVPN
|
||||
WARNING: untranslated string: abort
|
||||
|
||||
@@ -34,7 +34,7 @@ my @disks = `kudzu -qps -c HD | grep device: | cut -d" " -f2 | sort | uniq`;
|
||||
foreach (@disks){
|
||||
my $disk = $_;
|
||||
chomp $disk;
|
||||
&Graphs::updatehddgraph ($disk,"day");
|
||||
&Graphs::updatehddgraph ($disk,"day");&Graphs::updatehddgraph ($disk,"week");&Graphs::updatehddgraph ($disk,"month");&Graphs::updatehddgraph ($disk,"year");
|
||||
}
|
||||
|
||||
&Graphs::updatetempgraph ("day");
|
||||
@@ -155,15 +155,6 @@ elsif ($cgigraphs[1] =~ /(temp|fan|volt)/)
|
||||
if ($cgigraphs[1] =~ /temp/) {&Graphs::updatetempgraph ("week");&Graphs::updatetempgraph ("month");&Graphs::updatetempgraph ("year");}
|
||||
if ($cgigraphs[1] =~ /fan/) {&Graphs::updatefangraph ("week");&Graphs::updatefangraph ("month");&Graphs::updatefangraph ("year");}
|
||||
if ($cgigraphs[1] =~ /volt/) {&Graphs::updatevoltgraph ("week");&Graphs::updatevoltgraph ("month");&Graphs::updatevoltgraph ("year");}
|
||||
if ($cgigraphs[1] =~ /hddtemp/){
|
||||
my @devices = `kudzu -qps -c HD | grep device: | cut -d" " -f2 | sort | uniq`;
|
||||
|
||||
foreach (@devices) {
|
||||
my $device = $_;
|
||||
chomp($device);
|
||||
&Graphs::updatehddgraph ($device,"week");
|
||||
&Graphs::updatehddgraph ($device,"month");
|
||||
&Graphs::updatehddgraph ($device,"year");}}
|
||||
|
||||
my $graph = $cgigraphs[1];
|
||||
my $graphname = $Lang::tr{"mbmon $cgigraphs[1]"};
|
||||
@@ -249,14 +240,11 @@ else
|
||||
|
||||
if ( $mbmon_settings{'GRAPH_HDD'} == 1 )
|
||||
{
|
||||
hddtempbox("hda");
|
||||
hddtempbox("hdb");
|
||||
hddtempbox("hdc");
|
||||
hddtempbox("hdd");
|
||||
hddtempbox("hde");
|
||||
hddtempbox("hdf");
|
||||
hddtempbox("hdg");
|
||||
hddtempbox("hdh");
|
||||
my @devices = `kudzu -qps -c HD | grep device: | cut -d" " -f2 | sort | uniq`;
|
||||
foreach (@devices) {
|
||||
my $device = $_;
|
||||
chomp($device);
|
||||
hddtempbox($device);}
|
||||
}
|
||||
|
||||
&Header::openbox('100%', 'center', $Lang::tr{'settings'});
|
||||
|
||||
174
html/cgi-bin/mpfire.cgi
Normal file
@@ -0,0 +1,174 @@
|
||||
#!/usr/bin/perl
|
||||
#
|
||||
# IPFire CGIs
|
||||
#
|
||||
# This code is distributed under the terms of the GPL
|
||||
#
|
||||
# (c) The IPFire Team
|
||||
|
||||
use strict;
|
||||
# enable only the following on debugging purpose
|
||||
use warnings;
|
||||
use CGI::Carp 'fatalsToBrowser';
|
||||
|
||||
require '/var/ipfire/general-functions.pl';
|
||||
require "${General::swroot}/lang.pl";
|
||||
require "${General::swroot}/header.pl";
|
||||
|
||||
my %color = ();
|
||||
my %mainsettings = ();
|
||||
my %mpfiresettings = ();
|
||||
my %checked = ();
|
||||
my $message = "";
|
||||
my $errormessage = "";
|
||||
|
||||
open(DATEI, "<${General::swroot}/mpfire/db/songs.db") || die "No Database found";
|
||||
my @songdb = <DATEI>;
|
||||
close(DATEI);
|
||||
@songdb = sort(@songdb);
|
||||
|
||||
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
|
||||
&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
|
||||
|
||||
&Header::showhttpheaders();
|
||||
&Header::getcgihash(\%mpfiresettings);
|
||||
|
||||
&Header::openpage($Lang::tr{'mpfire'}, 1, '');
|
||||
&Header::openbigbox('100%', 'left', '', $errormessage);
|
||||
|
||||
sub refreshpage{&Header::openbox( 'Waiting', 1, "<meta http-equiv='refresh' content='1;'>" );}
|
||||
|
||||
############################################################################################################################
|
||||
######################################## Scanne Verzeichnisse nach Mp3 Dateien #############################################
|
||||
|
||||
if ( $mpfiresettings{'ACTION'} eq "scan" )
|
||||
{
|
||||
delete $mpfiresettings{'__CGI__'};delete $mpfiresettings{'x'};delete $mpfiresettings{'y'};
|
||||
&General::writehash("${General::swroot}/mpfire/settings", \%mpfiresettings);
|
||||
system("/usr/local/bin/mpfirectrl scan $mpfiresettings{'SCANDIR'} $mpfiresettings{'SCANDIRDEPS'}");
|
||||
}
|
||||
|
||||
if ( $mpfiresettings{'ACTION'} eq ">" ){system("/usr/local/bin/mpfirectrl play $mpfiresettings{'FILE'}");}
|
||||
if ( $mpfiresettings{'ACTION'} eq "x" ){system("/usr/local/bin/mpfirectrl stop");}
|
||||
if ( $mpfiresettings{'ACTION'} eq "||" ){system("/usr/local/bin/mpfirectrl pause");}
|
||||
if ( $mpfiresettings{'ACTION'} eq "|>" ){system("/usr/local/bin/mpfirectrl resume");}
|
||||
if ( $mpfiresettings{'ACTION'} eq ">>" ){system("/usr/local/bin/mpfirectrl next");}
|
||||
if ( $mpfiresettings{'ACTION'} eq "+" ){system("/usr/local/bin/mpfirectrl volup 5");}
|
||||
if ( $mpfiresettings{'ACTION'} eq "-" ){system("/usr/local/bin/mpfirectrl voldown 5");}
|
||||
if ( $mpfiresettings{'ACTION'} eq "++" ){system("/usr/local/bin/mpfirectrl volup 10");}
|
||||
if ( $mpfiresettings{'ACTION'} eq "--" ){system("/usr/local/bin/mpfirectrl voldown 10");}
|
||||
if ( $mpfiresettings{'ACTION'} eq "playall" )
|
||||
{
|
||||
my @temp = "";
|
||||
foreach (@songdb){
|
||||
my @song = split(/\|/,$_);
|
||||
chomp($song[0]);
|
||||
push(@temp,$song[0]."\n");
|
||||
}
|
||||
open(DATEI, ">${General::swroot}/mpfire/playlist") || die "Could not add playlist";
|
||||
print DATEI @temp;
|
||||
close(DATEI);
|
||||
system("/usr/local/bin/mpfirectrl playall");
|
||||
}
|
||||
if ( $mpfiresettings{'SHOWLIST'} ){delete $mpfiresettings{'__CGI__'};delete $mpfiresettings{'x'};delete $mpfiresettings{'y'};&General::writehash("${General::swroot}/mpfire/settings", \%mpfiresettings);}
|
||||
|
||||
############################################################################################################################
|
||||
################################### Aufbau der HTML Seite fr globale Sambaeinstellungen ####################################
|
||||
|
||||
$mpfiresettings{'SCANDIR'} = "/";
|
||||
$mpfiresettings{'SHOWLIST'} = "off";
|
||||
|
||||
&General::readhash("${General::swroot}/mpfire/settings", \%mpfiresettings);
|
||||
|
||||
############################################################################################################################
|
||||
########################################### rekursiv nach neuen Mp3s Scannen ##############################################ä
|
||||
|
||||
if ( $message ne "" ) { print "<font color='red'>$message</font>"; }
|
||||
|
||||
&Header::openbox('100%', 'center', $Lang::tr{'mpfire scanning'});
|
||||
|
||||
print <<END
|
||||
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<table width='95%' cellspacing='0'>
|
||||
<tr bgcolor='$color{'color20'}'><td colspan='2' align='left'><b>$Lang::tr{'Scan for Files'}</b></td></tr>
|
||||
<tr><td align='left' width='40%'>$Lang::tr{'Scan from Directory'}</td><td align='left'><input type='text' name='SCANDIR' value='$mpfiresettings{'SCANDIR'}' size="30" /></td></tr>
|
||||
<tr><td align='left' width='40%'>$Lang::tr{'deep scan directories'}</td><td align='left'>on <input type='radio' name='SCANDIRDEPS' value='on' checked='checked'/>/
|
||||
<input type='radio' name='SCANDIRDEPS' value='off'/> off</td></tr>
|
||||
<tr><td align='center' colspan='2'><input type='hidden' name='ACTION' value='scan' />
|
||||
<input type='image' alt='$Lang::tr{'Scan for Files'}' title='$Lang::tr{'Scan for Files'}' src='/images/edit-find.png' /></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
END
|
||||
;
|
||||
&Header::closebox();
|
||||
|
||||
&Header::openbox('100%', 'center', $Lang::tr{'mpfire controls'});
|
||||
print "<form method='post' action='$ENV{'SCRIPT_NAME'}'><table width='95%' cellspacing='0'><tr>";
|
||||
print <<END
|
||||
<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='x' /><input type='image' alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/media-playback-stop.png' /></form></td>
|
||||
<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='||' /><input type='image' alt='$Lang::tr{'pause'}' title='$Lang::tr{'pause'}' src='/images/media-playback-pause.png' /></form></td>
|
||||
<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='|>' /><input type='image' alt='$Lang::tr{'resume'}' title='$Lang::tr{'resume'}' src='/images/media-resume.png' /></form></td>
|
||||
<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='playall' /><input type='image' alt='$Lang::tr{'play'}' title='$Lang::tr{'play'}' src='/images/media-playback-start.png' /></form></td>
|
||||
<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='>>' /><input type='image' alt='$Lang::tr{'next'}' title='$Lang::tr{'next'}' src='/images/media-skip-forward.png' /></form></td>
|
||||
</tr>
|
||||
END
|
||||
;
|
||||
if ( $mpfiresettings{'SHOWLIST'} eq "on" ){print"<tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='SHOWLIST' value='off' /><input type='image' alt='$Lang::tr{'off'}' title='$Lang::tr{'off'}' src='/images/audio-x-generic.png' /></form></td>";}
|
||||
else { print"<tr><td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='SHOWLIST' value='on' /><input type='image' alt='$Lang::tr{'on'}' title='$Lang::tr{'on'}' src='/images/audio-x-generic-red.png' /></form></td>";}
|
||||
print <<END
|
||||
<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='--' /><input type='image' alt='$Lang::tr{'voldown10'}' title='$Lang::tr{'voldown10'}' src='/images/audio-volume-low-red.png' /></form></td>
|
||||
<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='-' /><input type='image' alt='$Lang::tr{'voldown5'}' title='$Lang::tr{'voldown5'}' src='/images/audio-volume-low.png' /></form></td>
|
||||
<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='+' /><input type='image' alt='$Lang::tr{'volup5'}' title='$Lang::tr{'volup5'}' src='/images/audio-volume-high.png' /></form></td>
|
||||
<td align='center'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='++' /><input type='image' alt='$Lang::tr{'volup10'}' title='$Lang::tr{'volup10'}' src='/images/audio-volume-high-red.png' /></form></td>
|
||||
</tr>
|
||||
</table>
|
||||
END
|
||||
;
|
||||
&Header::closebox();
|
||||
|
||||
if ( $mpfiresettings{'SHOWLIST'} eq "on" ){
|
||||
|
||||
&Header::openbox('100%', 'center', $Lang::tr{'mpfire songs'});
|
||||
print <<END
|
||||
|
||||
<table width='95%' cellspacing=5'>
|
||||
<tr bgcolor='$color{'color20'}'><td colspan='9' align='left'><b>$Lang::tr{'Existing Files'}</b></td></tr>
|
||||
<tr><td align='center'></td>
|
||||
<td align='center'><b>$Lang::tr{'artist'}<br/>$Lang::tr{'title'}</b></td>
|
||||
<td align='center'><b>$Lang::tr{'number'}</b></td>
|
||||
<td align='center'><b>$Lang::tr{'album'}</b></td>
|
||||
<td align='center'><b>$Lang::tr{'year'}</b></td>
|
||||
<td align='center'><b>$Lang::tr{'genre'}</b></td>
|
||||
<td align='center'><b>$Lang::tr{'length'}<br/>$Lang::tr{'bitrate'} - $Lang::tr{'frequency'}</b></td>
|
||||
<td align='center'><b>$Lang::tr{'mode'}</b></td></tr>
|
||||
END
|
||||
;
|
||||
my $lines = 0;
|
||||
foreach (@songdb){
|
||||
my @song = split(/\|/,$_);
|
||||
|
||||
if ($lines % 2) {print "<tr bgcolor='$color{'color20'}'>";} else {print "<tr bgcolor='$color{'color22'}'>";}
|
||||
$song[0]=~s/\/\//\//g;
|
||||
print <<END
|
||||
<td align='center' style="white-space:nowrap;"><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='>' /><input type='hidden' name='FILE' value='$song[0]' /><input type='image' alt='$Lang::tr{'play'}' title='$Lang::tr{'play'}' src='/images/media-playback-start.png' /></form></td>
|
||||
<td align='center'>$song[1]<br/>$song[2]</td>
|
||||
<td align='center'>$song[3]</td>
|
||||
<td align='center'>$song[4]</td>
|
||||
<td align='center'>$song[5]</td>
|
||||
<td align='center'>$song[6]</td>
|
||||
<td align='center'>$song[7]:$song[8]<br/>$song[9] - $song[10]</td>
|
||||
END
|
||||
;
|
||||
if ( $song[11] eq "0\n" ) {print "<td align='center'>Stereo</td></tr>"; }
|
||||
elsif ( $song[11] eq "1\n" ) {print "<td align='center'>Joint<br/>Stereo</td></tr>"; }
|
||||
elsif ( $song[11] eq "2\n" ) {print "<td align='center'>Dual<br/>Channel</td></tr>"; }
|
||||
elsif ( $song[11] eq "3\n" ) {print "<td align='center'>Single<br/>Channel</td></tr>"; }
|
||||
else {print "<td align='center'></td></tr>"; }
|
||||
$lines++
|
||||
}
|
||||
print "</table></form>";
|
||||
&Header::closebox();
|
||||
}
|
||||
|
||||
&Header::closebigbox();
|
||||
&Header::closepage();
|
||||
@@ -571,10 +571,14 @@ END
|
||||
@user = <FILE>;
|
||||
close(FILE);
|
||||
system('/usr/local/bin/sambactrl locksmbpasswd');
|
||||
|
||||
my $lines = 0;
|
||||
|
||||
foreach $userentry (sort @user)
|
||||
{
|
||||
@userline = split( /\:/, $userentry );
|
||||
print "<tr><td align='left'>$userline[0]</td><td align='left'>";
|
||||
if ($lines % 2) {print "<tr bgcolor='$color{'color20'}'>";} else {print "<tr bgcolor='$color{'color22'}'>";}
|
||||
print "<td align='left'>$userline[0]</td><td align='left'>";
|
||||
if ($userline[4] =~ /N/)
|
||||
{
|
||||
print "$Lang::tr{'not set'}</td><td align='left'>";
|
||||
@@ -663,6 +667,7 @@ END
|
||||
END
|
||||
;
|
||||
}
|
||||
$lines++;
|
||||
}
|
||||
print <<END
|
||||
</table>
|
||||
@@ -796,12 +801,14 @@ END
|
||||
;
|
||||
|
||||
my @Shares = keys(%shares);
|
||||
my $lines = 0;
|
||||
|
||||
foreach my $shareentry (sort @Shares)
|
||||
{
|
||||
chomp $shareentry;
|
||||
if ($lines % 2) {print "<tr bgcolor='$color{'color20'}'>";} else {print "<tr bgcolor='$color{'color22'}'>";}
|
||||
print <<END
|
||||
<tr><td align='left'>$shareentry</td>
|
||||
<td align='left'>$shareentry</td>
|
||||
<td><form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<input type='hidden' name='NAME' value='$shareentry' />
|
||||
<input type='hidden' name='ACTION' value='sharechange' />
|
||||
@@ -814,6 +821,7 @@ foreach my $shareentry (sort @Shares)
|
||||
</form></td></tr>
|
||||
END
|
||||
;
|
||||
$lines++;
|
||||
}
|
||||
|
||||
print <<END
|
||||
|
||||
BIN
html/html/images/audio-volume-high-red.png
Normal file
|
After Width: | Height: | Size: 688 B |
BIN
html/html/images/audio-volume-high.png
Normal file
|
After Width: | Height: | Size: 685 B |
BIN
html/html/images/audio-volume-low-red.png
Normal file
|
After Width: | Height: | Size: 505 B |
BIN
html/html/images/audio-volume-low.png
Normal file
|
After Width: | Height: | Size: 500 B |
BIN
html/html/images/audio-x-generic-red.png
Normal file
|
After Width: | Height: | Size: 438 B |
BIN
html/html/images/audio-x-generic.png
Normal file
|
After Width: | Height: | Size: 419 B |
BIN
html/html/images/media-playback-pause.png
Normal file
|
After Width: | Height: | Size: 464 B |
BIN
html/html/images/media-playback-start.png
Normal file
|
After Width: | Height: | Size: 660 B |
BIN
html/html/images/media-playback-stop.png
Normal file
|
After Width: | Height: | Size: 429 B |
BIN
html/html/images/media-resume.png
Normal file
|
After Width: | Height: | Size: 667 B |
BIN
html/html/images/media-skip-forward.png
Normal file
|
After Width: | Height: | Size: 771 B |
@@ -17,6 +17,7 @@
|
||||
'ConnSched time' => 'Zeit:',
|
||||
'ConnSched up' => 'Hoch',
|
||||
'ConnSched weekdays' => 'Wochentage:',
|
||||
'Existing Files' => 'Dateien in der Datenbank',
|
||||
'HDD temperature' => 'HDD-Temperatur',
|
||||
'Local VPN IP' => 'Internes Netzwerk (GREEN)',
|
||||
'MTU' => 'MTU Size',
|
||||
@@ -27,6 +28,8 @@
|
||||
'Remote IP' => 'Entfernte IP / Hostname (DynDNS)',
|
||||
'Remote VPN IP' => 'VPN Subnetz (z.B. 10.0.10.0/255.255.255.0)',
|
||||
'Resolv' => 'Resolv-Retry',
|
||||
'Scan for Files' => 'Nach Dateien suchen',
|
||||
'Scan from Directory' => 'Scan Verzeichnis',
|
||||
'Verbose' => 'Verbose',
|
||||
'WakeOnLan' => 'Wake On LAN',
|
||||
'a ca certificate with this name already exists' => 'Ein CA-Zertifikat mit diesem Namen existiert bereits.',
|
||||
@@ -283,6 +286,7 @@
|
||||
'advproxy web browser' => 'Web-Browser',
|
||||
'advproxy wednesday' => 'Mit',
|
||||
'again' => 'Wiederholung:',
|
||||
'album' => 'Album',
|
||||
'alcatelusb help' => 'Um das Speedtouch USB Modem zu verwenden, müssen Sie die Firmware in Ihre IPFire Box hochladen. Bitte laden sie das <b>Embedded Firmware</b> Paket von speedtouch.com herunter, entpacken es und laden dann die passende Datei für Ihr Modem hoch: KQD6_3.xxx für Revisionsnummern <4 oder ZZZL_3.xxx für Rev.=4 mittels des unten angegebenen Formulars.',
|
||||
'alcatelusb upload' => 'Speedtouch USB Firmware hochladen',
|
||||
'alias ip' => 'Alias-IP-Adresse',
|
||||
@@ -308,6 +312,7 @@
|
||||
'archive not exist' => 'Konfigurationsarchiv existiert nicht',
|
||||
'are you sure' => 'Sind Sie sicher?',
|
||||
'arp table entries' => 'Einträge der ARP-Tabelle:',
|
||||
'artist' => 'Künstler',
|
||||
'attemps' => 'Versuche',
|
||||
'august' => 'August',
|
||||
'authentication' => 'Authentifizierung:',
|
||||
@@ -339,6 +344,7 @@
|
||||
'basic options' => 'Basisoptionen',
|
||||
'beep when ppp connects or disconnects' => 'Piepen, wenn IPFire verbindet oder trennt',
|
||||
'behind a proxy' => 'Hinter einem Proxy:',
|
||||
'bitrate' => 'Bitrate',
|
||||
'bleeding rules' => 'Bleeding Edge Snort Rules',
|
||||
'blue' => 'BLAU',
|
||||
'blue access' => 'Zugriff auf Blau',
|
||||
@@ -503,6 +509,7 @@
|
||||
'deactivate user' => 'Benutzer deaktivieren',
|
||||
'debugme' => 'Noch nicht implementiert',
|
||||
'december' => 'Dezember',
|
||||
'deep scan directories' => 'rekursiv scannen',
|
||||
'def lease time' => 'Standardzeit für Zuordnung',
|
||||
'default lease time' => 'Haltezeit-Voreinstellung in min:',
|
||||
'default networks' => 'Standard Netzwerke',
|
||||
@@ -700,6 +707,7 @@
|
||||
'free' => 'Frei',
|
||||
'free memory' => 'Freier Speicher ',
|
||||
'free swap' => 'Freier Swap',
|
||||
'frequency' => 'Frequenz',
|
||||
'friday' => 'Freitag',
|
||||
'fritzdsl help' => 'Um eines der folgenden Fritz!DSL Modems (Fritz!Card DSL=fcdsl / Fritz!CardDSL SL=fcdslsl / Fritz!Card DSL V2.0=fcdsl2 / Fritz!Card DSL USB=fcdslusb / Fritz!Card DSL USB SL=fcdslslusb) nutzen zu können, müssen Sie ein Paket auf Ihre IPFire-Box laden. Bitte laden Sie den tarball entsprechend Ihrer Version von der IPFire-Webseite herunter und laden Sie dann die gesamte <b>fcdsl-(ihre_version).tgz</b> mit dem folgenden Formular hoch.',
|
||||
'fritzdsl upload' => 'Fritz!DSL-Treiber hochladen',
|
||||
@@ -721,6 +729,7 @@
|
||||
'generatereport' => 'Neuen Report erstellen',
|
||||
'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Die Erzeugung der Root und Host Zertifikate kann lange Zeit dauern. Auf älterer Hardware kann es mehrere Minuten lang dauern. Bitte haben Sie etwas Geduld.',
|
||||
'genkey' => 'PSK erzeugen',
|
||||
'genre' => 'Genre',
|
||||
'global settings' => 'Globale Einstellungen',
|
||||
'graph' => 'Diagramm',
|
||||
'graph per' => 'Diagramm pro',
|
||||
@@ -902,6 +911,7 @@
|
||||
'lateprompting' => 'Late prompting',
|
||||
'lease expires' => 'Zuordnung verfällt',
|
||||
'legend' => 'Legende',
|
||||
'length' => 'Länge',
|
||||
'line' => 'Leitung',
|
||||
'linkq' => 'Verbindungsqualität',
|
||||
'load printer' => 'Load Printer',
|
||||
@@ -991,6 +1001,7 @@
|
||||
'misc-options' => 'Sonstige Optionen',
|
||||
'missing dat' => 'Verschlüsseltes Archiv wurde nicht gefunden',
|
||||
'missing gz' => 'Nichtverschlüsseltes Archiv wurde nicht gefunden',
|
||||
'mode' => 'Modus',
|
||||
'modem' => 'Modem',
|
||||
'modem configuration' => 'Modem-Konfiguration',
|
||||
'modem on com1' => 'Modem an COM1',
|
||||
@@ -1013,6 +1024,10 @@
|
||||
'more' => 'weitere',
|
||||
'mount' => 'Einbinden',
|
||||
'mounted on' => 'Mounted auf',
|
||||
'mpfire' => 'Media Player für IPFire',
|
||||
'mpfire controls' => 'MPFire Steuerung',
|
||||
'mpfire scanning' => 'Nach neuen Dateien suchen',
|
||||
'mpfire songs' => 'MPFire Songliste',
|
||||
'my new share' => 'Meine neue Freigabe',
|
||||
'name' => 'Name',
|
||||
'name is invalid' => 'Name ist ungültig',
|
||||
@@ -1047,6 +1062,7 @@
|
||||
'new optionsfw later' => 'Ihre Modifikation(en) wird (werden) beim nächsten Neustart aktiv werden',
|
||||
'new optionsfw must boot' => 'Sie müssen Ihren IPFire neu starten',
|
||||
'newer' => 'Neuer',
|
||||
'next' => 'Nächster',
|
||||
'no' => 'Nein',
|
||||
'no alcatelusb firmware' => 'Keine Alcatel USB ADSL-Firmware vorhanden. Bitte hochladen.',
|
||||
'no cfg upload' => 'Keine Daten wurden hochgeladen',
|
||||
@@ -1077,8 +1093,10 @@
|
||||
'o-no' => 'Inaktiv',
|
||||
'o-yes' => 'Aktiv',
|
||||
'october' => 'Oktober',
|
||||
'off' => 'off',
|
||||
'ok' => 'OK',
|
||||
'older' => 'Älter',
|
||||
'on' => 'on',
|
||||
'online help en' => 'Online-Hilfe (auf Deutsch)',
|
||||
'only digits allowed in holdoff field' => 'Im Holdoff-Feld sind nur Ziffern erlaubt',
|
||||
'only digits allowed in max retries field' => 'Im Feld "Maximale Wiederholversuche" sind nur Ziffern erlaubt.',
|
||||
@@ -1150,6 +1168,7 @@
|
||||
'passwords do not match' => 'Die Passwörter stimmen nicht überein.',
|
||||
'passwords must be at least 6 characters in length' => 'Passwörter müssen mind. 6 Zeichen lang sein',
|
||||
'path to directory' => 'Pfad zur Freigabe',
|
||||
'pause' => 'Pause',
|
||||
'pc' => 'PC',
|
||||
'pc add' => 'PC hinzufügen',
|
||||
'pdc options' => 'PDC Optionen',
|
||||
@@ -1160,6 +1179,7 @@
|
||||
'phonebook entry' => 'Telefonbuch-Eintrag:',
|
||||
'ping disabled' => 'Ping Antwort deaktivieren',
|
||||
'pkcs12 file password' => 'PKCS12 Datei-Passwort',
|
||||
'play' => 'Play',
|
||||
'polfile' => 'Polfile',
|
||||
'port' => 'Port',
|
||||
'port forwarding configuration' => 'Konfiguration der Port-Weiterleitung',
|
||||
@@ -1248,6 +1268,7 @@
|
||||
'restore defaults' => 'Voreinstellungen wiederherstellen',
|
||||
'restore hardware settings' => 'Hardware-Einstellungen wiederherstellen',
|
||||
'restore settings' => 'Einstellungen wiederherstellen',
|
||||
'resume' => 'Resume',
|
||||
'reverse sort' => 'In umgekehrter chronologischer Reihenfolge sortieren',
|
||||
'root' => 'Root',
|
||||
'root certificate' => 'Root-Zertifikat',
|
||||
@@ -1389,6 +1410,7 @@
|
||||
'status' => 'Status',
|
||||
'status information' => 'Statusinformationen',
|
||||
'status ovpn' => 'OpenVPN',
|
||||
'stop' => 'Stop',
|
||||
'stop ovpn server' => 'Stoppe OpenVPN Server',
|
||||
'stopped' => 'ANGEHALTEN',
|
||||
'subject' => 'Betreff',
|
||||
@@ -1779,6 +1801,10 @@
|
||||
'virtual address' => 'Virtuelle Addresse',
|
||||
'virtual private networking' => 'Virtuelles Privates Netzwerk',
|
||||
'visible in browselist' => 'Sichtbar in der Verzeichnisliste',
|
||||
'voldown10' => 'Laustärke um 10 verringern',
|
||||
'voldown5' => 'Laustärke um 5 verringern',
|
||||
'volup10' => 'Laustärke um 10 erhöhen',
|
||||
'volup5' => 'Laustärke um 5 erhöhen',
|
||||
'vpi number' => 'VPI-Nummer:',
|
||||
'vpn' => 'VPN',
|
||||
'vpn aggrmode' => 'IKE Aggressive Mode zugelassen. Wenn möglich, vermeiden (preshared Schlüssel wird im Klartext übertragen)!',
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
'ConnSched time' => 'Time:',
|
||||
'ConnSched up' => 'Up',
|
||||
'ConnSched weekdays' => 'Days of the week:',
|
||||
'Existing Files' => 'Files in database',
|
||||
'HDD temperature' => 'HDD temperature',
|
||||
'Local VPN IP' => 'Internal Network (GREEN):',
|
||||
'MTU' => 'MTU Size:',
|
||||
@@ -27,6 +28,8 @@
|
||||
'Remote IP' => 'Remote IP / Hostname (DynDNS):',
|
||||
'Remote VPN IP' => 'VPN Subnet (e.g. 10.0.10.0/255.255.255.0):',
|
||||
'Resolv' => 'Resolv-Retry:',
|
||||
'Scan for Files' => 'Scan for files',
|
||||
'Scan from Directory' => 'Scan from directory',
|
||||
'Verbose' => 'Verbose:',
|
||||
'WakeOnLan' => 'Wake On LAN',
|
||||
'a ca certificate with this name already exists' => 'A CA Certificate with this name already exists.',
|
||||
@@ -284,6 +287,7 @@
|
||||
'advproxy web browser' => 'Web browser',
|
||||
'advproxy wednesday' => 'Wed',
|
||||
'again' => 'Again:',
|
||||
'album' => 'Album',
|
||||
'alcatelusb help' => 'To utilise the Speedtouch 330 or Speedtouch USB modem you must upload the firmware to your IPFire box. Please download the <b>Embedded Firmware</b> package for SpeedTouch 330 from speedtouch.com, unzip and then upload the appropriate file for your modem : KQD6_3.xxx when Rev<4 or ZZZL_3.xxx for Rev=4 using the form below.',
|
||||
'alcatelusb upload' => 'Upload Speedtouch USB Firmware',
|
||||
'alias ip' => 'Alias IP',
|
||||
@@ -310,6 +314,7 @@
|
||||
'archive not exist' => 'Configuration archive does not exist',
|
||||
'are you sure' => 'Are you sure?',
|
||||
'arp table entries' => 'ARP Table Entries:',
|
||||
'artist' => 'Artist',
|
||||
'attemps' => 'Attempts',
|
||||
'august' => 'August',
|
||||
'authentication' => 'Authentication:',
|
||||
@@ -356,6 +361,7 @@
|
||||
'behind a proxy' => 'Behind a proxy:',
|
||||
'bewan adsl pci st' => 'TO BE REMOVED',
|
||||
'bewan adsl usb' => 'TO BE REMOVED',
|
||||
'bitrate' => 'Bitrate',
|
||||
'bleeding rules' => 'Bleeding Edge Snort Rules',
|
||||
'blue' => 'BLUE',
|
||||
'blue access' => 'Blue Access',
|
||||
@@ -516,6 +522,7 @@
|
||||
'deactivate user' => 'deactivate user',
|
||||
'debugme' => 'Not yet implemented',
|
||||
'december' => 'December',
|
||||
'deep scan directories' => 'Scan recursive',
|
||||
'def lease time' => 'Default Lease Time',
|
||||
'default lease time' => 'Default lease time (mins):',
|
||||
'default networks' => 'Default networks',
|
||||
@@ -709,6 +716,7 @@
|
||||
'free' => 'Free',
|
||||
'free memory' => 'Free Memory ',
|
||||
'free swap' => 'Free Swap',
|
||||
'frequency' => 'Frequency',
|
||||
'friday' => 'Friday',
|
||||
'fritzdsl help' => 'To utilise one of Fritz!DSL fcdsl / fcdslsl / fcdsl2 / fcdslusb / fcdslslusb modem, you must upload a package to your IPFire box. Please download the tarball corresponding to your version from the IPFire Website and then upload the entire <b>fcdsl-(your_version).tgz</b> using the form below.',
|
||||
'fritzdsl upload' => 'Upload Fritz!DSL Driver',
|
||||
@@ -732,6 +740,7 @@
|
||||
'generatereport' => 'Generate new Report',
|
||||
'generating the root and host certificates may take a long time. it can take up to several minutes on older hardware. please be patient' => 'Generating the root and host certificates may take a long time. It can take up to several minutes on older hardware. Please be patient.',
|
||||
'genkey' => 'Generate PSK',
|
||||
'genre' => 'Genre',
|
||||
'global settings' => 'Global settings',
|
||||
'graph' => 'Graph',
|
||||
'graph per' => 'Graph per',
|
||||
@@ -914,6 +923,7 @@
|
||||
'lateprompting' => 'Lateprompting',
|
||||
'lease expires' => 'Lease expires',
|
||||
'legend' => 'Legend',
|
||||
'length' => 'Length',
|
||||
'line' => 'Line',
|
||||
'linkq' => 'Link Quality',
|
||||
'load printer' => 'Load Printer',
|
||||
@@ -1003,6 +1013,7 @@
|
||||
'misc-options' => 'Miscellaneous options',
|
||||
'missing dat' => 'Encrypted archive not found',
|
||||
'missing gz' => 'Unencrypted archive not found',
|
||||
'mode' => 'Mode',
|
||||
'modem' => 'Modem',
|
||||
'modem configuration' => 'Modem configuration',
|
||||
'modem on com1' => 'Modem on COM1',
|
||||
@@ -1025,6 +1036,10 @@
|
||||
'more' => 'more',
|
||||
'mount' => 'Mount',
|
||||
'mounted on' => 'Mounted on',
|
||||
'mpfire' => 'Media Player for IPFire',
|
||||
'mpfire controls' => 'MPFire Control',
|
||||
'mpfire scanning' => 'Scan for new files',
|
||||
'mpfire songs' => 'MPFire songlist',
|
||||
'my new share' => 'My new share',
|
||||
'name' => 'Name',
|
||||
'name is invalid' => 'Name is invalid',
|
||||
@@ -1059,6 +1074,7 @@
|
||||
'new optionsfw later' => 'Your modification(s) will be active on next restart',
|
||||
'new optionsfw must boot' => 'You must reboot your IPFire',
|
||||
'newer' => 'Newer',
|
||||
'next' => 'next',
|
||||
'no' => 'No',
|
||||
'no alcatelusb firmware' => 'No Alcatel USB firmware. Please upload.',
|
||||
'no cfg upload' => 'No data was uploaded',
|
||||
@@ -1090,8 +1106,10 @@
|
||||
'o-no' => 'Inactiv',
|
||||
'o-yes' => 'Activ',
|
||||
'october' => 'October',
|
||||
'off' => 'off',
|
||||
'ok' => 'OK',
|
||||
'older' => 'Older',
|
||||
'on' => 'on',
|
||||
'online help en' => 'Online Help (in English)',
|
||||
'only digits allowed in holdoff field' => 'Only digits allowed in holdoff field',
|
||||
'only digits allowed in max retries field' => 'Only digits allowed in max retries field.',
|
||||
@@ -1161,6 +1179,7 @@
|
||||
'passwords do not match' => 'Passwords do not match.',
|
||||
'passwords must be at least 6 characters in length' => 'Passwords must be at least 6 characters in length',
|
||||
'path to directory' => 'path to share',
|
||||
'pause' => 'pause',
|
||||
'pc' => 'Workstatipon',
|
||||
'pc add' => 'add workstation',
|
||||
'pdc options' => 'PDC Options',
|
||||
@@ -1171,6 +1190,7 @@
|
||||
'phonebook entry' => 'Phonebook entry:',
|
||||
'ping disabled' => 'Disable ping response',
|
||||
'pkcs12 file password' => 'PKCS12 File Password',
|
||||
'play' => 'play',
|
||||
'polfile' => 'Polfile',
|
||||
'port' => 'Port',
|
||||
'port forwarding configuration' => 'Port forwarding configuration',
|
||||
@@ -1257,6 +1277,7 @@
|
||||
'restore defaults' => 'Restore defaults',
|
||||
'restore hardware settings' => 'Restore hardware settings',
|
||||
'restore settings' => 'Reset Settings',
|
||||
'resume' => 'resume',
|
||||
'reverse sort' => 'Sort in reverse chronological order',
|
||||
'root' => 'Root',
|
||||
'root certificate' => 'Root Certificate',
|
||||
@@ -1396,6 +1417,7 @@
|
||||
'status' => 'Status',
|
||||
'status information' => 'Status information',
|
||||
'status ovpn' => '4. OpenVPN Status / Configuration:',
|
||||
'stop' => 'stop',
|
||||
'stop ovpn server' => 'Stop OpenVPN Server',
|
||||
'stopped' => 'STOPPED',
|
||||
'subject' => 'Subject',
|
||||
@@ -1784,6 +1806,10 @@
|
||||
'virtual address' => 'Virtual Address',
|
||||
'virtual private networking' => 'Virtual Private Networking',
|
||||
'visible in browselist' => 'visible in browselist',
|
||||
'voldown10' => 'Decrease Volume by 10',
|
||||
'voldown5' => 'Decrease Volume by 5',
|
||||
'volup10' => 'Increase Volume by 10',
|
||||
'volup5' => 'Increase Volume by 5',
|
||||
'vpi number' => 'VPI Number:',
|
||||
'vpn' => 'VPN',
|
||||
'vpn aggrmode' => 'IKE aggressive mode allowed. Avoid if possible (preshared key is transmitted in clear text)!',
|
||||
|
||||
69
lfs/mpfire
Normal file
@@ -0,0 +1,69 @@
|
||||
###############################################################################
|
||||
# This file is part of the IPCop Firewall. #
|
||||
# #
|
||||
# IPCop 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. #
|
||||
# #
|
||||
# IPCop 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 IPCop; if not, write to the Free Software #
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
|
||||
# #
|
||||
# Makefiles are based on LFSMake, which is #
|
||||
# Copyright (C) 2002 Rod Roard <rod@sunsetsystems.com> #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
###############################################################################
|
||||
# Definitions
|
||||
###############################################################################
|
||||
|
||||
include Config
|
||||
|
||||
VER = ipfire
|
||||
|
||||
THISAPP = mpfire-$(VER)
|
||||
DIR_APP = $(DIR_SRC)/$(THISAPP)
|
||||
TARGET = $(DIR_INFO)/$(THISAPP)
|
||||
PROG = mpfire
|
||||
PAK_VER = 1
|
||||
|
||||
DESCDE = "MPFire ist ein CGI Multimediaplayer auf Basis von mpg123."
|
||||
DESCEN = "MPFire is a mpg123 based CGI Multimedia-Player."
|
||||
DEPS = "mpg123"
|
||||
|
||||
###############################################################################
|
||||
# Top-level Rules
|
||||
###############################################################################
|
||||
|
||||
objects =
|
||||
|
||||
install : $(TARGET)
|
||||
|
||||
check :
|
||||
|
||||
download :
|
||||
|
||||
md5 :
|
||||
|
||||
dist:
|
||||
@$(PAK)
|
||||
|
||||
###############################################################################
|
||||
# Installation Details
|
||||
###############################################################################
|
||||
|
||||
$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
|
||||
@$(PREBUILD)
|
||||
-mkdir -p /var/ipfire/mpfire/{bin,db}
|
||||
touch /var/ipfire/mpfire/{settings,playlist}
|
||||
touch /var/ipfire/mpfire/db/songs.db
|
||||
chown nobody.nobody /var/ipfire/mpfire/{settings,playlist}
|
||||
install -v -m 755 $(DIR_SRC)/config/mpfire/mpfire.pl /var/ipfire/mpfire/bin
|
||||
@$(POSTBUILD)
|
||||
1
make.sh
@@ -503,6 +503,7 @@ buildipfire() {
|
||||
# ipfiremake bristuff
|
||||
ipfiremake asterisk
|
||||
ipfiremake mpg123
|
||||
ipfiremake mpfire
|
||||
ipfiremake libmad
|
||||
ipfiremake libogg
|
||||
ipfiremake libvorbis
|
||||
|
||||
@@ -379,11 +379,22 @@ sub updatelq {
|
||||
my $LQ_GATEWAY=`cat /var/ipfire/red/remote-ipaddress`;
|
||||
chomp($LQ_GATEWAY);
|
||||
my $NUMPINGS=5;
|
||||
my $pingoutput = `ping -c $NUMPINGS -q $LQ_GATEWAY`;
|
||||
chomp;
|
||||
my $pingoutput = `/usr/bin/ping -w 10 -c $NUMPINGS -q $LQ_GATEWAY | tail -2`;
|
||||
my @temp = split (/\/|\%|\s/, $pingoutput);
|
||||
$packetloss = $temp[17];
|
||||
$roundtrip = $temp[28];
|
||||
$packetloss = $temp[5];
|
||||
$roundtrip = $temp[17];
|
||||
|
||||
print "Paketlos->".$packetloss."<-Roundtrip->".$roundtrip."<-\n";
|
||||
|
||||
if ( $packetloss eq "100" ){
|
||||
my $pingoutput = `/usr/bin/ping -w 10 -c $NUMPINGS -q ping.ipfire.org | tail -2`;
|
||||
my @temp = split (/\/|\%|\s/, $pingoutput);
|
||||
$packetloss = $temp[5];
|
||||
$roundtrip = $temp[17];
|
||||
|
||||
print "Paketlos->".$packetloss."<-Roundtrip->".$roundtrip."<-\n";
|
||||
}
|
||||
|
||||
RRDs::update ("$rrdlog/lq.rrd", "N:$packetloss:$roundtrip");
|
||||
$ERROR = RRDs::error;
|
||||
print "Error in RRD::update for line quality: $ERROR\n" if $ERROR;
|
||||
|
||||