This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository mteleplayer. from 2dfb440 Fix white background in icon that should be transparent... new 4abe5fe Add audio volume scaler to GUI and volume control support functions. The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: .../mteleplayer/bin/mteleplayer_clientside | 10 +- serverside/bin/mteleplayer | 103 ++++++++++++++++++-- 2 files changed, 101 insertions(+), 12 deletions(-) -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/mteleplayer.git
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@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