示例#1
0
        /// <summary>
        /// If the newly selected item is of type referenceKey, allow jump on double click
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void propGrid_SelectedGridItemChanged(object sender, SelectedGridItemChangedEventArgs e)
        {
            m_selectedObject = e.NewSelection.Value as MXFObject;

            m_currentReference = null;
            if (m_selectedObject != null)
            {
                // Select the reference itself by default
                m_currentReference = m_selectedObject;

                // Refkey, then select the reference it points too
                MXFRefKey refkey = m_selectedObject as MXFRefKey;
                if (refkey != null)
                {
                    if (refkey.Reference != null)
                    {
                        m_currentReference = refkey.Reference;
                    }
                    else
                    {
                        m_currentReference = null;                         // Reset
                    }
                }
            }
            this.btnSelectReference.Enabled = (m_currentReference != null);
        }
示例#2
0
        /// <summary>
        /// Read a list of keys
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="categoryName"></param>
        /// <returns></returns>
        protected UInt32 ReadKeyList(MXFReader reader, string categoryName, string singleItem)
        {
            UInt32 nofItems   = reader.ReadD();
            UInt32 objectSize = reader.ReadD();             // useless size of objects, always 16 according to specs

            MXFObject keylist = new MXFObject(categoryName, reader.Position);

            if (nofItems < UInt32.MaxValue)
            {
                for (int n = 0; n < nofItems; n++)
                {
                    MXFRefKey key = new MXFRefKey(reader, objectSize, singleItem);
                    keylist.AddChild(key);
                }
            }
            this.AddChild(keylist);
            return(nofItems);
        }
示例#3
0
        /// <summary>
        /// Overridden method to process local tags
        /// </summary>
        /// <param name="localTag"></param>
        protected override bool ParseLocalTag(MXFReader reader, MXFLocalTag localTag)
        {
            switch (localTag.Tag)
            {
            case 0x4403:
                this.TracksCount = ReadKeyList(reader, "Tracks", "Track");
                return(true);

            case 0x4401:                     // UMID
                this.ULUID      = new MXFRefKey(reader);
                this.PackageUID = new MXFRefKey(reader);
                return(true);

            case 0x4701:                     // Descriptor
                this.DescriptorUID = new MXFRefKey(reader);
                return(true);
            }
            return(false);            // Not parsed, use default parsing
        }
示例#4
0
        /// <summary>
        /// Overridden method to process local tags
        /// </summary>
        /// <param name="localTag"></param>
        protected override bool ParseLocalTag(MXFReader reader, MXFLocalTag localTag)
        {
            switch (localTag.Tag)
            {
            case 0x3B02: this.LastModificationDate = reader.ReadTimestamp(); return(true);

            case 0x3B05: this.Version = reader.ReadW(); return(true);

            case 0x3B07: this.ObjectModelVersion = reader.ReadD(); return(true);

            case 0x3B03: this.ContentStorageUID = new MXFRefKey(reader, 16, "ContentStorageUID"); return(true);

            case 0x3B08: this.PrimaryPackageUID = new MXFRefKey(reader, 16, "PrimaryPackageUID"); return(true);

            case 0x3B09: this.OperationalPatternUL = new MXFKey(reader, 16); return(true);

            case 0x3B06: ReadKeyList(reader, "Identifications", "Identification"); return(true);

            case 0x3B0A: ReadKeyList(reader, "Essencecontainers", "Essencecontainer"); return(true);

            case 0x3B0B: ReadKeyList(reader, "Metadata Schemes", "Metadata scheme"); return(true);
            }
            return(false);            // Not parsed, use default parsing
        }