git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorSweidan Omar <TFS\sweidan.omar>
Fri, 29 Apr 2022 09:52:22 +0000 (09:52 +0000)
committerSweidan Omar <TFS\sweidan.omar>
Fri, 29 Apr 2022 09:52:22 +0000 (09:52 +0000)
client/DxPlay/Controls/PlayerControls.Designer.cs
client/DxPlay/Controls/PlayerControls.cs
client/DxPlay/DxPlayer.cs
client/DxPlay/PlayerForm.cs
client/DxPlay/PlayerGraph.cs

index 440670cbcdb68f72be033d8741e16ebc9c5c75c8..449bc60ef1745a35892a87c4a9362b796b7ebd7a 100644 (file)
             this.controlsPanel = new System.Windows.Forms.TableLayoutPanel();\r
             this.buttonsPanel = new System.Windows.Forms.FlowLayoutPanel();\r
             this.btnPlay = new MaestroShared.Controls.NoFocusCueButton();\r
-            this.btnPause = new MaestroShared.Controls.NoFocusCueButton();\r
             this.btnRewind = new MaestroShared.Controls.NoFocusCueButton();\r
             this.btnStepBack = new MaestroShared.Controls.NoFocusCueButton();\r
             this.btnStop = new MaestroShared.Controls.NoFocusCueButton();\r
             this.btnStepForward = new MaestroShared.Controls.NoFocusCueButton();\r
             this.btnForward = new MaestroShared.Controls.NoFocusCueButton();\r
-            this.playSpeed = new DxPlay.Controls.VideoSpeedTrackbar();\r
             this.lblPlaySpeed = new System.Windows.Forms.Label();\r
+            this.playSpeed = new DxPlay.Controls.VideoSpeedTrackbar();\r
             this.logoPanel = new System.Windows.Forms.Panel();\r
             this.mainPanel.SuspendLayout();\r
             this.timecodePanel.SuspendLayout();\r
             this.controlsPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
             this.controlsPanel.Size = new System.Drawing.Size(1105, 126);\r
             this.controlsPanel.TabIndex = 21;\r
+            this.controlsPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.controlsPanel_Paint);\r
             // \r
             // buttonsPanel\r
             // \r
             this.buttonsPanel.AutoSize = true;\r
             this.buttonsPanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;\r
             this.buttonsPanel.Controls.Add(this.btnPlay);\r
-            this.buttonsPanel.Controls.Add(this.playSpeed);\r
-            this.buttonsPanel.Controls.Add(this.lblPlaySpeed);\r
-            this.buttonsPanel.Controls.Add(this.btnPause);\r
             this.buttonsPanel.Controls.Add(this.btnRewind);\r
             this.buttonsPanel.Controls.Add(this.btnStepBack);\r
             this.buttonsPanel.Controls.Add(this.btnStop);\r
             this.buttonsPanel.Controls.Add(this.btnStepForward);\r
             this.buttonsPanel.Controls.Add(this.btnForward);\r
+            this.buttonsPanel.Controls.Add(this.lblPlaySpeed);\r
+            this.buttonsPanel.Controls.Add(this.playSpeed);\r
             this.buttonsPanel.Dock = System.Windows.Forms.DockStyle.Left;\r
             this.buttonsPanel.Location = new System.Drawing.Point(0, 0);\r
             this.buttonsPanel.Margin = new System.Windows.Forms.Padding(0);\r
             this.buttonsPanel.Name = "buttonsPanel";\r
-            this.buttonsPanel.Size = new System.Drawing.Size(730, 126);\r
+            this.buttonsPanel.Size = new System.Drawing.Size(731, 126);\r
             this.buttonsPanel.TabIndex = 20;\r
             // \r
             // btnPlay\r
             this.btnPlay.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
             this.btnPlay.UseVisualStyleBackColor = false;\r
             // \r
-            // btnPause\r
-            // \r
-            this.btnPause.AutoSize = true;\r
-            this.btnPause.BackColor = System.Drawing.Color.Transparent;\r
-            this.btnPause.Cursor = System.Windows.Forms.Cursors.Hand;\r
-            this.btnPause.FlatAppearance.BorderSize = 0;\r
-            this.btnPause.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
-            this.btnPause.Image = global::DxPlay.Properties.Resources.ic_pause_black_24dp_2x;\r
-            this.btnPause.Location = new System.Drawing.Point(254, 4);\r
-            this.btnPause.Margin = new System.Windows.Forms.Padding(4);\r
-            this.btnPause.Name = "btnPause";\r
-            this.btnPause.Size = new System.Drawing.Size(72, 66);\r
-            this.btnPause.TabIndex = 25;\r
-            this.btnPause.TabStop = false;\r
-            this.btnPause.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
-            this.btnPause.UseVisualStyleBackColor = false;\r
-            // \r
             // btnRewind\r
             // \r
             this.btnRewind.AutoSize = true;\r
             this.btnRewind.FlatAppearance.BorderSize = 0;\r
             this.btnRewind.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
             this.btnRewind.Image = ((System.Drawing.Image)(resources.GetObject("btnRewind.Image")));\r
