[X2Go-Commits] [mteleplayer] 07/29: GUI and keyb control improvements + cleanups
git-admin at x2go.org
git-admin at x2go.org
Fri Aug 29 21:12:01 CEST 2014
This is an automated email from the git hooks/post-receive script.
x2go pushed a commit to branch gzng
in repository mteleplayer.
commit 979582b0f55f70e4bec08156605b04b78bb3d426
Author: gznget <opensource at 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
More information about the x2go-commits
mailing list