Compare commits

...

2 Commits

3 changed files with 37 additions and 10 deletions

View File

@ -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;
} }
?>

View File

@ -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]" ) {

View File

@ -153,7 +153,7 @@ CREATE TABLE `settings` (
LOCK TABLES `settings` WRITE; LOCK TABLES `settings` WRITE;
/*!40000 ALTER TABLE `settings` DISABLE KEYS */; /*!40000 ALTER TABLE `settings` DISABLE KEYS */;
INSERT INTO `settings` VALUES (1,'CHRISTMAS','false'); INSERT INTO `settings` VALUES (1,'CHRISTMAS','false');
INSERT INTO `settings` VALUES (2,'CURVOLUME','28'); INSERT INTO `settings` VALUES (2,'CURVOLUME','0');
INSERT INTO `settings` VALUES (3,'CHRISTMASFREQ','4'); INSERT INTO `settings` VALUES (3,'CHRISTMASFREQ','4');
/*!40000 ALTER TABLE `settings` ENABLE KEYS */; /*!40000 ALTER TABLE `settings` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;