}\r
return result;\r
}\r
- \r
+\r
private void PlayerForm_FormClosing(object sender, FormClosingEventArgs e) {\r
+ foreach (MovieSegment segment in segments)\r
+ if (segment.TCOut == null) {\r
+ e.Cancel = true;\r
+ return;\r
+ }\r
+\r
if (m_play != null) {\r
m_play.Stop();\r
m_play.Dispose();\r
TCOut = new Timecode(m_mediaDescription.FirstFrame, m_mediaDescription.Duration)\r
};\r
segments.Add(segment);\r
- //if (outro == null)\r
- // segments.Add(segment);\r
- //else {\r
- // int index = segments.Count - 2;\r
- // segments.Insert(index, segment);\r
- //}\r
}\r
\r
private void OnDeleteSegmentClick(object sender, EventArgs e) {\r
private void OnActualPositionToTCInToolStripMenuItem1Click(object sender, EventArgs e) {\r
MovieSegment currentSegment = GetCurrentSegment();\r
if (currentSegment != null) {\r
+\r
if (currentSegment.TCIn != null) {\r
DialogResult dialogResult = MessageBox.Show("Biztos felül akarja írni az belépõt?", "Belépõ felülírása", MessageBoxButtons.YesNo);\r
- if (dialogResult == DialogResult.Yes)\r
- currentSegment.TCIn = m_play.CurrentTC;\r
- } else\r
- currentSegment.TCIn = m_play.CurrentTC;\r
+ if (dialogResult == DialogResult.Yes) {\r
+ if (IsTCInBeforeTCOut(m_play.CurrentTC, currentSegment.TCOut)) {\r
+ Timecode actual = new Timecode();\r
+ actual.Set(m_play.CurrentTC.Frames);\r
+ currentSegment.TCIn = actual;\r
+ } else {\r
+ MessageBox.Show("A kilépõ a belépõ elõtt van!", "Hiba");\r
+ //így kell?\r
+ currentSegment.TCIn = null;\r
+ //vagy így?\r
+ //currentSegment.TCIn = new Timecode();\r
+ }\r
+ }\r
+ } else {\r
+ Timecode actual = new Timecode(m_play.CurrentTC);\r
+ currentSegment.TCIn = actual;\r
+ }\r
+ } else {\r
+ MovieSegment segment = new MovieSegment() {\r
+ TCIn = new Timecode(m_mediaDescription.FirstFrame),\r
+ //ez kell-e?\r
+ //TCOut = new Timecode(m_mediaDescription.FirstFrame, m_mediaDescription.Duration)\r
+ };\r
+ segments.Add(segment);\r
}\r
-\r
-\r
- //if (intro != null) {\r
- // DialogResult dialogResult = MessageBox.Show("Biztos felül akarja írni az belépõt?", "Belépõ felülírása", MessageBoxButtons.YesNo);\r
- // if (dialogResult == DialogResult.Yes) {\r
- // segments.RemoveAt(0);\r
- // CreateAndAddIntroToSegments();\r
- // }\r
- //} else\r
- // CreateAndAddIntroToSegments();\r
+ dgSegments.DataSource = bsSegments;\r
}\r
\r
- //private void CreateAndAddIntroToSegments() {\r
- // intro = new MovieSegment() {\r
- // TCIn = new Timecode(m_mediaDescription.FirstFrame),\r
- // TCOut = m_play.CurrentTC\r
- // };\r
- // segments.Insert(0, intro);\r
- //}\r
-\r
private void OnActualPositionToTCOutToolStripMenuItem1Click(object sender, EventArgs e) {\r
MovieSegment currentSegment = GetCurrentSegment();\r
if (currentSegment != null) {\r
if (currentSegment.TCOut != null) {\r
DialogResult dialogResult = MessageBox.Show("Biztos felül akarja írni a kilépõt?", "Kilépõ felülírása", MessageBoxButtons.YesNo);\r
if (dialogResult == DialogResult.Yes) {\r
- currentSegment.TCOut = m_play.CurrentTC;\r
+ if (IsTCInBeforeTCOut(currentSegment.TCIn, m_play.CurrentTC)) {\r
+ Timecode actual = new Timecode();\r
+ actual.Set(m_play.CurrentTC.Frames);\r
+ currentSegment.TCOut = actual;\r
+ } else {\r
+ MessageBox.Show("A kilépõ a belépõ elõtt van!", "Hiba");\r
+ //így kell?\r
+ currentSegment.TCIn = null;\r
+ //vagy így?\r
+ //currentSegment.TCIn = new Timecode();\r
+ }\r
}\r
- } else\r
- currentSegment.TCOut = m_play.CurrentTC;\r
+ } else {\r
+ Timecode actual = new Timecode(m_play.CurrentTC);\r
+ currentSegment.TCOut = actual;\r
+ }\r
+ } else {\r
+ MovieSegment segment = new MovieSegment() {\r
+ //ez kell-e?\r
+ //TCIn = new Timecode(m_mediaDescription.FirstFrame),\r
+ TCOut = new Timecode(m_mediaDescription.FirstFrame, m_mediaDescription.Duration)\r
+ };\r
+ segments.Add(segment);\r
}\r
+ }\r
\r
+ private bool IsTCInBeforeTCOut(Timecode tcIn, Timecode tcOut) {\r
+ if (tcIn == null || tcOut == null)\r
+ return true;\r
+ string tcInString = tcIn.ToString();\r
+ string tcOutString = tcOut.ToString();\r
+ string inHour = tcInString.Substring(0, 2);\r
+ string outHour = tcOutString.Substring(0, 2);\r
+ if (Int32.Parse(outHour) < Int32.Parse(inHour))\r
+ return false;\r
+ else if (Int32.Parse(outHour) > Int32.Parse(inHour))\r
+ return true;\r
+ string inMinute = tcInString.Substring(3, 2);\r
+ string outMinute = tcOutString.Substring(3, 2);\r
+ if (Int32.Parse(outMinute) < Int32.Parse(inMinute))\r
+ return false;\r
+ else if (Int32.Parse(outMinute) > Int32.Parse(inMinute))\r
+ return true;\r
+ string inSec = tcInString.Substring(6, 2);\r
+ string outSec = tcOutString.Substring(6, 2);\r
+ if (Int32.Parse(outSec) < Int32.Parse(inSec))\r
+ return false;\r
+ else if (Int32.Parse(outSec) > Int32.Parse(inSec))\r
+ return true;\r
+ string inFrame = tcInString.Substring(9, 2);\r
+ string outFrame = tcOutString.Substring(9, 2);\r
+ if (Int32.Parse(outFrame) <= Int32.Parse(inFrame))\r
+ return false;\r
\r
-\r
- //if (outro != null) {\r
- // DialogResult dialogResult = MessageBox.Show("Biztos felül akarja írni a kilépõt?", "Kilépõ felülírása", MessageBoxButtons.YesNo);\r
- // if (dialogResult == DialogResult.Yes) {\r
- // int outroIndex = segments.Count - 1;\r
- // segments.RemoveAt(outroIndex);\r
- // CreateAndAddOutroToSegments();\r
- // }\r
- //} else\r
- // CreateAndAddOutroToSegments();\r
+ return true;\r
}\r
\r
private MovieSegment GetCurrentSegment() {\r
return null;\r
}\r
\r
- //private void CreateAndAddOutroToSegments() {\r
- // outro = new MovieSegment() {\r
- // TCIn = m_play.CurrentTC,\r
- // TCOut = new Timecode(m_play.CurrentTC, m_play.MediaDescription.Duration)\r
- // };\r
- // int index = segments.Count;\r
- // segments.Insert(index, outro);\r
- //}\r
-\r
private void OnSplitSegmentAtCurrentPositionClick(object sender, EventArgs e) {\r
\r
MovieSegment segment = segments.Where(s => m_play.CurrentTC.Frames > s.TCIn.Frames && m_play.CurrentTC.Frames < s.TCOut.Frames).FirstOrDefault();\r
};\r
hSegment.TCIn.Set(m_play.CurrentTC.ZeroBasedFrames + 1);\r
segments.Add(hSegment);\r
-\r
}\r
\r
+ private void dgSegments_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) {\r
+ DataGridViewColumnCollection cols = dgSegments.Columns;\r
+ if (cols.Count >= 2) {\r
+ cols[0].ReadOnly = true;\r
+ cols[1].ReadOnly = true;\r
+ }\r
+ }\r
}\r
}\r