git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 24 Nov 2017 09:14:03 +0000 (09:14 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 24 Nov 2017 09:14:03 +0000 (09:14 +0000)
client/DxPlay/DxPlayer.cs
client/DxPlay/PlayerForm.Designer.cs
client/DxPlay/PlayerForm.cs
client/DxPlay/StringResource.Designer.cs
client/DxPlay/StringResource.resx
client/Maestro/Configuration/global.json
client/MaestroShared/Controls/NoFocusCueButton.cs [new file with mode: 0644]
client/MaestroShared/MaestroShared.csproj

index 1c46e15020f2b379daf160b9e6a9dd5df7f6090c..4f9b80dd5b47a051413f5dbeb87901a4f8bd8b8c 100644 (file)
@@ -26,6 +26,7 @@ namespace DxPlay {
 \r
         public enum GraphState {\r
             Stopped,\r
+            Completed,\r
             Paused,\r
             Playing,\r
             Exiting\r
@@ -128,6 +129,7 @@ namespace DxPlay {
             stateHunStringValues.Add(GraphState.Paused, StringResource.SZUNETELTETETT);\r
             stateHunStringValues.Add(GraphState.Playing, StringResource.LEJATSZAS);\r
             stateHunStringValues.Add(GraphState.Stopped, StringResource.MEGALLITVA);\r
+            stateHunStringValues.Add(GraphState.Completed, StringResource.VEGE);\r
         }\r
 \r
         private void TcWorker_DoWork(object sender, DoWorkEventArgs e) {\r
@@ -141,6 +143,8 @@ namespace DxPlay {
         // start playing\r
         public void Play() {\r
             // If we aren't already playing (or shutting down)\r
+            //if (State == GraphState.Completed)\r
+            //     Stop();\r
             if (State == GraphState.Stopped || State == GraphState.Paused) {\r
                 int hr = m_mediaCtrl.Run();\r
                 DsError.ThrowExceptionForHR(hr);\r
@@ -352,9 +356,14 @@ namespace DxPlay {
             MediaDescription.duration = new Timecode();\r
             MediaDescription.Duration.Set(ReferenceTimeToFrames(duration));\r
             if (MediaDescription.FirstFrame == null) {\r
-                MXFFile mxf = new MXFFile(MediaDescription.FileName);\r
-                mxf.Inspect();\r
-                MediaDescription.firstFrame = new Timecode(mxf.FirstSystemItem?.UserDateFullFrameNb, MediaDescription.FrameRate);\r
+                try {\r
+                    MXFFile mxf = new MXFFile(MediaDescription.FileName);\r
+                    mxf.Inspect();\r
+                    MediaDescription.firstFrame = new Timecode(mxf.FirstSystemItem?.UserDateFullFrameNb, MediaDescription.FrameRate);\r
+                }\r
+                catch (Exception ex) {\r
+                    MediaDescription.firstFrame = new Timecode();\r
+                } \r
             }\r
             //MediaDescription.firstFrame = new Timecode();\r
             CurrentTC = new Timecode(MediaDescription.FirstFrame);\r
@@ -595,7 +604,7 @@ namespace DxPlay {
 \r
                             // If the clip is finished playing\r
                             if (ec == EventCode.Complete) {\r
-                                //Stop();\r
+                                //State = GraphState.Completed;\r
                             }\r
 \r
                             // Release any resources the message allocated\r
index bba3516c50a43faf29f895158f97aa1d79172b84..6ae7c08f2ec75562d5da8d169c8209202192c763 100644 (file)
@@ -1,13 +1,14 @@
 \r
+using MaestroShared.Controls;\r
 using System.Windows.Forms;\r
 \r
 namespace DxPlay {\r
     partial class PlayerForm : Form {\r
         private Panel pVideo;\r
-        private Button btnPlay;\r
-        private Button btnPause;\r
+        private NoFocusCueButton btnPlay;\r
+        private NoFocusCueButton btnPause;\r
         private TextBox textCurrentTC;\r
-        private Button btnStop;\r
+        private NoFocusCueButton btnStop;\r
         private TextBox txtStartTC;\r
         private TextBox txtEndTC;\r
         private Panel panel3;\r
@@ -51,9 +52,9 @@ namespace DxPlay {
             this.splitContainer1 = new System.Windows.Forms.SplitContainer();\r
             this.panelPlayer = new System.Windows.Forms.Panel();\r
             this.pControls = new System.Windows.Forms.FlowLayoutPanel();\r
-            this.btnPlay = new System.Windows.Forms.Button();\r
-            this.btnStop = new System.Windows.Forms.Button();\r
-            this.btnPause = new System.Windows.Forms.Button();\r
+            this.btnPlay = new NoFocusCueButton();\r
+            this.btnStop = new NoFocusCueButton();\r
+            this.btnPause = new NoFocusCueButton();\r
             this.dgSegments = new System.Windows.Forms.DataGridView();\r
             this.bsSegments = new System.Windows.Forms.BindingSource(this.components);\r
             this.menuButtonSegmentActions = new DxPlay.MenuButton();\r
@@ -259,6 +260,7 @@ namespace DxPlay {
             this.btnPlay.Name = "btnPlay";\r
             this.btnPlay.Size = new System.Drawing.Size(54, 54);\r
             this.btnPlay.TabIndex = 1;\r
+            this.btnPlay.TabStop = false;\r
             this.btnPlay.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
             this.btnPlay.UseVisualStyleBackColor = false;\r
             this.btnPlay.Click += new System.EventHandler(this.btnPlay_Click);\r
@@ -274,6 +276,7 @@ namespace DxPlay {
             this.btnStop.Name = "btnStop";\r
             this.btnStop.Size = new System.Drawing.Size(54, 54);\r
             this.btnStop.TabIndex = 16;\r
+            this.btnStop.TabStop = false;\r
             this.btnStop.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
             this.btnStop.UseVisualStyleBackColor = false;\r
             this.btnStop.Click += new System.EventHandler(this.btnStop_Click);\r
@@ -289,6 +292,7 @@ namespace DxPlay {
             this.btnPause.Name = "btnPause";\r
             this.btnPause.Size = new System.Drawing.Size(54, 54);\r
             this.btnPause.TabIndex = 11;\r
+            this.btnPause.TabStop = false;\r
             this.btnPause.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
             this.btnPause.UseVisualStyleBackColor = false;\r
             this.btnPause.Click += new System.EventHandler(this.btnPause_Click);\r
index ba0ab37d20a0dbf3c9cbb3046bedb97e2886b693..2e85b957f73f6cff9af5ea6d8b5a2ba1e2621cc9 100644 (file)
@@ -197,7 +197,7 @@ namespace DxPlay {
 \r
         private void PlayerForm_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {\r
             if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right || e.KeyCode == Keys.Space || e.KeyCode == Keys.Escape) {\r
-                e.IsInputKey = true;\r
+                e.IsInputKey = false;\r
             }\r
         }\r
 \r
@@ -212,7 +212,8 @@ namespace DxPlay {
         }\r
 \r
         private void PlayerForm_Load(object sender, EventArgs e) {\r
-            DisableHotKeysDefaults(this.Controls);\r
+            //DisableHotKeysDefaults(this.Controls);\r
+\r
             InterceptKeys.Start();\r
             InterceptKeys.GlobalKeyEvent += HandleHotKey;\r
 \r
@@ -229,8 +230,12 @@ namespace DxPlay {
         }\r
 \r
         private void PlayerForm_KeyDown(object sender, KeyEventArgs e) {\r
-            e.Handled = true;\r
-            e.SuppressKeyPress = true; \r
+            if (dgSegments.IsCurrentCellInEditMode)\r
+                return;\r
+            if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right || e.KeyCode == Keys.Space || e.KeyCode == Keys.Escape) {\r
+                e.Handled = true;\r
+                e.SuppressKeyPress = true;\r
+            }\r
         }\r
 \r
         private bool HandleHotKey(Keys keyCode) {\r
@@ -418,17 +423,22 @@ namespace DxPlay {
 \r
 \r
         private void dgSegments_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) {\r
-            //MovieSegment actualSegment = bsSegments.Current as MovieSegment;\r
-            //if (actualSegment == null)\r
-            //    return;\r
-            //if (e.ColumnIndex == 0) {\r
-            //    m_play.Pause();\r
-            //    m_play.Seek(actualSegment.TCIn.ZeroBasedFrames);\r
-            //}\r
-            //if (e.ColumnIndex == 1) {\r
-            //    m_play.Pause();\r
-            //    m_play.Seek(actualSegment.TCOut.ZeroBasedFrames);\r
-            //}\r
+            MovieSegment actualSegment = bsSegments.Current as MovieSegment;\r
+            if (actualSegment == null)\r
+                return;\r
+            if (e.ColumnIndex == 0) {\r
+                m_play.Pause();\r
+                m_play.Seek(actualSegment.TCIn.Frames - m_play.MediaDescription.FirstFrame.Frames);\r
+            }\r
+            if (e.ColumnIndex == 1) {\r
+                m_play.Pause();\r
+                int pos = actualSegment.TCOut.Frames - m_play.MediaDescription.FirstFrame.Frames;\r
+                //Az utolsó kocka nem jelenik meg egyébként\r
+                if (pos == m_play.MediaDescription.Duration.Frames)\r
+                    pos--;\r
+                m_play.Seek(pos);\r
+                m_play.Play();\r
+            }\r
 \r
         }\r
     }\r
index 8b057bc4df5e1d313757a1f462127ce7c4194d10..34b4f6b7a9faa0fba4c4ce179db600b4e6807c9f 100644 (file)
@@ -239,5 +239,14 @@ namespace DxPlay {
                 return ResourceManager.GetString("SZUNETELTETETT", resourceCulture);\r
             }\r
         }\r
+        \r
+        /// <summary>\r
+        ///   Looks up a localized string similar to Vége.\r
+        /// </summary>\r
+        internal static string VEGE {\r
+            get {\r
+                return ResourceManager.GetString("VEGE", resourceCulture);\r
+            }\r
+        }\r
     }\r
 }\r
index f1442fd47ddee9c4900d90b2a4395b5f2fd6fcfd..efd48cd33ed46404454e1b3ac15ac0bbbd9eb975 100644 (file)
   <data name="SZUNETELTETETT" xml:space="preserve">\r
     <value>Szüneteltetett</value>\r
   </data>\r
+  <data name="VEGE" xml:space="preserve">\r
+    <value>Vége</value>\r
+  </data>\r
 </root>
\ No newline at end of file
index c2fc61183489ea64a87cf2932948c73628f94a16..52f76c0022017146450e6b2cceb98fb64d778b26 100644 (file)
@@ -1,7 +1,7 @@
 {\r
   "minimizeToTray":  true,\r
   "userDomain": {\r
-    "address": "intra.echotv.hu",\r
+    "address": "10.10.254.11",\r
     "userName": "echotest",\r
     "password": "F3QcfkSEW7hq+FcEraq9xv4UdHHeVoOh7jBH1G1k9SzEayTXyiT4WQ7XKtBO/ygnCpRU97AXoKXKoqXIGP8QlVkFurRqwzo8mywEb1q2VW7dUjkJcLFtLDkqQjM39+N9"\r
   }\r
diff --git a/client/MaestroShared/Controls/NoFocusCueButton.cs b/client/MaestroShared/Controls/NoFocusCueButton.cs
new file mode 100644 (file)
index 0000000..0b8938f
--- /dev/null
@@ -0,0 +1,11 @@
+using System.Windows.Forms;\r
+\r
+namespace MaestroShared.Controls {\r
+    public class NoFocusCueButton : Button {\r
+        protected override bool ShowFocusCues {\r
+            get {\r
+                return false;\r
+            }\r
+        }\r
+    }\r
+}\r
index 3c08b76a185844e10e803ae3bb374bbd2542262e..310b065ae4a16bdd1ba406cfe44ba574f0695d16 100644 (file)
@@ -88,6 +88,9 @@
     <Compile Include="Configuration\ConfigurationInfo.cs" />\r
     <Compile Include="Configuration\KeysJsonConverter.cs" />\r
     <Compile Include="Configuration\KnownTypesBinder.cs" />\r
+    <Compile Include="Controls\NoFocusCueButton.cs">\r
+      <SubType>Component</SubType>\r
+    </Compile>\r
     <Compile Include="Metadata\MetadataType.cs" />\r
     <Compile Include="Metadata\MovieSegment.cs" />\r
     <Compile Include="Metadata\Timecode.cs" />\r