This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository mteleplayer. from a3a0e52 Improves volume control new 4211f68 GUI and keyb control improvements + cleanups 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 | 143 ++++++++++++++++---- serverside/bin/mteleplayer | 16 +++ 2 files changed, 133 insertions(+), 26 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 4211f68e0f0793243980217895c2b2326de95a3e Author: gznget <opensource@gznianguan.com> Date: Mon Jun 30 15:42:23 2014 +0200 GUI and keyb control improvements + cleanups --- .../mteleplayer/bin/mteleplayer_clientside | 143 ++++++++++++++++---- serverside/bin/mteleplayer | 16 +++ 2 files changed, 133 insertions(+), 26 deletions(-) diff --git a/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside b/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside index 3cf427a..1fadc8d 100755 --- a/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside +++ b/clientside/lib/telekinesis/client/applications/mteleplayer/bin/mteleplayer_clientside @@ -95,7 +95,6 @@ $ENV{'MPSLAVEFIFOPATH'} = $SlaveFIFO; $ENV{'MTPSES_LOCALDATA'} = $LocalAppDataDIR; $ENV{'MTPC_SHAREPATH'} = $theSHAREDIR; my $myHomeDir = $ENV{'MTPC_HOMEPATH'}; -my $BlackoutFile = "$theSHAREDIR/blk.mpg"; my $LocalSocket; @@ -110,13 +109,17 @@ if (-S $TeKiLSockPath) { $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; +my %mpState;$mpState{'MediaERROR'} = 0;$mpState{'FakeFS'} = 0;$mpState{'mediaPos'} = 0; $mpState{'mediaLength'} = 0;$mpState{'paused'} = 0; +$mpState{'noshow'} = 1; $mpState{'mute'} = 0; $mpState{'volume'} = 0;# Change this to get from server side! $mpState{'osd'} = 0; $mpState{'LASTINPUT'} = "";$mpState{'prevSecond'} = 0; ###########################33 - +# INIT MEDIA INFO +my %MediaINFO; +setMediaInfo(0); +# INIT MEDIA INFO ########################## $sstatusi{'lastCOMtime'} = (time()+2); $TnW{'timeoutRound'} = Glib::Timeout->add (1000, sub {appCOM("YO!");if ($sstatusi{'lastCOMtime'} < (time()-2)) {&doSelfTerminate;}1;}); @@ -278,8 +281,12 @@ if ($1 =~ /^MPCMD\|PLAYMEDIA\|([0-9a-zA-Z]{24,64})\|([A-Z]{3,4})\|(\d*)\|(\d*)\| appDBugLog(" FILE:$theMediaFilePath"); if (-e $theMediaFilePath) { appDBugLog(" THAT FILE EXISTS!!"); - mpCMD("loadfile $BlackoutFile");# just to get rid of the "old" file if there is one... + setMediaInfo(0); + $mpState{'noshow'} = 1; + overlayStateChange(); mpCMD("loadfile $theMediaFilePath"); + if ($mpState{'FakeFS'} ne 1) {mpCMD("osd 0");} + mpCMD("volume $mpState{'volume'} 1"); mpCMD("pausing pause");# Load into a paused state if ($StartSeek > 0) { mpCMD("seek $StartSeek 2"); @@ -295,6 +302,8 @@ if ($1 =~ /^MPCMD\|PLAYMEDIA\|([0-9a-zA-Z]{24,64})\|([A-Z]{3,4})\|(\d*)\|(\d*)\| $window->resize($sstatusi{'FinalPosW'},$sstatusi{'FinalPosH'}); $window->move($sstatusi{'FinalPosX'},$sstatusi{'FinalPosY'}); overlayStateChange(); +} elsif ($1 =~ /^MPCMD\|FRAMESTEP\|/) { + mpCMD("frame_step"); } elsif ($1 =~ /^MPCMD\|PAUSE\|/) { mpCMD("pausing pause"); } elsif ($1 =~ /^MPCMD\|PLAY\|/) { @@ -304,6 +313,15 @@ if ($1 =~ /^MPCMD\|PLAYMEDIA\|([0-9a-zA-Z]{24,64})\|([A-Z]{3,4})\|(\d*)\|(\d*)\| if ($1 <= $mpState{'mediaLength'}) { mpCMD("seek $1 2"); } +} elsif ($1 =~ /^MPCMD\|KEYSEEK\|(\-?\d*)\|/) { + my $newPos = ($mpState{'mediaPos'}+$1); + if ($newPos < 0) {$newPos = 0;} + if ($newPos > ($mpState{'mediaLength'}-1)) { + mpCMD("pausing frame_step"); + inList2Play("next"); + } else { + mpCMD("seek $newPos 2"); + } } @@ -391,11 +409,18 @@ sub overlayStateChange { $newXPos{'W'} = $sstatusi{'xposW'}; $newXPos{'H'} = $sstatusi{'xposH'}; + if (($sstatusi{'X2GoWVisible'} eq 1) and ($sstatusi{'xposV'} eq 1)) { - $newXPos{'V'} = 1; + if ($mpState{'noshow'} eq 1) { + $newXPos{'V'} = 0; + } else { + $newXPos{'V'} = 1; + } } else { $newXPos{'V'} = 0; } + + if (($newXPos{'X'} ne $sstatusi{'FinalPosX'}) or ($newXPos{'Y'} ne $sstatusi{'FinalPosY'})) { $sstatusi{'FinalPosX'} = $newXPos{'X'}; $sstatusi{'FinalPosY'} = $newXPos{'Y'}; @@ -411,7 +436,7 @@ sub overlayStateChange { } - if ($newXPos{'V'} ne $sstatusi{'FinalPosV'}) { + if (($newXPos{'V'} ne $sstatusi{'FinalPosV'}) or ($mpState{'noshow'} eq 1)) { $sstatusi{'FinalPosV'} = $newXPos{'V'}; if ($newXPos{'V'} eq 1) { $window->show_all(); @@ -477,22 +502,47 @@ sub watch_mplayerOutput { $line =~ s/[\n\r\t]//g; ############### # Trigers... - if ($line =~ /^Starting playback\.\.\./) {# mpCMD("get_file_name"); - if ($mpState{'FakeFS'} ne 1) {mpCMD("osd 0");} - mpCMD("get_time_length"); - mpCMD("volume $mpState{'volume'} 1"); - if ($mpState{'notInitial'} ne 1) { - $mpState{'notInitial'} = 1; - appCOM("GIVEMEFIRSTMEDIATOINIT"); - } - } +# if ($line =~ /^Starting playback\.\.\./) {# mpCMD("get_file_name"); +# if ($mpState{'FakeFS'} ne 1) {mpCMD("osd 0");} +# mpCMD("get_time_length"); +# mpCMD("volume $mpState{'volume'} 1"); +# if ($mpState{'notInitial'} ne 1) { +# $mpState{'notInitial'} = 1; +# appCOM("GIVEMEFIRSTMEDIATOINIT"); +# } +# } # Triggers ############### # ANSWERS - if ($line =~ /^ANS\_FILENAME\=\'(.*)\'$/) { + if ($line =~ /^ID/) { + ############################# + # GET MEDIA INFO + if ($mediaINFO{'MEDIAINFOSET'} ne 1) { + if ($line =~ /^ID_VIDEO_FORMAT\=(.*)$/) { + $mediaINFO{'VIDEOFORMAT'} = $1; + } elsif ($line =~ /^ID_AUDIO_FORMAT\=(.*)$/) { + $mediaINFO{'AUDIOFORMAT'} = $1; + } elsif ($line =~ /^ID_LENGTH\=([\.\d]*)$/) { + $mediaINFO{'LENGHT'} = $1; + } elsif ($line =~ /^ID_SEEKABLE\=1$/) { + $mediaINFO{'SEEKABLE'} = 1; + } elsif ($line =~ /^ID_FILENAME\=(.*)$/) { + $mediaINFO{'FILENAME'} = $1; + } + } + # GET MEDIA INFO + ############################# + } elsif ($line =~ /^Playing(.*)$/) { + appDBugLog("SET X:$1:X"); + if ($1 =~ /mteleplayer\/blk\.mpg\.$/) {$mediaINFO{'AXEPTINFO'} = 0;} + else {$mediaINFO{'AXEPTINFO'} = 1;} + } elsif (($line =~ /======================================/) and ($mediaINFO{'MEDIAINFOSET'} ne 1)) { + appDBugLog("SET STATUS!"); + setMediaInfo(1);# Trigger setMediaInfo DONE... + } elsif ($line =~ /^ANS\_FILENAME\=\'(.*)\'$/) { $mpState{'mediaFileName'} = $1;# print "File: $1\n"; } elsif ($line =~ /^ANS\_LENGTH\=([\d\.]*)$/) { - $mpState{'mediaLength'} = $1; +# $mpState{'mediaLength'} = $1; } elsif ($line =~ /^Cache fill:([\ \d\.\%]*)\((\d*) bytes\)/) { appDBugLog("Cache fill! [$1] [$2]"); my $cacheP = $1;$cacheP =~ s/\ //g; @@ -510,24 +560,22 @@ sub watch_mplayerOutput { if ($newSecond ne $mpState{'prevSecond'}) { $mpState{'prevSecond'} = $newSecond; doReportTimePos($newSecond,$mpState{'mediaLength'}); - if ($mpState{'mediaLength'} > 1) { - if (($mpState{'mediaLength'} - 1) <= $mpState{'mediaPos'}) { + appDBugLog("MP: :$mpState{'mediaLength'}: :$mpState{'mediaPos'}:"); +# if ($mpState{'mediaLength'} > 0) { + if (($mpState{'mediaLength'}-1) <= $mpState{'mediaPos'}) { appDBugLog("LOADPOINT 1! $mpState{'mediaLength'} $mpState{'mediaPos'}"); mpCMD("pausing frame_step"); inList2Play("next"); } - } else { - appDBugLog("LOADPOINT 3!"); - mpCMD("pausing loadfile $BlackoutFile"); - } +# } } } elsif ($line =~ /^Failed to open LIRC support/) {#DO NOTHING!! } elsif (($line =~ /^Failed\ to\ open.*/) or ($line =~ /^File\ not\ found.*/)) { appDBugLog("NOT A FILE!\n $line"); - mpCMD("pausing loadfile $BlackoutFile"); +# Do something HERE? } elsif ($line =~ /^Failed\ to\ recognize\ file\ format.*/) { appDBugLog("NOT A MEDIA FILE!\n $line\n"); - mpCMD("pausing loadfile $BlackoutFile"); +# DO SOMETHING HERE? } else { appDBugLog("UNCUAGHT:\n $line\n"); } @@ -544,10 +592,53 @@ sub mpCMD { } - +sub setMediaInfo { + appDBugLog("SET setMediaINFO :$_[0]:"); + if ($_[0] eq 0) { + $mediaINFO{'AUDIOFORMAT'} = 0; + $mediaINFO{'VIDEOFORMAT'} = 0; + $mediaINFO{'LENGHT'} = 0; + $mediaINFO{'SEEKABLE'} = 0; + $mediaINFO{'FILENAME'} = 0; + $mediaINFO{'ONLYAUDIO'} = 0; + $mediaINFO{'MEDIAINFOSET'} = 0; + } elsif ($_[0] eq 1) { + appDBugLog("SET setMediaINFO STEP 1"); + foreach my $key (keys %mediaINFO) { + appDBugLog("SET\t$key $mediaINFO{$key}"); + } + unless ($mediaINFO{'FILENAME'} =~ /mteleplayer\/blk\.mpg$/) { + if ($mediaINFO{'VIDEOFORMAT'}) {$mediaINFO{'ONLYAUDIO'} = 1;} + $mpState{'mediaLength'} = $mediaINFO{'LENGHT'}; + if ($mediaINFO{'VIDEOFORMAT'} eq 0) { + $mpState{'noshow'} = 1; + } else { + $mpState{'noshow'} = 0; + } + + doReportTimePos("0.00",$mpState{'mediaLength'}); + $mediaINFO{'MEDIAINFOSET'} = 1; + } else { +# setMediaInfo(0); + } + overlayStateChange(); + } elsif ((uc($_[0]) =~ /^([A-Z]{3,})$/) and (length($_[1]) > 0)) { + $mediaINFO{$1} = $_[1]; + } +} # MPLAYER STUFF ###################################################################### +sub shouldWeBeVisible { + my $visible = 1; + if ($mpState{'noshow'} eq 1) {$visible = 0;} + + if ($visible eq 1) { + return 1; + } else { + return 0; + } +} sub windowEvent { my ($mw, $event) = @_; diff --git a/serverside/bin/mteleplayer b/serverside/bin/mteleplayer index e529b89..b69f01d 100755 --- a/serverside/bin/mteleplayer +++ b/serverside/bin/mteleplayer @@ -263,6 +263,7 @@ sub initMainWindow { $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'}->can_focus(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'}); @@ -359,6 +360,7 @@ sub seekTimeScaler { $GTKS{'seekTimeScaler'}->set_update_policy('discontinuous'); $GTKS{'seekTimeScaler'}->set_digits(0); $GTKS{'seekTimeScaler'}->set_draw_value(FALSE); + $GTKS{'seekTimeScaler'}->can_focus(0); $GTKS{'seekTimeScalerEBox'}->add($GTKS{'seekTimeScaler'}); $GTKS{'seekTimeScaler'}->show; } @@ -911,6 +913,20 @@ sub keyPressHandler { changeAudioVolume("down"); } elsif ($keyVal eq 65450) {# Audio Volume UP changeAudioVolume("up"); + } elsif ($keyVal eq 65363) {# SEEK +10s or frame step + if ($modMasks{'ctrl'}) { + appCOM("MPCMD|FRAMESTEP|"); + appDBugLog("FRAMESTEP"); + } else { + appDBugLog("KEYSEEK +10"); + appCOM("MPCMD|KEYSEEK|10|"); + } + } elsif ($keyVal eq 65361) {# SEEK -10s + appCOM("MPCMD|KEYSEEK|-10|"); + } elsif ($keyVal eq 65362) {# SEEK +60s + appCOM("MPCMD|KEYSEEK|60|"); + } elsif ($keyVal eq 65364) {# SEEK -60s + appCOM("MPCMD|KEYSEEK|-60|"); } return FALSE; } -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/mteleplayer.git