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