Beispiel #1
0
        internal static void Trim(bool stripEdids, bool stripRefs, string In, string Out, ReportProgressDelegate del)
        {
            Plugin p=new Plugin(In, false);

            del("Editing plugin");

            Queue<Rec> queue=new Queue<Rec>(p.Records);
            while(queue.Count>0) {
                if(queue.Peek() is Record) {
                    Record r=(Record)queue.Dequeue();
                    if(stripEdids) {
                        //if(r.SubRecords.Count>0&&r.SubRecords[0].Name=="EDID") r.SubRecords.RemoveAt(0);
                        for(int i=0;i<r.SubRecords.Count;i++) {
                            //if(r.SubRecords[i].Name=="SCTX") r.SubRecords.RemoveAt(i--);
                        }
                    }
                } else {
                    GroupRecord gr=(GroupRecord)queue.Dequeue();
                    if(gr.ContentsType!="GMST") {
                        foreach(Rec r in gr.Records) queue.Enqueue(r);
                    }
                }
            }

            del("Generating new esm");

            //deflater=new ICSharpCode.SharpZipLib.Zip.Compression.Deflater(9);
            BinaryWriter bw=new BinaryWriter(File.Create(Out));
            p.SaveData(bw);
            /*foreach(Rec r in p.Records) {
                if(r is GroupRecord) WriteGroup(bw, (GroupRecord)r);
                else WriteRecord(bw, (Record)r);
            }*/
            bw.Close();
        }
Beispiel #2
0
    internal static void Trim(bool stripEdids, bool stripRefs, string In, string Out, ReportProgressDelegate del)
    {
      var p = new Plugin(In, false);

      del("Editing plugin");

      var queue = new Queue<Rec>(p.Records);
      while (queue.Count > 0)
      {
        if (queue.Peek() is Record)
        {
          queue.Dequeue();
        }
        else
        {
          var gr = (GroupRecord) queue.Dequeue();
          if (gr.ContentsType != "GMST")
          {
            foreach (var r in gr.Records)
            {
              queue.Enqueue(r);
            }
          }
        }
      }

      del("Generating new esm");

      //deflater=new ICSharpCode.SharpZipLib.Zip.Compression.Deflater(9);
      var bw = new BinaryWriter(File.Create(Out));
      p.SaveData(bw);
      /*foreach(Rec r in p.Records) {
                if(r is GroupRecord) WriteGroup(bw, (GroupRecord)r);
                else WriteRecord(bw, (Record)r);
            }*/
      bw.Close();
    }