-            this.btnRewind.Location = new System.Drawing.Point(334, 4);\r
+            this.btnRewind.Location = new System.Drawing.Point(193, 4);\r
             this.btnRewind.Margin = new System.Windows.Forms.Padding(4);\r
             this.btnRewind.Name = "btnRewind";\r
             this.btnRewind.Size = new System.Drawing.Size(72, 66);\r
             this.btnStepBack.FlatAppearance.BorderSize = 0;\r
             this.btnStepBack.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
             this.btnStepBack.Image = global::DxPlay.Properties.Resources.baseline_skip_previous_black_24dp;\r
-            this.btnStepBack.Location = new System.Drawing.Point(414, 4);\r
+            this.btnStepBack.Location = new System.Drawing.Point(273, 4);\r
             this.btnStepBack.Margin = new System.Windows.Forms.Padding(4);\r
             this.btnStepBack.Name = "btnStepBack";\r
             this.btnStepBack.Size = new System.Drawing.Size(72, 66);\r
             this.btnStop.FlatAppearance.BorderSize = 0;\r
             this.btnStop.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
             this.btnStop.Image = global::DxPlay.Properties.Resources.ic_stop_black_24dp_2x;\r
-            this.btnStop.Location = new System.Drawing.Point(494, 4);\r
+            this.btnStop.Location = new System.Drawing.Point(353, 4);\r
             this.btnStop.Margin = new System.Windows.Forms.Padding(4);\r
             this.btnStop.Name = "btnStop";\r
             this.btnStop.Size = new System.Drawing.Size(72, 66);\r
             this.btnStepForward.FlatAppearance.BorderSize = 0;\r
             this.btnStepForward.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
             this.btnStepForward.Image = global::DxPlay.Properties.Resources.baseline_skip_next_black_24dp;\r
-            this.btnStepForward.Location = new System.Drawing.Point(574, 4);\r
+            this.btnStepForward.Location = new System.Drawing.Point(433, 4);\r
             this.btnStepForward.Margin = new System.Windows.Forms.Padding(4);\r
             this.btnStepForward.Name = "btnStepForward";\r
             this.btnStepForward.Size = new System.Drawing.Size(72, 66);\r
             this.btnForward.FlatAppearance.BorderSize = 0;\r
             this.btnForward.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
             this.btnForward.Image = global::DxPlay.Properties.Resources.baseline_fast_forward_black_24dp;\r
-            this.btnForward.Location = new System.Drawing.Point(654, 4);\r
+            this.btnForward.Location = new System.Drawing.Point(513, 4);\r
             this.btnForward.Margin = new System.Windows.Forms.Padding(4);\r
             this.btnForward.Name = "btnForward";\r
             this.btnForward.Size = new System.Drawing.Size(72, 66);\r
             this.btnForward.TabStop = false;\r
             this.btnForward.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
             this.btnForward.UseVisualStyleBackColor = false;\r
+            //\r
+            // lblPlaySpeed\r
+            // \r
+            this.lblPlaySpeed.AutoSize = true;\r
+            this.lblPlaySpeed.Location = new System.Drawing.Point(83, 0);\r
+            this.lblPlaySpeed.Name = "lblPlaySpeed";\r
+            this.lblPlaySpeed.Size = new System.Drawing.Size(22, 17);\r
+            this.lblPlaySpeed.TabIndex = 27;\r
+            this.lblPlaySpeed.Text = "x1";\r
             // \r
             // playSpeed\r
             // \r
             this.playSpeed.CurrentSpeed = 0F;\r
             this.playSpeed.LargeChange = 1;\r
-            this.playSpeed.Location = new System.Drawing.Point(83, 3);\r
+            this.playSpeed.Location = new System.Drawing.Point(592, 3);\r
             this.playSpeed.Maximum = 5;\r
-            this.playSpeed.Minimum = 0;\r
             this.playSpeed.Name = "playSpeed";\r
             this.playSpeed.Size = new System.Drawing.Size(136, 56);\r
             this.playSpeed.TabIndex = 26;\r
             this.playSpeed.TickStyle = System.Windows.Forms.TickStyle.None;\r
             this.playSpeed.Value = 2;\r
             // \r
-            // lblPlaySpeed\r
-            // \r
-            this.lblPlaySpeed.AutoSize = true;\r
-            this.lblPlaySpeed.Location = new System.Drawing.Point(225, 0);\r
-            this.lblPlaySpeed.Name = "lblPlaySpeed";\r
-            this.lblPlaySpeed.Size = new System.Drawing.Size(22, 17);\r
-            this.lblPlaySpeed.TabIndex = 27;\r
-            this.lblPlaySpeed.Text = "x1";\r
-            // \r
             // logoPanel\r
             // \r
             this.logoPanel.AutoSize = true;\r
         private System.Windows.Forms.Panel logoPanel;\r
         private MaestroShared.Controls.NoFocusCueButton btnStepBack;\r
         private MaestroShared.Controls.NoFocusCueButton btnStepForward;\r
