private void HighlightAndScrollToReferenceHeader(IReferenceHeader referenceHeader)
		{
			int referenceHeaderRowIndex = FindRowIndexForHeader(referenceHeader);
			referenceHeaderGridView.ClearSelection();
			referenceHeaderGridView.FirstDisplayedScrollingRowIndex = referenceHeaderRowIndex;
			referenceHeaderGridView.Rows[referenceHeaderRowIndex].Selected = true;
		}
Пример #2
0
        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;
		}
Пример #5
0
        /// <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();
 }
Пример #11
0
 public void RemoveHeader(IReferenceHeader header)
 {
     _referenceHeaders.Remove(header);
 }