public static void ValidateParams(SpectrumRendererParams timing) { if (timing.c_ulaIntBegin <= -timing.c_frameTactCount || timing.c_ulaIntBegin >= timing.c_frameTactCount) { throw new ArgumentException("ulaIntBegin"); } if (timing.c_ulaIntLength <= -timing.c_frameTactCount || timing.c_ulaIntLength >= timing.c_frameTactCount) { throw new ArgumentException("ulaIntLength"); } if (timing.c_ulaWidth != (timing.c_ulaBorderLeftT + 128 + timing.c_ulaBorderRightT) * 2 || timing.c_ulaHeight != (timing.c_ulaBorderTop + 192 + timing.c_ulaBorderBottom)) { throw new ArgumentException("width/height"); } if (timing.c_ulaLineTime < 128) { throw new ArgumentException("ulaLineTime"); } if (timing.c_frameTactCount < timing.c_ulaLineTime * 192) { throw new ArgumentException("frameTactCount/ulaLineTime"); } //... }
/// <summary> /// Create default renderer params (Pentagon 128K) /// </summary> public static SpectrumRendererParams CreateParams() { // Pentagon 128K // Total Size: 448 x 320 // Visible Size: 320 x 240 (32+256+32 x 24+192+24) var timing = new SpectrumRendererParams(); timing.c_frameTactCount = 71680; timing.c_ulaLineTime = 224; timing.c_ulaFirstPaperLine = 80; timing.c_ulaFirstPaperTact = 65;// 68; // 68 [32sync+36border+128scr+28border] timing.c_ulaBorder4T = false; timing.c_ulaBorder4Tstage = 1; timing.c_ulaBorderTop = 32; timing.c_ulaBorderBottom = 32; timing.c_ulaBorderLeftT = 16; timing.c_ulaBorderRightT = 16; timing.c_ulaIntBegin = 0; timing.c_ulaIntLength = 32; timing.c_ulaFlashPeriod = 25; timing.c_ulaWidth = (timing.c_ulaBorderLeftT + 128 + timing.c_ulaBorderRightT) * 2; timing.c_ulaHeight = timing.c_ulaBorderTop + 192 + timing.c_ulaBorderBottom; return(timing); }