private void MacroCodes() {
if (macroSegmentId < 0) {
throw new InvalidOperationException("macroSegmentId must be >=0");
}
if (macroSegmentId >= macroSegmentCount) {
throw new InvalidOperationException("macroSegmentId must be < macroSemgentCount");
}
if (macroSegmentCount < 1) {
throw new InvalidOperationException("macroSemgentCount must be > 0");
}
macroIndex = cwPtr;
codewords[cwPtr++] = MACRO_SEGMENT_ID;
Append(macroSegmentId, 5);
if (macroFileId != null) {
Append(macroFileId);
}
if (macroSegmentId >= macroSegmentCount-1) {
codewords[cwPtr++] = MACRO_LAST_SEGMENT;
}
}