private void HighlightAndScrollToReferenceHeader(IReferenceHeader referenceHeader) { int referenceHeaderRowIndex = FindRowIndexForHeader(referenceHeader); referenceHeaderGridView.ClearSelection(); referenceHeaderGridView.FirstDisplayedScrollingRowIndex = referenceHeaderRowIndex; referenceHeaderGridView.Rows[referenceHeaderRowIndex].Selected = true; }
private static string GetDescriptiveName(IReferenceHeader referenceHeader) { var sb = new StringBuilder(); sb.Append(referenceHeader.Brand); if (!string.IsNullOrEmpty(referenceHeader.Model)) { if (sb.Length > 0) { sb.Append(' '); } sb.Append(referenceHeader.Model); } if (!string.IsNullOrEmpty(referenceHeader.Setting)) { if (sb.Length > 0) { sb.Append(' '); } sb.Append('('); sb.Append(referenceHeader.Setting); sb.Append(')'); } return(sb.ToString()); }
private int FindRowIndexForHeader(IReferenceHeader referenceHeader) { int rowCount = referenceHeaderGridView.Rows.Count; for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { if (referenceHeaderGridView.GetHeaderForRow(rowIndex) == referenceHeader) { return rowIndex; } } throw new ArgumentException("No such header in the database: " + referenceHeader); }
private IReferenceHeader ScanForReferenceHeader(string videoFilename) { // TODO: also scan the file using container detectors foreach (ICodecDetector codecDetector in CodecDetectors) { IReferenceHeader referenceHeader = Database.AddHeader(codecDetector, videoFilename); if (referenceHeader != null) { return referenceHeader; } } return null; }
/// <summary> /// Creates a new <see cref="ReferenceHeaderFile"/>. /// </summary> /// <param name="createDataPacket">The factory method for creating a data packet</param> /// <param name="createDataReader">The factory method for creating a data reader</param> /// <param name="project">The project the file belongs to</param> /// <param name="referenceHeader">The reference header</param> public ReferenceHeaderFile(Creator <IDataPacket, IInputFile> createDataPacket, Creator <ByteArrayDataReader, IDataPacket, byte[]> createDataReader, IProject project, IReferenceHeader referenceHeader) { PreConditions.Argument("createDataPacket").Value(createDataPacket).IsNotNull(); PreConditions.Argument("createDataReader").Value(createDataReader).IsNotNull(); PreConditions.Argument("project").Value(project).IsNotNull(); PreConditions.Argument("referenceHeader").Value(referenceHeader).IsNotNull(); _createDataPacket = createDataPacket; _createDataReader = createDataReader; _project = project; _referenceHeader = referenceHeader; _descriptiveName = GetDescriptiveName(); }
private void EditReferenceHeader(IReferenceHeader header) { using (var form = new EditReferenceHeaderForm()) { form.Brand = header.Brand; form.Model = header.Model; form.Setting = header.Setting; if (DialogResult.OK == form.ShowDialog(this)) { header.Brand = form.Brand; header.Model = form.Model; header.Setting = form.Setting; UpdateFilterOptions(); UpdateReferenceHeaderList(); } } }
private void buttonAdd_Click(object sender, EventArgs e) { if (DialogResult.OK == openVideoFileDialog.ShowDialog(this)) { // TODO: Run this in a background thread ... string filename = openVideoFileDialog.FileName; IReferenceHeader addedReferenceHeader = ScanForReferenceHeader(filename); if (addedReferenceHeader == null) { MessageBox.Show("No headers of the supported video encoding types were found in file " + filename + ".", "No Reference Header Detected", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { UpdateFilterOptions(); UpdateReferenceHeaderList(); HighlightAndScrollToReferenceHeader(addedReferenceHeader); } } }
private static object[] CreateRow(IList <string> codecParameterNames, IReferenceHeader header) { var row = new object[10 + codecParameterNames.Count]; row[0] = header; row[1] = false; row[2] = header.Brand; row[3] = header.Model; row[4] = header.Setting; row[5] = header.CodecParameters.Codec; row[6] = header.CodecParameters.Width; row[7] = header.CodecParameters.Height; row[8] = header.CodecParameters.FrameRate; row[9] = BitConverter.ToString(header.Data).Replace("-", string.Empty); foreach (string parameterName in header.CodecParameters) { row[10 + codecParameterNames.IndexOf(parameterName)] = header.CodecParameters[parameterName]; } return(row); }
public IInputFile CreateReferenceHeaderFile(IReferenceHeader header) { return(_createReferenceHeaderFile(_project, header)); }
public IInputFile CreateReferenceHeaderFile(IReferenceHeader header) { throw new NotImplementedException(); }
public void RemoveHeader(IReferenceHeader header) { _referenceHeaders.Remove(header); }