[X2Go-Commits] [mteleplayer] 01/01: Add audio volume scaler to GUI and volume control support functions.
git-admin at x2go.org
git-admin at x2go.org
Tue Jun 17 20:49:14 CEST 2014
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch master
in repository mteleplayer.
commit 4abe5fee409097d3d66ad4ff3cb51d54ac2be484
Author: gznget <opensource at gznianguan.com>
Date: Tue Jun 17 20:41:15 2014 +0200
Add audio volume scaler to GUI and volume control support functions.
---
.../mteleplayer/bin/mteleplayer_clientside | 10 +-
serverside/bin/mteleplayer | 103 ++++++++++++++++++--
2 files changed, 101 insertions(+), 12 deletions(-)
diff --git a/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside b/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside
index bdf7cd6..b651400 100755
--- a/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside
+++ b/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside
@@ -108,7 +108,7 @@ $sstatusi{'runState'} = "R";
# The Main Gtk2 event loop
my %mpState;$mpState{'MediaERROR'} = 0;$mpState{'FakeFS'} = 0;$mpState{'mediaPos'} = 0; $mpState{'mediaLength'} = 3;$mpState{'paused'} = 0;
$mpState{'mute'} = 0;
-$mpState{'volume'} = 75;# Change this to get from server side!
+$mpState{'volume'} = 0;# Change this to get from server side!
$mpState{'osd'} = 0;
$mpState{'LASTINPUT'} = "";$mpState{'prevSecond'} = 0;
###########################33
@@ -243,7 +243,13 @@ sub handleTheLocalSocket {
} elsif ($1 =~ /^TERMINATE/) {
doSelfTerminate();
}
-
+ if ($1 =~ /^SET\|AUDIOVOLUME\|(\d{1,3})\|.*/) {
+ my $newVol = $1;
+ if (($newVol >= 0) and ($newVol <= 100)) {
+ $mpState{'volume'} = $newVol;
+ mpCMD("volume $mpState{'volume'} 1");
+ }
+ }
if ($1 =~ /^XPOSTAT\|(\d*)\|(\d*)\|(\d*)\|(\d*)\|(\d)\|/) {
$sstatusi{'xposX'} = $1;
$sstatusi{'xposY'} = $2;
diff --git a/serverside/bin/mteleplayer b/serverside/bin/mteleplayer
index d95cf5b..f39406e 100755
--- a/serverside/bin/mteleplayer
+++ b/serverside/bin/mteleplayer
@@ -70,6 +70,7 @@ push @openMedia, $tmpOnlyOneFile;
my $selfSID = sanitizer("tekiappsid","uno");# At some point change this to where we can have multiple instances running or just the UNO. (see roadmap notes)
our %GTKS;
our %TnW;
+our %PRESISTENT;$PRESISTENT{'AudioVolume'} = 50;
our %sstatusi;$sstatusi{'sockState'} = 0;$sstatusi{'sockRetryCnt'} = 0;$sstatusi{'runState'} = "I";$sstatusi{'X2GoResized'} = 0;
$sstatusi{'lastCOMtime'} = (time()+2);$sstatusi{'remoteInitCnt'} = 0;
@@ -231,7 +232,7 @@ sub initMainWindow {
$GTKS{'CTRLS'}{'BtnPlayPauseEBOX'}{'PauseGFX'} = Gtk2::Image->new_from_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file ("$theSHAREDIR/gfx/default/pause_btn_32.png"));
$GTKS{'CTRLS'}{'BtnPlayPauseEBOX'}{'PauseGFX'}->set_size_request(32,32);
$GTKS{'CTRLS'}{'BtnPlayPauseEBOX'}->signal_connect('button-release-event' => \&eventBtnClickPlayPause);
-# $GTKS{'CTRLS'}{'BtnPlayPauseEBOX'}->add($GTKS{'CTRLS'}{'BtnPlayPauseEBOX'}{'PlayGFX'});
+ $GTKS{'CTRLS'}{'BtnPlayPauseEBOX'}->add($GTKS{'CTRLS'}{'BtnPlayPauseEBOX'}{'PlayGFX'});
stateChangePAUSED(0);# Use this to initiate the play/pause button gfx...
$GTKS{'CTRLS'}{'BtnPreviousEBOX'} = Gtk2::EventBox->new;$GTKS{'CTRLS'}{'BtnPreviousEBOX'}->set_size_request(32,32);
@@ -242,17 +243,45 @@ sub initMainWindow {
$GTKS{'CTRLS'}{'BtnNextEBOX'}{'GFX'} = Gtk2::Image->new_from_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file ("$theSHAREDIR/gfx/default/nexttr_btn_32.png"));
$GTKS{'CTRLS'}{'BtnNextEBOX'}{'GFX'}->set_size_request(32,32);
$GTKS{'CTRLS'}{'BtnNextEBOX'}->add($GTKS{'CTRLS'}{'BtnNextEBOX'}{'GFX'});
-
- my $MediaAreaButtonsHBox = Gtk2::HBox->new(FALSE, 0);
- $MediaAreaButtonsHBox->pack_start($GTKS{'CTRLS'}->{'BtnPreviousEBOX'} ,FALSE, FALSE, 3);
- $MediaAreaButtonsHBox->pack_start($GTKS{'CTRLS'}->{'BtnPlayPauseEBOX'} ,FALSE, FALSE, 3);
- $MediaAreaButtonsHBox->pack_start($GTKS{'CTRLS'}->{'BtnNextEBOX'} ,FALSE, FALSE, 3);
-# $MediaAreaButtonsHBox->show_all;
+ #############################################################################
+ # Volume Slider stuff...
+ my $theVolAdj = Gtk2::Adjustment->new(0, 0, 101, 1.0, 1.0, 1.0);
+ $theVolAdj->signal_connect(value_changed => \&changeAudioVolume, $theVolAdj);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'EBOX'} = Gtk2::EventBox->new;
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'EBOX'}->set_size_request(128,32);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'HSCALE'} = Gtk2::HScale->new($theVolAdj);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'HSCALE'}->set_update_policy('continuous');
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'HSCALE'}->set_digits(0);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'HSCALE'}->set_draw_value(FALSE);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'HSCALE'}->set_value($PRESISTENT{'AudioVolume'});
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'EBOX'}->add($GTKS{'CTRLS'}{'VolumeScaler'}{'HSCALE'});
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'EBOX'}->show;
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'EBOX'} = Gtk2::EventBox->new;
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'EBOX'}->set_size_request(32,32);
+ setVolumeICON($PRESISTENT{'AudioVolume'},"initGFX");
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'MainHBOX'} = Gtk2::HBox->new(FALSE, 0);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'MainHBOX'}->pack_start($GTKS{'CTRLS'}{'VolumeScaler'}{'EBOX'}, FALSE, FALSE, 3);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'MainHBOX'}->pack_start($GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'EBOX'}, FALSE, FALSE, 3);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'MainHBOX'}->show_all;
+ # Volume Slider stuff.
+ #############################################################################
+ $GTKS{'CTRLS'}{'MediaButtons'}{'MainHBOX'} = Gtk2::HBox->new(FALSE, 0);
+ $GTKS{'CTRLS'}{'MediaButtons'}{'MainHBOX'}->pack_start($GTKS{'CTRLS'}->{'BtnPreviousEBOX'} ,FALSE, FALSE, 3);
+ $GTKS{'CTRLS'}{'MediaButtons'}{'MainHBOX'}->pack_start($GTKS{'CTRLS'}->{'BtnPlayPauseEBOX'} ,FALSE, FALSE, 3);
+ $GTKS{'CTRLS'}{'MediaButtons'}{'MainHBOX'}->pack_start($GTKS{'CTRLS'}->{'BtnNextEBOX'} ,FALSE, FALSE, 3);
+
+
+
+
+ $GTKS{'CTRLS'}{'CONTROLSTRIP'}{'MainHBOX'} = Gtk2::HBox->new(FALSE, 0);
+ $GTKS{'CTRLS'}{'CONTROLSTRIP'}{'MainHBOX'}->pack_start($GTKS{'CTRLS'}{'MediaButtons'}{'MainHBOX'} ,FALSE, FALSE, 3);
+ $GTKS{'CTRLS'}{'CONTROLSTRIP'}{'MainHBOX'}->pack_end($GTKS{'CTRLS'}{'VolumeScaler'}{'MainHBOX'} ,FALSE, FALSE, 3);
+# $GTKS{'CTRLS'}{'CONTROLSTRIP'}{'MainHBOX'}->show_all;
$GTKS{'MainVBox'}->pack_start($mTPMainMediaEBOX,TRUE, TRUE, 0);
$GTKS{'MainVBox'}->pack_start($GTKS{'CTRLS'}{'MAIN'}, FALSE, FALSE, 0);
$GTKS{'CTRLS'}{'MainVBox'}->pack_start($MTime_HBox, FALSE, FALSE, 0);
- $GTKS{'CTRLS'}{'MainVBox'}->pack_start($MediaAreaButtonsHBox,FALSE, FALSE, 2);
+ $GTKS{'CTRLS'}{'MainVBox'}->pack_start($GTKS{'CTRLS'}{'CONTROLSTRIP'}{'MainHBOX'},FALSE, FALSE, 2);
$GTKS{'MainAppWindow'}->add($GTKS{'MainVBox'});
@@ -430,7 +459,7 @@ sub handleTheLocalSocket {
appDBugLog("INITAL MEDIA:$PlayerStatus{'initialMediaID'} $PlayerStatus{'initialMediaType'}");
if ($PlayerStatus{'currentMediaType'} eq "FILE") {
appCOM("HELLO|$PlayerStatus{'currentMediaID'}|FILE|");
- appCOM("SET|AUDIOVOLUME|75|");
+ appCOM("SET|AUDIOVOLUME|$PRESISTENT{'AudioVolume'}|");
appDBugLog("MPCMD|PLAYMEDIA|$PlayerStatus{'currentMediaID'}|FILE|$PlayerStatus{'currentMediaSeek'}|$StartPaused|");
@@ -438,7 +467,7 @@ sub handleTheLocalSocket {
} else {
appCOM("HELLO|");
- appCOM("SET|AUDIOVOLUME|75|");
+ appCOM("SET|AUDIOVOLUME|$PRESISTENT{'AudioVolume'}|");
}
@@ -739,6 +768,45 @@ sub doLocalQuickie {
#################################################################################################################################
# various GUI event stuff....
+sub setVolumeICON {
+ my $volume = sanitizer("anumazlc",$_[0]);
+ my $icon;
+ if ($_[1] =~ /initGFX/) {
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFXM'} = Gtk2::Image->new_from_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file("$theSHAREDIR/gfx/default/audio_vol_m_32.png"));$GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFXM'}->set_size_request(32,32);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX20'} = Gtk2::Image->new_from_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file("$theSHAREDIR/gfx/default/audio_vol_20_32.png"));$GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX20'}->set_size_request(32,32);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX40'} = Gtk2::Image->new_from_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file("$theSHAREDIR/gfx/default/audio_vol_40_32.png"));$GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX40'}->set_size_request(32,32);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX60'} = Gtk2::Image->new_from_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file("$theSHAREDIR/gfx/default/audio_vol_60_32.png"));$GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX60'}->set_size_request(32,32);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX80'} = Gtk2::Image->new_from_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file("$theSHAREDIR/gfx/default/audio_vol_80_32.png"));$GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX80'}->set_size_request(32,32);
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX100'} = Gtk2::Image->new_from_pixbuf(Gtk2::Gdk::Pixbuf->new_from_file("$theSHAREDIR/gfx/default/audio_vol_100_32.png"));$GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'GFX100'}->set_size_request(32,32);
+ }
+ if (($volume eq 0) or ($volume eq "m")) {$icon = "GFXM";}
+ elsif ($volume <= 20) {$icon = "GFX20";}
+ elsif ($volume <= 40) {$icon = "GFX40";}
+ elsif ($volume <= 60) {$icon = "GFX60";}
+ elsif ($volume <= 80) {$icon = "GFX80";}
+ elsif ($volume eq 100) {$icon = "GFX100";}
+ else {appDBugLog("Something is wrong with the '$volume' value in setVolumeICON!");}
+ if ($icon =~ /GFX/) {
+ if ($GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'CURRENT'} =~ /GFX/) {
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'EBOX'}->remove($GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{$GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'CURRENT'}});
+ }
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'CURRENT'} = $icon;
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'EBOX'}->add($GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{$icon});
+ $GTKS{'CTRLS'}{'VolumeScaler'}{'IconBtn'}{'EBOX'}->show_all;
+ }
+}
+
+sub changeAudioVolume {
+ if ($GTKS{'CTRLS'}{'VolumeScaler'}{'HSCALE'}) {
+ my $ValueFromScaler = sprintf("%d",$GTKS{'CTRLS'}{'VolumeScaler'}{'HSCALE'}->get_value);
+ if (($ValueFromScaler >= 0) and ($ValueFromScaler <= 100)) {
+ $PRESISTENT{'AudioVolume'} = $ValueFromScaler;
+ appDBugLog("MANUAL VOLUME CHANGE ($PRESISTENT{'AudioVolume'})");
+ setVolumeICON($PRESISTENT{'AudioVolume'},0);
+ appCOM("SET|AUDIOVOLUME|$PRESISTENT{'AudioVolume'}|");
+ }
+ }
+}
sub eventBtnClickPlayPause {
appDBugLog("Clicked: Play/Pause");
@@ -795,6 +863,21 @@ sub keyPressHandler {
} elsif (($keyVal eq 70) or ($keyVal eq 102)) {# Fullscreen toggler
&toggleFullScreen;
}
+#elsif ($keyVal eq 65455) {# Audio Volume DOWN
+# my $changeVolume = ($PRESISTENT{'AudioVolume'} - 5);
+# if ($changeVolume < 0) {$changeVolume = 0;}
+# if ($changeVolume ne $PRESISTENT{'AudioVolume'}) {
+# $PRESISTENT{'AudioVolume'} = $changeVolume;
+# &changeAudioVolume;
+# }
+# } elsif ($keyVal eq 65450) {# Audio Volume UP
+# my $changeVolume = ($PRESISTENT{'AudioVolume'} + 5);
+# if ($changeVolume > 100) {$changeVolume = 100;}
+# if ($changeVolume ne $PRESISTENT{'AudioVolume'}) {
+# $PRESISTENT{'AudioVolume'} = $changeVolume;
+# &changeAudioVolume;
+# }
+# }
return FALSE;
}
--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/mteleplayer.git
More information about the x2go-commits
mailing list