Adding BaseMode and postProcessScopeImage()

This commit is contained in:
Marek Ossowski 2025-08-22 22:13:54 +02:00
parent 1a4ffac26e
commit 5b20da27a0
8 changed files with 33 additions and 6 deletions

View file

@ -0,0 +1,16 @@
/*
Base class for all modes
Copyright 2025 Marek Ossowski <marek0ossowski@gmail.com>
*/
package xdsopl.robot36;
import android.graphics.Bitmap;
public abstract class BaseMode implements Mode {
@Override
public Bitmap postProcessScopeImage(Bitmap bmp) {
return bmp;
}
}

View file

@ -828,7 +828,14 @@ public class MainActivity extends AppCompatActivity {
int height = scopeBuffer.height / 2;
int stride = scopeBuffer.width;
int offset = stride * scopeBuffer.line;
storeBitmap(Bitmap.createBitmap(scopeBuffer.pixels, offset, stride, width, height, Bitmap.Config.ARGB_8888));
Bitmap bmp = Bitmap.createBitmap(scopeBuffer.pixels, offset, stride, width, height, Bitmap.Config.ARGB_8888);
if (decoder != null)
{
bmp = decoder.currentMode.postProcessScopeImage(bmp);
}
storeBitmap(bmp);
}
private void createScope(Configuration config) {

View file

@ -6,6 +6,8 @@ Copyright 2024 Ahmet Inan <xdsopl@gmail.com>
package xdsopl.robot36;
import android.graphics.Bitmap;
public interface Mode {
String getName();
@ -21,6 +23,8 @@ public interface Mode {
int getScanLineSamples();
Bitmap postProcessScopeImage(Bitmap bmp);
void resetState();
/**

View file

@ -6,7 +6,7 @@ Copyright 2024 Ahmet Inan <xdsopl@gmail.com>
package xdsopl.robot36;
public class PaulDon implements Mode {
public class PaulDon extends BaseMode {
private final ExponentialMovingAverage lowPassFilter;
private final int horizontalPixels;
private final int verticalPixels;

View file

@ -6,7 +6,7 @@ Copyright 2024 Ahmet Inan <xdsopl@gmail.com>
package xdsopl.robot36;
public class RGBDecoder implements Mode {
public class RGBDecoder extends BaseMode {
private final ExponentialMovingAverage lowPassFilter;
private final int horizontalPixels;
private final int verticalPixels;

View file

@ -6,7 +6,7 @@ Copyright 2024 Ahmet Inan <xdsopl@gmail.com>
package xdsopl.robot36;
public class RawDecoder implements Mode {
public class RawDecoder extends BaseMode {
private final ExponentialMovingAverage lowPassFilter;
private final int smallPictureMaxSamples;
private final int mediumPictureMaxSamples;

View file

@ -6,7 +6,7 @@ Copyright 2024 Ahmet Inan <xdsopl@gmail.com>
package xdsopl.robot36;
public class Robot_36_Color implements Mode {
public class Robot_36_Color extends BaseMode {
private final ExponentialMovingAverage lowPassFilter;
private final int horizontalPixels;
private final int verticalPixels;

View file

@ -6,7 +6,7 @@ Copyright 2024 Ahmet Inan <xdsopl@gmail.com>
package xdsopl.robot36;
public class Robot_72_Color implements Mode {
public class Robot_72_Color extends BaseMode {
private final ExponentialMovingAverage lowPassFilter;
private final int horizontalPixels;
private final int verticalPixels;