-        private MaestroShared.Controls.NoFocusCueButton btnPause;\r
         private VideoSpeedTrackbar playSpeed;\r
         private System.Windows.Forms.Label lblPlaySpeed;\r
     }\r
index ab447e9d9a356b615c3f90438494b2cf94e28d1c..98e6e8f88ec02e5092065f6c5a0b14c85ead0328 100644 (file)
@@ -22,7 +22,6 @@ namespace DxPlay.Controls
         public Label EndTC { get => lbEndTC; }\r
         public Label CurrentTC { get => lbCurrentTC; }\r
         public ColorSlider TrackBar { get => trackBar; }\r
-        public NoFocusCueButton Pause { get => btnPause; }\r
         public NoFocusCueButton Play { get => btnPlay; }\r
         public NoFocusCueButton Stop { get => btnStop; }\r
         public NoFocusCueButton Rewind { get => btnRewind; }\r
@@ -32,5 +31,9 @@ namespace DxPlay.Controls
         public Label PlaySpeedLabel { get => lblPlaySpeed; }\r
         public VideoSpeedTrackbar PlaySpeed { get => playSpeed; }\r
 \r
+        private void controlsPanel_Paint(object sender, PaintEventArgs e)\r
+        {\r
+\r
+        }\r
     }\r
 }
