ADBaseLibrary.Matroska.Matroska.FixUIDS C# (CSharp) Method

FixUIDS() static private method

static private FixUIDS ( Container c ) : void
c Container
return void
        internal static void FixUIDS(Container c)
        {
            //Change UIDS to numeric ids.
            //Fix Track IDS
            List<EbmlGeneric> tracks = c.FindAll(Ids.MATROSKA_ID_TRACKENTRY);
            List<EbmlGeneric> gg = c.FindAll(Ids.MATROSKA_ID_TAGTARGETS_TRACKUID);
            List<EbmlGeneric> planes = c.FindAll(Ids.MATROSKA_ID_TRACKPLANEUID);
            foreach (EbmlMaster j in tracks)
            {
                EbmlUint u = (EbmlUint)j.FindFirst(Ids.MATROSKA_ID_TRACKUID);
                EbmlUint tn = (EbmlUint)j.FindFirst(Ids.MATROSKA_ID_TRACKNUMBER);
                foreach (EbmlUint n in planes)
                {
                    if (n.Value == u.Value)
                    {
                        n.Value = tn.Value;
                        break;
                    }
                }
                foreach (EbmlUint n in gg)
                {
                    ulong nval = 0;
                    if (n.Value == u.Value)
                    {
                        n.Value = tn.Value;
                        break;
                    }
                }
                u.Value = tn.Value;
            }
            //Fix Chapters
            List<EbmlGeneric> chapters = c.FindAll(Ids.MATROSKA_ID_EDITIONENTRY);
            gg = c.FindAll(Ids.MATROSKA_ID_TAGTARGETS_CHAPTERUID);
            ulong cnt = 1;
            foreach (EbmlMaster j in chapters)
            {
                EbmlUint u = (EbmlUint)j.FindFirst(Ids.MATROSKA_ID_CHAPTERUID);
                foreach (EbmlUint n in gg)
                {
                    if (n.Value == u.Value)
                    {
                        n.Value = cnt;
                        break;
                    }
                }
                u.Value = cnt;
                u = (EbmlUint)j.FindFirst(Ids.MATROSKA_ID_EDITIONUID);
                if (u != null)
                    u.Value = cnt;
                cnt++;
            }
            //Fix Attachments
            List<EbmlGeneric> attachments = c.FindAll(Ids.MATROSKA_ID_ATTACHEDFILE);
            gg = c.FindAll(Ids.MATROSKA_ID_TAGTARGETS_ATTACHUID);
            cnt = 1;
            foreach (EbmlMaster j in chapters)
            {
                EbmlUint u = (EbmlUint)j.FindFirst(Ids.MATROSKA_ID_FILEUID);
                foreach (EbmlUint n in gg)
                {
                    if (n.Value == u.Value)
                    {
                        n.Value = cnt;
                        break;
                    }
                }
                u.Value = cnt;
                cnt++;
            }
        }