Switch to using the settings table for current volume instead of /tmp/curvol
This commit is contained in:
		
							parent
							
								
									81a9e1e37e
								
							
						
					
					
						commit
						127b8b32f4
					
				| 
						 | 
					@ -5,17 +5,28 @@ function killPlayingSong() {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function setSystemVolume($newvol = null) {
 | 
					function setSystemVolume($newvol = null) {
 | 
				
			||||||
 | 
					   global $globaldbh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   if ( is_null($newvol) ) return false;
 | 
					   if ( is_null($newvol) ) return false;
 | 
				
			||||||
   system("HOME=/home/web && /usr/bin/amixer -q sset Master " . $newvol);
 | 
					   system("HOME=/home/web && /usr/bin/amixer -q sset Master " . $newvol);
 | 
				
			||||||
   file_put_contents("/tmp/curvol", $newvol);
 | 
					   $query = "UPDATE " . SETTINGSTABLE . " SET value=:value WHERE parameter='CURVOLUME'";
 | 
				
			||||||
 | 
					   $fields = array();
 | 
				
			||||||
 | 
					   $fields[':value'] = $newvol;
 | 
				
			||||||
 | 
					   $sth = $globaldbh->prepare($query);
 | 
				
			||||||
 | 
					   $sth->execute($fields);
 | 
				
			||||||
   return true;
 | 
					   return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function getSystemVolume() {
 | 
					function getSystemVolume() {
 | 
				
			||||||
   $curvol = file_get_contents("/tmp/curvol");
 | 
					   global $globaldbh;
 | 
				
			||||||
   //$curvol = trim(shell_exec("HOME=/home/web && /usr/bin/amixer sget Master | grep \"Front Left:\" | awk '{print $4}'"));
 | 
					
 | 
				
			||||||
 | 
					   $query = "SELECT value FROM " . SETTINGSTABLE . " WHERE parameter='CURVOLUME'";
 | 
				
			||||||
 | 
					   $sth = $globaldbh->prepare($query);
 | 
				
			||||||
 | 
					   $sth->execute();
 | 
				
			||||||
 | 
					   if ( $row = $sth->fetch(PDO::FETCH_ASSOC) ) {
 | 
				
			||||||
 | 
					      $curvol = $row['value'];
 | 
				
			||||||
 | 
					   } else {
 | 
				
			||||||
 | 
					      $curvol = '0';
 | 
				
			||||||
 | 
					   }
 | 
				
			||||||
   return $curvol;
 | 
					   return $curvol;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
?>
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,9 +1,17 @@
 | 
				
			||||||
#!/usr/bin/perl
 | 
					#!/usr/bin/perl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Time::HiRes qw(usleep);
 | 
					use Time::HiRes qw(usleep);
 | 
				
			||||||
 | 
					use DBI;
 | 
				
			||||||
 | 
					use DBD::mysql;
 | 
				
			||||||
 | 
					use Config::INI::Reader;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
 | 
					sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$maxvolume = 32768;
 | 
					my $confcontents = Config::INI::Reader->read_file('/etc/homeaudio.ini');
 | 
				
			||||||
 | 
					my $Config = $confcontents->{_};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$dsn = "DBI:mysql:" . $Config->{DBNAME} . ":" . $Config->{DBHOST};
 | 
				
			||||||
 | 
					$dbh = DBI->connect($dsn, $Config->{DBUSER}, $Config->{DBPASS}, {RaiseError=>1});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if ( $ARGV[0] eq "-show" ) {
 | 
					if ( $ARGV[0] eq "-show" ) {
 | 
				
			||||||
   $showmute = 1;
 | 
					   $showmute = 1;
 | 
				
			||||||
| 
						 | 
					@ -13,8 +21,16 @@ if ( $ARGV[0] eq "-show" ) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$sound = `/usr/bin/amixer sget Master`;
 | 
					$sound = `/usr/bin/amixer sget Master`;
 | 
				
			||||||
$mute = trim(`/usr/bin/amixer sget Master | grep "Front Left:" | awk '{print \$6}'`);
 | 
					$mute = trim(`/usr/bin/amixer sget Master | grep "Front Left:" | awk '{print \$6}'`);
 | 
				
			||||||
$curvol = int(`cat /tmp/curvol`);
 | 
					$sth = $dbh->prepare("SELECT value FROM settings WHERE parameter='CURVOLUME'");
 | 
				
			||||||
$stepval = int($maxvolume * 0.1);
 | 
					$sth->execute();
 | 
				
			||||||
 | 
					if ( $sth->rows > 0 ) {
 | 
				
			||||||
 | 
					   @result = $sth->fetchrow_array();
 | 
				
			||||||
 | 
					   $curvol = $result[0];
 | 
				
			||||||
 | 
					} else {
 | 
				
			||||||
 | 
					   $curvol = 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					$sth->finish();
 | 
				
			||||||
 | 
					$stepval = int($curvol * 0.1);
 | 
				
			||||||
@mixer = split(/\n/, $sound);
 | 
					@mixer = split(/\n/, $sound);
 | 
				
			||||||
#if ( index($mixer[@mixer-1], "[on]") > 0 ) {
 | 
					#if ( index($mixer[@mixer-1], "[on]") > 0 ) {
 | 
				
			||||||
if ( $mute eq "[on]" ) {
 | 
					if ( $mute eq "[on]" ) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user