]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - config/mpfire/mpfire.pl
Fixed some mpfire things
[people/pmueller/ipfire-2.x.git] / config / mpfire / mpfire.pl
1 #!/usr/bin/perl
2
3 require '/var/ipfire/general-functions.pl';
4 require "${General::swroot}/lang.pl";
5 require "${General::swroot}/header.pl";
6
7 my $filename = "";
8 my $debug = 0;
9
10 if ( `/etc/init.d/mpd status` =~/not running/ ){
11 system("/etc/init.d/mpd start >/dev/null");
12 }
13
14 if ($ARGV[0] eq 'scan') {
15 if ($debug){print "Creating Database\n";}
16 system("mpd --create-db >/dev/null");
17 system("/etc/init.d/mpd restart >/dev/null");
18 }
19 elsif ($ARGV[0] eq 'play') {
20 &checkmute();
21 &clearplaylist();
22 if ($debug){print "Yes we are called and we will play $ARGV[1]\n";}
23 system("mpc add \"$ARGV[1]\" >/dev/null && mpc play >/dev/null");
24 }
25 elsif ($ARGV[0] eq 'playadd') {
26 if ($debug){print "Yes we are called and we will add $ARGV[1]\n";}
27 system("mpc add \"$ARGV[1]\" >/dev/null && mpc play >/dev/null");
28 }
29 elsif ($ARGV[0] eq 'clearplaylist') {
30 if ($debug){print "Deleting playlist\n";}
31 &clearplaylist();
32 }
33 elsif ($ARGV[0] eq 'stop') {
34 my $PID = 'cat /var/run/mpd.pid';
35 if ($debug){print "Killing Process $PID\n";}
36 system("mpc stop >/dev/null");
37 }
38 elsif ($ARGV[0] eq 'volup') {
39 if ($debug){print "Increasing Volume\n";}
40 system("/usr/bin/amixer set Master $ARGV[1]%+ 2>/dev/null >/dev/null");
41 system("/usr/bin/amixer set PCM $ARGV[1]%+ 2>/dev/null >/dev/null");
42 }
43 elsif ($ARGV[0] eq 'voldown') {
44 if ($debug){print "Decreasing Volume\n";}
45 system("/usr/bin/amixer set Master $ARGV[1]%- 2>/dev/null >/dev/null");
46 system("/usr/bin/amixer set PCM $ARGV[1]%- 2>/dev/null >/dev/null");
47 }
48 elsif ($ARGV[0] eq 'toggle') {
49 system("mpc toggle >/dev/null");
50 }
51 elsif ($ARGV[0] eq 'next') {
52 if ($debug){print "Next Song\n";}
53 system("mpc next >/dev/null[");
54 }
55 elsif ( $ARGV[0] eq 'prev' ) {
56 if ($debug){print "Previous Song\n";}
57 system("mpc prev >/dev/null");
58 }
59 elsif ($ARGV[0] eq 'song') {
60 my $song = `mpc \| head -2 | grep -v volume`;
61 print $song;
62 }
63 elsif ($ARGV[0] eq 'stats') {
64 my $song = `mpc stats | grep Songs`;
65 print $song;
66 }
67 elsif ($ARGV[0] eq 'playweb') {
68 &checkmute();
69 &clearplaylist();
70 if ($debug){print "Playing webstream $ARGV[1] \n";}
71 system("mpc add http://$ARGV[1] >/dev/null && mpc play >/dev/null && sleep 1");
72 }
73 elsif ($ARGV[0] eq 'volume') {
74 $temp = "Master - ";
75 $temp .= `amixer get Master \| tail -2 \| awk '{ print \$2" "\$5 }'`;
76 $temp .= "<break>PCM -";
77 $temp .= `amixer get PCM \| tail -2 \| awk '{ print \$2" "\$5 }'`;
78 print $temp;
79 }
80
81 sub clearplaylist(){
82 system("mpc clear >/dev/null");
83 }
84
85 sub shuffle(){
86 system("mpc random >/dev/null");
87 }
88
89 sub checkplaylist(){
90 my $Datei = "/var/ipfire/mpfire/playlist.m3u";
91 my @Info = stat($Datei);
92 if ( $Info[7] eq '' || $Info[7] eq '0' ){print "There is no playlist";exit(1);}
93 }
94
95 sub checkmute(){
96 $temp = `amixer get Master \| tail -2`;
97 my @Master = split(/ /,$temp);
98 $temp = `amixer get PCM \| tail -2`;
99 my @PCM = split(/ /,$temp);
100 if ( $PCM[7] =~ /off/ ){
101 if ($debug){print "PCM was muted - umuting.\n";}
102 system("amixer set PCM toggle >/dev/null");
103 }
104 if ( $Master[7] =~ /off/ ){
105 if ($debug){print "Master was muted - umuting.\n";}
106 system("amixer set Master toggle >/dev/null");
107 }
108 }