diff --git a/common.c b/common.c index 3fd5c3b..be4a97b 100644 --- a/common.c +++ b/common.c @@ -187,17 +187,17 @@ void evt_clickimg(GtkWidget *widget, GdkEventButton* event, GdkWindowEdge edge) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(gui.tog_setedge),FALSE); // Adjust sample rate, if in sensible limits - newrate = CurrentPic.Rate + CurrentPic.Rate * (dx * ModeSpec[CurrentPic.Mode].PixelLen) / (dy * ModeSpec[CurrentPic.Mode].LineHeight * ModeSpec[CurrentPic.Mode].LineLen); + newrate = CurrentPic.Rate + CurrentPic.Rate * (dx * ModeSpec[CurrentPic.Mode].PixelTime) / (dy * ModeSpec[CurrentPic.Mode].LineHeight * ModeSpec[CurrentPic.Mode].LineTime); if (newrate > 32000 && newrate < 56000) { CurrentPic.Rate = newrate; // Find x-intercept and adjust skip xic = fmod( (x - (y / (dy/dx))), ModeSpec[CurrentPic.Mode].ImgWidth); if (xic < 0) xic = ModeSpec[CurrentPic.Mode].ImgWidth - xic; - CurrentPic.Skip = fmod(CurrentPic.Skip + xic * ModeSpec[CurrentPic.Mode].PixelLen * CurrentPic.Rate, - ModeSpec[CurrentPic.Mode].LineLen * CurrentPic.Rate); - if (CurrentPic.Skip > ModeSpec[CurrentPic.Mode].LineLen * CurrentPic.Rate / 2.0) - CurrentPic.Skip -= ModeSpec[CurrentPic.Mode].LineLen * CurrentPic.Rate; + CurrentPic.Skip = fmod(CurrentPic.Skip + xic * ModeSpec[CurrentPic.Mode].PixelTime * CurrentPic.Rate, + ModeSpec[CurrentPic.Mode].LineTime * CurrentPic.Rate); + if (CurrentPic.Skip > ModeSpec[CurrentPic.Mode].LineTime * CurrentPic.Rate / 2.0) + CurrentPic.Skip -= ModeSpec[CurrentPic.Mode].LineTime * CurrentPic.Rate; // Signal the listener to exit from GetVIS() and re-process the pic ManualResync = TRUE; diff --git a/common.h b/common.h index c1bc490..471c170 100644 --- a/common.h +++ b/common.h @@ -109,11 +109,11 @@ enum { typedef struct ModeSpec { char *Name; char *ShortName; - double SyncLen; - double PorchLen; - double SeparatorLen; - double PixelLen; - double LineLen; + double SyncTime; + double PorchTime; + double SeptrTime; + double PixelTime; + double LineTime; gushort ImgWidth; gushort NumLines; guchar LineHeight; diff --git a/modespec.c b/modespec.c index ecd0bd2..3231612 100644 --- a/modespec.c +++ b/modespec.c @@ -12,13 +12,13 @@ * * Name Long, human-readable name for the mode * ShortName Abbreviation for the mode, used in filenames - * SyncLen Duration of synchronization pulse in seconds - * PorchLen Duration of sync porch pulse in seconds - * SeparatorLen Duration of channel separator pulse in seconds - * PixelLen Duration of one pixel in seconds - * LineLen Time in seconds from the beginning of a sync pulse to the beginning of the next one + * SyncTime Duration of synchronization pulse in seconds + * PorchTime Duration of sync porch pulse in seconds + * SeptrTime Duration of channel separator pulse in seconds + * PixelTime Duration of one pixel in seconds + * LineTime Time in seconds from the beginning of a sync pulse to the beginning of the next one * ImgWidth Pixels per scanline - * Lines Number of scanlines + * NumLines Number of scanlines * LineHeight Height of one scanline in pixels (1 or 2) * ColorEnc Color format (GBR, RGB, YUV, BW) * @@ -39,11 +39,11 @@ _ModeSpec ModeSpec[] = { [M1] = { // N7CXI, 2000 .Name = "Martin M1", .ShortName = "M1", - .SyncLen = 4.862e-3, - .PorchLen = 0.572e-3, - .SeparatorLen = 0.572e-3, - .PixelLen = 0.4576e-3, - .LineLen = 446.446e-3, + .SyncTime = 4.862e-3, + .PorchTime = 0.572e-3, + .SeptrTime = 0.572e-3, + .PixelTime = 0.4576e-3, + .LineTime = 446.446e-3, .ImgWidth = 320, .NumLines = 256, .LineHeight = 1, @@ -52,11 +52,11 @@ _ModeSpec ModeSpec[] = { [M2] = { // N7CXI, 2000 .Name = "Martin M2", .ShortName = "M2", - .SyncLen = 4.862e-3, - .PorchLen = 0.572e-3, - .SeparatorLen = 0.572e-3, - .PixelLen = 0.2288e-3, - .LineLen = 226.7986e-3, + .SyncTime = 4.862e-3, + .PorchTime = 0.572e-3, + .SeptrTime = 0.572e-3, + .PixelTime = 0.2288e-3, + .LineTime = 226.7986e-3, .ImgWidth = 320, .NumLines = 256, .LineHeight = 1, @@ -65,11 +65,11 @@ _ModeSpec ModeSpec[] = { [M3] = { // KB4YZ, 1999 .Name = "Martin M3", .ShortName = "M3", - .SyncLen = 4.862e-3, - .PorchLen = 0.572e-3, - .SeparatorLen = 0.572e-3, - .PixelLen = 0.2288e-3, - .LineLen = 446.446e-3, + .SyncTime = 4.862e-3, + .PorchTime = 0.572e-3, + .SeptrTime = 0.572e-3, + .PixelTime = 0.2288e-3, + .LineTime = 446.446e-3, .ImgWidth = 320, .NumLines = 128, .LineHeight = 2, @@ -78,11 +78,11 @@ _ModeSpec ModeSpec[] = { [M4] = { // KB4YZ, 1999 .Name = "Martin M4", .ShortName = "M4", - .SyncLen = 4.862e-3, - .PorchLen = 0.572e-3, - .SeparatorLen = 0.572e-3, - .PixelLen = 0.2288e-3, - .LineLen = 226.7986e-3, + .SyncTime = 4.862e-3, + .PorchTime = 0.572e-3, + .SeptrTime = 0.572e-3, + .PixelTime = 0.2288e-3, + .LineTime = 226.7986e-3, .ImgWidth = 320, .NumLines = 128, .LineHeight = 2, @@ -91,11 +91,11 @@ _ModeSpec ModeSpec[] = { [S1] = { // N7CXI, 2000 .Name = "Scottie S1", .ShortName = "S1", - .SyncLen = 9e-3, - .PorchLen = 1.5e-3, - .SeparatorLen = 1.5e-3, - .PixelLen = 0.4320e-3, - .LineLen = 428.38e-3, + .SyncTime = 9e-3, + .PorchTime = 1.5e-3, + .SeptrTime = 1.5e-3, + .PixelTime = 0.4320e-3, + .LineTime = 428.38e-3, .ImgWidth = 320, .NumLines = 256, .LineHeight = 1, @@ -104,11 +104,11 @@ _ModeSpec ModeSpec[] = { [S2] = { // N7CXI, 2000 .Name = "Scottie S2", .ShortName = "S2", - .SyncLen = 9e-3, - .PorchLen = 1.5e-3, - .SeparatorLen = 1.5e-3, - .PixelLen = 0.2752e-3, - .LineLen = 277.692e-3, + .SyncTime = 9e-3, + .PorchTime = 1.5e-3, + .SeptrTime = 1.5e-3, + .PixelTime = 0.2752e-3, + .LineTime = 277.692e-3, .ImgWidth = 320, .NumLines = 256, .LineHeight = 1, @@ -117,11 +117,11 @@ _ModeSpec ModeSpec[] = { [SDX] = { // N7CXI, 2000 .Name = "Scottie DX", .ShortName = "SDX", - .SyncLen = 9e-3, - .PorchLen = 1.5e-3, - .SeparatorLen = 1.5e-3, - .PixelLen = 1.08053e-3, - .LineLen = 1050.3e-3, + .SyncTime = 9e-3, + .PorchTime = 1.5e-3, + .SeptrTime = 1.5e-3, + .PixelTime = 1.08053e-3, + .LineTime = 1050.3e-3, .ImgWidth = 320, .NumLines = 256, .LineHeight = 1, @@ -130,11 +130,11 @@ _ModeSpec ModeSpec[] = { [R72] = { // N7CXI, 2000 .Name = "Robot 72", .ShortName = "R72", - .SyncLen = 9e-3, - .PorchLen = 3e-3, - .SeparatorLen = 4.7e-3, - .PixelLen = 0.2875e-3, - .LineLen = 300e-3, + .SyncTime = 9e-3, + .PorchTime = 3e-3, + .SeptrTime = 4.7e-3, + .PixelTime = 0.2875e-3, + .LineTime = 300e-3, .ImgWidth = 320, .NumLines = 240, .LineHeight = 1, @@ -143,11 +143,11 @@ _ModeSpec ModeSpec[] = { [R36] = { // N7CXI, 2000 .Name = "Robot 36", .ShortName = "R36", - .SyncLen = 9e-3, - .PorchLen = 3e-3, - .SeparatorLen = 6e-3, - .PixelLen = 0.1375e-3, - .LineLen = 150e-3, + .SyncTime = 9e-3, + .PorchTime = 3e-3, + .SeptrTime = 6e-3, + .PixelTime = 0.1375e-3, + .LineTime = 150e-3, .ImgWidth = 320, .NumLines = 240, .LineHeight = 1, @@ -156,11 +156,11 @@ _ModeSpec ModeSpec[] = { [R24] = { // N7CXI, 2000 .Name = "Robot 24", .ShortName = "R24", - .SyncLen = 9e-3, - .PorchLen = 3e-3, - .SeparatorLen = 6e-3, - .PixelLen = 0.1375e-3, - .LineLen = 150e-3, + .SyncTime = 9e-3, + .PorchTime = 3e-3, + .SeptrTime = 6e-3, + .PixelTime = 0.1375e-3, + .LineTime = 150e-3, .ImgWidth = 320, .NumLines = 240, .LineHeight = 1, @@ -169,11 +169,11 @@ _ModeSpec ModeSpec[] = { [R24BW] = { // N7CXI, 2000 .Name = "Robot 24 B/W", .ShortName = "R24BW", - .SyncLen = 7e-3, - .PorchLen = 0e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.291e-3, - .LineLen = 100e-3, + .SyncTime = 7e-3, + .PorchTime = 0e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.291e-3, + .LineTime = 100e-3, .ImgWidth = 320, .NumLines = 240, .LineHeight = 1, @@ -182,11 +182,11 @@ _ModeSpec ModeSpec[] = { [R12BW] = { // N7CXI, 2000 .Name = "Robot 12 B/W", .ShortName = "R12BW", - .SyncLen = 7e-3, - .PorchLen = 0e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.291e-3, - .LineLen = 100e-3, + .SyncTime = 7e-3, + .PorchTime = 0e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.291e-3, + .LineTime = 100e-3, .ImgWidth = 320, .NumLines = 120, .LineHeight = 2, @@ -195,11 +195,11 @@ _ModeSpec ModeSpec[] = { [R8BW] = { // N7CXI, 2000 .Name = "Robot 8 B/W", .ShortName = "R8BW", - .SyncLen = 7e-3, - .PorchLen = 0e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.188e-3, - .LineLen = 67e-3, + .SyncTime = 7e-3, + .PorchTime = 0e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.188e-3, + .LineTime = 67e-3, .ImgWidth = 320, .NumLines = 120, .LineHeight = 2, @@ -208,11 +208,11 @@ _ModeSpec ModeSpec[] = { [W2120] = { // KB4YZ, 1999 .Name = "Wraase SC-2 120", .ShortName = "W2120", - .SyncLen = 5.5225e-3, - .PorchLen = 0.5e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.489039081e-3, - .LineLen = 475.530018e-3, + .SyncTime = 5.5225e-3, + .PorchTime = 0.5e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.489039081e-3, + .LineTime = 475.530018e-3, .ImgWidth = 320, .NumLines = 256, .LineHeight = 1, @@ -221,11 +221,11 @@ _ModeSpec ModeSpec[] = { [W2180] = { // N7CXI, 2000 .Name = "Wraase SC-2 180", .ShortName = "W2180", - .SyncLen = 5.5225e-3, - .PorchLen = 0.5e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.734532e-3, - .LineLen = 711.0225e-3, + .SyncTime = 5.5225e-3, + .PorchTime = 0.5e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.734532e-3, + .LineTime = 711.0225e-3, .ImgWidth = 320, .NumLines = 256, .LineHeight = 1, @@ -234,11 +234,11 @@ _ModeSpec ModeSpec[] = { [PD50] = { // N7CXI, 2000 .Name = "PD-50", .ShortName = "PD50", - .SyncLen = 20e-3, - .PorchLen = 2.08e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.286e-3, - .LineLen = 388.16e-3, + .SyncTime = 20e-3, + .PorchTime = 2.08e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.286e-3, + .LineTime = 388.16e-3, .ImgWidth = 320, .NumLines = 256, .LineHeight = 1, @@ -247,11 +247,11 @@ _ModeSpec ModeSpec[] = { [PD90] = { // N7CXI, 2000 .Name = "PD-90", .ShortName = "PD90", - .SyncLen = 20e-3, - .PorchLen = 2.08e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.532e-3, - .LineLen = 703.04e-3, + .SyncTime = 20e-3, + .PorchTime = 2.08e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.532e-3, + .LineTime = 703.04e-3, .ImgWidth = 320, .NumLines = 256, .LineHeight = 1, @@ -260,11 +260,11 @@ _ModeSpec ModeSpec[] = { [PD120] = { // N7CXI, 2000 .Name = "PD-120", .ShortName = "PD120", - .SyncLen = 20e-3, - .PorchLen = 2.08e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.19e-3, - .LineLen = 508.48e-3, + .SyncTime = 20e-3, + .PorchTime = 2.08e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.19e-3, + .LineTime = 508.48e-3, .ImgWidth = 640, .NumLines = 496, .LineHeight = 1, @@ -273,11 +273,11 @@ _ModeSpec ModeSpec[] = { [PD160] = { // N7CXI, 2000 .Name = "PD-160", .ShortName = "PD160", - .SyncLen = 20e-3, - .PorchLen = 2.08e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.382e-3, - .LineLen = 804.416e-3, + .SyncTime = 20e-3, + .PorchTime = 2.08e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.382e-3, + .LineTime = 804.416e-3, .ImgWidth = 512, .NumLines = 400, .LineHeight = 1, @@ -286,11 +286,11 @@ _ModeSpec ModeSpec[] = { [PD180] = { // N7CXI, 2000 .Name = "PD-180", .ShortName = "PD180", - .SyncLen = 20e-3, - .PorchLen = 2.08e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.286e-3, - .LineLen = 754.24e-3, + .SyncTime = 20e-3, + .PorchTime = 2.08e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.286e-3, + .LineTime = 754.24e-3, .ImgWidth = 640, .NumLines = 496, .LineHeight = 1, @@ -299,11 +299,11 @@ _ModeSpec ModeSpec[] = { [PD240] = { // N7CXI, 2000 .Name = "PD-240", .ShortName = "PD240", - .SyncLen = 20e-3, - .PorchLen = 2.08e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.382e-3, - .LineLen = 1000e-3, + .SyncTime = 20e-3, + .PorchTime = 2.08e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.382e-3, + .LineTime = 1000e-3, .ImgWidth = 640, .NumLines = 496, .LineHeight = 1, @@ -312,11 +312,11 @@ _ModeSpec ModeSpec[] = { [PD290] = { // N7CXI, 2000 .Name = "PD-290", .ShortName = "PD290", - .SyncLen = 20e-3, - .PorchLen = 2.08e-3, - .SeparatorLen = 0e-3, - .PixelLen = 0.286e-3, - .LineLen = 937.28e-3, + .SyncTime = 20e-3, + .PorchTime = 2.08e-3, + .SeptrTime = 0e-3, + .PixelTime = 0.286e-3, + .LineTime = 937.28e-3, .ImgWidth = 800, .NumLines = 616, .LineHeight = 1, @@ -325,11 +325,11 @@ _ModeSpec ModeSpec[] = { [P3] = { // N7CXI, 2000 .Name = "Pasokon P3", .ShortName = "P3", - .SyncLen = 5.208e-3, - .PorchLen = 1.042e-3, - .SeparatorLen = 1.042e-3, - .PixelLen = 0.2083e-3, - .LineLen = 409.375e-3, + .SyncTime = 5.208e-3, + .PorchTime = 1.042e-3, + .SeptrTime = 1.042e-3, + .PixelTime = 0.2083e-3, + .LineTime = 409.375e-3, .ImgWidth = 640, .NumLines = 496, .LineHeight = 1, @@ -338,11 +338,11 @@ _ModeSpec ModeSpec[] = { [P5] = { // N7CXI, 2000 .Name = "Pasokon P5", .ShortName = "P5", - .SyncLen = 7.813e-3, - .PorchLen = 1.563e-3, - .SeparatorLen = 1.563e-3, - .PixelLen = 0.3125e-3, - .LineLen = 614.065e-3, + .SyncTime = 7.813e-3, + .PorchTime = 1.563e-3, + .SeptrTime = 1.563e-3, + .PixelTime = 0.3125e-3, + .LineTime = 614.065e-3, .ImgWidth = 640, .NumLines = 496, .LineHeight = 1, @@ -351,11 +351,11 @@ _ModeSpec ModeSpec[] = { [P7] = { // N7CXI, 2000 .Name = "Pasokon P7", .ShortName = "P7", - .SyncLen = 10.417e-3, - .PorchLen = 2.083e-3, - .SeparatorLen = 2.083e-3, - .PixelLen = 0.4167e-3, - .LineLen = 818.747e-3, + .SyncTime = 10.417e-3, + .PorchTime = 2.083e-3, + .SeptrTime = 2.083e-3, + .PixelTime = 0.4167e-3, + .LineTime = 818.747e-3, .ImgWidth = 640, .NumLines = 496, .LineHeight = 1, diff --git a/slowrx.c b/slowrx.c index 7f8bef1..d784fd2 100644 --- a/slowrx.c +++ b/slowrx.c @@ -83,14 +83,14 @@ void *Listen() { // Allocate space for cached Lum free(StoredLum); - StoredLum = calloc( (int)((ModeSpec[CurrentPic.Mode].LineLen * ModeSpec[CurrentPic.Mode].NumLines + 1) * 44100), sizeof(guchar)); + StoredLum = calloc( (int)((ModeSpec[CurrentPic.Mode].LineTime * ModeSpec[CurrentPic.Mode].NumLines + 1) * 44100), sizeof(guchar)); if (StoredLum == NULL) { perror("Listen: Unable to allocate memory for Lum"); exit(EXIT_FAILURE); } // Allocate space for sync signal - HasSync = calloc((int)(ModeSpec[CurrentPic.Mode].LineLen * ModeSpec[CurrentPic.Mode].NumLines / (13.0/44100) +1), sizeof(gboolean)); + HasSync = calloc((int)(ModeSpec[CurrentPic.Mode].LineTime * ModeSpec[CurrentPic.Mode].NumLines / (13.0/44100) +1), sizeof(gboolean)); if (HasSync == NULL) { perror("Listen: Unable to allocate memory for sync signal"); exit(EXIT_FAILURE); @@ -169,7 +169,7 @@ void *Listen() { LumFile = fopen(lumfilename,"w"); if (LumFile == NULL) perror("Unable to open luma file for writing"); - fwrite(StoredLum,1,(ModeSpec[Mode].LineLen * ModeSpec[Mode].NumLines) * 44100,LumFile); + fwrite(StoredLum,1,(ModeSpec[Mode].LineTime * ModeSpec[Mode].NumLines) * 44100,LumFile); fclose(LumFile);*/ saveCurrentPic(); diff --git a/sync.c b/sync.c index 735b920..57177ae 100644 --- a/sync.c +++ b/sync.c @@ -17,7 +17,7 @@ */ double FindSync (guchar Mode, double Rate, int *Skip) { - int LineWidth = ModeSpec[Mode].LineLen / ModeSpec[Mode].SyncLen * 4; + int LineWidth = ModeSpec[Mode].LineTime / ModeSpec[Mode].SyncTime * 4; int x,y; int q, d, qMost, dMost; gushort xAcc[700] = {0}; @@ -36,7 +36,7 @@ double FindSync (guchar Mode, double Rate, int *Skip) { for (y=0; y 350) xmax -= 350; // Skip until the start of the line - s = xmax / 700.0 * ModeSpec[Mode].LineLen - ModeSpec[Mode].SyncLen; + s = xmax / 700.0 * ModeSpec[Mode].LineTime - ModeSpec[Mode].SyncTime; // (Scottie modes don't start lines with sync) if (Mode == S1 || Mode == S2 || Mode == SDX) - s = s - ModeSpec[Mode].PixelLen * ModeSpec[Mode].ImgWidth / 2.0 - + ModeSpec[Mode].PorchLen * 2; + s = s - ModeSpec[Mode].PixelTime * ModeSpec[Mode].ImgWidth / 2.0 + + ModeSpec[Mode].PorchTime * 2; *Skip = s * Rate; diff --git a/video.c b/video.c index 576acbb..e479b2d 100644 --- a/video.c +++ b/video.c @@ -62,27 +62,27 @@ gboolean GetVideo(guchar Mode, double Rate, int Skip, gboolean Redraw) { case R36: case R24: - ChanLen[0] = ModeSpec[Mode].PixelLen * ModeSpec[Mode].ImgWidth * 2; - ChanLen[1] = ChanLen[2] = ModeSpec[Mode].PixelLen * ModeSpec[Mode].ImgWidth; - ChanStart[0] = ModeSpec[Mode].SyncLen + ModeSpec[Mode].PorchLen; - ChanStart[1] = ChanStart[0] + ChanLen[0] + ModeSpec[Mode].SeparatorLen; + ChanLen[0] = ModeSpec[Mode].PixelTime * ModeSpec[Mode].ImgWidth * 2; + ChanLen[1] = ChanLen[2] = ModeSpec[Mode].PixelTime * ModeSpec[Mode].ImgWidth; + ChanStart[0] = ModeSpec[Mode].SyncTime + ModeSpec[Mode].PorchTime; + ChanStart[1] = ChanStart[0] + ChanLen[0] + ModeSpec[Mode].SeptrTime; ChanStart[2] = ChanStart[1]; break; case S1: case S2: case SDX: - ChanLen[0] = ChanLen[1] = ChanLen[2] = ModeSpec[Mode].PixelLen * ModeSpec[Mode].ImgWidth; - ChanStart[0] = ModeSpec[Mode].SeparatorLen; - ChanStart[1] = ChanStart[0] + ChanLen[0] + ModeSpec[Mode].SeparatorLen; - ChanStart[2] = ChanStart[1] + ChanLen[1] + ModeSpec[Mode].SyncLen + ModeSpec[Mode].PorchLen; + ChanLen[0] = ChanLen[1] = ChanLen[2] = ModeSpec[Mode].PixelTime * ModeSpec[Mode].ImgWidth; + ChanStart[0] = ModeSpec[Mode].SeptrTime; + ChanStart[1] = ChanStart[0] + ChanLen[0] + ModeSpec[Mode].SeptrTime; + ChanStart[2] = ChanStart[1] + ChanLen[1] + ModeSpec[Mode].SyncTime + ModeSpec[Mode].PorchTime; break; default: - ChanLen[0] = ChanLen[1] = ChanLen[2] = ModeSpec[Mode].PixelLen * ModeSpec[Mode].ImgWidth; - ChanStart[0] = ModeSpec[Mode].SyncLen + ModeSpec[Mode].PorchLen; - ChanStart[1] = ChanStart[0] + ChanLen[0] + ModeSpec[Mode].SeparatorLen; - ChanStart[2] = ChanStart[1] + ChanLen[1] + ModeSpec[Mode].SeparatorLen; + ChanLen[0] = ChanLen[1] = ChanLen[2] = ModeSpec[Mode].PixelTime * ModeSpec[Mode].ImgWidth; + ChanStart[0] = ModeSpec[Mode].SyncTime + ModeSpec[Mode].PorchTime; + ChanStart[1] = ChanStart[0] + ChanLen[0] + ModeSpec[Mode].SeptrTime; + ChanStart[2] = ChanStart[1] + ChanLen[1] + ModeSpec[Mode].SeptrTime; break; } @@ -118,7 +118,7 @@ gboolean GetVideo(guchar Mode, double Rate, int Skip, gboolean Redraw) { PixelGrid[PixelIdx].Channel = Channel; } - PixelGrid[PixelIdx].Time = (int)round(Rate * (y * ModeSpec[Mode].LineLen + ChanStart[Channel] + + PixelGrid[PixelIdx].Time = (int)round(Rate * (y * ModeSpec[Mode].LineTime + ChanStart[Channel] + (1.0*(x-.5)/ModeSpec[Mode].ImgWidth*ChanLen[PixelGrid[PixelIdx].Channel]))) + Skip; @@ -173,7 +173,7 @@ gboolean GetVideo(guchar Mode, double Rate, int Skip, gboolean Redraw) { gtk_image_set_from_pixbuf(GTK_IMAGE(gui.image_rx), pixbuf_disp); gdk_threads_leave(); - Length = ModeSpec[Mode].LineLen * ModeSpec[Mode].NumLines * 44100; + Length = ModeSpec[Mode].LineTime * ModeSpec[Mode].NumLines * 44100; SyncTargetBin = GetBin(1200+CurrentPic.HedrShift, FFTLen); Abort = FALSE; SyncSampleNum = 0;