\ No newline at end of file
index 142f47a688d31abb9aa893f6c05f6025e70c9d50..24f7fc802b742889c5a3f0222971320f5e53b227 100644 (file)
@@ -77,7 +77,7 @@ namespace DxPlay {
         public PlayerGraph Graph { get => graph; set =>  graph = value;  }\r
         private readonly DxPlaySettings settings;\r
 \r
-        // Play an avi file into a window.  Allow for snapshots.\r
+        // PlayOrPause an avi file into a window.  Allow for snapshots.\r
         // (Control to show video in, Avi file to play)\r
         public DxPlayer(Control hWin, ref MediaDescription mediaDesc, DxPlaySettings settings) {\r
             this.settings = settings;\r
@@ -100,7 +100,7 @@ namespace DxPlay {
 \r
                 // Get the event handle the graph will use to signal\r
                 // when events occur\r
-                //logger.Debug("GetEventHandle");\r
+                logger.Debug("GetEventHandle");\r
                 hr = graph.MediaEvent.GetEventHandle(out IntPtr hEvent);\r
                 DsError.ThrowExceptionForHR(hr);\r
 \r
@@ -121,7 +121,7 @@ namespace DxPlay {
                 tcWorker.RunWorkerAsync(tcLock);\r
 \r
             } catch (Exception e) {\r
-                logger.Error(e.StackTrace);\r
+                logger.Error(e);\r
                 Dispose();\r
                 throw;\r
             }\r
@@ -468,8 +468,7 @@ namespace DxPlay {
                         }\r
                     }\r
 \r
-                    if (graph != null)\r
-                    {\r
+                    if (graph != null) {\r
                         graph.Dispose();\r
                         graph = null;\r
                     }\r
@@ -552,7 +551,7 @@ namespace DxPlay {
                             hr = graph.MediaEvent.GetEvent(out ec, out p1, out p2, 0)\r
                             ) {\r
                             // Write the event name to the debug window\r
-                            //logger.Debug("EVENT:" + ec.ToString());\r
+                            logger.Debug("EVENT:" + ec.ToString());\r
 \r
                             // If the clip is finished playing\r
                             if (ec == EventCode.Complete) {\r
index 8ad19639a62d276e949fc0baa637af941bb5eab2..235042dde6d2a9f13a900e50157d2df3203f0440 100644 (file)
@@ -13,11 +13,9 @@ using System.Runtime.InteropServices;
 using System.Windows.Forms;\r
 using Logger = NLog.Logger;\r
 \r
-namespace DxPlay\r
-{\r
+namespace DxPlay {\r
 \r
-    public partial class PlayerForm : Form\r
-    {\r
+    public partial class PlayerForm : Form {\r
         private const string TITLE = "MediaCube Player";\r
         private static readonly Logger logger = LogManager.GetCurrentClassLogger();\r
         private const string DEFAULT_FILE_FILTER = "MXF files (*.MXF)|*.MXF";\r
@@ -29,17 +27,12 @@ namespace DxPlay
         private OpenFileDialog openFileDialog = new OpenFileDialog();\r
         private ToolTip tooltips;\r
 \r
-        private bool isPauseButtonClicked = false;\r
-\r
         private DxPlaySettings settings;\r
-        public DxPlaySettings Settings\r
-        {\r
-            get\r
-            {\r
+        public DxPlaySettings Settings {\r
+            get {\r
                 return settings;\r
             }\r
-            set\r
-            {\r
+            set {\r
                 settings = value ?? throw new NullReferenceException("DxPlaySettings");\r
                 Model = new DxPlayModel(value);\r
                 //default 1 kell legyen: HTV uj szegmens = elozo szegmens vege + 1\r
@@ -49,11 +42,9 @@ namespace DxPlay
         }\r
 \r
         private DxPlayModel model;\r
-        public DxPlayModel Model\r
-        {\r
+        public DxPlayModel Model {\r
             get { return model; }\r
-            set\r
-            {\r
+            set {\r
                 model = value ?? throw new NullReferenceException("DxPlayModel");\r
                 ApplyModel();\r
             }\r
@@ -72,8 +63,7 @@ namespace DxPlay
 \r
         public bool openFileDialogOpened;\r
 \r
-        private void ApplyModel()\r
-        {\r
+        private void ApplyModel() {\r
             bsSegments.DataSource = model.Segments;\r
             dgSegments.AutoGenerateColumns = true;\r
             mainMenu.DataBindings.Add(new Binding("Visible", model, "IsMenuVisible", false, DataSourceUpdateMode.Never));\r
@@ -81,14 +71,11 @@ namespace DxPlay
             menuApprove.DataBindings.Add(new Binding("Enabled", model, "IsApproveEnabled", false, DataSourceUpdateMode.Never));\r
             //menuRedefineSegments.DataBindings.Add(new Binding("Enabled", model, "IsRedefineSegmentsEnabled", false, DataSourceUpdateMode.Never));\r
 \r
-            if (model.IsMenuVisible)\r
-            {\r
+            if (model.IsMenuVisible) {\r
                 btnApprove.DataBindings.Add(new Binding("Enabled", model, "IsApproveEnabled", false, DataSourceUpdateMode.Never));\r
                 tpSegments.DataBindings.Add(new Binding("Enabled", model, "IsSegmentEditorVisible", false, DataSourceUpdateMode.Never));\r
                 txtSelectedID.DataBindings.Add(new Binding("Text", model, "ID", false, DataSourceUpdateMode.Never));\r
-            }\r
-            else\r
-            {\r
+            } else {\r
                 pMetadataDisplay.Visible = false;\r
                 tabEditor.TabPages.Remove(tpMetadata);\r
             }\r
@@ -105,27 +92,21 @@ namespace DxPlay
 \r
         }\r
 \r
-        private void OnSelectedIDChanged(string ID, int variantID, string serialID, string text, List<TrafficItem> selected)\r
-        {\r
+        private void OnSelectedIDChanged(string ID, int variantID, string serialID, string text, List<TrafficItem> selected) {\r
             //logger.Info("Selected ID: " + ID);\r
-            try\r
-            {\r
+            try {\r
                 model.SelectedSegments = selected;\r
                 model.VariantID = variantID;\r
                 model.ID = ID;\r
-            }\r
-            catch (Exception e)\r
-            {\r
+            } catch (Exception e) {\r
                 MsgBox.Error(e.Message);\r
                 logger.Error(e.StackTrace);\r
             }\r
         }\r
 \r
-        public PlayerForm()\r
-        {\r
+        public PlayerForm() {\r
             InitializeComponent();\r
 \r
-            playerControls.Pause.Click += OnPause_Click;\r
             playerControls.Play.Click += OnPlayClick;\r
             playerControls.Stop.Click += OnStopClick;\r
             playerControls.Rewind.MouseDown += OnRewindMouseDown;\r
@@ -138,24 +119,12 @@ namespace DxPlay
             playerControls.StepForward.MouseDown += OnStepForwardMouseDown;\r
             playerControls.PlaySpeed.ValueChanged += OnPlaySpeedChanged;\r
 \r
-\r
             playerControls.TrackBar.MouseDown += OnTrackBarMouseDown;\r
             playerControls.TrackBar.MouseUp += OnTrackBarMouseUp;\r
             playerControls.TrackBar.Scroll += OnTrackBarScroll;\r
         }\r
 \r
-\r
-        private void OnPause_Click(object sender, EventArgs e)\r
-        {\r
-            if (!isPauseButtonClicked)\r
-            {\r
-                isPauseButtonClicked = true;\r
-                Pause();\r
-            }\r
-        }\r
-\r
-        private void InitializeTexts()\r
-        {\r
+        private void InitializeTexts() {\r
             tpMetadata.Text = Settings.Resource("METADATA", Resources.METADATA);\r
             tpSegments.Text = Settings.Resource("SEGMENTS", Resources.SEGMENTS);\r
             tbPositionAsTCIn.Text = Settings.Resource("POSITIONASTCIN", Resources.POSITIONASTCIN);\r
@@ -173,24 +142,20 @@ namespace DxPlay
             tooltips.SetToolTip(playerControls.StepBack, Settings.Resource("STEPBACK", Resources.STEPBACK));\r
             tooltips.SetToolTip(playerControls.StepForward, Settings.Resource("STEPFORWARD", Resources.STEPFORWARD));\r
             tooltips.SetToolTip(playerControls.Play, Settings.Resource("PLAY", Resources.PLAY));\r
-            tooltips.SetToolTip(playerControls.Pause, Settings.Resource("PAUSE", Resources.PLAY));\r
             tooltips.SetToolTip(playerControls.Stop, Settings.Resource("STOP", Resources.STOP));\r
             playerControls.Status.Text = Settings.Resource("NOINPUT", Resources.NOINPUT);\r
             playerControls.Start.Text = Settings.Resource("START", Resources.START);\r
             playerControls.Duration.Text = Settings.Resource("LENGTH", Resources.LENGTH);\r
         }\r
 \r
-        private void CloseForm()\r
-        {\r
+        private void CloseForm() {\r
             m_play?.Dispose();\r
             Close();\r
         }\r
 \r
-        private void Cueue()\r
-        {\r
+        private void Cueue() {\r
             m_play = null;\r
-            try\r
-            {\r
+            try {\r
                 //m_mediaDescription = MediaDetector.GetDescription(selectedFile);\r
                 m_mediaDescription = new MediaDescription() { fileName = model.CurrentFile.FullName };\r
 \r
@@ -201,32 +166,26 @@ namespace DxPlay
                     throw new Exception(model.CurrentFile.FullName);\r
 \r
                 m_play.PlayEvent += new DxPlayEvent(OnPlayEvent);\r
-                if (m_mediaDescription != null)\r
-                {\r
+                if (m_mediaDescription != null) {\r
                     playerControls.TrackBar.Maximum = m_mediaDescription.Duration.Frames;\r
                     playerControls.StartTC.Text = m_mediaDescription.FirstFrame.ToString();\r
                     playerControls.EndTC.Text = m_mediaDescription.Duration.ToString();\r
                 }\r
-            }\r
-            catch (Exception ce)\r
-            {\r
+            } catch (Exception ce) {\r
                 MessageBox.Show("Az Ã¡llomány nem tölthetõ be. A rendszer Ã¼zenete: " + ce.Message, "Open Error", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
                 CloseForm();\r
             }\r
         }\r
 \r
-        private void Form1_DragEnter(object sender, DragEventArgs e)\r
-        {\r
-            if (e.Data.GetDataPresent(DataFormats.FileDrop))\r
-            {\r
+        private void Form1_DragEnter(object sender, DragEventArgs e) {\r
+            if (e.Data.GetDataPresent(DataFormats.FileDrop)) {\r
                 string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);\r
                 if (files.Length == 1)\r
                     e.Effect = DragDropEffects.Copy;\r
             }\r
         }\r
 \r
-        public void OpenFile(FileInfo fileInfo, bool redefine)\r
-        {\r
+        public void OpenFile(FileInfo fileInfo, bool redefine) {\r
             logger.Debug("Open {0}", fileInfo.FullName);\r
 \r
             if (m_play != null)\r
@@ -236,19 +195,15 @@ namespace DxPlay
             model.CurrentFile = fileInfo;\r
             Cueue();\r
 \r
-            if (model.IsMenuVisible)\r
-            {\r
+            if (model.IsMenuVisible) {\r
                 tabEditor.SelectedTab = tpMetadata;\r
                 trafficBrowser.ClearLookup();\r
                 openFileDialog.InitialDirectory = fileInfo.Directory.FullName;\r
                 openFileDialog.Filter = DEFAULT_FILE_FILTER;\r
                 string id = fileInfo.Name.Replace(fileInfo.Extension, "");\r
-                try\r
-                {\r
+                try {\r
                     model.Lookup(id);\r
-                }\r
-                catch (Exception e)\r
-                {\r
+                } catch (Exception e) {\r
                     MsgBox.Error(e.Message);\r
                     logger.Error(e.StackTrace);\r
                 }\r
@@ -264,78 +219,79 @@ namespace DxPlay
         }\r
 \r
 \r
-        private void Form1_DragDrop(object sender, DragEventArgs e)\r
-        {\r
+        private void Form1_DragDrop(object sender, DragEventArgs e) {\r
             string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);\r
             FileInfo fileInfo = new FileInfo(files[0]);\r
             OpenFile(fileInfo, false);\r
         }\r
 \r
-        private void Panel1_MouseDown(object sender, MouseEventArgs e)\r
-        {\r
-            if (m_play != null && e.Button == MouseButtons.Left)\r
-            {\r
+        private void Panel1_MouseDown(object sender, MouseEventArgs e) {\r
+            if (m_play != null && e.Button == MouseButtons.Left) {\r
                 DateTime currentClick = DateTime.Now;\r
-                if ((currentClick - lastClick).TotalMilliseconds < 300)\r
-                {\r
+                if ((currentClick - lastClick).TotalMilliseconds < 300) {\r
                     m_play.ToggleFullscreen();\r
                     logger.Debug("Fullscreen");\r
-                }\r
-                else\r
+                } else\r
                     lastClick = currentClick;\r
             }\r
         }\r
 \r
-        private void Panel1_SizeChanged(object sender, EventArgs e)\r
-        {\r
+        private void Panel1_SizeChanged(object sender, EventArgs e) {\r
             if (m_play != null)\r
                 m_play.UpdateVideoWindow();\r
         }\r
 \r
-        private void OnTrackBarMouseDown(object sender, MouseEventArgs e)\r
-        {\r
+        private void OnTrackBarMouseDown(object sender, MouseEventArgs e) {\r
             trackBarAtUser = true;\r
             lastClick = DateTime.Now;\r
         }\r
 \r
-        private void OnTrackBarMouseUp(object sender, MouseEventArgs e)\r
-        {\r
+        private void OnTrackBarMouseUp(object sender, MouseEventArgs e) {\r
             trackBarAtUser = false;\r
         }\r
 \r
-        private void OnTrackBarScroll(object sender, ScrollEventArgs e)\r
-        {\r
+        private void OnTrackBarScroll(object sender, ScrollEventArgs e) {\r
             if (m_play != null)\r
                 m_play.Seek(playerControls.TrackBar.Value);\r
         }\r
 \r
 \r
-        private void Play()\r
-        {\r
+        private void PlayOrPause() {\r
             if (m_play == null)\r
                 return;\r
-            if (m_play.State == GraphState.Completed)\r
-            {\r
+            if (m_play.State == GraphState.Playing) {\r
+                Pause();\r
+                return;\r
+            }\r
+            if (m_play.State == GraphState.Completed) {\r
                 m_play.Stop();\r
             }\r
             SetVideoSpeed(playerControls.PlaySpeed.CurrentSpeed);\r
             m_play.Play();\r
+            UpdatePlayPauseButton();\r
         }\r
 \r
-        private void Pause()\r
-        {\r
+        private void UpdatePlayPauseButton() {\r
+            if (m_play.State == GraphState.Playing) {\r
+                playerControls.Play.Image = Resources.ic_pause_black_24dp_2x;\r
+                tooltips.SetToolTip(playerControls.Play, Settings.Resource("PAUSE", Resources.PAUSE));\r
+            } else {\r
+                playerControls.Play.Image = Resources.ic_play_arrow_black_24dp_2x;\r
+                tooltips.SetToolTip(playerControls.Play, Settings.Resource("PLAY", Resources.PLAY));\r
+            }\r
+        }\r
+\r
+        private void Pause() {\r
             m_play.Pause();\r
+            UpdatePlayPauseButton();\r
         }\r
 \r
-        private void OnPlayClick(object sender, EventArgs e)\r
-        {\r
-            Play();\r
+        private void OnPlayClick(object sender, EventArgs e) {\r
+            PlayOrPause();\r
         }\r
 \r
-        private void OnStopClick(object sender, EventArgs e)\r
-        {\r
-            if (m_play != null && m_play.State != GraphState.Stopped)\r
-            {\r
+        private void OnStopClick(object sender, EventArgs e) {\r
+            if (m_play != null && m_play.State != GraphState.Stopped) {\r
                 m_play.Stop();\r
             }\r
         }\r
@@ -343,98 +299,78 @@ namespace DxPlay
 \r
         private bool buttonDown;\r
 \r
-        private void OnRewindMouseUp(object sender, MouseEventArgs e)\r
-        {\r
+        private void OnRewindMouseUp(object sender, MouseEventArgs e) {\r
             buttonDown = false;\r
         }\r
 \r
-        private void OnRewindMouseDown(object sender, MouseEventArgs e)\r
-        {\r
+        private void OnRewindMouseDown(object sender, MouseEventArgs e) {\r
             buttonDown = true;\r
-            if (m_play != null && m_play.State == GraphState.Playing)\r
-            {\r
-                do\r
-                {\r
+            if (m_play != null && m_play.State == GraphState.Playing) {\r
+                do {\r
                     m_play.Rewind(10);\r
                     Application.DoEvents();\r
                 } while (buttonDown);\r
             }\r
         }\r
 \r
-        private void OnForwardMouseUp(object sender, MouseEventArgs e)\r
-        {\r
+        private void OnForwardMouseUp(object sender, MouseEventArgs e) {\r
             buttonDown = false;\r
         }\r
 \r
-        private void OnForwardMouseDown(object sender, EventArgs e)\r
-        {\r
+        private void OnForwardMouseDown(object sender, EventArgs e) {\r
             buttonDown = true;\r
-            if (m_play != null && m_play.State == GraphState.Playing)\r
-            {\r
-                do\r
-                {\r
+            if (m_play != null && m_play.State == GraphState.Playing) {\r
+                do {\r
                     m_play.Forward(10);\r
                     Application.DoEvents();\r
                 } while (buttonDown);\r
             }\r
         }\r
 \r
-        private void OnStepBackMouseUp(object sender, MouseEventArgs e)\r
-        {\r
+        private void OnStepBackMouseUp(object sender, MouseEventArgs e) {\r
             buttonDown = false;\r
         }\r
 \r
-        private void OnStepBackMouseDown(object sender, MouseEventArgs e)\r
-        {\r
+        private void OnStepBackMouseDown(object sender, MouseEventArgs e) {\r
             buttonDown = true;\r
-            if (m_play != null)\r
-            {\r
-                do\r
-                {\r
+            if (m_play != null) {\r
+                do {\r
                     m_play.Rewind(1);\r
                     Application.DoEvents();\r
                 } while (buttonDown);\r
             }\r
         }\r
 \r
-        private void OnStepForwardMouseUp(object sender, MouseEventArgs e)\r
-        {\r
+        private void OnStepForwardMouseUp(object sender, MouseEventArgs e) {\r
             buttonDown = false;\r
         }\r
 \r
-        private void OnStepForwardMouseDown(object sender, EventArgs e)\r
-        {\r
+        private void OnStepForwardMouseDown(object sender, EventArgs e) {\r
             buttonDown = true;\r
-            if (m_play != null)\r
-            {\r
-                do\r
-                {\r
+            if (m_play != null) {\r
+                do {\r
                     m_play.Forward(1);\r
                     Application.DoEvents();\r
                 } while (buttonDown);\r
             }\r
         }\r
 \r
-        private void Rewind()\r
-        {\r
+        private void Rewind() {\r
             if (m_play == null)\r
                 return;\r
             int step = ModifierKeys.HasFlag(Keys.Control) ? 10 : 1;\r
             m_play.Rewind(step);\r
         }\r
 \r
-        private void Forward()\r
-        {\r
+        private void Forward() {\r
             if (m_play == null)\r
                 return;\r
             int step = ModifierKeys.HasFlag(Keys.Control) ? 10 : 1;\r
             m_play.Forward(step);\r
         }\r
 \r
-        private void PlayerForm_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)\r
-        {\r
-            if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right || e.KeyCode == Keys.Space || e.KeyCode == Keys.Escape)\r
-            {\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 = false;\r
             }\r
         }\r
@@ -449,8 +385,7 @@ namespace DxPlay
         //    }\r
         //}\r
 \r
-        private void PlayerForm_Load(object sender, EventArgs e)\r
-        {\r
+        private void PlayerForm_Load(object sender, EventArgs e) {\r
             //DisableHotKeysDefaults(this.Controls);\r
 \r
             InterceptKeys.Start();\r
@@ -467,29 +402,24 @@ namespace DxPlay
             trafficBrowser.BackColor = BackColor;\r
 \r
             //Csak standalone modban\r
-            if (Model.IsMenuVisible)\r
-            {\r
+            if (Model.IsMenuVisible) {\r
                 trafficBrowser.IDChangedEvent += OnSelectedIDChanged;\r
                 model.InitializeTrafficIntegration(trafficBrowser);\r
             }\r
         }\r
 \r
-        private void PlayerForm_KeyDown(object sender, KeyEventArgs e)\r
-        {\r
+        private void PlayerForm_KeyDown(object sender, KeyEventArgs e) {\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
-            {\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
-        public static bool ApplicationIsActivated()\r
-        {\r
+        public static bool ApplicationIsActivated() {\r
             var activatedHandle = GetForegroundWindow();\r
-            if (activatedHandle == IntPtr.Zero)\r
-            {\r
+            if (activatedHandle == IntPtr.Zero) {\r
                 return false;       // No window is currently activated\r
             }\r
 \r
@@ -506,18 +436,15 @@ namespace DxPlay
         [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]\r
         private static extern int GetWindowThreadProcessId(IntPtr handle, out int processId);\r
 \r
-        private bool HandleHotKey(Keys keyCode)\r
-        {\r
-            //logger.Debug("Key pressed " + keyCode);\r
+        private bool HandleHotKey(Keys keyCode) {\r
+            logger.Debug("Key pressed " + keyCode);\r
             if (!ApplicationIsActivated() || trafficBrowser.ContainsFocus || openFileDialogOpened || dgSegments.IsCurrentCellInEditMode || (m_play != null && !m_play.IsFullscreen() && !ContainsFocus))\r
                 return false;\r
-            //logger.Debug("Handling " + keyCode);\r
+            logger.Debug("Handling " + keyCode);\r
             bool result = false;\r
-            switch (keyCode)\r
-            {\r
+            switch (keyCode) {\r
                 case Keys.Return:\r
-                    if (m_play != null && ModifierKeys.HasFlag(Keys.Shift))\r
-                    {\r
+                    if (m_play != null && ModifierKeys.HasFlag(Keys.Shift)) {\r
                         m_play.ToggleFullscreen();\r
                         result = true;\r
                     }\r
@@ -538,7 +465,7 @@ namespace DxPlay
                     result = true;\r
                     break;\r
                 case Keys.Space:\r
-                    Play();\r
+                    PlayOrPause();\r
                     result = true;\r
                     break;\r
                     //case Keys.I:\r
@@ -554,14 +481,15 @@ namespace DxPlay
             return result;\r
         }\r
 \r
-        private void OnPlayEvent()\r
-        {\r
+        private void OnPlayEvent() {\r
             if (!IsHandleCreated || Disposing || IsDisposed || m_play == null)\r
                 return;\r
 \r
             BeginInvoke((Action)(() => {\r
                 if (Disposing || IsDisposed || m_play == null)\r
                     return;\r
+                if (m_play.State == GraphState.Completed || m_play.State == GraphState.Paused)\r
+                    UpdatePlayPauseButton();\r
                 if (!trackBarAtUser)\r
                     playerControls.TrackBar.Value = m_play.CurrentTC.ZeroBasedFrames;\r
                 playerControls.CurrentTC.Text = m_play.CurrentTC.ToString();\r
@@ -579,29 +507,24 @@ namespace DxPlay
 \r
         }\r
 \r
-        private void PlayerForm_FormClosing(object sender, FormClosingEventArgs e)\r
-        {\r
-            if (m_play != null)\r
-                m_play.Dispose();\r
+        private void PlayerForm_FormClosing(object sender, FormClosingEventArgs e) {\r
+            //if (m_play != null)\r
+            //    m_play.Dispose();\r
         }\r
 \r
-        private void ProcessCommandLine()\r
-        {\r
+        private void ProcessCommandLine() {\r
             String[] arguments = Environment.GetCommandLineArgs();\r
-            if (arguments.Length > 1)\r
-            {\r
+            if (arguments.Length > 1) {\r
                 FileInfo fi = new FileInfo(arguments[1]);\r
                 if (fi.Exists)\r
                     OpenFile(fi, false);\r
             }\r
         }\r
 \r
-        private void PlayerForm_Shown(object sender, EventArgs e)\r
-        {\r
+        private void PlayerForm_Shown(object sender, EventArgs e) {\r
             logger.Debug("PlayerForm_Shown");\r
             InitializeTexts();\r
-            if (true.Equals(Settings?.Player?.SegmentEditor) && true.Equals(Settings?.IsStandalone))\r
-            {\r
+            if (true.Equals(Settings?.Player?.SegmentEditor) && true.Equals(Settings?.IsStandalone)) {\r
                 mainMenu.Visible = true;\r
             }\r
 \r
@@ -610,27 +533,24 @@ namespace DxPlay
             if (m_play != null && true.Equals(Settings?.Player?.AutoStart))\r
                 m_play.Play();\r
         }\r
-        private void PlayerForm_FormClosed(object sender, FormClosedEventArgs e)\r
-        {\r
+\r
+        private void PlayerForm_FormClosed(object sender, FormClosedEventArgs e) {\r
             InterceptKeys.Stop();\r
             if (m_play != null)\r
                 m_play.Dispose();\r
         }\r
-        private void MenuOpenFile_Click(object sender, EventArgs e)\r
-        {\r
+        private void MenuOpenFile_Click(object sender, EventArgs e) {\r
             openFileDialogOpened = true;\r
             if (openFileDialog.ShowDialog() == DialogResult.OK)\r
                 OpenFile(new FileInfo(openFileDialog.FileName), false);\r
             openFileDialogOpened = false;\r
         }\r
 \r
-        private void OnApprove(object sender, EventArgs e)\r
-        {\r
+        private void OnApprove(object sender, EventArgs e) {\r
             if (m_play == null)\r
                 return;\r
 \r
-            try\r
-            {\r
+            try {\r
 \r
                 m_play.Seek(0);\r
                 m_play.Dispose();\r
@@ -646,20 +566,16 @@ namespace DxPlay
                 btnApprove.Text = Settings.Resource("APPROVE", Resources.APPROVE);\r
                 model.IsRedefineSegments = false;\r
 \r
-            }\r
-            catch (Exception ex)\r
-            {\r
+            } catch (Exception ex) {\r
                 logger.Error(ex);\r
                 MsgBox.Error(ex.Message);\r
             }\r
 \r
         }\r
 \r
-        private void OnRedefineSegments(object sender, EventArgs e)\r
-        {\r
+        private void OnRedefineSegments(object sender, EventArgs e) {\r
             openFileDialogOpened = true;\r
-            if (openFileDialog.ShowDialog() == DialogResult.OK)\r
-            {\r
+            if (openFileDialog.ShowDialog() == DialogResult.OK) {\r
                 model.RedefineSegmentMediaID = Path.GetFileNameWithoutExtension(openFileDialog.FileName);\r
                 model.IsRedefineSegments = true;\r
                 OpenFile(new FileInfo(openFileDialog.FileName), true);\r
@@ -669,14 +585,12 @@ namespace DxPlay
             btnApprove.Text = Settings.Resource("REDEFINE", Resources.REDEFINE);\r
         }\r
 \r
-        private void BtnSave_Click(object sender, EventArgs e)\r
-        {\r
+        private void BtnSave_Click(object sender, EventArgs e) {\r
             settings.Segments = model.Segments;\r
             CloseForm();\r
         }\r
 \r
-        private void BtnCancel_Click(object sender, EventArgs e)\r
-        {\r
+        private void BtnCancel_Click(object sender, EventArgs e) {\r
             CloseForm();\r
         }\r
         public void SetVideoSpeed(float value)\r
index 396bcab7d8831dbd5ce5e05a5404c666420af60f..f664b18a5e84610e10c0aff249b3d1e0fc6920bb 100644 (file)
@@ -5,10 +5,8 @@ using NLog;
 using System;\r
 using System.Runtime.InteropServices;\r
 \r
-namespace DxPlay\r
-{\r
-    public class PlayerGraph : FilterGraph, IDisposable\r
-    {\r
+namespace DxPlay {\r
+    public class PlayerGraph : FilterGraph, IDisposable {\r
 #if DEBUG\r
         private DsROTEntry m_DsRot;\r
 #endif\r