mirror of
https://github.com/xdsopl/robot36.git
synced 2025-12-06 07:12:07 +01:00
added option to reset decoder on header detection
This commit is contained in:
parent
daf4d88702
commit
214b9913a4
|
|
@ -348,6 +348,7 @@ public class Decoder {
|
|||
lines = last20msScanLines;
|
||||
}
|
||||
if (mode != null && pulses != null && lines != null) {
|
||||
mode.reset();
|
||||
lastMode = mode;
|
||||
lastSyncPulseIndex = mode.getFirstSyncPulseIndex();
|
||||
lastScanLineSamples = mode.getScanLineSamples();
|
||||
|
|
|
|||
|
|
@ -15,5 +15,7 @@ public interface Mode {
|
|||
|
||||
int getScanLineSamples();
|
||||
|
||||
void reset();
|
||||
|
||||
boolean decodeScanLine(PixelBuffer pixelBuffer, float[] scratchBuffer, float[] scanLineBuffer, int scopeBufferWidth, int syncPulseIndex, int scanLineSamples, float frequencyOffset);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,6 +70,10 @@ public class PaulDon implements Mode {
|
|||
return scanLineSamples;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean decodeScanLine(PixelBuffer pixelBuffer, float[] scratchBuffer, float[] scanLineBuffer, int scopeBufferWidth, int syncPulseIndex, int scanLineSamples, float frequencyOffset) {
|
||||
if (syncPulseIndex + beginSamples < 0 || syncPulseIndex + endSamples > scanLineBuffer.length)
|
||||
|
|
|
|||
|
|
@ -63,6 +63,10 @@ public class RGBDecoder implements Mode {
|
|||
return scanLineSamples;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean decodeScanLine(PixelBuffer pixelBuffer, float[] scratchBuffer, float[] scanLineBuffer, int scopeBufferWidth, int syncPulseIndex, int scanLineSamples, float frequencyOffset) {
|
||||
if (syncPulseIndex + beginSamples < 0 || syncPulseIndex + endSamples > scanLineBuffer.length)
|
||||
|
|
|
|||
|
|
@ -41,6 +41,10 @@ public class RawDecoder implements Mode {
|
|||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean decodeScanLine(PixelBuffer pixelBuffer, float[] scratchBuffer, float[] scanLineBuffer, int scopeBufferWidth, int syncPulseIndex, int scanLineSamples, float frequencyOffset) {
|
||||
if (syncPulseIndex < 0 || syncPulseIndex + scanLineSamples > scanLineBuffer.length)
|
||||
|
|
|
|||
|
|
@ -73,6 +73,11 @@ public class Robot_36_Color implements Mode {
|
|||
return scanLineSamples;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset() {
|
||||
lastEven = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean decodeScanLine(PixelBuffer pixelBuffer, float[] scratchBuffer, float[] scanLineBuffer, int scopeBufferWidth, int syncPulseIndex, int scanLineSamples, float frequencyOffset) {
|
||||
if (syncPulseIndex + beginSamples < 0 || syncPulseIndex + endSamples > scanLineBuffer.length)
|
||||
|
|
|
|||
|
|
@ -71,6 +71,10 @@ public class Robot_72_Color implements Mode {
|
|||
return scanLineSamples;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean decodeScanLine(PixelBuffer pixelBuffer, float[] scratchBuffer, float[] scanLineBuffer, int scopeBufferWidth, int syncPulseIndex, int scanLineSamples, float frequencyOffset) {
|
||||
if (syncPulseIndex + beginSamples < 0 || syncPulseIndex + endSamples > scanLineBuffer.length)
|
||||
|
|
|
|||
Loading…
Reference in a new issue