diff --git a/app/src/main/java/xdsopl/robot36/Decoder.java b/app/src/main/java/xdsopl/robot36/Decoder.java index 9d86bfd..2636d45 100644 --- a/app/src/main/java/xdsopl/robot36/Decoder.java +++ b/app/src/main/java/xdsopl/robot36/Decoder.java @@ -160,8 +160,7 @@ public class Decoder { void clear_image() { rsDecoder.invoke_reset_buffer(); } void toggle_scaling() { image.intScale ^= true; } - void softer_image() { rsDecoder.invoke_incr_blur(); } - void sharper_image() { rsDecoder.invoke_decr_blur(); } + void adjust_blur(int blur) { rsDecoder.invoke_adjust_blur(blur); } void toggle_debug() { rsDecoder.invoke_toggle_debug(); } void toggle_auto() { rsDecoder.invoke_toggle_auto(); } void enable_analyzer(boolean enable) { rsDecoder.invoke_enable_analyzer((enableAnalyzer = enable) ? 1 : 0); } diff --git a/app/src/main/java/xdsopl/robot36/MainActivity.java b/app/src/main/java/xdsopl/robot36/MainActivity.java index 2bafc67..9767b7a 100644 --- a/app/src/main/java/xdsopl/robot36/MainActivity.java +++ b/app/src/main/java/xdsopl/robot36/MainActivity.java @@ -227,11 +227,26 @@ public class MainActivity extends Activity { case R.id.action_clear_image: decoder.clear_image(); return true; - case R.id.action_softer_image: - decoder.softer_image(); + case R.id.action_sharpest_image: + decoder.adjust_blur(-3); return true; case R.id.action_sharper_image: - decoder.sharper_image(); + decoder.adjust_blur(-2); + return true; + case R.id.action_sharp_image: + decoder.adjust_blur(-1); + return true; + case R.id.action_neutral_image: + decoder.adjust_blur(0); + return true; + case R.id.action_soft_image: + decoder.adjust_blur(1); + return true; + case R.id.action_softer_image: + decoder.adjust_blur(2); + return true; + case R.id.action_softest_image: + decoder.adjust_blur(3); return true; case R.id.action_toggle_scaling: decoder.toggle_scaling(); diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index 8d8ff88..68d8259 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -27,8 +27,15 @@ android:icon="@android:drawable/ic_menu_close_clear_cancel" android:showAsAction="ifRoom" /> - - + + + + + + + + + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index baf8b6e..abe5c41 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -26,8 +26,14 @@ Scottie2 Modus ScottieDX Modus WraaseSC2 180 Modus - Weicheres Bild - Schärferes Bild + Bildschärfe Anpassen + am schärfsten + schärfer + scharf + neutral + weich + weicher + am weichsten Skalierung umschalten Dekodierer Ansicht Spektrum Ansicht diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9a6a163..e29b0cf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -26,8 +26,14 @@ Scottie2 Mode ScottieDX Mode WraaseSC2 180 Mode - Softer Image - Sharper Image + Image Sharpness + sharpest + sharper + sharp + neutral + soft + softer + softest Toggle Scaling Decoder View Spectrum View diff --git a/app/src/main/rs/blur.rsh b/app/src/main/rs/blur.rsh index 7ebe90e..5c8b282 100644 --- a/app/src/main/rs/blur.rsh +++ b/app/src/main/rs/blur.rsh @@ -21,14 +21,9 @@ limitations under the License. #include "state.rsh" #include "blur_generated.rsh" -void incr_blur() +void adjust_blur(int blur) { - user_blur = user_blur < 6 ? user_blur + 1 : user_blur; -} - -void decr_blur() -{ - user_blur = user_blur >= 0 ? user_blur - 1 : user_blur; + user_blur = clamp(blur, -3, 3); } #endif diff --git a/app/src/main/rs/blur_generated.rsh b/app/src/main/rs/blur_generated.rsh index edc3e97..349e920 100644 --- a/app/src/main/rs/blur_generated.rsh +++ b/app/src/main/rs/blur_generated.rsh @@ -5,7 +5,7 @@ static uchar value_blur(int pixel, int begin, int end) int i = p & buffer_mask; int weight_sum = 0; int value_sum = 0; - switch (blur_power + user_blur) { + switch (max(0, blur_power + user_blur)) { case 0: if ((p-1) < begin || end <= (p+1) || (i-1) < 0 || buffer_length <= (i+1)) { if (begin <= (p-1)) { diff --git a/utils/blur.c b/utils/blur.c index bdb056a..f91c767 100644 --- a/utils/blur.c +++ b/utils/blur.c @@ -63,7 +63,7 @@ int main() printf("\tint i = p & buffer_mask;\n"); printf("\tint weight_sum = 0;\n"); printf("\tint value_sum = 0;\n"); - printf("\tswitch (blur_power + user_blur) {\n"); + printf("\tswitch (max(0, blur_power + user_blur)) {\n"); int max_power = 6; for (int i = 0; i <= max_power; ++i) { printf("\tcase %d:\n", i);