"NOINPUT": "NO INPUT",\r
"OPEN": "Open",\r
"OPTIONAL": "Optional",\r
- "PAUSE": "Pause",\r
+ "PAUSE": "Pause (Esc)",\r
+ "FORWARD": "Forward (->)",\r
+ "REWIND": "Rewind (<-)",\r
"PAUSED": "PAUSED",\r
- "PLAY": "Play",\r
+ "PLAY": "Play (Esc)",\r
"PLAYING": "PLAYING",\r
"POSITIONASTCIN": "Current position as TC in",\r
"POSITIONASTCOUT": "Current position as TC out",\r
/// the contents of this method with the code editor.\r
/// </summary>\r
private void InitializeComponent() {\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.lbEndTC = new System.Windows.Forms.Label();\r
this.buttonsPanel = new System.Windows.Forms.FlowLayoutPanel();\r
this.btnPlay = new MaestroShared.Controls.NoFocusCueButton();\r
+ this.btnRewind = new MaestroShared.Controls.NoFocusCueButton();\r
this.btnStop = new MaestroShared.Controls.NoFocusCueButton();\r
- this.btnPause = new MaestroShared.Controls.NoFocusCueButton();\r
+ this.btnForward = new MaestroShared.Controls.NoFocusCueButton();\r
this.mainPanel.SuspendLayout();\r
this.timecodePanel.SuspendLayout();\r
this.buttonsPanel.SuspendLayout();\r
this.buttonsPanel.BackgroundImage = global::DxPlay.Properties.Resources.bs_user_logo;\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.btnStop);\r
- this.buttonsPanel.Controls.Add(this.btnPause);\r
+ this.buttonsPanel.Controls.Add(this.btnForward);\r
this.buttonsPanel.Dock = System.Windows.Forms.DockStyle.Fill;\r
this.buttonsPanel.Location = new System.Drawing.Point(0, 56);\r
this.buttonsPanel.Margin = new System.Windows.Forms.Padding(0);\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.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
// 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(63, 3);\r
+ this.btnStop.Location = new System.Drawing.Point(123, 3);\r
this.btnStop.Name = "btnStop";\r
this.btnStop.Size = new System.Drawing.Size(54, 54);\r
this.btnStop.TabIndex = 19;\r
this.btnStop.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
this.btnStop.UseVisualStyleBackColor = false;\r
// \r
- // btnPause\r
+ // btnForward\r
// \r
- this.btnPause.AutoSize = true;\r
- this.btnPause.BackColor = System.Drawing.Color.Transparent;\r
- this.btnPause.FlatAppearance.BorderSize = 0;\r
- this.btnPause.FlatStyle = System.Windows.Forms.FlatStyle.Flat;\r
- this.btnPause.Image = global::DxPlay.Properties.Resources.ic_pause_black_24dp_2x;\r
- this.btnPause.Location = new System.Drawing.Point(123, 3);\r
- this.btnPause.Name = "btnPause";\r
- this.btnPause.Size = new System.Drawing.Size(54, 54);\r
- this.btnPause.TabIndex = 18;\r
- this.btnPause.TabStop = false;\r
- this.btnPause.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText;\r
- this.btnPause.UseVisualStyleBackColor = false;\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(183, 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
// PlayerControls\r
// \r
private System.Windows.Forms.FlowLayoutPanel buttonsPanel;\r
private MaestroShared.Controls.NoFocusCueButton btnPlay;\r
private MaestroShared.Controls.NoFocusCueButton btnStop;\r
- private MaestroShared.Controls.NoFocusCueButton btnPause;\r
+ private MaestroShared.Controls.NoFocusCueButton btnRewind;\r
+ private MaestroShared.Controls.NoFocusCueButton btnForward;\r
}\r
}\r
public ColorSlider TrackBar { get => trackBar; }\r
public NoFocusCueButton Play { get => btnPlay; }\r
public NoFocusCueButton Stop { get => btnStop; }\r
- public NoFocusCueButton Pause { get => btnPause; }\r
+ public NoFocusCueButton Rewind { get => btnRewind; }\r
+ public NoFocusCueButton Forward { get => btnForward; }\r
\r
}\r
}\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
+ iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8\r
+ YQUAAAEqSURBVGhD7dgtTgNRFMXxCUlFDaZJDboSgWUFaFS3wArYQbsD1oCpZgVYBBJdRWqqmkAInMfk\r
+ JS/Nnem7d46Z5vySf1LMuYaPGRoRERERobpEz+3HQVg7Lrdoi37/v4pj7VSboBX6Qelo9DBrx2WB3lA+\r
+ GD3M2nF5QAd0fNR7mLVTbYZekHUwV4O143KHPpF1rOwU1k61KXpC1hGrLqwdl2v0gawDXVlYO9Uu0CP6\r
+ QtZ4XyXWjssVekXWaE0Za8flHu2RNVhbwtpxWyLGYdZOyKi/hbL8w/eNrPG+SqydsBvE+PXH2gkZ9R+y\r
+ UnoE2CHrWNkprJ2QOWI8hLF2wkb7OF1KLyLvaOhh1k5IehVcI8YrJWMnbLQv9aX075BN+3EQ1o6IiIjI\r
+ mWqaP9Jxlnyjr5KKAAAAAElFTkSuQmCC\r
+</value>\r
+ </data>\r
</root>
\ No newline at end of file
</Compile>\r
<Content Include="DirectShowLib.dll" />\r
<Content Include="maestro.ico" />\r
+ <Content Include="MediaInfo.dll" />\r
+ <None Include="Resources\baseline_fast_rewind_black_24dp1.png" />\r
+ <None Include="Resources\baseline_skip_previous_black_24dp.png" />\r
+ <None Include="Resources\baseline_fast_forward_black_24dp.png" />\r
+ <None Include="Resources\baseline_skip_next_black_24dp.png" />\r
+ <None Include="Resources\baseline_fast_rewind_black_24dp.png" />\r
+ <None Include="Resources\baseline_fast_forward_black_18dp.png" />\r
<None Include="Configuration\dxplay - Copy.json">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
<None Include="Configuration\dxplay.en">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
- <None Include="Configuration\dxplay.json">\r
+ <None Include="Configuration\dxplay.json1">\r
<CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
</None>\r
<None Include="packages.config">\r
<None Include="Properties\app.manifest" />\r
<None Include="Resources\lgs.jpg" />\r
<None Include="app.config" />\r
- <None Include="MediaInfo.dll">\r
- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r
- </None>\r
<EmbeddedResource Include="PlayerForm.resx">\r
<DependentUpon>PlayerForm.cs</DependentUpon>\r
<SubType>Designer</SubType>\r
State = GraphState.Stopped;\r
try {\r
int hr;\r
- IntPtr hEvent;\r
MediaDescription = mediaDesc;\r
// Set up the graph\r
playerWindow = hWin;\r
- playerWindow.Invalidate();\r
+ //playerWindow.Invalidate();\r
SetupGraph();\r
\r
hWin.Hide();\r
// Get the event handle the graph will use to signal\r
// when events occur\r
logger.Debug("GetEventHandle");\r
- hr = graph.MediaEvent.GetEventHandle(out hEvent);\r
+ hr = graph.MediaEvent.GetEventHandle(out IntPtr hEvent);\r
DsError.ThrowExceptionForHR(hr);\r
\r
// Wrap the graph event with a ManualResetEvent\r
tcWorker.WorkerSupportsCancellation = true;\r
tcWorker.RunWorkerAsync(tcLock);\r
\r
- }\r
- catch {\r
+ } catch {\r
Dispose();\r
throw;\r
}\r
}\r
\r
private void SetupGraph() {\r
- graph = new PlayerGraph(MediaDescription.FileName);\r
+ graph = new PlayerGraph(MediaDescription.FileName, playerWindow.Handle);\r
\r
AMMediaType media = new AMMediaType();\r
graph.SampleGrabber.GetConnectedMediaType(media);\r
logger.Debug("SetTimeCodes");\r
SetTimeCodes();\r
logger.Debug("ConfigureVideoWindow");\r
- ConfigureVideoWindow();\r
+ UpdateVideoWindow();\r
RenderFirstFrame();\r
}\r
\r
}\r
}\r
\r
-\r
// start playing\r
public void Play() {\r
// If we aren't already playing (or shutting down)\r
// Pause the capture graph.\r
public void Stop() {\r
//// Can only Stop when playing or paused\r
- Rewind();\r
+ Seek(0);\r
Pause();\r
if (State == GraphState.Playing || State == GraphState.Paused || State == GraphState.Completed) {\r
int hr = graph.MediaControl.StopWhenReady();\r
}\r
}\r
\r
- // Reset the clip back to the beginning\r
- public void Rewind() {\r
- Seek(0);\r
+ public void Rewind(int step) {\r
+ if (CurrentTC.ZeroBasedFrames > step - 1) {\r
+ Pause();\r
+ Seek(CurrentTC.ZeroBasedFrames - step);\r
+ }\r
+ }\r
+\r
+ public void Forward(int step) {\r
+ if (CurrentTC.ZeroBasedFrames + step <= MediaDescription.Duration.Frames) {\r
+ Pause();\r
+ Seek(CurrentTC.ZeroBasedFrames + step);\r
+ }\r
}\r
\r
public void Seek(int value) {\r
DsError.ThrowExceptionForHR(hr);\r
corrected = true;\r
}\r
-\r
logger.Debug("Seeking requested frame {0} got frame {1}, media position {2}, frame length {3}, corrected {4}", value, reachedFrames, requestedPosition, avgTimePerFrame, corrected);\r
}\r
\r
mxf.Inspect();\r
//MediaDescription.firstFrame = new Timecode(mxf.FirstSystemItem?.UserDateFullFrameNb, MediaDescription.FrameRate);\r
MediaDescription.firstFrame = new Timecode((int)mxf.TimecodeComponent.StartTimecode, (float)mxf.TimecodeComponent.RoundedTimecodeBase);\r
- }\r
- catch (Exception ex) {\r
+ } catch (Exception ex) {\r
MediaDescription.firstFrame = new Timecode();\r
}\r
}\r
}\r
\r
\r
- // Configure the video window\r
- private void ConfigureVideoWindow() {\r
- int hr;\r
-\r
- // Set the output window\r
- hr = graph.VideoWindow.put_Owner(playerWindow.Handle);\r
- DsError.ThrowExceptionForHR(hr);\r
-\r
- hr = graph.VideoWindow.put_MessageDrain(playerWindow.Handle);\r
- DsError.ThrowExceptionForHR(hr);\r
-\r
- // Set the window style\r
- hr = graph.VideoWindow.put_WindowStyle((WindowStyle.Child | WindowStyle.ClipChildren | WindowStyle.ClipSiblings));\r
- DsError.ThrowExceptionForHR(hr);\r
-\r
- // Make the window visible\r
- hr = graph.VideoWindow.put_Visible(OABool.True);\r
- DsError.ThrowExceptionForHR(hr);\r
-\r
- UpdateVideoWindow();\r
- }\r
\r
public void UpdateVideoWindow() {\r
+ if (graph.WindowlessControl != null) {\r
+ graph.WindowlessControl.GetNativeVideoSize(out int w, out int h, out int aw, out int ah);\r
+ DsRect src = new DsRect(0, 0, w, h);\r
+ DsRect dst = new DsRect(playerWindow.ClientRectangle);\r
+ graph.WindowlessControl.SetVideoPosition(src, dst);\r
+ return;\r
+ }\r
+\r
Size resolution = MediaDescription.Resolution;\r
if (resolution.Width == 0 || resolution.Height == 0)\r
return;\r
}\r
\r
public bool IsFullscreen() {\r
- if (graph == null)\r
+\r
+ //if (graph == null)\r
return false;\r
- OABool isFullscreen;\r
- int hr = graph.VideoWindow.get_FullScreenMode(out isFullscreen);\r
- DsError.ThrowExceptionForHR(hr);\r
- return isFullscreen == OABool.True ? true : false;\r
+\r
+ if (graph.VideoWindow != null) {\r
+ int hr = graph.VideoWindow.get_FullScreenMode(out OABool isFullscreen);\r
+ DsError.ThrowExceptionForHR(hr);\r
+ return isFullscreen == OABool.True ? true : false;\r
+ }\r
+\r
+ return false;\r
}\r
\r
// Set the options on the sa_ve grabber\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.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.trafficBrowser = new TrafficClient.TrafficIDSelector();\r
- this.btnToggleSegmentEditor = new MaestroShared.Controls.NoFocusCueButton();\r
- this.btnApprove = new MaestroShared.Controls.NoFocusCueButton();\r
this.menuOpenFile = new DxPlay.Controls.BindableToolStripMenuItem();\r
this.menuApprove = new DxPlay.Controls.BindableToolStripMenuItem();\r
this.playerControls = new DxPlay.Controls.PlayerControls();\r
// \r
// pVideo\r
// \r
- this.pVideo.BackColor = System.Drawing.Color.Black;\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.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.Size = new System.Drawing.Size(278, 371);\r
+ this.trafficBrowser.TabIndex = 0;\r
+ // \r
// tpSegments\r
// \r
this.tpSegments.Controls.Add(this.dgSegments);\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(284, 377);\r
+ this.tpSegments.Size = new System.Drawing.Size(192, 30);\r
this.tpSegments.TabIndex = 1;\r
this.tpSegments.Text = "Segments";\r
this.tpSegments.UseVisualStyleBackColor = true;\r
this.dgSegments.Name = "dgSegments";\r
this.dgSegments.RowHeadersVisible = false;\r
this.dgSegments.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;\r
- this.dgSegments.Size = new System.Drawing.Size(278, 346);\r
+ this.dgSegments.Size = new System.Drawing.Size(186, 0);\r
this.dgSegments.TabIndex = 1;\r
this.dgSegments.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgSegments_CellContentClick);\r
this.dgSegments.CellMouseDoubleClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dgSegments_CellMouseDoubleClick);\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(278, 25);\r
+ this.segmentActions.Size = new System.Drawing.Size(186, 25);\r
this.segmentActions.TabIndex = 0;\r
this.segmentActions.Text = "toolStrip1";\r
// \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
+ this.btnToggleSegmentEditor.Click += new System.EventHandler(this.OnToggleSegmentEditor);\r
+ // \r
// pMetadataDisplay\r
// \r
this.pMetadataDisplay.AutoSize = true;\r
this.pMetadataDisplay.Size = new System.Drawing.Size(319, 63);\r
this.pMetadataDisplay.TabIndex = 5;\r
// \r
+ // btnApprove\r
+ // \r
+ this.btnApprove.AutoSize = true;\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(217, 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.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);\r
this.fileToolStripMenuItem.Text = "File";\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.Size = new System.Drawing.Size(278, 371);\r
- this.trafficBrowser.TabIndex = 0;\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
- this.btnToggleSegmentEditor.Click += new System.EventHandler(this.OnToggleSegmentEditor);\r
- // \r
- // btnApprove\r
- // \r
- this.btnApprove.AutoSize = true;\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(217, 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
// menuOpenFile\r
// \r
this.menuOpenFile.Name = "menuOpenFile";\r
private DxPlayer m_play = null;\r
private MediaDescription m_mediaDescription = null;\r
private OpenFileDialog openFileDialog = new OpenFileDialog() { Filter = "All files (*.*)|*.*" };\r
+ private ToolTip tooltips;\r
\r
private DxPlaySettings settings;\r
public DxPlaySettings Settings {\r
\r
playerControls.Play.Click += btnPlay_Click;\r
playerControls.Stop.Click += btnStop_Click;\r
- playerControls.Pause.Click += btnPause_Click;\r
+ playerControls.Rewind.MouseDown += btnRewind_MouseDown;\r
+ playerControls.Rewind.MouseUp += btnRewind_MouseUp;\r
+ playerControls.Forward.MouseUp += btnForward_MouseUp;\r
+ playerControls.Forward.MouseDown += btnForward_MouseDown;\r
\r
playerControls.TrackBar.MouseDown += trackBar1_MouseDown;\r
playerControls.TrackBar.MouseUp += trackBar1_MouseUp;\r
menuApprove.Text = Settings.Resource("APPROVE", Resources.APPROVE);\r
btnApprove.Text = Settings.Resource("APPROVE", Resources.APPROVE);\r
\r
- ToolTip tt = new ToolTip();\r
- tt.SetToolTip(playerControls.Pause, Settings.Resource("PAUSE", Resources.PAUSE));\r
- tt.SetToolTip(playerControls.Play, Settings.Resource("PLAY", Resources.PLAY));\r
- tt.SetToolTip(playerControls.Stop, Settings.Resource("STOP", Resources.STOP));\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.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
\r
+ private void PlayOrPause() {\r
+ if (m_play == null)\r
+ return;\r
+ if (m_play.State == GraphState.Playing) {\r
+ m_play.Pause();\r
+ playerControls.Play.Image = Resources.ic_play_arrow_black_24dp_2x;\r
+ tooltips.SetToolTip(playerControls.Play, Settings.Resource("PLAY", Resources.PLAY));\r
+ return;\r
+ }\r
+ m_play.Play();\r
+ playerControls.Play.Image = Resources.ic_pause_black_24dp_2x;\r
+ tooltips.SetToolTip(playerControls.Play, Settings.Resource("PAUSE", Resources.PAUSE));\r
+ }\r
+\r
private void btnPlay_Click(object sender, EventArgs e) {\r
- if (m_play != null && m_play.State != GraphState.Playing)\r
- m_play.Play();\r
+ PlayOrPause();\r
}\r
\r
private void btnStop_Click(object sender, EventArgs e) {\r
}\r
}\r
\r
- private void btnPause_Click(object sender, EventArgs e) {\r
- if (m_play != null && m_play.State != GraphState.Paused)\r
- m_play.Pause();\r
+\r
+ private bool buttonDown;\r
+\r
+ private void btnRewind_MouseUp(object sender, MouseEventArgs e) {\r
+ buttonDown = false;\r
+ }\r
+\r
+ private void btnRewind_MouseDown(object sender, MouseEventArgs e) {\r
+ buttonDown = true;\r
+ int num = 0;\r
+ do {\r
+ num++;\r
+ Rewind();\r
+ Application.DoEvents();\r
+ } while (buttonDown);\r
+ }\r
+\r
+ private void btnForward_MouseUp(object sender, MouseEventArgs e) {\r
+ buttonDown = false;\r
+ }\r
+\r
+ private void btnForward_MouseDown(object sender, EventArgs e) {\r
+ buttonDown = true;\r
+ int num = 0;\r
+ do {\r
+ num++;\r
+ Forward();\r
+ Application.DoEvents();\r
+ } while (buttonDown);\r
+ }\r
+\r
+ private void Rewind() {\r
+ if (m_play == null)\r
+ return;\r
+ int step = ModifierKeys.HasFlag(Keys.Control) ? 5 : 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) ? 5 : 1;\r
+ m_play.Forward(step);\r
}\r
\r
private void PlayerForm_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {\r
e.SuppressKeyPress = true;\r
}\r
}\r
+\r
public static bool ApplicationIsActivated() {\r
var activatedHandle = GetForegroundWindow();\r
if (activatedHandle == IntPtr.Zero) {\r
}\r
\r
var procId = Process.GetCurrentProcess().Id;\r
- int activeProcId;\r
- GetWindowThreadProcessId(activatedHandle, out activeProcId);\r
+ GetWindowThreadProcessId(activatedHandle, out int activeProcId);\r
\r
return activeProcId == procId;\r
}\r
result = true;\r
break;\r
case Keys.Left:\r
- logger.Debug("Seeking...");\r
- if (m_play != null) {\r
- if (ModifierKeys.HasFlag(Keys.Control)) {\r
- if (m_play.CurrentTC.ZeroBasedFrames > 4) {\r
- m_play.Pause();\r
- m_play.Seek(m_play.CurrentTC.ZeroBasedFrames - 5);\r
- }\r
- } else {\r
- if (m_play.CurrentTC.ZeroBasedFrames > 0) {\r
- m_play.Pause();\r
- m_play.Seek(m_play.CurrentTC.ZeroBasedFrames - 1);\r
- }\r
- }\r
- }\r
+ Rewind();\r
result = true;\r
break;\r
case Keys.Right:\r
- if (m_play != null) {\r
- if (ModifierKeys.HasFlag(Keys.Control)) {\r
- if (m_play.CurrentTC.ZeroBasedFrames + 5 <= m_mediaDescription.Duration.Frames) {\r
- m_play.Pause();\r
- m_play.Seek(m_play.CurrentTC.ZeroBasedFrames + 5);\r
- }\r
- } else {\r
- if (m_play.CurrentTC.ZeroBasedFrames + 1 <= m_mediaDescription.Duration.Frames) {\r
- m_play.Pause();\r
- m_play.Seek(m_play.CurrentTC.ZeroBasedFrames + 1);\r
- }\r
- }\r
- }\r
+ Forward();\r
result = true;\r
break;\r
case Keys.Space:\r
- if (m_play != null) {\r
- if (m_play.State == GraphState.Playing)\r
- m_play.Pause();\r
- else\r
- m_play.Play();\r
- }\r
+ PlayOrPause();\r
result = true;\r
break;\r
//case Keys.I:\r
}\r
\r
private void OnPlayEvent() {\r
- return;\r
- if (!IsHandleCreated || Disposing || IsDisposed || m_play == null)\r
- return;\r
- BeginInvoke((Action)(() => {\r
- if (Disposing || IsDisposed || m_play == null)\r
- return;\r
+ //if (!IsHandleCreated || Disposing || IsDisposed || m_play == null)\r
+ // return;\r
+ //if (Disposing || IsDisposed || m_play == null)\r
+ // return;\r
+ playerControls.Invoke((Action)(() => {\r
if (!trackBarAtUser)\r
playerControls.TrackBar.Value = m_play.CurrentTC.ZeroBasedFrames;\r
playerControls.CurrentTC.Text = m_play.CurrentTC.ToString();\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
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w\r
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0\r
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABo\r
- CAAAAk1TRnQBSQFMAgEBAgEAAWgBAQFoAQEBGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
+ CAAAAk1TRnQBSQFMAgEBAgEAAXgBAQF4AQEBGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo\r
AwABYAMAARgDAAEBAQABCAYAAQkYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA\r
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5\r
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA\r
public IMediaSeeking MediaSeeking { get; private set; }\r
public IMediaControl MediaControl { get; private set; }\r
public IMediaEvent MediaEvent { get; private set; }\r
+ public IVMRWindowlessControl9 WindowlessControl { get; private set; }\r
+\r
private bool isDisposed;\r
\r
- public PlayerGraph(string fileName) {\r
+ public PlayerGraph(string fileName, IntPtr handle) {\r
try {\r
MediaSeeking = this as IMediaSeeking;\r
MediaControl = this as IMediaControl;\r
MediaEvent = this as IMediaEvent;\r
- VideoWindow = this as IVideoWindow;\r
+ //VideoWindow = this as IVideoWindow;\r
IGraphBuilder graphBuilder = this as IGraphBuilder;\r
#if DEBUG\r
m_DsRot = new DsROTEntry(graphBuilder);\r
IBaseFilter videoDecoder = AddVideoDecoder(graphBuilder, splitter);\r
IBaseFilter sampleGrabber = AddSampleGrabber(graphBuilder, videoDecoder);\r
SampleGrabber = (ISampleGrabber)sampleGrabber;\r
- IBaseFilter videoRenderer = AddRenderer(graphBuilder, sampleGrabber);\r
+ IBaseFilter videoRenderer = AddRenderer(graphBuilder, sampleGrabber, handle);\r
+ FilterGraphTools.RenderPin(graphBuilder, sampleGrabber, "Output");\r
//IBaseFilter videoRenderer = AddSimpleRenderer(graphBuilder, sampleGrabber);\r
if (DsFindPin.ByName(splitter, "Audio") != null) {\r
IBaseFilter audioDecoder = AddAudioDecoder(graphBuilder, splitter);\r
} else {\r
logger.Warn("Audio pin not available");\r
}\r
-\r
+ \r
SearchAudioTracks(splitter);\r
EnableDeinterlace(videoDecoder);\r
\r
return audioDecoder;\r
}\r
\r
- private IBaseFilter AddRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) {\r
+ private IBaseFilter AddRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber, IntPtr handle) {\r
logger.Debug("Add VideoMixingRenderer9 to graph");\r
- IBaseFilter videoRenderer = (IBaseFilter)new VideoMixingRenderer9();\r
+ IBaseFilter videoRenderer = (IBaseFilter) new VideoMixingRenderer9();\r
DsError.ThrowExceptionForHR(graphBuilder.AddFilter(videoRenderer, "Video Mixing Renderer 9"));\r
logger.Debug("Connect SampleGrabber -> VideoMixingRenderer9");\r
\r
try {\r
- FilterGraphTools.ConnectFilters(graphBuilder, sampleGrabber, "Output", videoRenderer, "VMR Input0", true);\r
+ IVMRFilterConfig9 filterConfig = (IVMRFilterConfig9) videoRenderer;\r
+ filterConfig.SetRenderingMode(VMR9Mode.Windowless);\r
+ WindowlessControl = (IVMRWindowlessControl9) videoRenderer;\r
+ WindowlessControl.SetVideoClippingWindow(handle);\r
+ //VideoWindow = (IVideoWindow) filterConfig;\r
+ //FilterGraphTools.ConnectFilters(graphBuilder, sampleGrabber, "Output", videoRenderer, "VMR Input0", true);\r
+\r
} catch (Exception e) {\r
logger.Error(e);\r
graphBuilder.RemoveFilter(videoRenderer);\r
logger.Info("Trying default VideoRenderer instead Video Mixing Renderer 9");\r
- AddSimpleRenderer(graphBuilder, sampleGrabber);\r
+ AddSimpleRenderer(graphBuilder, sampleGrabber, handle);\r
}\r
return videoRenderer;\r
}\r
\r
- private IBaseFilter AddSimpleRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber) {\r
+ private IBaseFilter AddSimpleRenderer(IGraphBuilder graphBuilder, IBaseFilter sampleGrabber, IntPtr handle) {\r
logger.Debug("Add default VideoRenderer to graph");\r
IBaseFilter videoRenderer = (IBaseFilter)new VideoRendererDefault();\r
DsError.ThrowExceptionForHR(graphBuilder.AddFilter(videoRenderer, "VideoRendererDefault"));\r
FilterGraphTools.ConnectFilters(graphBuilder, sampleGrabber, "Output", videoRenderer, "VMR Input0", true);\r
+ VideoWindow = (IVideoWindow)videoRenderer;\r
+\r
+ // Set the output window\r
+ int hr;\r
+\r
+ hr = VideoWindow.put_Owner(handle);\r
+ DsError.ThrowExceptionForHR(hr);\r
+\r
+ hr = VideoWindow.put_MessageDrain(handle);\r
+ DsError.ThrowExceptionForHR(hr);\r
+\r
+ // Set the window style\r
+ hr = VideoWindow.put_WindowStyle((WindowStyle.Child | WindowStyle.ClipChildren | WindowStyle.ClipSiblings));\r
+ DsError.ThrowExceptionForHR(hr);\r
+\r
+ // Make the window visible\r
+ hr = VideoWindow.put_Visible(OABool.True);\r
+ DsError.ThrowExceptionForHR(hr);\r
+\r
return videoRenderer;\r
}\r
\r
// You can specify all the values or you can default the Revision and Build Numbers \r
// by using the '*' as shown below:\r
\r
-[assembly: AssemblyVersion("2.0.8.1")]\r
+[assembly: AssemblyVersion("2.0.8.2")]\r
\r
//\r
// In order to sign your assembly you must specify a key to use. Refer to the \r
[assembly: AssemblyDelaySign(false)]\r
[assembly: AssemblyKeyFile("")]\r
[assembly: AssemblyKeyName("")]\r
-[assembly: AssemblyFileVersion("2.0.8.1")]\r
+[assembly: AssemblyFileVersion("2.0.8.2")]\r
\r
}\r
}\r
\r
+ /// <summary>\r
+ /// Looks up a localized resource of type System.Drawing.Bitmap.\r
+ /// </summary>\r
+ internal static System.Drawing.Bitmap baseline_fast_forward_black_24dp {\r
+ get {\r
+ object obj = ResourceManager.GetObject("baseline_fast_forward_black_24dp", resourceCulture);\r
+ return ((System.Drawing.Bitmap)(obj));\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// Looks up a localized resource of type System.Drawing.Bitmap.\r
+ /// </summary>\r
+ internal static System.Drawing.Bitmap baseline_fast_rewind_black_24dp {\r
+ get {\r
+ object obj = ResourceManager.GetObject("baseline_fast_rewind_black_24dp", resourceCulture);\r
+ return ((System.Drawing.Bitmap)(obj));\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// Looks up a localized resource of type System.Drawing.Bitmap.\r
+ /// </summary>\r
+ internal static System.Drawing.Bitmap baseline_skip_next_black_24dp {\r
+ get {\r
+ object obj = ResourceManager.GetObject("baseline_skip_next_black_24dp", resourceCulture);\r
+ return ((System.Drawing.Bitmap)(obj));\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// Looks up a localized resource of type System.Drawing.Bitmap.\r
+ /// </summary>\r
+ internal static System.Drawing.Bitmap baseline_skip_previous_black_24dp {\r
+ get {\r
+ object obj = ResourceManager.GetObject("baseline_skip_previous_black_24dp", resourceCulture);\r
+ return ((System.Drawing.Bitmap)(obj));\r
+ }\r
+ }\r
+ \r
/// <summary>\r
/// Looks up a localized resource of type System.Drawing.Bitmap.\r
/// </summary>\r
}\r
}\r
\r
+ /// <summary>\r
+ /// Looks up a localized string similar to Előre csévélés.\r
+ /// </summary>\r
+ internal static string FORWARD {\r
+ get {\r
+ return ResourceManager.GetString("FORWARD", resourceCulture);\r
+ }\r
+ }\r
+ \r
/// <summary>\r
/// Looks up a localized resource of type System.Drawing.Bitmap.\r
/// </summary>\r
}\r
}\r
\r
+ /// <summary>\r
+ /// Looks up a localized string similar to Hátra csévélés.\r
+ /// </summary>\r
+ internal static string REWIND {\r
+ get {\r
+ return ResourceManager.GetString("REWIND", resourceCulture);\r
+ }\r
+ }\r
+ \r
/// <summary>\r
/// Looks up a localized string similar to Szegmensek.\r
/// </summary>\r
<data name="ERRORINVALIDTCOUT" xml:space="preserve">\r
<value>A kilépő nem lehet a belépő előtt.</value>\r
</data>\r
- <data name="POSITIONASTCIN" xml:space="preserve">\r
- <value>Aktuális pozíció belépőként</value>\r
+ <data name="STOP" xml:space="preserve">\r
+ <value>Leállítás</value>\r
+ </data>\r
+ <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />\r
+ <data name="baseline_fast_forward_black_24dp" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
+ <value>..\Resources\baseline_fast_forward_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
</data>\r
<data name="NOINPUT" xml:space="preserve">\r
<value>NINCS BEMENET</value>\r
</data>\r
- <data name="EXITING" xml:space="preserve">\r
- <value>Kilépés</value>\r
+ <data name="PLAY" xml:space="preserve">\r
+ <value>Lejátszás</value>\r
</data>\r
<data name="METADATA" xml:space="preserve">\r
<value>Metaadat</value>\r
</data>\r
+ <data name="EXITING" xml:space="preserve">\r
+ <value>Kilépés</value>\r
+ </data>\r
<data name="START" xml:space="preserve">\r
<value>Kezdés</value>\r
</data>\r
- <data name="STOP" xml:space="preserve">\r
- <value>Leállítás</value>\r
- </data>\r
<data name="LENGTH" xml:space="preserve">\r
<value>Hossz</value>\r
</data>\r
- <data name="APPROVE" xml:space="preserve">\r
- <value>Kész</value>\r
+ <data name="bs-user-logo" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
+ <value>..\Resources\bs-user-logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
</data>\r
<data name="SEGMENTS" xml:space="preserve">\r
<value>Szegmensek</value>\r
<data name="MISSINGTRAFFICCONFIGURATION" xml:space="preserve">\r
<value>Nem található a PlanAir rendszer kapcsolódási információja a dxplay.json állományban.</value>\r
</data>\r
- <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />\r
<data name="lgs" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
<value>..\resources\lgs.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
</data>\r
<data name="PAUSE" xml:space="preserve">\r
<value>Szünet</value>\r
</data>\r
+ <data name="POSITIONASTCIN" xml:space="preserve">\r
+ <value>Aktuális pozíció belépőként</value>\r
+ </data>\r
<data name="ERRORTRAFFICCONNECT" xml:space="preserve">\r
<value>Nem tudok kapcsolódni a PlanAir rendszerhez ezen az útvonalon: {0}</value>\r
</data>\r
- <data name="DEFINESEGMENT" xml:space="preserve">\r
- <value>Szegmens definiálása</value>\r
+ <data name="ERRORTARGETEXISTS" xml:space="preserve">\r
+ <value>A célállomány már létezik: {0}</value>\r
</data>\r
<data name="COMMENT" xml:space="preserve">\r
<value>Megjegyzés</value>\r
<data name="ic_play_arrow_black_24dp_2x" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
<value>..\resources\ic_play_arrow_black_24dp_2x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
</data>\r
- <data name="PLAY" xml:space="preserve">\r
- <value>Lejátszás</value>\r
+ <data name="baseline_skip_next_black_24dp" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
+ <value>..\Resources\baseline_skip_next_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
+ </data>\r
+ <data name="baseline_skip_previous_black_24dp" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
+ <value>..\Resources\baseline_skip_previous_black_24dp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
</data>\r
<data name="ERRORSEGMENTCOLLISION" xml:space="preserve">\r
<value>A szegmensek között nem lehet átfedés.</value>\r
</data>\r
- <data name="STOPPED" xml:space="preserve">\r
- <value>Megállítva</value>\r
+ <data name="DEFINESEGMENT" xml:space="preserve">\r
+ <value>Szegmens definiálása</value>\r
</data>\r
<data name="COMPLETED" xml:space="preserve">\r
<value>Vége</value>\r
</data>\r
+ <data name="APPROVE" xml:space="preserve">\r
+ <value>Kész</value>\r
+ </data>\r
<data name="PAUSED" xml:space="preserve">\r
<value>Szüneteltetett</value>\r
</data>\r
<data name="ic_stop_black_24dp_2x" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
<value>..\resources\ic_stop_black_24dp_2x.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
</data>\r
+ <data name="STOPPED" xml:space="preserve">\r
+ <value>Megállítva</value>\r
+ </data>\r
<data name="MISSINGTRAFFICVARIANT" xml:space="preserve">\r
<value>Nem található az {0} azonosító a PlanAir rendszerben.</value>\r
</data>\r
<data name="ERRORINVALIDTCIN" xml:space="preserve">\r
<value>A belépő nem lehet a kilépő után.</value>\r
</data>\r
- <data name="bs-user-logo" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
- <value>..\Resources\bs-user-logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
+ <data name="baseline_fast_rewind_black_24dp" type="System.Resources.ResXFileRef, System.Windows.Forms">\r
+ <value>..\Resources\baseline_fast_rewind_black_24dp1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>\r
</data>\r
- <data name="ERRORTARGETEXISTS" xml:space="preserve">\r
- <value>A célállomány már létezik: {0}</value>\r
+ <data name="FORWARD" xml:space="preserve">\r
+ <value>Előre csévélés</value>\r
+ </data>\r
+ <data name="REWIND" xml:space="preserve">\r
+ <value>Hátra csévélés</value>\r
</data>\r
</root>
\ No newline at end of file
EndProject\r
Global\r
GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+ Debug|Any CPU = Debug|Any CPU\r
Debug|x64 = Debug|x64\r
+ Release|Any CPU = Release|Any CPU\r
Release|x64 = Release|x64\r
EndGlobalSection\r
GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+ {0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}.Debug|x64.ActiveCfg = Debug|x64\r
{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}.Debug|x64.Build.0 = Debug|x64\r
+ {0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}.Release|Any CPU.Build.0 = Release|Any CPU\r
{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}.Release|x64.ActiveCfg = Release|x64\r
{0B44B3D7-52D7-4C0E-9B1C-F48CEEDA36FE}.Release|x64.Build.0 = Release|x64\r
+ {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Debug|x64.ActiveCfg = Debug|x64\r
{BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Debug|x64.Build.0 = Debug|x64\r
+ {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|Any CPU.Build.0 = Release|Any CPU\r
{BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.ActiveCfg = Release|x64\r
{BAF3E174-5D82-40FA-9E62-8C76ADBEA1E4}.Release|x64.Build.0 = Release|x64\r
+ {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Debug|x64.ActiveCfg = Debug|x64\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Debug|x64.Build.0 = Debug|x64\r
+ {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|Any CPU.Build.0 = Release|Any CPU\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.ActiveCfg = Release|x64\r
{CEFD0348-DED4-453E-BF3A-0B52F8890AB3}.Release|x64.Build.0 = Release|x64\r
+ {8CC7C930-9DBF-487B-AED5-776937A649D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {8CC7C930-9DBF-487B-AED5-776937A649D5}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Debug|x64.ActiveCfg = Debug|x64\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Debug|x64.Build.0 = Debug|x64\r
+ {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|Any CPU.Build.0 = Release|Any CPU\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.ActiveCfg = Release|x64\r
{8CC7C930-9DBF-487B-AED5-776937A649D5}.Release|x64.Build.0 = Release|x64\r
+ {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Debug|x64.ActiveCfg = Debug|x64\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Debug|x64.Build.0 = Debug|x64\r
+ {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|Any CPU.Build.0 = Release|Any CPU\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.ActiveCfg = Release|x64\r
{4A61E975-F8DB-4BBF-BEFF-72FE67B2C08B}.Release|x64.Build.0 = Release|x64\r
+ {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Debug|x64.ActiveCfg = Debug|x64\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Debug|x64.Build.0 = Debug|x64\r
+ {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|Any CPU.Build.0 = Release|Any CPU\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x64.ActiveCfg = Release|x64\r
{616D8912-16A4-493B-BC45-53BF2A5D9B92}.Release|x64.Build.0 = Release|x64\r
+ {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Debug|x64.ActiveCfg = Debug|x64\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Debug|x64.Build.0 = Debug|x64\r
+ {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|Any CPU.Build.0 = Release|Any CPU\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.ActiveCfg = Release|x64\r
{A7A21311-CB0E-465F-8AD6-829FAF093F00}.Release|x64.Build.0 = Release|x64\r
+ {8C51D508-1759-4C10-84A4-80965FD074FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {8C51D508-1759-4C10-84A4-80965FD074FF}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Debug|x64.ActiveCfg = Debug|x64\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Debug|x64.Build.0 = Debug|x64\r
+ {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {8C51D508-1759-4C10-84A4-80965FD074FF}.Release|Any CPU.Build.0 = Release|Any CPU\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.ActiveCfg = Release|x64\r
{8C51D508-1759-4C10-84A4-80965FD074FF}.Release|x64.Build.0 = Release|x64\r
+ {BF494EE9-1E70-44E8-8942-DD726510A766}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {BF494EE9-1E70-44E8-8942-DD726510A766}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{BF494EE9-1E70-44E8-8942-DD726510A766}.Debug|x64.ActiveCfg = Debug|x64\r
{BF494EE9-1E70-44E8-8942-DD726510A766}.Debug|x64.Build.0 = Debug|x64\r
+ {BF494EE9-1E70-44E8-8942-DD726510A766}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {BF494EE9-1E70-44E8-8942-DD726510A766}.Release|Any CPU.Build.0 = Release|Any CPU\r
{BF494EE9-1E70-44E8-8942-DD726510A766}.Release|x64.ActiveCfg = Release|x64\r
{BF494EE9-1E70-44E8-8942-DD726510A766}.Release|x64.Build.0 = Release|x64\r
+ {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Debug|x64.ActiveCfg = Debug|x64\r
{D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Debug|x64.Build.0 = Debug|x64\r
+ {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|Any CPU.Build.0 = Release|Any CPU\r
{D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.ActiveCfg = Release|x64\r
{D4417174-F21E-4CE2-AE5C-8EB30C9A9625}.Release|x64.Build.0 = Release|x64\r
+ {8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Debug|x64.ActiveCfg = Debug|x64\r
{8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Debug|x64.Build.0 = Debug|x64\r
+ {8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Release|Any CPU.Build.0 = Release|Any CPU\r
{8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Release|x64.ActiveCfg = Release|x64\r
{8CB8266D-2229-47E2-B06D-54FDE82CBDC4}.Release|x64.Build.0 = Release|x64\r
+ {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|x64.ActiveCfg = Debug|x64\r
{A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Debug|x64.Build.0 = Debug|x64\r
+ {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|Any CPU.Build.0 = Release|Any CPU\r
{A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|x64.ActiveCfg = Release|x64\r
{A64ADB88-2CC4-4E46-BC53-643E2C49E179}.Release|x64.Build.0 = Release|x64\r
+ {C1A664BE-7852-4418-BF33-6F59434FC5DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+ {C1A664BE-7852-4418-BF33-6F59434FC5DC}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
{C1A664BE-7852-4418-BF33-6F59434FC5DC}.Debug|x64.ActiveCfg = Debug|x64\r
{C1A664BE-7852-4418-BF33-6F59434FC5DC}.Debug|x64.Build.0 = Debug|x64\r
+ {C1A664BE-7852-4418-BF33-6F59434FC5DC}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+ {C1A664BE-7852-4418-BF33-6F59434FC5DC}.Release|Any CPU.Build.0 = Release|Any CPU\r
{C1A664BE-7852-4418-BF33-6F59434FC5DC}.Release|x64.ActiveCfg = Release|x64\r
{C1A664BE-7852-4418-BF33-6F59434FC5DC}.Release|x64.Build.0 = Release|x64\r
EndGlobalSection\r