From ae35d841d34a4e87b7afc12847af9fc240015edc Mon Sep 17 00:00:00 2001 From: Ahmet Inan Date: Fri, 13 Feb 2015 17:43:47 +0100 Subject: [PATCH] do not overwrite user blur setting on mode change --- app/src/main/rs/blur.rsh | 4 ++-- app/src/main/rs/blur_generated.rsh | 5 ++--- app/src/main/rs/modes.rsh | 2 +- app/src/main/rs/state.rsh | 2 +- utils/blur.c | 9 ++++++--- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/src/main/rs/blur.rsh b/app/src/main/rs/blur.rsh index c0a81d3..7ebe90e 100644 --- a/app/src/main/rs/blur.rsh +++ b/app/src/main/rs/blur.rsh @@ -23,12 +23,12 @@ limitations under the License. void incr_blur() { - blur_power = blur_power < 6 ? blur_power + 1 : blur_power; + user_blur = user_blur < 6 ? user_blur + 1 : user_blur; } void decr_blur() { - blur_power = blur_power >= 0 ? blur_power - 1 : blur_power; + user_blur = user_blur >= 0 ? user_blur - 1 : user_blur; } #endif diff --git a/app/src/main/rs/blur_generated.rsh b/app/src/main/rs/blur_generated.rsh index a7afb4d..edc3e97 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) { + switch (blur_power + user_blur) { case 0: if ((p-1) < begin || end <= (p+1) || (i-1) < 0 || buffer_length <= (i+1)) { if (begin <= (p-1)) { @@ -741,6 +741,7 @@ static uchar value_blur(int pixel, int begin, int end) 8 * value_buffer[i+32] + 6 * value_buffer[i+33]) >> 14; case 6: + default: if ((p-65) < begin || end <= (p+65) || (i-65) < 0 || buffer_length <= (i+65)) { if (begin <= (p-65)) { weight_sum += 3; @@ -1399,8 +1400,6 @@ static uchar value_blur(int pixel, int begin, int end) 4 * value_buffer[i+63] + 3 * value_buffer[i+64] + 3 * value_buffer[i+65]) >> 14; - default: - return value_buffer[i]; } return 0; } diff --git a/app/src/main/rs/modes.rsh b/app/src/main/rs/modes.rsh index c2990c8..29c24b7 100644 --- a/app/src/main/rs/modes.rsh +++ b/app/src/main/rs/modes.rsh @@ -27,7 +27,7 @@ void toggle_debug() { debug_mode ^= 1; } void raw_mode() { - blur_power = -1; + blur_power = 0; *current_mode = mode_raw; current_decoder = decoder_raw; freerun_height = maximum_height; diff --git a/app/src/main/rs/state.rsh b/app/src/main/rs/state.rsh index a4e54dc..735f603 100644 --- a/app/src/main/rs/state.rsh +++ b/app/src/main/rs/state.rsh @@ -24,7 +24,7 @@ static int disable_analyzer; static int automatic_mode_detection; static int debug_mode; static int current_decoder; -static int blur_power, free_running; +static int user_blur, blur_power, free_running; static int sample_rate, sync_pos, prev_sync_pos; static int maximum_variance, maximum_absolute_deviaton; static int minimum_sync_length; diff --git a/utils/blur.c b/utils/blur.c index 43ca1c6..bdb056a 100644 --- a/utils/blur.c +++ b/utils/blur.c @@ -63,11 +63,14 @@ 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) {\n"); - for (int i = 0; i < 7; ++i) { + printf("\tswitch (blur_power + user_blur) {\n"); + int max_power = 6; + for (int i = 0; i <= max_power; ++i) { printf("\tcase %d:\n", i); + if (i == max_power) + printf("\tdefault:\n"); emit((1 << i) | 1); } - printf("\tdefault:\n\t\treturn value_buffer[i];\n\t}\n\treturn 0;\n}\n"); + printf("\t}\n\treturn 0;\n}\n"); return 0; }