[longomatch] Only show event drawings for the primary event camera
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Only show event drawings for the primary event camera
- Date: Tue, 31 Mar 2015 17:35:35 +0000 (UTC)
commit 1103030b6e500573032d5bb5665b5d040e28daa6
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Thu Mar 26 13:10:02 2015 +0100
Only show event drawings for the primary event camera
LongoMatch.Services/Services/PlayerController.cs | 3 +-
Tests/Services/TestPlayerController.cs | 41 +++++++++++++++++++++-
2 files changed, 42 insertions(+), 2 deletions(-)
---
diff --git a/LongoMatch.Services/Services/PlayerController.cs
b/LongoMatch.Services/Services/PlayerController.cs
index 7c04485..692b074 100644
--- a/LongoMatch.Services/Services/PlayerController.cs
+++ b/LongoMatch.Services/Services/PlayerController.cs
@@ -838,7 +838,8 @@ namespace LongoMatch.Services
var drawings = EventDrawings;
if (drawings != null) {
/* Check if the event has drawings to display */
- FrameDrawing fd = drawings.FirstOrDefault (f =>
f.Render > videoTS && f.Render <= currentTime);
+ FrameDrawing fd = drawings.FirstOrDefault (f =>
f.Render > videoTS &&
+ f.Render <= currentTime &&
f.CameraIndex == CamerasVisible [0]);
if (fd != null) {
LoadPlayDrawing (fd);
}
diff --git a/Tests/Services/TestPlayerController.cs b/Tests/Services/TestPlayerController.cs
index 52e8b9d..4584c49 100644
--- a/Tests/Services/TestPlayerController.cs
+++ b/Tests/Services/TestPlayerController.cs
@@ -65,7 +65,9 @@ namespace Tests.Services
mfs.Add (new MediaFile { FilePath = "test1", VideoWidth = 320, VideoHeight = 240, Par
= 1 });
mfs.Add (new MediaFile { FilePath = "test2", VideoWidth = 320, VideoHeight = 240, Par
= 1 });
- evt = new TimelineEvent { Start = new Time (100), Stop = new Time (200) };
+ evt = new TimelineEvent { Start = new Time (100), Stop = new Time (200),
+ CamerasVisible = new List<int> { 0 }
+ };
plImage = new PlaylistImage (Utils.LoadImageFromFile (), new Time (5));
playlist = new Playlist ();
playlist.Elements.Add (new PlaylistPlayElement (evt));
@@ -710,6 +712,43 @@ namespace Tests.Services
Assert.AreEqual (1, nextLoaded);
}
+ [Test ()]
+ public void TestEventDrawings ()
+ {
+ FrameDrawing dr, drSent = null;
+
+ player.LoadDrawingsEvent += (frameDrawing) => {
+ drSent = frameDrawing;
+ };
+
+ dr = new FrameDrawing { Render = evt.Start + 50,
+ CameraIndex = 0
+ };
+ currentTime = evt.Start;
+ PreparePlayer ();
+
+ /* Checks drawings are loaded when the clock reaches the render time */
+ evt.Drawings.Add (dr);
+ player.LoadEvent (mfs, evt, evt.Start, true);
+ Assert.IsTrue (player.Playing);
+ currentTime = dr.Render;
+ player.Seek (currentTime, true, false);
+ Assert.IsFalse (player.Playing);
+ Assert.AreEqual (dr, drSent);
+ player.Play ();
+ Assert.IsNull (drSent);
+
+ /* Check only drawings for the first camera are loaded */
+ dr.CameraIndex = 1;
+ currentTime = evt.Start;
+ player.LoadEvent (mfs, evt, evt.Start, true);
+ Assert.IsTrue (player.Playing);
+ currentTime = dr.Render;
+ player.Seek (currentTime, true, false);
+ Assert.IsTrue (player.Playing);
+ Assert.IsNull (drSent);
+ }
+
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]