internal profileSequenceIdentifierTagDataEntry(int idx) { //Count, specifying number of structures in the array (4 bytes) NumberCount = (int)Helper.GetUInt32(idx); //Positions table for profile identifiers PositionTable = new PositionNumber[NumberCount]; int end = idx + 4 + 8 * NumberCount; int c = 0; for (int i = idx + 4; i < end; i += 8) { PositionTable[c] = new PositionNumber(i); c++; } //Profile ID (16 bytes) ProfileID = Helper.GetProfileID(end); //Profile description ProfileDescription = new multiLocalizedUnicodeTagDataEntry(end + 16, false); }
internal multiProcessElementsTagDataEntry(int idx) { //Number of input channels (2 bytes) InputChannelCount = Helper.GetUInt16(idx); //Number of output channels (2 bytes) OutputChannelCount = Helper.GetUInt16(idx + 2); //Number of processing elements (4 bytes) ProcessingElementCount = (int)Helper.GetUInt32(idx + 4); //Process element positions table (8 bytes each) PositionTable = new PositionNumber[ProcessingElementCount]; int end = idx + 8 + 8 * ProcessingElementCount; int c = 0; for (int i = idx + 8; i < end; i += 8) { PositionTable[c] = new PositionNumber(i); c++; } //Data Data = new MultiProcessElement[ProcessingElementCount]; for (int i = 0; i < ProcessingElementCount; i++) { Data[i] = MultiProcessElement.CreateElement(PositionTable[i].Offset); } }