Player control layout update
authorelgekko <vasary@elgekko.net>
Fri, 3 Jun 2022 13:12:25 +0000 (15:12 +0200)
committerelgekko <vasary@elgekko.net>
Fri, 3 Jun 2022 13:12:25 +0000 (15:12 +0200)
client - Copy/DxPlay/Controls/BindableToolStripMenuItem .cs [new file with mode: 0644]
client - Copy/DxPlay/Controls/PlayerControls.Designer.cs [new file with mode: 0644]
client - Copy/DxPlay/Controls/PlayerControls.cs [new file with mode: 0644]
client - Copy/DxPlay/Controls/PlayerControls.resx [new file with mode: 0644]
client - Copy/DxPlay/Controls/VideoSpeedTrackbar.cs [new file with mode: 0644]
client - Copy/DxPlay/PlayerForm.Designer.cs [new file with mode: 0644]
client - Copy/DxPlay/PlayerForm.cs [new file with mode: 0644]
client - Copy/DxPlay/PlayerForm.resx [new file with mode: 0644]

diff --git a/client - Copy/DxPlay/Controls/BindableToolStripMenuItem .cs b/client - Copy/DxPlay/Controls/BindableToolStripMenuItem .cs
new file mode 100644 (file)
index 0000000..34e4253
--- /dev/null
@@ -0,0 +1,35 @@
+using System.ComponentModel;\r
+using System.Windows.Forms;\r
+\r
+namespace DxPlay.Controls {\r
+    class BindableToolStripMenuItem : ToolStripMenuItem, IBindableComponent {\r
+        private BindingContext bindingContext;\r
+        private ControlBindingsCollection dataBindings;\r
+\r
+        [Browsable(false)]\r
+        public BindingContext BindingContext {\r
+            get {\r
+                if (bindingContext == null) {\r
+                    bindingContext = new BindingContext();\r
+                }\r
+                return bindingContext;\r
+            }\r
+\r
+            set {\r
+                bindingContext = value;\r
+            }\r
+        }\r
+\r
+        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]\r
+        public ControlBindingsCollection DataBindings {\r
+            get {\r
+                if (dataBindings == null) {\r
+                    dataBindings = new ControlBindingsCollection(this);\r
+                }\r
+                return dataBindings;\r
+\r
+            }\r
+\r
+        }\r
+    }\r
+}\r
diff --git a/client - Copy/DxPlay/Controls/PlayerControls.Designer.cs b/client - Copy/DxPlay/Controls/PlayerControls.Designer.cs
new file mode 100644 (file)
index 0000000..e806d78
--- /dev/null
@@ -0,0 +1,493 @@
+using System;\r
+using System.Windows.Forms;\r
+\r
+namespace DxPlay.Controls\r
+{\r
+    partial class PlayerControls\r
+    {\r
+        /// <summary> \r
+        /// Required designer variable.\r
+        /// </summary>\r
+        private System.ComponentModel.IContainer components = null;\r
+\r
+        /// <summary> \r
+        /// Clean up any resources being used.\r
+        /// </summary>\r
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>\r
+        protected override void Dispose(bool disposing)\r
+        {\r
+            if (disposing && (components != null))\r
+            {\r
+                components.Dispose();\r
+            }\r
+            base.Dispose(disposing);\r
+        }\r
+\r
+        #region Component Designer generated code\r
+\r
+        /// <summary> \r
+        /// Required method for Designer support - do not modify \r
+        /// the contents of this method with the code editor.\r
+        /// </summary>\r
+        private void InitializeComponent()\r
+        {\r
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PlayerControls));\r
+            this.mainPanel = new System.Windows.Forms.TableLayoutPanel();\r
+            this.trackBar = new MaestroShared.Controls.ColorSlider();\r
+            this.timecodePanel = new System.Windows.Forms.TableLayoutPanel();\r
+            this.lbCurrentTC = new System.Windows.Forms.Label();\r
+            this.lbStartTC = new System.Windows.Forms.Label();\r
+            this.lbStart = new System.Windows.Forms.Label();\r
+            this.lbStatus = new System.Windows.Forms.Label();\r
+            this.lbDuration = new System.Windows.Forms.Label();\r
+            this.lbEndTC = new System.Windows.Forms.Label();\r
+            this.controlsPanel = new System.Windows.Forms.TableLayoutPanel();\r
+            this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();\r
+            this.playSpeed = new DxPlay.Controls.VideoSpeedTrackbar();\r
+            this.lblPlaySpeed = new System.Windows.Forms.Label();\r
+            this.logoPanel = new System.Windows.Forms.Panel();\r
+            this.buttonsPanel = new System.Windows.Forms.FlowLayoutPanel();\r
+            this.btnPlay = 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.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
+            this.audioLabel = new System.Windows.Forms.Label();\r
+            this.audioTracks = new System.Windows.Forms.ComboBox();\r
+            this.mainPanel.SuspendLayout();\r
+            this.timecodePanel.SuspendLayout();\r
+            this.controlsPanel.SuspendLayout();\r
+            this.tableLayoutPanel2.SuspendLayout();\r
+            ((System.ComponentModel.ISupportInitialize)(this.playSpeed)).BeginInit();\r
+            this.buttonsPanel.SuspendLayout();\r
+            this.tableLayoutPanel1.SuspendLayout();\r
+            this.SuspendLayout();\r
+            // \r
+            // mainPanel\r
+            // \r
+            this.mainPanel.ColumnCount = 1;\r
+            this.mainPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+            this.mainPanel.Controls.Add(this.trackBar, 0, 1);\r
+            this.mainPanel.Controls.Add(this.timecodePanel, 0, 0);\r
+            this.mainPanel.Controls.Add(this.controlsPanel, 0, 2);\r
+            this.mainPanel.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.mainPanel.Location = new System.Drawing.Point(0, 0);\r
+            this.mainPanel.Margin = new System.Windows.Forms.Padding(0);\r
+            this.mainPanel.Name = "mainPanel";\r
+            this.mainPanel.RowCount = 3;\r
+            this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+            this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+            this.mainPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 65F));\r
+            this.mainPanel.Size = new System.Drawing.Size(835, 165);\r
+            this.mainPanel.TabIndex = 0;\r
+            // \r
+            // trackBar\r
+            // \r
+            this.trackBar.BackColor = System.Drawing.Color.Transparent;\r
+            this.trackBar.BarInnerColor = System.Drawing.Color.Transparent;\r
+            this.trackBar.BarOuterColor = System.Drawing.Color.Black;\r
+            this.trackBar.BarPenColor = System.Drawing.Color.Black;\r
+            this.trackBar.BorderRoundRectSize = new System.Drawing.Size(8, 8);\r
+            this.trackBar.Cursor = System.Windows.Forms.Cursors.Hand;\r
+            this.trackBar.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.trackBar.ElapsedInnerColor = System.Drawing.Color.Black;\r
+            this.trackBar.ElapsedOuterColor = System.Drawing.Color.DarkGray;\r
+            this.trackBar.LargeChange = ((uint)(0u));\r
+            this.trackBar.Location = new System.Drawing.Point(3, 43);\r
+            this.trackBar.Maximum = 1;\r
+            this.trackBar.Name = "trackBar";\r
+            this.trackBar.Size = new System.Drawing.Size(829, 10);\r
+            this.trackBar.SmallChange = ((uint)(1u));\r
+            this.trackBar.TabIndex = 19;\r
+            this.trackBar.Text = "colorSlider1";\r
+            this.trackBar.ThumbInnerColor = System.Drawing.Color.Black;\r
+            this.trackBar.ThumbOuterColor = System.Drawing.Color.Silver;\r
+            this.trackBar.ThumbPenColor = System.Drawing.Color.Black;\r
+            this.trackBar.ThumbRoundRectSize = new System.Drawing.Size(8, 8);\r
+            this.trackBar.ThumbSize = 10;\r
+            this.trackBar.Value = 0;\r
+            // \r
+            // timecodePanel\r
+            // \r
+            this.timecodePanel.AutoSize = true;\r
+            this.timecodePanel.ColumnCount = 3;\r
+            this.timecodePanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 26.32525F));\r
+            this.timecodePanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 46.63073F));\r
+            this.timecodePanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 26.95418F));\r
+            this.timecodePanel.Controls.Add(this.lbCurrentTC, 0, 1);\r
+            this.timecodePanel.Controls.Add(this.lbStartTC, 0, 1);\r
+            this.timecodePanel.Controls.Add(this.lbStart, 0, 0);\r
+            this.timecodePanel.Controls.Add(this.lbStatus, 1, 0);\r
+            this.timecodePanel.Controls.Add(this.lbDuration, 2, 0);\r
+            this.timecodePanel.Controls.Add(this.lbEndTC, 2, 1);\r
+            this.timecodePanel.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.timecodePanel.Location = new System.Drawing.Point(0, 0);\r
+            this.timecodePanel.Margin = new System.Windows.Forms.Padding(0);\r
+            this.timecodePanel.Name = "timecodePanel";\r
+            this.timecodePanel.RowCount = 2;\r
+            this.timecodePanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+            this.timecodePanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+            this.timecodePanel.Size = new System.Drawing.Size(835, 40);\r
+            this.timecodePanel.TabIndex = 0;\r
+            // \r
+            // lbCurrentTC\r
+            // \r
+            this.lbCurrentTC.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) \r
+            | System.Windows.Forms.AnchorStyles.Left) \r
+            | System.Windows.Forms.AnchorStyles.Right)));\r
+            this.lbCurrentTC.BackColor = System.Drawing.Color.Transparent;\r
+            this.lbCurrentTC.Font = new System.Drawing.Font("Calibri", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.lbCurrentTC.Location = new System.Drawing.Point(223, 13);\r
+            this.lbCurrentTC.Name = "lbCurrentTC";\r
+            this.lbCurrentTC.Size = new System.Drawing.Size(383, 27);\r
+            this.lbCurrentTC.TabIndex = 25;\r
+            this.lbCurrentTC.Text = "00:00:00.00";\r
+            this.lbCurrentTC.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;\r
+            // \r
+            // lbStartTC\r
+            // \r
+            this.lbStartTC.BackColor = System.Drawing.Color.Transparent;\r
+            this.lbStartTC.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.lbStartTC.Font = new System.Drawing.Font("Calibri", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.lbStartTC.ForeColor = System.Drawing.SystemColors.WindowText;\r
+            this.lbStartTC.Location = new System.Drawing.Point(3, 13);\r
+            this.lbStartTC.Name = "lbStartTC";\r
+            this.lbStartTC.Size = new System.Drawing.Size(214, 17);\r
+            this.lbStartTC.TabIndex = 23;\r
+            this.lbStartTC.Text = "00:00:00.00";\r
+            // \r
+            // lbStart\r
+            // \r
+            this.lbStart.BackColor = System.Drawing.Color.Transparent;\r
+            this.lbStart.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.lbStart.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.lbStart.Location = new System.Drawing.Point(3, 0);\r
+            this.lbStart.Name = "lbStart";\r
+            this.lbStart.Size = new System.Drawing.Size(214, 13);\r
+            this.lbStart.TabIndex = 19;\r
+            this.lbStart.Text = "START";\r
+            this.lbStart.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;\r
+            // \r
+            // lbStatus\r
+            // \r
+            this.lbStatus.BackColor = System.Drawing.Color.Transparent;\r
+            this.lbStatus.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.lbStatus.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.lbStatus.Location = new System.Drawing.Point(223, 0);\r
+            this.lbStatus.Name = "lbStatus";\r
+            this.lbStatus.Size = new System.Drawing.Size(383, 13);\r
+            this.lbStatus.TabIndex = 21;\r
+            this.lbStatus.Text = "NO INPUT";\r
+            this.lbStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;\r
+            // \r
+            // lbDuration\r
+            // \r
+            this.lbDuration.BackColor = System.Drawing.Color.Transparent;\r
+            this.lbDuration.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.lbDuration.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.lbDuration.Location = new System.Drawing.Point(612, 0);\r
+            this.lbDuration.Name = "lbDuration";\r
+            this.lbDuration.Size = new System.Drawing.Size(220, 13);\r
+            this.lbDuration.TabIndex = 22;\r
+            this.lbDuration.Text = "DURATION";\r
+            this.lbDuration.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
+            // \r
+            // lbEndTC\r
+            // \r
+            this.lbEndTC.BackColor = System.Drawing.Color.Transparent;\r
+            this.lbEndTC.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.lbEndTC.Font = new System.Drawing.Font("Calibri", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.lbEndTC.ForeColor = System.Drawing.SystemColors.WindowText;\r
+            this.lbEndTC.Location = new System.Drawing.Point(612, 13);\r
+            this.lbEndTC.Name = "lbEndTC";\r
+            this.lbEndTC.Size = new System.Drawing.Size(220, 17);\r
+            this.lbEndTC.TabIndex = 24;\r
+            this.lbEndTC.Text = "00:00:00.00";\r
+            this.lbEndTC.TextAlign = System.Drawing.ContentAlignment.MiddleRight;\r
+            // \r
+            // controlsPanel\r
+            // \r
+            this.controlsPanel.AutoSize = true;\r
+            this.controlsPanel.ColumnCount = 3;\r
+            this.controlsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
+            this.controlsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+            this.controlsPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200F));\r
+            this.controlsPanel.Controls.Add(this.tableLayoutPanel2, 0, 0);\r
+            this.controlsPanel.Controls.Add(this.logoPanel, 2, 0);\r
+            this.controlsPanel.Controls.Add(this.buttonsPanel, 0, 0);\r
+            this.controlsPanel.Controls.Add(this.tableLayoutPanel1, 0, 1);\r
+            this.controlsPanel.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.controlsPanel.Location = new System.Drawing.Point(3, 59);\r
+            this.controlsPanel.Name = "controlsPanel";\r
+            this.controlsPanel.RowCount = 2;\r
+            this.controlsPanel.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+            this.controlsPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F));\r
+            this.controlsPanel.Size = new System.Drawing.Size(829, 103);\r
+            this.controlsPanel.TabIndex = 21;\r
+            // \r
+            // tableLayoutPanel2\r
+            // \r
+            this.tableLayoutPanel2.ColumnCount = 2;\r
+            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
+            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 104F));\r
+            this.tableLayoutPanel2.Controls.Add(this.playSpeed, 1, 0);\r
+            this.tableLayoutPanel2.Controls.Add(this.lblPlaySpeed, 0, 0);\r
+            this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Left;\r
+            this.tableLayoutPanel2.Location = new System.Drawing.Point(363, 3);\r
+            this.tableLayoutPanel2.Name = "tableLayoutPanel2";\r
+            this.tableLayoutPanel2.RowCount = 1;\r
+            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+            this.tableLayoutPanel2.Size = new System.Drawing.Size(126, 54);\r
+            this.tableLayoutPanel2.TabIndex = 23;\r
+            // \r
+            // playSpeed\r
+            // \r
+            this.playSpeed.AutoSize = false;\r
+            this.playSpeed.CurrentSpeed = 0F;\r
+            this.playSpeed.Dock = System.Windows.Forms.DockStyle.Bottom;\r
+            this.playSpeed.LargeChange = 1;\r
+            this.playSpeed.Location = new System.Drawing.Point(24, 21);\r
+            this.playSpeed.Margin = new System.Windows.Forms.Padding(2);\r
+            this.playSpeed.Maximum = 5;\r
+            this.playSpeed.Name = "playSpeed";\r
+            this.playSpeed.Size = new System.Drawing.Size(100, 31);\r
+            this.playSpeed.TabIndex = 26;\r
+            this.playSpeed.Tag = "PlaySpeed";\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.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.lblPlaySpeed.Location = new System.Drawing.Point(2, 5);\r
+            this.lblPlaySpeed.Margin = new System.Windows.Forms.Padding(2, 5, 2, 0);\r
+            this.lblPlaySpeed.Name = "lblPlaySpeed";\r
+            this.lblPlaySpeed.Size = new System.Drawing.Size(18, 49);\r
+            this.lblPlaySpeed.TabIndex = 27;\r
+            this.lblPlaySpeed.Text = "x1";\r
+            this.lblPlaySpeed.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;\r
+            // \r
+            // logoPanel\r
+            // \r
+            this.logoPanel.AutoSize = true;\r
+            this.logoPanel.BackgroundImage = global::DxPlay.Properties.Resources.bs_user_logo;\r
+            this.logoPanel.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;\r
+            this.logoPanel.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.logoPanel.Location = new System.Drawing.Point(629, 0);\r
+            this.logoPanel.Margin = new System.Windows.Forms.Padding(0);\r
+            this.logoPanel.Name = "logoPanel";\r
+            this.controlsPanel.SetRowSpan(this.logoPanel, 2);\r
+            this.logoPanel.Size = new System.Drawing.Size(200, 110);\r
+            this.logoPanel.TabIndex = 21;\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.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.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(360, 60);\r
+            this.buttonsPanel.TabIndex = 20;\r
+            // \r
+            // btnPlay\r
+            // \r
+            this.btnPlay.AutoSize = true;\r
+            this.btnPlay.BackColor = System.Drawing.Color.Transparent;\r
+            this.btnPlay.Cursor = System.Windows.Forms.Cursors.Hand;\r
+            this.btnPlay.FlatAppearance.BorderSize = 0;\r
+            this.btnPlay.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.btnPlay.Image = global::DxPlay.Properties.Resources.ic_play_arrow_black_24dp_2x;\r
+            this.btnPlay.Location = new System.Drawing.Point(3, 3);\r
+            this.btnPlay.Name = "btnPlay";\r
+            this.btnPlay.Size = new System.Drawing.Size(54, 54);\r
+            this.btnPlay.TabIndex = 23;\r
+            this.btnPlay.TabStop = false;\r
+            this.btnPlay.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
+            this.btnPlay.UseVisualStyleBackColor = false;\r
+            // \r
+            // btnRewind\r
+            // \r
+            this.btnRewind.AutoSize = true;\r
+            this.btnRewind.BackColor = System.Drawing.Color.Transparent;\r
+            this.btnRewind.Cursor = System.Windows.Forms.Cursors.Hand;\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(63, 3);\r
+            this.btnRewind.Name = "btnRewind";\r
+            this.btnRewind.Size = new System.Drawing.Size(54, 54);\r
+            this.btnRewind.TabIndex = 18;\r
+            this.btnRewind.TabStop = false;\r
+            this.btnRewind.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
+            this.btnRewind.UseVisualStyleBackColor = false;\r
+            // \r
+            // btnStepBack\r
+            // \r
+            this.btnStepBack.AutoSize = true;\r
+            this.btnStepBack.BackColor = System.Drawing.Color.Transparent;\r
+            this.btnStepBack.Cursor = System.Windows.Forms.Cursors.Hand;\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(123, 3);\r
+            this.btnStepBack.Name = "btnStepBack";\r
+            this.btnStepBack.Size = new System.Drawing.Size(54, 54);\r
+            this.btnStepBack.TabIndex = 21;\r
+            this.btnStepBack.TabStop = false;\r
+            this.btnStepBack.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
+            this.btnStepBack.UseVisualStyleBackColor = false;\r
+            // \r
+            // btnStop\r
+            // \r
+            this.btnStop.AutoSize = true;\r
+            this.btnStop.BackColor = System.Drawing.Color.Transparent;\r
+            this.btnStop.Cursor = System.Windows.Forms.Cursors.Hand;\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(183, 3);\r
+            this.btnStop.Name = "btnStop";\r
+            this.btnStop.Size = new System.Drawing.Size(54, 54);\r
+            this.btnStop.TabIndex = 19;\r
+            this.btnStop.TabStop = false;\r
+            this.btnStop.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
+            this.btnStop.UseVisualStyleBackColor = false;\r
+            // \r
+            // btnStepForward\r
+            // \r
+            this.btnStepForward.AutoSize = true;\r
+            this.btnStepForward.BackColor = System.Drawing.Color.Transparent;\r
+            this.btnStepForward.Cursor = System.Windows.Forms.Cursors.Hand;\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(243, 3);\r
+            this.btnStepForward.Name = "btnStepForward";\r
+            this.btnStepForward.Size = new System.Drawing.Size(54, 54);\r
+            this.btnStepForward.TabIndex = 22;\r
+            this.btnStepForward.TabStop = false;\r
+            this.btnStepForward.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
+            this.btnStepForward.UseVisualStyleBackColor = false;\r
+            // \r
+            // btnForward\r
+            // \r
+            this.btnForward.AutoSize = true;\r
+            this.btnForward.BackColor = System.Drawing.Color.Transparent;\r
+            this.btnForward.Cursor = System.Windows.Forms.Cursors.Hand;\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(303, 3);\r
+            this.btnForward.Name = "btnForward";\r
+            this.btnForward.Size = new System.Drawing.Size(54, 54);\r
+            this.btnForward.TabIndex = 20;\r
+            this.btnForward.TabStop = false;\r
+            this.btnForward.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
+            this.btnForward.UseVisualStyleBackColor = false;\r
+            // \r
+            // tableLayoutPanel1\r
+            // \r
+            this.tableLayoutPanel1.ColumnCount = 2;\r
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));\r
+            this.tableLayoutPanel1.Controls.Add(this.audioLabel, 0, 0);\r
+            this.tableLayoutPanel1.Controls.Add(this.audioTracks, 1, 0);\r
+            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 63);\r
+            this.tableLayoutPanel1.Name = "tableLayoutPanel1";\r
+            this.tableLayoutPanel1.RowCount = 1;\r
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+            this.tableLayoutPanel1.Size = new System.Drawing.Size(354, 44);\r
+            this.tableLayoutPanel1.TabIndex = 22;\r
+            // \r
+            // audioLabel\r
+            // \r
+            this.audioLabel.AutoSize = true;\r
+            this.audioLabel.Location = new System.Drawing.Point(2, 5);\r
+            this.audioLabel.Margin = new System.Windows.Forms.Padding(2, 5, 2, 0);\r
+            this.audioLabel.Name = "audioLabel";\r
+            this.audioLabel.Size = new System.Drawing.Size(34, 13);\r
+            this.audioLabel.TabIndex = 28;\r
+            this.audioLabel.Tag = "";\r
+            this.audioLabel.Text = "Audio";\r
+            this.audioLabel.Visible = false;\r
+            // \r
+            // audioTracks\r
+            // \r
+            this.audioTracks.AllowDrop = true;\r
+            this.audioTracks.Dock = System.Windows.Forms.DockStyle.Top;\r
+            this.audioTracks.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;\r
+            this.audioTracks.FormattingEnabled = true;\r
+            this.audioTracks.IntegralHeight = false;\r
+            this.audioTracks.ItemHeight = 13;\r
+            this.audioTracks.Location = new System.Drawing.Point(40, 2);\r
+            this.audioTracks.Margin = new System.Windows.Forms.Padding(2);\r
+            this.audioTracks.Name = "audioTracks";\r
+            this.audioTracks.Size = new System.Drawing.Size(312, 21);\r
+            this.audioTracks.TabIndex = 29;\r
+            this.audioTracks.Visible = false;\r
+            // \r
+            // PlayerControls\r
+            // \r
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
+            this.AutoSize = true;\r
+            this.Controls.Add(this.mainPanel);\r
+            this.Margin = new System.Windows.Forms.Padding(0);\r
+            this.Name = "PlayerControls";\r
+            this.Size = new System.Drawing.Size(835, 165);\r
+            this.mainPanel.ResumeLayout(false);\r
+            this.mainPanel.PerformLayout();\r
+            this.timecodePanel.ResumeLayout(false);\r
+            this.controlsPanel.ResumeLayout(false);\r
+            this.controlsPanel.PerformLayout();\r
+            this.tableLayoutPanel2.ResumeLayout(false);\r
+            this.tableLayoutPanel2.PerformLayout();\r
+            ((System.ComponentModel.ISupportInitialize)(this.playSpeed)).EndInit();\r
+            this.buttonsPanel.ResumeLayout(false);\r
+            this.buttonsPanel.PerformLayout();\r
+            this.tableLayoutPanel1.ResumeLayout(false);\r
+            this.tableLayoutPanel1.PerformLayout();\r
+            this.ResumeLayout(false);\r
+\r
+        }        \r
+\r
+        #endregion\r
+\r
+        private System.Windows.Forms.TableLayoutPanel mainPanel;\r
+        private System.Windows.Forms.TableLayoutPanel timecodePanel;\r
+        private System.Windows.Forms.Label lbStart;\r
+        private System.Windows.Forms.Label lbStatus;\r
+        private System.Windows.Forms.Label lbDuration;\r
+        private System.Windows.Forms.Label lbStartTC;\r
+        private System.Windows.Forms.Label lbEndTC;\r
+        private System.Windows.Forms.Label lbCurrentTC;\r
+        private MaestroShared.Controls.ColorSlider trackBar;\r
+        private System.Windows.Forms.FlowLayoutPanel buttonsPanel;\r
+        private MaestroShared.Controls.NoFocusCueButton btnPlay;\r
+        private MaestroShared.Controls.NoFocusCueButton btnStop;\r
+        private MaestroShared.Controls.NoFocusCueButton btnRewind;\r
+        private MaestroShared.Controls.NoFocusCueButton btnForward;\r
+        private System.Windows.Forms.TableLayoutPanel controlsPanel;\r
+        private System.Windows.Forms.Panel logoPanel;\r
+        private MaestroShared.Controls.NoFocusCueButton btnStepBack;\r
+        private MaestroShared.Controls.NoFocusCueButton btnStepForward;\r
+        private VideoSpeedTrackbar playSpeed;\r
+        private System.Windows.Forms.Label lblPlaySpeed;\r
+        private TableLayoutPanel tableLayoutPanel2;\r
+        private TableLayoutPanel tableLayoutPanel1;\r
+        private Label audioLabel;\r
+        private ComboBox audioTracks;\r
+    }\r
+}
\ No newline at end of file
diff --git a/client - Copy/DxPlay/Controls/PlayerControls.cs b/client - Copy/DxPlay/Controls/PlayerControls.cs
new file mode 100644 (file)
index 0000000..1ff0bcb
--- /dev/null
@@ -0,0 +1,37 @@
+using MaestroShared.Controls;\r
+using System;\r
+using System.Windows.Forms;\r
+using NLog;\r
+using NLog.Fluent;\r
+\r
+namespace DxPlay.Controls\r
+{\r
+    public partial class PlayerControls : UserControl\r
+    {\r
+\r
+        private static readonly Logger logger = LogManager.GetCurrentClassLogger();\r
+        public PlayerControls()\r
+        {\r
+            InitializeComponent();\r
+        }\r
+\r
+        public Label Start { get => lbStart; }\r
+        public Label Status { get => lbStatus; }\r
+        public Label Duration { get => lbDuration; }\r
+        public Label StartTC { get => lbStartTC; }\r
+        public Label EndTC { get => lbEndTC; }\r
+        public Label CurrentTC { get => lbCurrentTC; }\r
+        public ColorSlider TrackBar { get => trackBar; }\r
+        public NoFocusCueButton Play { get => btnPlay; }\r
+        public NoFocusCueButton Stop { get => btnStop; }\r
+        public NoFocusCueButton Rewind { get => btnRewind; }\r
+        public NoFocusCueButton Forward { get => btnForward; }\r
+        public NoFocusCueButton StepBack { get => btnStepBack; }\r
+        public NoFocusCueButton StepForward { get => btnStepForward; }\r
+        public Label PlaySpeedLabel { get => lblPlaySpeed; }\r
+        public VideoSpeedTrackbar PlaySpeed { get => playSpeed; }\r
+        public Label AudioLabel { get => audioLabel; }\r
+        public ComboBox AudioTracks { get => audioTracks; }\r
+\r
+    }\r
+}
\ No newline at end of file
diff --git a/client - Copy/DxPlay/Controls/PlayerControls.resx b/client - Copy/DxPlay/Controls/PlayerControls.resx
new file mode 100644 (file)
index 0000000..9b86b79
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+  <!-- \r
+    Microsoft ResX Schema \r
+    \r
+    Version 2.0\r
+    \r
+    The primary goals of this format is to allow a simple XML format \r
+    that is mostly human readable. The generation and parsing of the \r
+    various data types are done through the TypeConverter classes \r
+    associated with the data types.\r
+    \r
+    Example:\r
+    \r
+    ... ado.net/XML headers & schema ...\r
+    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+    <resheader name="version">2.0</resheader>\r
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+    </data>\r
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+        <comment>This is a comment</comment>\r
+    </data>\r
+                \r
+    There are any number of "resheader" rows that contain simple \r
+    name/value pairs.\r
+    \r
+    Each data row contains a name, and value. The row also contains a \r
+    type or mimetype. Type corresponds to a .NET class that support \r
+    text/value conversion through the TypeConverter architecture. \r
+    Classes that don't support this are serialized and stored with the \r
+    mimetype set.\r
+    \r
+    The mimetype is used for serialized objects, and tells the \r
+    ResXResourceReader how to depersist the object. This is currently not \r
+    extensible. For a given mimetype the value must be set accordingly:\r
+    \r
+    Note - application/x-microsoft.net.object.binary.base64 is the format \r
+    that the ResXResourceWriter will generate, however the reader can \r
+    read any of the formats listed below.\r
+    \r
+    mimetype: application/x-microsoft.net.object.binary.base64\r
+    value   : The object must be serialized with \r
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\r
+            : and then encoded with base64 encoding.\r
+    \r
+    mimetype: application/x-microsoft.net.object.soap.base64\r
+    value   : The object must be serialized with \r
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.bytearray.base64\r
+    value   : The object must be serialized into a byte array \r
+            : using a System.ComponentModel.TypeConverter\r
+            : and then encoded with base64 encoding.\r
+    -->\r
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />\r
+    <xsd:element name="root" msdata:IsDataSet="true">\r
+      <xsd:complexType>\r
+        <xsd:choice maxOccurs="unbounded">\r
+          <xsd:element name="metadata">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" use="required" type="xsd:string" />\r
+              <xsd:attribute name="type" type="xsd:string" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="assembly">\r
+            <xsd:complexType>\r
+              <xsd:attribute name="alias" type="xsd:string" />\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="data">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />\r
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="resheader">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+        </xsd:choice>\r
+      </xsd:complexType>\r
+    </xsd:element>\r
+  </xsd:schema>\r
+  <resheader name="resmimetype">\r
+    <value>text/microsoft-resx</value>\r
+  </resheader>\r
+  <resheader name="version">\r
+    <value>2.0</value>\r
+  </resheader>\r
+  <resheader name="reader">\r
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <resheader name="writer">\r
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
+  <data name="btnRewind.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAASpJREFUaEPt\r
+        2C1OA1EUxfEJSUUNpkkNuhKBZQVoVLfACthBuwPWgKlmBVgEEl1FaqqaQAicx+QlL82d6bt3jpnm/JJ/\r
+        Usy5ho8ZGhERERGhukTP7cdBWDsut2iLfv+/imPtVJugFfpB6Wj0MGvHZYHeUD4YPczacXlAB3R81HuY\r
+        tVNthl6QdTBXg7Xjcoc+kXWs7BTWTrUpekLWEasurB2Xa/SBrANdWVg71S7QI/pC1nhfJdaOyxV6RdZo\r
+        TRlrx+Ue7ZE1WFvC2nFbIsZh1k7IqL+FsvzD942s8b5KrJ2wG8T49cfaCRn1H7JSegTYIetY2SmsnZA5\r
+        YjyEsXbCRvs4XUovIu9o6GHWTkh6FVwjxislYydstC/1pfTvkE37cRDWjoiIiMiZapo/0nGWfKOvkooA\r
+        AAAASUVORK5CYII=\r
+</value>\r
+  </data>\r
+</root>
\ No newline at end of file
diff --git a/client - Copy/DxPlay/Controls/VideoSpeedTrackbar.cs b/client - Copy/DxPlay/Controls/VideoSpeedTrackbar.cs
new file mode 100644 (file)
index 0000000..66b4144
--- /dev/null
@@ -0,0 +1,29 @@
+using MaestroShared.Controls;\r
+using System.Windows.Forms;\r
+\r
+namespace DxPlay.Controls\r
+{\r
+    public class VideoSpeedTrackbar: TrackBar\r
+    {      \r
+        private float[] mAvailableSpeeds= { \r
+            0.25f, 0.5f, 1f, 2f, 3f, 5f\r
+        };\r
+\r
+        private float currentSpeed;\r
+        public float[] AvailableSpeeds { get => mAvailableSpeeds; }\r
+\r
+        public float CurrentSpeed { \r
+            get => currentSpeed; \r
+            set { currentSpeed = value; } \r
+        }\r
+        public VideoSpeedTrackbar() {            \r
+            this.Minimum = 0;\r
+            this.Maximum = 5;\r
+            this.Value = 2;\r
+            this.LargeChange = 1;\r
+            this.SmallChange = 1;\r
+            this.Tag = "PlaySpeed";\r
+            this.TickStyle = TickStyle.None;\r
+        }\r
+    }\r
+}\r
diff --git a/client - Copy/DxPlay/PlayerForm.Designer.cs b/client - Copy/DxPlay/PlayerForm.Designer.cs
new file mode 100644 (file)
index 0000000..d1d6a38
--- /dev/null
@@ -0,0 +1,587 @@
+\r
+using MaestroShared.Controls;\r
+using System.Windows.Forms;\r
+\r
+namespace DxPlay {\r
+    partial class PlayerForm : Form {\r
+        /// <summary>\r
+        /// Clean up any resources being used.\r
+        /// </summary>\r
+        protected override void Dispose(bool disposing) {\r
+            // Make sure to release the DxPlay object to avoid hanging\r
+            if (m_play != null) {\r
+                m_play.Dispose();\r
+            }\r
+            if (disposing) {\r
+                if (components != null) {\r
+                    components.Dispose();\r
+                }\r
+            }\r
+            base.Dispose(disposing);\r
+        }\r
+\r
+        #region Windows Form Designer generated code\r
+\r
+        /// <summary>\r
+        /// Required method for Designer support - do not modify\r
+        /// the contents of this method with the code editor.\r
+        /// </summary>\r
+        private void InitializeComponent() {\r
+            this.components = new System.ComponentModel.Container();\r
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();\r
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PlayerForm));\r
+            this.pVideo = new System.Windows.Forms.Panel();\r
+            this.mainSplit = new System.Windows.Forms.SplitContainer();\r
+            this.panelPlayer = new System.Windows.Forms.Panel();\r
+            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
+            this.tabEditor = new System.Windows.Forms.TabControl();\r
+            this.tpMetadata = new System.Windows.Forms.TabPage();\r
+            this.trafficBrowser = new TrafficClient.TrafficIDSelector();\r
+            this.tpSegments = new System.Windows.Forms.TabPage();\r
+            this.dgSegments = new System.Windows.Forms.DataGridView();\r
+            this.bsSegments = new System.Windows.Forms.BindingSource(this.components);\r
+            this.segmentActions = new System.Windows.Forms.ToolStrip();\r
+            this.tbDefineSegment = new System.Windows.Forms.ToolStripButton();\r
+            this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();\r
+            this.tbPositionAsTCIn = new System.Windows.Forms.ToolStripButton();\r
+            this.tbSplitSegment = new System.Windows.Forms.ToolStripButton();\r
+            this.tbPositionAsTCOut = new System.Windows.Forms.ToolStripButton();\r
+            this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
+            this.tbDeleteSegment = new System.Windows.Forms.ToolStripButton();\r
+            this.imagesTabEdit = new System.Windows.Forms.ImageList(this.components);\r
+            this.btnToggleSegmentEditor = new MaestroShared.Controls.NoFocusCueButton();\r
+            this.pMetadataDisplay = new System.Windows.Forms.TableLayoutPanel();\r
+            this.btnApprove = new MaestroShared.Controls.NoFocusCueButton();\r
+            this.labelSelectedMetadata = new System.Windows.Forms.Label();\r
+            this.txtSelectedID = new System.Windows.Forms.TextBox();\r
+            this.mainMenu = new System.Windows.Forms.MenuStrip();\r
+            this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+            this.menuOpenFile = new DxPlay.Controls.BindableToolStripMenuItem();\r
+            this.menuApprove = new DxPlay.Controls.BindableToolStripMenuItem();\r
+            this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();\r
+            this.menuRedefineSegments = new DxPlay.Controls.BindableToolStripMenuItem();\r
+            this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();\r
+            this.btnSave = new System.Windows.Forms.Button();\r
+            this.btnCancel = new System.Windows.Forms.Button();\r
+            this.playerControls = new DxPlay.Controls.PlayerControls();\r
+            ((System.ComponentModel.ISupportInitialize)(this.mainSplit)).BeginInit();\r
+            this.mainSplit.Panel1.SuspendLayout();\r
+            this.mainSplit.Panel2.SuspendLayout();\r
+            this.mainSplit.SuspendLayout();\r
+            this.panelPlayer.SuspendLayout();\r
+            this.tableLayoutPanel1.SuspendLayout();\r
+            this.tabEditor.SuspendLayout();\r
+            this.tpMetadata.SuspendLayout();\r
+            this.tpSegments.SuspendLayout();\r
+            ((System.ComponentModel.ISupportInitialize)(this.dgSegments)).BeginInit();\r
+            ((System.ComponentModel.ISupportInitialize)(this.bsSegments)).BeginInit();\r
+            this.segmentActions.SuspendLayout();\r
+            this.pMetadataDisplay.SuspendLayout();\r
+            this.mainMenu.SuspendLayout();\r
+            this.flowLayoutPanel1.SuspendLayout();\r
+            this.SuspendLayout();\r
+            // \r
+            // pVideo\r
+            // \r
+            this.pVideo.BackColor = System.Drawing.Color.Transparent;\r
+            this.pVideo.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;\r
+            this.pVideo.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.pVideo.Location = new System.Drawing.Point(0, 0);\r
+            this.pVideo.Name = "pVideo";\r
+            this.pVideo.Size = new System.Drawing.Size(472, 363);\r
+            this.pVideo.TabIndex = 0;\r
+            this.pVideo.TabStop = true;\r
+            this.pVideo.SizeChanged += new System.EventHandler(this.Panel1_SizeChanged);\r
+            this.pVideo.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Panel1_MouseDown);\r
+            // \r
+            // mainSplit\r
+            // \r
+            this.mainSplit.BackColor = System.Drawing.Color.Black;\r
+            this.mainSplit.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+            this.mainSplit.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.mainSplit.Location = new System.Drawing.Point(0, 24);\r
+            this.mainSplit.Name = "mainSplit";\r
+            // \r
+            // mainSplit.Panel1\r
+            // \r
+            this.mainSplit.Panel1.Controls.Add(this.panelPlayer);\r
+            // \r
+            // mainSplit.Panel2\r
+            // \r
+            this.mainSplit.Panel2.Controls.Add(this.tableLayoutPanel1);\r
+            this.mainSplit.Panel2.Controls.Add(this.pMetadataDisplay);\r
+            this.mainSplit.Panel2MinSize = 300;\r
+            this.mainSplit.Size = new System.Drawing.Size(931, 365);\r
+            this.mainSplit.SplitterDistance = 474;\r
+            this.mainSplit.TabIndex = 20;\r
+            // \r
+            // panelPlayer\r
+            // \r
+            this.panelPlayer.Controls.Add(this.pVideo);\r
+            this.panelPlayer.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.panelPlayer.Location = new System.Drawing.Point(0, 0);\r
+            this.panelPlayer.Name = "panelPlayer";\r
+            this.panelPlayer.Size = new System.Drawing.Size(472, 363);\r
+            this.panelPlayer.TabIndex = 0;\r
+            // \r
+            // tableLayoutPanel1\r
+            // \r
+            this.tableLayoutPanel1.ColumnCount = 2;\r
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+            this.tableLayoutPanel1.Controls.Add(this.tabEditor, 1, 0);\r
+            this.tableLayoutPanel1.Controls.Add(this.btnToggleSegmentEditor, 0, 0);\r
+            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);\r
+            this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);\r
+            this.tableLayoutPanel1.Name = "tableLayoutPanel1";\r
+            this.tableLayoutPanel1.RowCount = 1;\r
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+            this.tableLayoutPanel1.Size = new System.Drawing.Size(451, 300);\r
+            this.tableLayoutPanel1.TabIndex = 4;\r
+            // \r
+            // tabEditor\r
+            // \r
+            this.tabEditor.Alignment = System.Windows.Forms.TabAlignment.Bottom;\r
+            this.tabEditor.Controls.Add(this.tpMetadata);\r
+            this.tabEditor.Controls.Add(this.tpSegments);\r
+            this.tabEditor.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.tabEditor.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.tabEditor.ImageList = this.imagesTabEdit;\r
+            this.tabEditor.Location = new System.Drawing.Point(23, 4);\r
+            this.tabEditor.Margin = new System.Windows.Forms.Padding(0, 4, 4, 4);\r
+            this.tabEditor.Multiline = true;\r
+            this.tabEditor.Name = "tabEditor";\r
+            this.tabEditor.Padding = new System.Drawing.Point(10, 5);\r
+            this.tabEditor.SelectedIndex = 0;\r
+            this.tabEditor.Size = new System.Drawing.Size(424, 292);\r
+            this.tabEditor.TabIndex = 2;\r
+            // \r
+            // tpMetadata\r
+            // \r
+            this.tpMetadata.BackColor = System.Drawing.Color.Transparent;\r
+            this.tpMetadata.Controls.Add(this.trafficBrowser);\r
+            this.tpMetadata.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.tpMetadata.ImageIndex = 0;\r
+            this.tpMetadata.Location = new System.Drawing.Point(4, 4);\r
+            this.tpMetadata.Name = "tpMetadata";\r
+            this.tpMetadata.Padding = new System.Windows.Forms.Padding(3);\r
+            this.tpMetadata.Size = new System.Drawing.Size(416, 253);\r
+            this.tpMetadata.TabIndex = 0;\r
+            this.tpMetadata.Text = "Metadata";\r
+            // \r
+            // trafficBrowser\r
+            // \r
+            this.trafficBrowser.BackColor = System.Drawing.Color.White;\r
+            this.trafficBrowser.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.trafficBrowser.IDChangedEvent = null;\r
+            this.trafficBrowser.Location = new System.Drawing.Point(3, 3);\r
+            this.trafficBrowser.Margin = new System.Windows.Forms.Padding(0);\r
+            this.trafficBrowser.Name = "trafficBrowser";\r
+            this.trafficBrowser.Parameters = null;\r
+            this.trafficBrowser.Size = new System.Drawing.Size(410, 247);\r
+            this.trafficBrowser.TabIndex = 0;\r
+            // \r
+            // tpSegments\r
+            // \r
+            this.tpSegments.Controls.Add(this.dgSegments);\r
+            this.tpSegments.Controls.Add(this.segmentActions);\r
+            this.tpSegments.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.tpSegments.ImageIndex = 1;\r
+            this.tpSegments.Location = new System.Drawing.Point(4, 4);\r
+            this.tpSegments.Name = "tpSegments";\r
+            this.tpSegments.Padding = new System.Windows.Forms.Padding(3);\r
+            this.tpSegments.Size = new System.Drawing.Size(341, 192);\r
+            this.tpSegments.TabIndex = 1;\r
+            this.tpSegments.Text = "Segments";\r
+            this.tpSegments.UseVisualStyleBackColor = true;\r
+            // \r
+            // dgSegments\r
+            // \r
+            this.dgSegments.AllowUserToAddRows = false;\r
+            this.dgSegments.AllowUserToOrderColumns = true;\r
+            this.dgSegments.AllowUserToResizeRows = false;\r
+            this.dgSegments.AutoGenerateColumns = false;\r
+            this.dgSegments.BackgroundColor = System.Drawing.Color.White;\r
+            this.dgSegments.BorderStyle = System.Windows.Forms.BorderStyle.None;\r
+            this.dgSegments.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;\r
+            this.dgSegments.DataSource = this.bsSegments;\r
+            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;\r
+            dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window;\r
+            dataGridViewCellStyle1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            dataGridViewCellStyle1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))));\r
+            dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));\r
+            dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.Black;\r
+            dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;\r
+            this.dgSegments.DefaultCellStyle = dataGridViewCellStyle1;\r
+            this.dgSegments.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.dgSegments.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnF2;\r
+            this.dgSegments.Location = new System.Drawing.Point(3, 28);\r
+            this.dgSegments.MultiSelect = false;\r
+            this.dgSegments.Name = "dgSegments";\r
+            this.dgSegments.RowHeadersVisible = false;\r
+            this.dgSegments.RowHeadersWidth = 51;\r
+            this.dgSegments.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
+            this.dgSegments.Size = new System.Drawing.Size(335, 161);\r
+            this.dgSegments.TabIndex = 1;\r
+            this.dgSegments.CellBeginEdit += new System.Windows.Forms.DataGridViewCellCancelEventHandler(this.OnSegmentsCellBeginEdit);\r
+            this.dgSegments.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.OnSegmentsCellContentClick);\r
+            this.dgSegments.CellMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.OnSegmentsCellMouseDoubleClick);\r
+            this.dgSegments.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.OnSegmentsCellMouseEnter);\r
+            this.dgSegments.CellMouseLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.OnSegmentsCellMouseLeave);\r
+            this.dgSegments.CellPainting += new System.Windows.Forms.DataGridViewCellPaintingEventHandler(this.OnSegmentsCellPainting);\r
+            this.dgSegments.ColumnAdded += new System.Windows.Forms.DataGridViewColumnEventHandler(this.OnSegmentsColumnAdded);\r
+            this.dgSegments.MouseClick += new System.Windows.Forms.MouseEventHandler(this.OnSegmentsMouseClick);\r
+            // \r
+            // segmentActions\r
+            // \r
+            this.segmentActions.AutoSize = false;\r
+            this.segmentActions.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;\r
+            this.segmentActions.ImageScalingSize = new System.Drawing.Size(20, 20);\r
+            this.segmentActions.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
+            this.tbDefineSegment,\r
+            this.toolStripSeparator2,\r
+            this.tbPositionAsTCIn,\r
+            this.tbSplitSegment,\r
+            this.tbPositionAsTCOut,\r
+            this.toolStripSeparator1,\r
+            this.tbDeleteSegment});\r
+            this.segmentActions.Location = new System.Drawing.Point(3, 3);\r
+            this.segmentActions.Name = "segmentActions";\r
+            this.segmentActions.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;\r
+            this.segmentActions.Size = new System.Drawing.Size(335, 25);\r
+            this.segmentActions.TabIndex = 0;\r
+            this.segmentActions.Text = "toolStrip1";\r
+            // \r
+            // tbDefineSegment\r
+            // \r
+            this.tbDefineSegment.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;\r
+            this.tbDefineSegment.Image = ((System.Drawing.Image)(resources.GetObject("tbDefineSegment.Image")));\r
+            this.tbDefineSegment.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;\r
+            this.tbDefineSegment.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+            this.tbDefineSegment.Name = "tbDefineSegment";\r
+            this.tbDefineSegment.Size = new System.Drawing.Size(23, 22);\r
+            this.tbDefineSegment.Text = "toolStripButton5";\r
+            this.tbDefineSegment.Click += new System.EventHandler(this.OnDefineOneSegmentClick);\r
+            // \r
+            // toolStripSeparator2\r
+            // \r
+            this.toolStripSeparator2.Name = "toolStripSeparator2";\r
+            this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25);\r
+            // \r
+            // tbPositionAsTCIn\r
+            // \r
+            this.tbPositionAsTCIn.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;\r
+            this.tbPositionAsTCIn.Image = ((System.Drawing.Image)(resources.GetObject("tbPositionAsTCIn.Image")));\r
+            this.tbPositionAsTCIn.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;\r
+            this.tbPositionAsTCIn.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+            this.tbPositionAsTCIn.Name = "tbPositionAsTCIn";\r
+            this.tbPositionAsTCIn.Size = new System.Drawing.Size(23, 22);\r
+            this.tbPositionAsTCIn.Text = "toolStripButton1";\r
+            this.tbPositionAsTCIn.Click += new System.EventHandler(this.OnActualPositionToTCInToolStripMenuItem1Click);\r
+            // \r
+            // tbSplitSegment\r
+            // \r
+            this.tbSplitSegment.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;\r
+            this.tbSplitSegment.Image = ((System.Drawing.Image)(resources.GetObject("tbSplitSegment.Image")));\r
+            this.tbSplitSegment.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;\r
+            this.tbSplitSegment.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+            this.tbSplitSegment.Name = "tbSplitSegment";\r
+            this.tbSplitSegment.Size = new System.Drawing.Size(23, 22);\r
+            this.tbSplitSegment.Text = "toolStripButton4";\r
+            this.tbSplitSegment.Click += new System.EventHandler(this.OnSplitSegmentAtCurrentPositionClick);\r
+            // \r
+            // tbPositionAsTCOut\r
+            // \r
+            this.tbPositionAsTCOut.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;\r
+            this.tbPositionAsTCOut.Image = ((System.Drawing.Image)(resources.GetObject("tbPositionAsTCOut.Image")));\r
+            this.tbPositionAsTCOut.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;\r
+            this.tbPositionAsTCOut.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+            this.tbPositionAsTCOut.Name = "tbPositionAsTCOut";\r
+            this.tbPositionAsTCOut.Size = new System.Drawing.Size(23, 22);\r
+            this.tbPositionAsTCOut.Text = "toolStripButton2";\r
+            this.tbPositionAsTCOut.Click += new System.EventHandler(this.OnActualPositionToTCOutToolStripMenuItem1Click);\r
+            // \r
+            // toolStripSeparator1\r
+            // \r
+            this.toolStripSeparator1.Name = "toolStripSeparator1";\r
+            this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25);\r
+            // \r
+            // tbDeleteSegment\r
+            // \r
+            this.tbDeleteSegment.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;\r
+            this.tbDeleteSegment.Image = ((System.Drawing.Image)(resources.GetObject("tbDeleteSegment.Image")));\r
+            this.tbDeleteSegment.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;\r
+            this.tbDeleteSegment.ImageTransparentColor = System.Drawing.Color.Magenta;\r
+            this.tbDeleteSegment.Name = "tbDeleteSegment";\r
+            this.tbDeleteSegment.Size = new System.Drawing.Size(23, 22);\r
+            this.tbDeleteSegment.Text = "toolStripButton3";\r
+            this.tbDeleteSegment.Click += new System.EventHandler(this.OnDeleteSegmentClick);\r
+            // \r
+            // imagesTabEdit\r
+            // \r
+            this.imagesTabEdit.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imagesTabEdit.ImageStream")));\r
+            this.imagesTabEdit.TransparentColor = System.Drawing.Color.Transparent;\r
+            this.imagesTabEdit.Images.SetKeyName(0, "round_publish_black_24dp.png");\r
+            this.imagesTabEdit.Images.SetKeyName(1, "ic_playlist_add_check_black_24dp_1x.png");\r
+            // \r
+            // btnToggleSegmentEditor\r
+            // \r
+            this.btnToggleSegmentEditor.BackColor = System.Drawing.Color.White;\r
+            this.btnToggleSegmentEditor.FlatAppearance.BorderSize = 0;\r
+            this.btnToggleSegmentEditor.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.btnToggleSegmentEditor.Image = ((System.Drawing.Image)(resources.GetObject("btnToggleSegmentEditor.Image")));\r
+            this.btnToggleSegmentEditor.Location = new System.Drawing.Point(0, 4);\r
+            this.btnToggleSegmentEditor.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0);\r
+            this.btnToggleSegmentEditor.Name = "btnToggleSegmentEditor";\r
+            this.btnToggleSegmentEditor.Size = new System.Drawing.Size(23, 63);\r
+            this.btnToggleSegmentEditor.TabIndex = 0;\r
+            this.btnToggleSegmentEditor.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
+            this.btnToggleSegmentEditor.UseVisualStyleBackColor = false;\r
+            this.btnToggleSegmentEditor.Visible = false;\r
+            // \r
+            // pMetadataDisplay\r
+            // \r
+            this.pMetadataDisplay.AutoSize = true;\r
+            this.pMetadataDisplay.ColumnCount = 2;\r
+            this.pMetadataDisplay.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));\r
+            this.pMetadataDisplay.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());\r
+            this.pMetadataDisplay.Controls.Add(this.btnApprove, 1, 1);\r
+            this.pMetadataDisplay.Controls.Add(this.labelSelectedMetadata, 0, 0);\r
+            this.pMetadataDisplay.Controls.Add(this.txtSelectedID, 0, 1);\r
+            this.pMetadataDisplay.Dock = System.Windows.Forms.DockStyle.Bottom;\r
+            this.pMetadataDisplay.Location = new System.Drawing.Point(0, 300);\r
+            this.pMetadataDisplay.Margin = new System.Windows.Forms.Padding(0);\r
+            this.pMetadataDisplay.Name = "pMetadataDisplay";\r
+            this.pMetadataDisplay.RowCount = 2;\r
+            this.pMetadataDisplay.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+            this.pMetadataDisplay.RowStyles.Add(new System.Windows.Forms.RowStyle());\r
+            this.pMetadataDisplay.Size = new System.Drawing.Size(451, 63);\r
+            this.pMetadataDisplay.TabIndex = 5;\r
+            // \r
+            // btnApprove\r
+            // \r
+            this.btnApprove.AutoSize = true;\r
+            this.btnApprove.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;\r
+            this.btnApprove.BackColor = System.Drawing.Color.White;\r
+            this.btnApprove.FlatAppearance.BorderSize = 0;\r
+            this.btnApprove.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
+            this.btnApprove.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.btnApprove.Image = ((System.Drawing.Image)(resources.GetObject("btnApprove.Image")));\r
+            this.btnApprove.Location = new System.Drawing.Point(349, 29);\r
+            this.btnApprove.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0);\r
+            this.btnApprove.Name = "btnApprove";\r
+            this.btnApprove.Size = new System.Drawing.Size(102, 30);\r
+            this.btnApprove.TabIndex = 17;\r
+            this.btnApprove.Text = "Approve";\r
+            this.btnApprove.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
+            this.btnApprove.UseVisualStyleBackColor = false;\r
+            this.btnApprove.Click += new System.EventHandler(this.OnApprove);\r
+            // \r
+            // labelSelectedMetadata\r
+            // \r
+            this.labelSelectedMetadata.AutoSize = true;\r
+            this.labelSelectedMetadata.BackColor = System.Drawing.Color.Transparent;\r
+            this.labelSelectedMetadata.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.labelSelectedMetadata.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.labelSelectedMetadata.ForeColor = System.Drawing.SystemColors.ActiveCaption;\r
+            this.labelSelectedMetadata.Location = new System.Drawing.Point(3, 0);\r
+            this.labelSelectedMetadata.Name = "labelSelectedMetadata";\r
+            this.labelSelectedMetadata.Padding = new System.Windows.Forms.Padding(0, 5, 0, 5);\r
+            this.labelSelectedMetadata.Size = new System.Drawing.Size(343, 25);\r
+            this.labelSelectedMetadata.TabIndex = 13;\r
+            this.labelSelectedMetadata.Text = "Selected metadata";\r
+            // \r
+            // txtSelectedID\r
+            // \r
+            this.txtSelectedID.BackColor = System.Drawing.SystemColors.ActiveCaption;\r
+            this.txtSelectedID.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;\r
+            this.txtSelectedID.Dock = System.Windows.Forms.DockStyle.Fill;\r
+            this.txtSelectedID.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));\r
+            this.txtSelectedID.Location = new System.Drawing.Point(3, 28);\r
+            this.txtSelectedID.Name = "txtSelectedID";\r
+            this.txtSelectedID.Size = new System.Drawing.Size(343, 32);\r
+            this.txtSelectedID.TabIndex = 12;\r
+            // \r
+            // mainMenu\r
+            // \r
+            this.mainMenu.ImageScalingSize = new System.Drawing.Size(20, 20);\r
+            this.mainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
+            this.fileToolStripMenuItem});\r
+            this.mainMenu.Location = new System.Drawing.Point(0, 0);\r
+            this.mainMenu.Name = "mainMenu";\r
+            this.mainMenu.Size = new System.Drawing.Size(931, 24);\r
+            this.mainMenu.TabIndex = 21;\r
+            this.mainMenu.Text = "menuStrip1";\r
+            // \r
+            // fileToolStripMenuItem\r
+            // \r
+            this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
+            this.menuOpenFile,\r
+            this.menuApprove,\r
+            this.toolStripSeparator3,\r
+            this.menuRedefineSegments});\r
+            this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";\r
+            this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);\r
+            this.fileToolStripMenuItem.Text = "File";\r
+            // \r
+            // menuOpenFile\r
+            // \r
+            this.menuOpenFile.Name = "menuOpenFile";\r
+            this.menuOpenFile.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));\r
+            this.menuOpenFile.Size = new System.Drawing.Size(215, 22);\r
+            this.menuOpenFile.Text = "Open file";\r
+            this.menuOpenFile.Click += new System.EventHandler(this.MenuOpenFile_Click);\r
+            // \r
+            // menuApprove\r
+            // \r
+            this.menuApprove.Name = "menuApprove";\r
+            this.menuApprove.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));\r
+            this.menuApprove.Size = new System.Drawing.Size(215, 22);\r
+            this.menuApprove.Text = "Approve";\r
+            this.menuApprove.Click += new System.EventHandler(this.OnApprove);\r
+            // \r
+            // toolStripSeparator3\r
+            // \r
+            this.toolStripSeparator3.Name = "toolStripSeparator3";\r
+            this.toolStripSeparator3.Size = new System.Drawing.Size(212, 6);\r
+            // \r
+            // menuRedefineSegments\r
+            // \r
+            this.menuRedefineSegments.Name = "menuRedefineSegments";\r
+            this.menuRedefineSegments.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.R)));\r
+            this.menuRedefineSegments.Size = new System.Drawing.Size(215, 22);\r
+            this.menuRedefineSegments.Text = "Redefine segments";\r
+            this.menuRedefineSegments.Click += new System.EventHandler(this.OnRedefineSegments);\r
+            // \r
+            // flowLayoutPanel1\r
+            // \r
+            this.flowLayoutPanel1.AutoSize = true;\r
+            this.flowLayoutPanel1.Controls.Add(this.btnSave);\r
+            this.flowLayoutPanel1.Controls.Add(this.btnCancel);\r
+            this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom;\r
+            this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 532);\r
+            this.flowLayoutPanel1.Name = "flowLayoutPanel1";\r
+            this.flowLayoutPanel1.RightToLeft = System.Windows.Forms.RightToLeft.Yes;\r
+            this.flowLayoutPanel1.Size = new System.Drawing.Size(931, 29);\r
+            this.flowLayoutPanel1.TabIndex = 23;\r
+            // \r
+            // btnSave\r
+            // \r
+            this.btnSave.Location = new System.Drawing.Point(853, 3);\r
+            this.btnSave.Name = "btnSave";\r
+            this.btnSave.Size = new System.Drawing.Size(75, 23);\r
+            this.btnSave.TabIndex = 0;\r
+            this.btnSave.Text = "Save";\r
+            this.btnSave.UseVisualStyleBackColor = true;\r
+            this.btnSave.Click += new System.EventHandler(this.BtnSave_Click);\r
+            // \r
+            // btnCancel\r
+            // \r
+            this.btnCancel.Location = new System.Drawing.Point(772, 3);\r
+            this.btnCancel.Name = "btnCancel";\r
+            this.btnCancel.Size = new System.Drawing.Size(75, 23);\r
+            this.btnCancel.TabIndex = 1;\r
+            this.btnCancel.Text = "Cancel";\r
+            this.btnCancel.UseVisualStyleBackColor = true;\r
+            this.btnCancel.Click += new System.EventHandler(this.BtnCancel_Click);\r
+            // \r
+            // playerControls\r
+            // \r
+            this.playerControls.AutoSize = true;\r
+            this.playerControls.BackColor = System.Drawing.Color.Transparent;\r
+            this.playerControls.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;\r
+            this.playerControls.Dock = System.Windows.Forms.DockStyle.Bottom;\r
+            this.playerControls.Location = new System.Drawing.Point(0, 389);\r
+            this.playerControls.Margin = new System.Windows.Forms.Padding(0);\r
+            this.playerControls.Name = "playerControls";\r
+            this.playerControls.Size = new System.Drawing.Size(931, 143);\r
+            this.playerControls.TabIndex = 22;\r
+            // \r
+            // PlayerForm\r
+            // \r
+            this.AllowDrop = true;\r
+            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);\r
+            this.BackColor = System.Drawing.Color.White;\r
+            this.ClientSize = new System.Drawing.Size(931, 561);\r
+            this.Controls.Add(this.mainSplit);\r
+            this.Controls.Add(this.mainMenu);\r
+            this.Controls.Add(this.playerControls);\r
+            this.Controls.Add(this.flowLayoutPanel1);\r
+            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));\r
+            this.KeyPreview = true;\r
+            this.MinimumSize = new System.Drawing.Size(640, 480);\r
+            this.Name = "PlayerForm";\r
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;\r
+            this.Text = "MediaCube Player";\r
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.PlayerForm_FormClosing);\r
+            this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.PlayerForm_FormClosed);\r
+            this.Load += new System.EventHandler(this.PlayerForm_Load);\r
+            this.Shown += new System.EventHandler(this.PlayerForm_Shown);\r
+            this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop);\r
+            this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter);\r
+            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.PlayerForm_KeyDown);\r
+            this.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.PlayerForm_PreviewKeyDown);\r
+            this.mainSplit.Panel1.ResumeLayout(false);\r
+            this.mainSplit.Panel2.ResumeLayout(false);\r
+            this.mainSplit.Panel2.PerformLayout();\r
+            ((System.ComponentModel.ISupportInitialize)(this.mainSplit)).EndInit();\r
+            this.mainSplit.ResumeLayout(false);\r
+            this.panelPlayer.ResumeLayout(false);\r
+            this.tableLayoutPanel1.ResumeLayout(false);\r
+            this.tabEditor.ResumeLayout(false);\r
+            this.tpMetadata.ResumeLayout(false);\r
+            this.tpSegments.ResumeLayout(false);\r
+            ((System.ComponentModel.ISupportInitialize)(this.dgSegments)).EndInit();\r
+            ((System.ComponentModel.ISupportInitialize)(this.bsSegments)).EndInit();\r
+            this.segmentActions.ResumeLayout(false);\r
+            this.segmentActions.PerformLayout();\r
+            this.pMetadataDisplay.ResumeLayout(false);\r
+            this.pMetadataDisplay.PerformLayout();\r
+            this.mainMenu.ResumeLayout(false);\r
+            this.mainMenu.PerformLayout();\r
+            this.flowLayoutPanel1.ResumeLayout(false);\r
+            this.ResumeLayout(false);\r
+            this.PerformLayout();\r
+\r
+        }\r
+\r
+        #endregion\r
+\r
+        private System.ComponentModel.IContainer components;\r
+        private DxPlay.Controls.BindableToolStripMenuItem menuOpenFile;\r
+        private DxPlay.Controls.BindableToolStripMenuItem menuApprove;\r
+        private TrafficClient.TrafficIDSelector trafficBrowser;\r
+        private DxPlay.Controls.BindableToolStripMenuItem menuRedefineSegments;\r
+        private System.Windows.Forms.Button btnCancel;\r
+        private System.Windows.Forms.Button btnSave;\r
+        private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;\r
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;\r
+        private System.Windows.Forms.TextBox txtSelectedID;\r
+        private System.Windows.Forms.Label labelSelectedMetadata;\r
+        private MaestroShared.Controls.NoFocusCueButton btnApprove;\r
+        private System.Windows.Forms.TableLayoutPanel pMetadataDisplay;\r
+        private MaestroShared.Controls.NoFocusCueButton btnToggleSegmentEditor;\r
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;\r
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;\r
+        private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;\r
+        private System.Windows.Forms.ImageList imagesTabEdit;\r
+        private System.Windows.Forms.ToolStripButton tbDefineSegment;\r
+        private System.Windows.Forms.ToolStripButton tbSplitSegment;\r
+        private System.Windows.Forms.ToolStripButton tbDeleteSegment;\r
+        private System.Windows.Forms.ToolStripButton tbPositionAsTCOut;\r
+        private System.Windows.Forms.ToolStripButton tbPositionAsTCIn;\r
+        private System.Windows.Forms.ToolStrip segmentActions;\r
+        private System.Windows.Forms.TabPage tpSegments;\r
+        private System.Windows.Forms.TabPage tpMetadata;\r
+        private System.Windows.Forms.TabControl tabEditor;\r
+        private DxPlay.Controls.PlayerControls playerControls;\r
+        private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;\r
+        private System.Windows.Forms.MenuStrip mainMenu;\r
+        private System.Windows.Forms.BindingSource bsSegments;\r
+        private System.Windows.Forms.DataGridView dgSegments;\r
+        private System.Windows.Forms.Panel panelPlayer;\r
+        private System.Windows.Forms.SplitContainer mainSplit;\r
+        private System.Windows.Forms.Panel pVideo;\r
+    }\r
+}
\ No newline at end of file
diff --git a/client - Copy/DxPlay/PlayerForm.cs b/client - Copy/DxPlay/PlayerForm.cs
new file mode 100644 (file)
index 0000000..93938c0
--- /dev/null
@@ -0,0 +1,633 @@
+using DirectShowLib;\r
+using DxPlay.Controls;\r
+using DxPlay.Model;\r
+using DxPlay.Properties;\r
+using MaestroShared.Commons;\r
+using MaestroShared.Controls;\r
+using MaestroShared.Metadata;\r
+using NLog;\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Diagnostics;\r
+using System.IO;\r
+using System.Runtime.InteropServices;\r
+using System.Windows.Forms;\r
+using Logger = NLog.Logger;\r
+\r
+namespace DxPlay {\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
+        private DateTime lastClick = DateTime.Now;\r
+        private volatile bool trackBarAtUser;\r
+        private DxPlayer m_play = null;\r
+        private MediaDescription m_mediaDescription = null;\r
+\r
+        private OpenFileDialog openFileDialog = new OpenFileDialog();\r
+        private ToolTip tooltips;\r
+\r
+        private DxPlaySettings settings;\r
+        public DxPlaySettings Settings {\r
+            get {\r
+                return settings;\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
+                //0: MV uj szegmens = elozo szegmens vege\r
+                segmentOffset = 1 - settings.Player.SegmentOffset;\r
+            }\r
+        }\r
+\r
+        private DxPlayModel model;\r
+        public DxPlayModel Model {\r
+            get { return model; }\r
+            set {\r
+                model = value ?? throw new NullReferenceException("DxPlayModel");\r
+                ApplyModel();\r
+            }\r
+        }\r
+\r
+        /// <summary>\r
+        /// User control cimkejenek rendszeres frissitese villogast eredmenyez e nelkul \r
+        /// </summary>\r
+        //protected override CreateParams CreateParams {\r
+        //    get {\r
+        //        CreateParams cp = base.CreateParams;\r
+        //        cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED\r
+        //        return cp;\r
+        //    }\r
+        //}\r
+\r
+        public bool openFileDialogOpened;\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
+            menuOpenFile.DataBindings.Add(new Binding("Enabled", model, "IsMenuVisible", false, DataSourceUpdateMode.Never));\r
+            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
+                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
+            } else {\r
+                pMetadataDisplay.Visible = false;\r
+                tabEditor.TabPages.Remove(tpMetadata);\r
+            }\r
+            Binding segmentEditorPanelBinding = new Binding("Panel2Collapsed", model, "IsSegmentEditorVisible", true, DataSourceUpdateMode.Never);\r
+            segmentEditorPanelBinding.Format += (s, e) => {\r
+                bool enabled = (bool)e.Value;\r
+                e.Value = !enabled;\r
+                if (enabled)\r
+                    mainSplit.Panel2.Show();\r
+                else\r
+                    mainSplit.Panel2.Hide();\r
+            };\r
+            mainSplit.DataBindings.Add(segmentEditorPanelBinding);\r
+\r
+        }\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
+                model.SelectedSegments = selected;\r
+                model.VariantID = variantID;\r
+                model.ID = ID;\r
+            } catch (Exception e) {\r
+                MsgBox.Error(e.Message);\r
+                logger.Error(e.StackTrace);\r
+            }\r
+        }\r
+\r
+        public PlayerForm() {\r
+            InitializeComponent();\r
+\r
+            playerControls.Play.Click += OnPlayClick;\r
+            playerControls.Stop.Click += OnStopClick;\r
+            playerControls.Rewind.MouseDown += OnRewindMouseDown;\r
+            playerControls.Rewind.MouseUp += OnRewindMouseUp;\r
+            playerControls.Forward.MouseUp += OnForwardMouseUp;\r
+            playerControls.Forward.MouseDown += OnForwardMouseDown;\r
+            playerControls.StepBack.MouseDown += OnStepBackMouseDown;\r
+            playerControls.StepBack.MouseUp += OnStepBackMouseUp;\r
+            playerControls.StepForward.MouseUp += OnStepForwardMouseUp;\r
+            playerControls.StepForward.MouseDown += OnStepForwardMouseDown;\r
+            playerControls.PlaySpeed.ValueChanged += OnPlaySpeedChanged;\r
+            playerControls.AudioTracks.SelectedIndexChanged += OnAudioTrackSelected;\r
+\r
+            playerControls.TrackBar.MouseDown += OnTrackBarMouseDown;\r
+            playerControls.TrackBar.MouseUp += OnTrackBarMouseUp;\r
+            playerControls.TrackBar.Scroll += OnTrackBarScroll;            \r
+        }\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
+            tbPositionAsTCOut.Text = Settings.Resource("POSITIONASTCOUT", Resources.POSITIONASTCOUT);\r
+            tbDefineSegment.Text = Settings.Resource("DEFINESEGMENT", Resources.DEFINESEGMENT);\r
+            tbDeleteSegment.Text = Settings.Resource("DELETESEGMENT", Resources.DELETESEGMENT);\r
+            tbSplitSegment.Text = Settings.Resource("SPLITSEGMENT", Resources.SPLITSEGMENT);\r
+            menuOpenFile.Text = Settings.Resource("OPEN", Resources.OPEN);\r
+            menuApprove.Text = Settings.Resource("APPROVE", Resources.APPROVE);\r
+            btnApprove.Text = Settings.Resource("APPROVE", Resources.APPROVE);\r
+\r
+            tooltips = new ToolTip();\r
+            tooltips.SetToolTip(playerControls.Rewind, Settings.Resource("REWIND", Resources.REWIND));\r
+            tooltips.SetToolTip(playerControls.Forward, Settings.Resource("FORWARD", Resources.FORWARD));\r
+            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.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
+            m_play?.Dispose();\r
+            Close();\r
+        }\r
+\r
+        private void Queue() {\r
+            m_play = null;\r
+            try {\r
+                //m_mediaDescription = MediaDetector.GetDescription(selectedFile);\r
+                m_mediaDescription = new MediaDescription() { fileName = model.CurrentFile.FullName };\r
+\r
+                playerControls.TrackBar.Value = 0;\r
+                playerControls.TrackBar.Minimum = 0;\r
+                m_play = new DxPlayer(pVideo, ref m_mediaDescription, Settings);\r
+                if (m_play.IsError)\r
+                    throw new Exception(model.CurrentFile.FullName);\r
+\r
+                m_play.PlayEvent += new DxPlayEvent(OnPlayEvent);\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
+            } 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
+            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
+            logger.Debug("Open {0}", fileInfo.FullName);\r
+\r
+            if (m_play != null)\r
+                m_play.Dispose();\r
+            this.Text = fileInfo.Name;\r
+\r
+            model.CurrentFile = fileInfo;\r
+            Queue();\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
+                    model.Lookup(id);\r
+                } catch (Exception e) {\r
+                    MsgBox.Error(e.Message);\r
+                    logger.Error(e.StackTrace);\r
+                }\r
+            }\r
+            model.IsRedefineSegments = redefine;\r
+\r
+            if (m_play != null)\r
+            {\r
+                m_play.Graph.SearchAudioTracks(m_play.Graph.Splitter);\r
+                if (m_play.Graph.AudioCount > 1) { \r
+                    playerControls.AudioLabel.Visible = true;\r
+                    m_play.Graph.AvailableAudioTracks = new List<string>(m_play.Graph.AudioCount);\r
+                    m_play.Graph.SearchAudioTracks(m_play.Graph.Splitter);\r
+                    playerControls.AudioTracks.DataSource = m_play.Graph.AvailableAudioTracks;\r
+                    playerControls.AudioTracks.Visible = true;\r
+                }\r
+            }\r
+\r
+            //for (int i = 0; i < 100; i++) {\r
+            //    m_play.Seek(i);\r
+            //    Application.DoEvents();\r
+            //    Thread.Sleep(100);\r
+            //}\r
+        }\r
+\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
+            if (m_play != null && e.Button == MouseButtons.Left) {\r
+                DateTime currentClick = DateTime.Now;\r
+                if ((currentClick - lastClick).TotalMilliseconds < 300) {\r
+                    m_play.ToggleFullscreen();\r
+                    logger.Debug("Fullscreen");\r
+                } else\r
+                    lastClick = currentClick;\r
+            }\r
+        }\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
+            trackBarAtUser = true;\r
+            lastClick = DateTime.Now;\r
+        }\r
+\r
+        private void OnTrackBarMouseUp(object sender, MouseEventArgs e) {\r
+            trackBarAtUser = false;\r
+        }\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 PlayOrPause() {\r
+            if (m_play == null)\r
+                return;\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 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
+            PlayOrPause();\r
+        }\r
+\r
+        private void OnStopClick(object sender, EventArgs e) {\r
+            if (m_play != null && m_play.State != GraphState.Stopped) {\r
+                m_play.Stop();\r
+                UpdatePlayPauseButton();\r
+            }\r
+        }\r
+\r
+        private bool buttonDown;\r
+\r
+        private void OnRewindMouseUp(object sender, MouseEventArgs e) {\r
+            buttonDown = false;\r
+        }\r
+\r
+        private void OnRewindMouseDown(object sender, MouseEventArgs e) {\r
+            buttonDown = true;\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
+            buttonDown = false;\r
+        }\r
+\r
+        private void OnForwardMouseDown(object sender, EventArgs e) {\r
+            buttonDown = true;\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
+            buttonDown = false;\r
+        }\r
+\r
+        private void OnStepBackMouseDown(object sender, MouseEventArgs e) {\r
+            buttonDown = true;\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
+            buttonDown = false;\r
+        }\r
+\r
+        private void OnStepForwardMouseDown(object sender, EventArgs e) {\r
+            buttonDown = true;\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
+            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
+            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
+            if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right || e.KeyCode == Keys.Space || e.KeyCode == Keys.Escape) {\r
+                e.IsInputKey = false;\r
+            }\r
+        }\r
+\r
+        //private void DisableHotKeysDefaults(Control.ControlCollection controls) {\r
+        //    foreach (Control control in controls) {\r
+        //        if (control.Equals(dgSegments))\r
+        //            continue;\r
+        //        control.PreviewKeyDown += new PreviewKeyDownEventHandler(PlayerForm_PreviewKeyDown);\r
+        //        if (control.HasChildren)\r
+        //            DisableHotKeysDefaults(control.Controls);\r
+        //    }\r
+        //}\r
+\r
+        private void PlayerForm_Load(object sender, EventArgs e) {\r
+            //DisableHotKeysDefaults(this.Controls);\r
+\r
+            InterceptKeys.Start();\r
+            InterceptKeys.GlobalKeyEvent += HandleHotKey;\r
+\r
+            playerControls.BackColor = BackColor;\r
+            playerControls.StartTC.BackColor = BackColor;\r
+            playerControls.Duration.BackColor = BackColor;\r
+            playerControls.EndTC.BackColor = BackColor;\r
+            playerControls.CurrentTC.BackColor = BackColor;\r
+            playerControls.Start.BackColor = BackColor;\r
+            playerControls.Status.BackColor = BackColor;\r
+            dgSegments.BackgroundColor = BackColor;\r
+            trafficBrowser.BackColor = BackColor;\r
+\r
+            //Csak standalone modban\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
+            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
+        public static bool ApplicationIsActivated() {\r
+            var activatedHandle = GetForegroundWindow();\r
+            if (activatedHandle == IntPtr.Zero) {\r
+                return false;       // No window is currently activated\r
+            }\r
+\r
+            var procId = Process.GetCurrentProcess().Id;\r
+            GetWindowThreadProcessId(activatedHandle, out int activeProcId);\r
+\r
+            return activeProcId == procId;\r
+        }\r
+\r
+\r
+        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]\r
+        private static extern IntPtr GetForegroundWindow();\r
+\r
+        [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
+            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
+            bool result = false;\r
+            switch (keyCode) {\r
+                case Keys.Return:\r
+                    if (m_play != null && ModifierKeys.HasFlag(Keys.Shift)) {\r
+                        m_play.ToggleFullscreen();\r
+                        result = true;\r
+                    }\r
+                    break;\r
+                case Keys.Escape:\r
+                    if (m_play != null && m_play.IsFullscreen())\r
+                        m_play.ToggleFullscreen();\r
+                    else\r
+                        CloseForm();\r
+                    result = true;\r
+                    break;\r
+                case Keys.Left:\r
+                    Rewind();\r
+                    result = true;\r
+                    break;\r
+                case Keys.Right:\r
+                    Forward();\r
+                    result = true;\r
+                    break;\r
+                case Keys.Space:\r
+                    PlayOrPause();\r
+                    result = true;\r
+                    break;\r
+                    //case Keys.I:\r
+                    //    if (m_play != null && true.Equals(Settings?.Player?.SegmentEditor))\r
+                    //        SetActualPositionAsIn();\r
+                    //    break;\r
+                    //case Keys.O:\r
+                    //    if (m_play != null && true.Equals(Settings?.Player?.SegmentEditor))\r
+                    //        SetActualPositionAsOut();\r
+                    //    break;\r
+            }\r
+\r
+            return result;\r
+        }\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
+                string labelStatusText = playerControls.Status.Text;\r
+                m_play.stringValues.TryGetValue(m_play.State, out labelStatusText);\r
+                playerControls.Status.Text = labelStatusText;\r
+            }));\r
+\r
+            //if (!trackBarAtUser)\r
+            //    playerControls.TrackBar.Value = m_play.CurrentTC.ZeroBasedFrames;\r
+            //playerControls.CurrentTC.Text = m_play.CurrentTC.ToString();\r
+            //string labelStatusText = playerControls.Status.Text;\r
+            //m_play.stringValues.TryGetValue(m_play.State, out labelStatusText);\r
+            //playerControls.Status.Text = labelStatusText;\r
+\r
+        }\r
+\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
+            String[] arguments = Environment.GetCommandLineArgs();\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
+            logger.Debug("PlayerForm_Shown");\r
+            InitializeTexts();\r
+            if (true.Equals(Settings?.Player?.SegmentEditor) && true.Equals(Settings?.IsStandalone)) {\r
+                mainMenu.Visible = true;\r
+            }\r
+\r
+            ProcessCommandLine();\r
+\r
+            if (m_play != null && true.Equals(Settings?.Player?.AutoStart))\r
+                m_play.Play();\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
+            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
+            if (m_play == null)\r
+                return;\r
+\r
+            try {\r
+\r
+                m_play.Seek(0);\r
+                m_play.Dispose();\r
+                this.Text = TITLE;\r
+                playerControls.Status.Text = Settings.Resource("NOINPUT", Resources.NOINPUT);\r
+                playerControls.StartTC.Text = new Timecode().ToString();\r
+                playerControls.CurrentTC.Text = new Timecode().ToString();\r
+                playerControls.EndTC.Text = new Timecode().ToString();\r
+                playerControls.TrackBar.Value = 0;\r
+                tabEditor.SelectedIndex = 0;\r
+                model.Approve();\r
+                trafficBrowser.ClearLookup();\r
+                btnApprove.Text = Settings.Resource("APPROVE", Resources.APPROVE);\r
+                model.IsRedefineSegments = false;\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
+            openFileDialogOpened = true;\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
+            }\r
+            openFileDialogOpened = false;\r
+            model.IsRedefineSegments = true;\r
+            btnApprove.Text = Settings.Resource("REDEFINE", Resources.REDEFINE);\r
+        }\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
+            CloseForm();\r
+        }\r
+        public void SetVideoSpeed(float value)\r
+        {\r
+            if (m_play != null)\r
+            {\r
+                m_play.SetPlaySpeed(value);\r
+            }\r
+        }\r
+        private void OnPlaySpeedChanged(object sender, System.EventArgs e)\r
+        {\r
+            VideoSpeedTrackbar trackBar = sender as VideoSpeedTrackbar;\r
+            int currentValue = trackBar.Value;\r
+            trackBar.CurrentSpeed = trackBar.AvailableSpeeds[currentValue];\r
+            SetVideoSpeed(trackBar.CurrentSpeed);\r
+            playerControls.PlaySpeedLabel.Text = "x" + trackBar.CurrentSpeed.ToString();\r
+        }\r
+        private void OnAudioTrackSelected(object sender, EventArgs e)\r
+        {\r
+            int selectedTrackIndex = (sender as ComboBox).SelectedIndex;\r
+            if (m_play != null)\r
+            {\r
+                m_play.SetAudioTrack(selectedTrackIndex);\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/client - Copy/DxPlay/PlayerForm.resx b/client - Copy/DxPlay/PlayerForm.resx
new file mode 100644 (file)
index 0000000..8bb52e9
--- /dev/null
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<root>\r
+  <!-- \r
+    Microsoft ResX Schema \r
+    \r
+    Version 2.0\r
+    \r
+    The primary goals of this format is to allow a simple XML format \r
+    that is mostly human readable. The generation and parsing of the \r
+    various data types are done through the TypeConverter classes \r
+    associated with the data types.\r
+    \r
+    Example:\r
+    \r
+    ... ado.net/XML headers & schema ...\r
+    <resheader name="resmimetype">text/microsoft-resx</resheader>\r
+    <resheader name="version">2.0</resheader>\r
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>\r
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>\r
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>\r
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>\r
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">\r
+        <value>[base64 mime encoded serialized .NET Framework object]</value>\r
+    </data>\r
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>\r
+        <comment>This is a comment</comment>\r
+    </data>\r
+                \r
+    There are any number of "resheader" rows that contain simple \r
+    name/value pairs.\r
+    \r
+    Each data row contains a name, and value. The row also contains a \r
+    type or mimetype. Type corresponds to a .NET class that support \r
+    text/value conversion through the TypeConverter architecture. \r
+    Classes that don't support this are serialized and stored with the \r
+    mimetype set.\r
+    \r
+    The mimetype is used for serialized objects, and tells the \r
+    ResXResourceReader how to depersist the object. This is currently not \r
+    extensible. For a given mimetype the value must be set accordingly:\r
+    \r
+    Note - application/x-microsoft.net.object.binary.base64 is the format \r
+    that the ResXResourceWriter will generate, however the reader can \r
+    read any of the formats listed below.\r
+    \r
+    mimetype: application/x-microsoft.net.object.binary.base64\r
+    value   : The object must be serialized with \r
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter\r
+            : and then encoded with base64 encoding.\r
+    \r
+    mimetype: application/x-microsoft.net.object.soap.base64\r
+    value   : The object must be serialized with \r
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter\r
+            : and then encoded with base64 encoding.\r
+\r
+    mimetype: application/x-microsoft.net.object.bytearray.base64\r
+    value   : The object must be serialized into a byte array \r
+            : using a System.ComponentModel.TypeConverter\r
+            : and then encoded with base64 encoding.\r
+    -->\r
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">\r
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />\r
+    <xsd:element name="root" msdata:IsDataSet="true">\r
+      <xsd:complexType>\r
+        <xsd:choice maxOccurs="unbounded">\r
+          <xsd:element name="metadata">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" use="required" type="xsd:string" />\r
+              <xsd:attribute name="type" type="xsd:string" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="assembly">\r
+            <xsd:complexType>\r
+              <xsd:attribute name="alias" type="xsd:string" />\r
+              <xsd:attribute name="name" type="xsd:string" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="data">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />\r
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />\r
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />\r
+              <xsd:attribute ref="xml:space" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+          <xsd:element name="resheader">\r
+            <xsd:complexType>\r
+              <xsd:sequence>\r
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />\r
+              </xsd:sequence>\r
+              <xsd:attribute name="name" type="xsd:string" use="required" />\r
+            </xsd:complexType>\r
+          </xsd:element>\r
+        </xsd:choice>\r
+      </xsd:complexType>\r
+    </xsd:element>\r
+  </xsd:schema>\r
+  <resheader name="resmimetype">\r
+    <value>text/microsoft-resx</value>\r
+  </resheader>\r
+  <resheader name="version">\r
+    <value>2.0</value>\r
+  </resheader>\r
+  <resheader name="reader">\r
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <resheader name="writer">\r
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>\r
+  </resheader>\r
+  <metadata name="bsSegments.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>184, 17</value>\r
+  </metadata>\r
+  <metadata name="segmentActions.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>412, 17</value>\r
+  </metadata>\r
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />\r
+  <data name="tbDefineSegment.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC8SURBVDhP1ZO9DcIwFISfqKGjpaENG4S/GZiEOiWMkR2Y\r
+        gREo2IEVaBDcOXnS48m24lRw0qf4nHeXxFLkZ3UC15GcQVAF3uAGYoM5mGF2BWTfG15LpdmdNb6Ib3ro\r
+        lkkNKtJ9fgJLY9KZrTWpIvICLZgDq+Ii8gQNsNKZjTW5ogtYAq/BRXcQDjIhza6t8UVTMOmWSX0V8aBo\r
+        joA3SmCG2RrIDDz6jTEwy46gBfBPi4WIn2M2K/9fKX8hkQ9xw2LrlhXH8QAAAABJRU5ErkJggg==\r
+</value>\r
+  </data>\r
+  <data name="tbPositionAsTCIn.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABOSURBVDhPYxgFVAWOUJoiUALE/4HYB8wjE8AMmQbmkQmo\r
+        asg8MI8C0ADEMIMYQQKUgG4gpoqrQABmGEXhBAMww3zBPAqBG5QeBWQBBgYAaigQp+qpuEkAAAAASUVO\r
+        RK5CYII=\r
+</value>\r
+  </data>\r
+  <data name="tbSplitSegment.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABlSURBVDhPYxjZ4AAUUwxGDUIFFUDcD2HCATaDQGoKIEzs\r
+        oIGRkfE/kEY2DN2gfqiaBggXN+hGMwzZIJgh3RAuYQAzrB2IYQa1k2oIDMAM+wHC5BoCA2DDKDUEBkAG\r
+        UGzIkAUMDABv+SVD4UMwTwAAAABJRU5ErkJggg==\r
+</value>\r
+  </data>\r
+  <data name="tbPositionAsTCOut.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABOSURBVDhPYxgFFAMnKE0R8APi/0BcAuZRCKYBMdUMmwfE\r
+        VDGMEYiXADHFhoEMgrmqASRADkA2pBskQC6giiH+QEyxITDgBqVHAcWAgQEAtZ4QxOLkcD0AAAAASUVO\r
+        RK5CYII=\r
+</value>\r
+  </data>\r
+  <data name="tbDeleteSegment.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+        YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABvSURBVDhPYxhZwBVK4wOOUBoncAPi/0DcDuZhByA5kBon\r
+        MA8P6AdiXIbBDAGpIQpgM4xkQ2AAZlg9EDdA2SQbAgPTgBhkAEWGgADMVRQZBDME5C2yvQYzhKLAxmYI\r
+        DBBtGFUTJDFZhBg1wwMwMAAAvx8nVwi8b+UAAAAASUVORK5CYII=\r
+</value>\r
+  </data>\r
+  <metadata name="imagesTabEdit.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>517, 17</value>\r
+  </metadata>\r
+  <data name="imagesTabEdit.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">\r
+    <value>\r
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
+        LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
+        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABo\r
+        CAAAAk1TRnQBSQFMAgEBAgEAAUABAwFAAQMBGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
+        AwABYAMAARgDAAEBAQABCAYAAQkYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA\r
+        AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5\r
+        AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA\r
+        AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm\r
+        AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM\r
+        AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA\r
+        ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz\r
+        AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ\r
+        AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM\r
+        AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA\r
+        AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA\r
+        AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ\r
+        AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/\r
+        AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA\r
+        AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm\r
+        ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ\r
+        Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz\r
+        AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA\r
+        AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM\r
+        AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM\r
+        ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM\r
+        Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA\r
+        AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM\r
+        AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ\r
+        AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz\r
+        AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm\r
+        AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw\r
+        AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8AiwABEwQAARMYAALv\r
+        XQAB7wIAAe9bAAHvBAAB71kAAe8CAALvAgAB71cAAfICAAHvAgAB7wIAAe9XAALvBAAB7wIAAe84AAHx\r
+        AQ4IAAEOAfAZAAHvAgAB7zcAAbwKAAG8GgAB7wEAAe84AAHvCAAB7xwAAfI6AAHvBgAB71kAAQcEAAEH\r
+        WwABBwIAAQddAAHyAfG4AAETDAABE1IAARMMAAEU/wDOAAFCAU0BPgcAAT4DAAEoAwABYAMAARgDAAEB\r
+        AQABAQUAASABARYAA/8BAAb/BgAG/wYABv8GAAb/BgAB/wGBAv8B/gF/BgAB/wGBAv8B/AE/BgAB/wGB\r
+        Av8B+AEfBgAB/wGBAv8B8AEPBgAB/wGBAf8BwAEhAYcGAAH/AYEB/wHAATMBwwYAAfwBAAE/Av8B4QYA\r
+        AfwBAAE/Av8B8QYAAf4BAAF/AcABAwH7BgAB/wEAAf8BwAEDAf8GAAH/AYEE/wYAAf8BwwT/BgAB/wHn\r
+        Af8BwAEDAf8GAAP/AcABAwH/BgAB+AEAAR8D/wYAAfgBAAEfA/8GAAb/BgAG/wYABv8GAAb/BgAL\r
+</value>\r
+  </data>\r
+  <data name="btnToggleSegmentEditor.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAJpJREFUaEPt\r
+        1zEKwzAAQ1Efp0uWnq17UujWm3YIgR6gkWi92VtDLPgPBCGTBAE7BQAAAH/zUObvY56n8vnl5hdJ7kot\r
+        HzniorwURpzNI1YlesSkMGIEHrEp0SOuCiNG4BFvJXZEb8CiDK/3CfnuNDzKn6V3BsSUb53ClD9a7yYa\r
+        U771LxBR3nwgxZavXDi2fOXiseUBAACylLIDyDZ2w7cTLqQAAAAASUVORK5CYII=\r
+</value>\r
+  </data>\r
+  <data name="btnApprove.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAVJJREFUSEvt\r
+        008rBVEYx/FJ6i5QFG7CG7AnL0A2bNS9W0VWLCiXhSwUindgK/begJWNmw0pWd0FKzellJX/3980z22c\r
+        Zg5z3QV1f/VZPOecec7MnJmgmX+RIezhEk/4wD12MIhfZQlqmOYZJdSVFajJOw4xjm50YhgHsI32kSlj\r
+        UOMXFDSQkiJskzkN+NKCaZzhFbpoHd9lG1pbCauU9OICdjdyg1bEsxGJpw12+CMacKMF19CCW8ygHW7U\r
+        2DZ3N7HzeMQRdF61rEKTesQODSQk3tzEN5mHO7+LMOfQQNphJjU37pN0QZ/2GzQ/ivBbVpFX4Ym+d2u8\r
+        rAFPFqF1el21AxpQ4UmWDXSzWldVUY4KHa4vWTbog9bp5oPZqHiAJhqRNajniQr9YKfRwB0m0YN60o9N\r
+        qJdMIIwmrmATjbCFL8lhAfofki74qWNMoZk/kSD4BI3xj2R8oQqYAAAAAElFTkSuQmCC\r
+</value>\r
+  </data>\r
+  <metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+    <value>302, 17</value>\r
+  </metadata>\r
+  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">\r
+    <value>\r
+        AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARFBeAERQXgBEUF4dRFBehEJO\r
+        XNtBTVv6QU1b+kJOXNpEUF6DRFBeHURQXgBEUF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARFBeAERQXgBEUF4MRFBeWkJO\r
+        XMlFUV/8X2t4/3uGk/97hpP/X2t4/0VRX/xCTlzJRFBeWkRQXgxEUF4ARFBeAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERQXgBEUF4ERFBeP0NP\r
+        XbBCTlz3WmVz/56ntf/Gztn/t73H/7i+x//Gztr/nae0/1plc/9CTlz3Q09dsERQXj5EUF4ERFBeAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERQXgBEUF4BRFBeJ0NP\r
+        XZJCTlzsT1to/4qUof/Fzdn/qa+2/11fYf89PT7/QEBB/2BiZP+qr7f/xM3Z/4mTof9PWmj/Qk5c7ENP\r
+        XZFEUF4mRFBeAURQXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERQXgBEUF4ARFBeFURQ\r
+        XnJCTlzbSFRh/3aBjv+7xND/ucDJ/21vc/82Njf/Ly8v/zU1Nf81NTX/MTAw/zg3N/9ucHT/usDJ/7vE\r
+        0P91gI7/SFRh/0JOXNtEUF5xRFBeFURQXgBEUF4AAAAAAAAAAAAAAAAAAAAAAAAAAABEUF4ARFBeCERQ\r
+        XlNCTlzERFBe/GRwff+rtcL/xczW/4SIjf8/QED/LS0t/zAwMP81NTX/OTo6/zc3N/8zMzP/MTEx/y8u\r
+        Lv9CQkP/h4qP/8XM1/+rtMH/ZG99/0RQXvtCTlzERFBeUkRQXghEUF4AAAAAAAAAAAAAAAAARFBeAERQ\r
+        Xg9EUF6RQk5c9VZicP+Yoq//x8/b/5ufpv9PUFH/MTEx/y8vL/8yMjL/Nzc3/zo6Ov86Ozv/Ojo6/zg4\r
+        OP80NDT/MjIy/zQ0M/81NTT/UlNU/52hqP/Iz9v/mKKv/1Zib/9CTlz0RFBekERQXg9EUF4AAAAAAERQ\r
+        XgBEUF4CRFBegURQXvx5hJH/w8vY/7O4wf9naWz/Ozs7/zc2Nv83Nzf/OTk5/zk5Of85OTr/Ojo6/zo6\r
+        Ov85OTn/Ojo6/zo6Ov83Nzf/Nzc2/zY2Nf80NDP/ODg4/2NlZ/+vtb3/wsvX/3iDkP9EUF78RFBegERQ\r
+        XgJEUF4ARFBeAERQXjBCTlzmbnmG/8nR3P+Dhov/SUlJ/z8+Pv8/Pz//Pj4+/0BAQP9HRkb/QkJC/zo6\r
+        Ov85OTr/Ojo6/zg4OP85OTn/Pj0+/0dGRv9EQ0P/QD8//zw8O/85OTj/NDQ0/zs8PP99gYX/ydHc/255\r
+        hv9CTlzlRFBeL0RQXgBFUV8AQ09ddEhTYf+wucb/lZmf/z8/P/9CQkL/QkJC/z8/P/8/Pz//R0ZH/0lI\r
+        Sf9IR0f/QkJC/zo6O/84ODj/NjY2/zk5Of9GRUX/S0pK/0hHR/9HRkb/RERE/0JCQv9BQED/Pj4+/z8+\r
+        P/+WmqD/r7nF/0dTYf9DT11yRVFfAB8tPwBDT12XU19t/8PM2P9oaWz/QD8//0RERP9DQkL/SUlK/0pK\r
+        S/9CQkL/SEhI/0hHR/9ISEj/QkJC/0NERf87PDz/Ojo6/0pJSf9KSkr/SEhI/0dGR/9PT1D/REVF/z8/\r
+        P/9JSEn/SEdI/25vc//DzNj/U15s/0JPXZY3QlMA////AENPXZxWYW//xMzX/2NkZ/9CQUH/RURF/0pK\r
+        S/+prrb/uL7H/01OT/9GRkb/SEdH/0dGRv9TU1T/s7jB/6yxuv9FRkf/R0dH/0pKSv9HR0f/WFla/7zC\r
+        y/+iqK//Q0ND/0pJSf9JSEn/amtt/8TM1/9VYW7/Q09dmgAAAAD///8AQ09dnFZhb//EzNj/ZWZp/0NC\r
+        Qv9GRUX/VlZY/8zT3v/b4+//XV5h/0ZFRf9IR0j/RUVE/11eX//V3ej/0tnl/1FSVP9FRUX/SklK/0dG\r
+        R/9naGr/3eTw/8jP2v9MTU7/SUlJ/0lISf9qam3/xMzX/1Vhbv9DT12aAAAAAP///wBDT12cVmFv/8TM\r
+        2P9oaWz/RURE/0pJSv9ZWlv/y9Ld/9nh7f9dX2H/RkVG/0lISf9FRET/Xl5g/9bd6P/T2ub/VVZY/0ZF\r
+        Rf9KSUn/SEdH/2doa//b4+//x87Z/01NTv9KSUn/SklJ/2prbv/EzNf/VWFu/0NPXZoAAAAA////AENP\r
+        XZxWYW//xMzY/2prbv9JSUn/TU1N/1paXP/L0t3/2eHt/11fYf9HRkf/SklK/0hHR/9WVlb/r7O7/62y\r
+        uf9SUlP/SUlJ/0lJSf9IR0j/aGlr/9vj7//Hztn/TU5O/0pJSf9KSkr/amtu/8TM1/9VYW7/Q09dmgAA\r
+        AAD///8AQ09dnFZhb//EzNj/bG1v/0xLS/9NTU3/Wltc/8vS3f/Z4e3/XmBi/0hISP9KSUr/SEdH/0lJ\r
+        Sv9SU1T/UVFS/0ZGRv9CQkL/Q0JC/0ZFRf9pamz/2+Pv/8fO2f9NTk//SklJ/0pKSv9rbG7/xMzX/1Vh\r
+        bv9DT12aAAAAAP///wBDT12cVmFv/8TM2P9sbW//TEtL/01NTf9aW1z/y9Ld/9rh7f9cXmD/SEhI/2tt\r
+        b/+VmqD/srjB/77Ezv++xM7/sba//5CUmv9fYWP/Pz8//2NkZv/b4+//x87Z/01OT/9LSkv/TEtL/21u\r
+        cP/EzNj/VWFu/0NPXZoAAAAA////AENPXZxWYW//xMzY/21tcP9MS0v/TU1N/1pbXP/L0t3/2eHt/3R3\r
+        e/+ip67/2eHt/+fw/f/n7/z/5Oz5/+Ts+f/m7/z/5+/9/9ff6/+doqn/c3Z6/9rh7f/Hztn/Tk9Q/0xL\r
+        TP9OTU3/b3By/8TM2P9VYW7/Q09dmgAAAAD///8AQ09dnFZhb//EzNj/bm9x/01MTP9NTUz/Wlpb/8vR\r
+        3P/h6fb/1Nzn/+bu+//a4u7/sba//42Qlv+Bg4j/gYOH/42Qlf+zuMD/2+Pv/+bu+//U2+b/4en2/8fO\r
+        2P9OT1D/TExM/09OTv9vcHL/xMzY/1Vhbv9DT12aAAAAAP///wBDT12cVmFv/8TN2P9vcHL/T05O/09O\r
+        Tv9fYGH/zNLd/+Xt+v/k7fr/vsTO/3V3e/9SUVL/TEtM/0xLTP9NTE3/U1JS/11dXf9/gYT/wsjR/+Xt\r
+        +v/l7fv/x87Y/09QUf9OTU3/T05O/29wcv/EzNj/VWFu/0NPXZoAAAAA////AENPXZxWYW//xc3Y/29w\r
+        c/9SUVH/WVhY/3h4ef/O1d//4+r3/6mutf9cXF3/Tk1O/1BPUP9PTk7/UE9Q/1ZVVv9aWlr/W1pa/1lZ\r
+        Wf9naGn/rbG5/+Pr9//Ey9X/U1NU/09OTv9PTk3/b29y/8TM2P9VYW7/Q09dmgAAAAAlMkQAQ09dl1Nf\r
+        bP/EzNj/fH6B/1xbXP9mZmb/fn5+/5eZnf+anaL/a2tr/1xbW/9VVFX/UVBR/1BPUP9WVlb/WVlZ/1pZ\r
+        Wf9aWlr/XFxc/1paWv9fX1//lJec/46QlP9hYGD/YGBg/15dXf9/gIP/xMzY/1JebP9CT12VOURUAEVR\r
+        XwBDT11xR1Nh/663xP+prbP/YWFh/3Fxcf+AgID/eHh4/3Bvb/9ubW3/ampq/2RkZP9gX2D/Xl1d/1lY\r
+        WP9ZWFj/WVlZ/1taWv9eXl7/XVxc/2VkZP91dHT/c3Jy/2tra/9tbW3/cG9v/7C0u/+tt8T/R1Nh/0NP\r
+        XXBFUV8ARFBeAERQXi5CTlzka3aE/8vT3/+eoqf/gYKC/39/f/99fX3/dHR0/3BwcP9sbGz/aGho/3Jy\r
+        cv94eHj/ZmZm/1pZWf9ZWFj/XFxc/2FhYf9ra2v/eXh4/3x7e/93dnb/aWho/3Jyc/+jpqv/zNTg/2t2\r
+        g/9CTlzjRFBeLURQXgBEUF4ARFBeAURQXnxEUF77dYCN/8LK1//Iztf/nZ+i/4GBgf93d3f/c3Jz/29u\r
+        b/9ubm7/fX1+/39/f/96env/bGxs/1xbW/9gYGD/cHBw/3l5ef96enr/enl5/3t6e/+OkJP/wsjQ/8HK\r
+        1v90f4z/RFBe+0RQXntEUF4BRFBeAAAAAABEUF4ARFBeDURQXopCTlzyVF9t/5Kdqv/L09//vsPL/46P\r
+        kv91dHX/cXBw/3l5ef+EhIX/gYGC/35+f/98fH3/f35//4GBgf97enr/eHh4/3l4ef+NjpH/vMHI/8rS\r
+        3v+SnKr/U19t/0JOXPJEUF6KRFBeDURQXgAAAAAAAAAAAAAAAABEUF4ARFBeB0RQXkxDT12+Q09d+mBs\r
+        ef+msL3/ztXh/62xt/+BgoP/hISE/4eHiP+FhYX/ioqL/5mZmf+srKz/rq6u/5mZmf+PkJH/r7K4/87V\r
+        4P+msL3/YGx5/0NPXfpDT129RFBeS0RQXgZEUF4AAAAAAAAAAAAAAAAAAAAAAAAAAABEUF4ARFBeAERQ\r
+        XhJEUF5qQk5c1kdSYP5xfIn/t8HN/83T3f+tsLX/lJSV/5ycnP+oqKj/rKur/7W1tf+6urv/wMPH/9Ta\r
+        5f+3wM3/cXuJ/0ZSYP5CTlzWRFBeakRQXhFEUF4ARFBeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAARFBeAERQXgBEUF4iQ09dikJOXOlNWWb/hI6c/8XO2v/R19//vL7B/7Cwsf+xsbL/xsjM/9jd\r
+        5//Gz9v/g46b/01YZv9CTlzoQ09eikRQXiJEUF4ARFBeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAERQXgBEUF4DRFBeOUNPXalCTlz1V2Jw/5iir//N1eH/1Nvl/9Xb\r
+        5v/O1uL/l6Gu/1ZicP9CTlz1Q09dqURQXjhEUF4DRFBeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERQXgBEUF4ARFBeCkRQXlRCTlzERFBe+1tn\r
+        df90f43/dH+N/1tndP9EUF77Qk5cw0RQXlNEUF4JRFBeAERQXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEUF4ARFBeAERQ\r
+        XhlEUF57Qk5c00FNW/ZBTVv2Qk5c0kRQXntEUF4ZRFBeAERQXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r
+        AAAAAAAAAAAAAAAAAAAAAAAA//AP///AA///AAD//AAAP/gAAB/gAAAHwAAAA4AAAAGAAAABgAAAAYAA\r
+        AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAcAA\r
+        AAPgAAAH+AAAH/4AAH//AAD//8AD///wD/8=\r
+</value>\r
+  </data>\r
+</root>
\ No newline at end of file