From 487634143132c3fcba8b1552ba318680f822e309 Mon Sep 17 00:00:00 2001 From: Maximilian Stiefel Date: Sun, 14 Jun 2020 15:28:13 +0200 Subject: [PATCH] Commong timing modes generation implemented --- edid_stockach.json | 19 ++++++++ main | Bin 49496 -> 53640 bytes main.c | 116 ++++++++++++++++++++++++++++++++++++++------- 3 files changed, 118 insertions(+), 17 deletions(-) diff --git a/edid_stockach.json b/edid_stockach.json index df1343e..5860682 100644 --- a/edid_stockach.json +++ b/edid_stockach.json @@ -45,5 +45,24 @@ "blue_y": 0.065, "white_x": 0.3125, "white_y": 0.329 + }, + "common_timing_modes": { + "m720_400_70": true, + "m720_400_88": false, + "m640_480_60": true, + "m640_480_67": false, + "m640_480_72": false, + "m640_480_75": true, + "m800_600_56": true, + "m800_600_60": true, + "m800_600_72": false, + "m800_600_75": true, + "m832_624_75": true, + "m1024_768_87": false, + "m1024_768_60": true, + "m1024_768_70": false, + "m1024_768_75": true, + "m1280_1024_75": true, + "m1152_870_75": true } } diff --git a/main b/main index 765140e27cb50e0edb50b8fb3251ee2225cc6850..2c9646fd6aee99ff1795b9b6e035a58d0677f4f9 100755 GIT binary patch delta 12012 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 E09X)8M*si- delta 10301 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 lQS;%f, %d\n", multi_use_flt, multi_use_int); edid->chromaticity_coordinates.blue_white_lsbs.white_x = 0x3 & multi_use_int; edid->chromaticity_coordinates.white_x_msbs = 0xFF & multi_use_int >> 2; // White y @@ -473,7 +472,6 @@ static int generate_chromaticity_coordinates( edid_t* edid, "{chromaticity_coordinates: {white_y: %f}}", &multi_use_flt); multi_use_int = stp_round(1024.0f * multi_use_flt); - printf("white_y>%f, %d\n", multi_use_flt, multi_use_int); edid->chromaticity_coordinates.blue_white_lsbs.white_y = 0x3 & multi_use_int; edid->chromaticity_coordinates.white_y_msbs = 0xFF & multi_use_int >> 2; } else { @@ -483,6 +481,88 @@ static int generate_chromaticity_coordinates( edid_t* edid, return 0; } +static int generate_common_timing_modes( edid_t* edid, + unsigned char* json_str, + size_t json_len) +{ + bool multi_use_bool; + + if (edid && json_str) { + json_scanf( json_str, json_len, + "{common_timing_modes: {m720_400_70: %B}}", + &multi_use_bool); + edid->common_timing_modes.m720_400_70 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m720_400_88: %B}}", + &multi_use_bool); + edid->common_timing_modes.m720_400_88 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m640_480_60: %B}}", + &multi_use_bool); + edid->common_timing_modes.m640_480_60 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m640_480_67: %B}}", + &multi_use_bool); + edid->common_timing_modes.m640_480_67 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m640_480_72: %B}}", + &multi_use_bool); + edid->common_timing_modes.m640_480_72 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m640_480_75: %B}}", + &multi_use_bool); + edid->common_timing_modes.m640_480_75 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m800_600_56: %B}}", + &multi_use_bool); + edid->common_timing_modes.m800_600_56 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m800_600_60: %B}}", + &multi_use_bool); + edid->common_timing_modes.m800_600_60 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m800_600_72: %B}}", + &multi_use_bool); + edid->common_timing_modes.m800_600_72 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m800_600_75: %B}}", + &multi_use_bool); + edid->common_timing_modes.m800_600_75 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m832_624_75: %B}}", + &multi_use_bool); + edid->common_timing_modes.m832_624_75 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m1024_768_87: %B}}", + &multi_use_bool); + edid->common_timing_modes.m1024_768_87 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m1024_768_60: %B}}", + &multi_use_bool); + edid->common_timing_modes.m1024_768_60 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m1024_768_70: %B}}", + &multi_use_bool); + edid->common_timing_modes.m1024_768_70 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m1024_768_75: %B}}", + &multi_use_bool); + edid->common_timing_modes.m1024_768_75 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m1280_1024_75: %B}}", + &multi_use_bool); + edid->common_timing_modes.m1280_1024_75 = 0x1 & multi_use_bool; + json_scanf( json_str, json_len, + "{common_timing_modes: {m1152_870_75: %B}}", + &multi_use_bool); + edid->common_timing_modes.m1152_870_75 = 0x1 & multi_use_bool; + } else { + printf("Error: One of either edid or json_str is NULL.\n"); + return 1; + } + return 0; +} + int main(void) { //uint8_t edith[EDID_LENGTH]; @@ -500,6 +580,8 @@ int main(void) generate_header(&edith, mystr, len); generate_basic_display_parameters(&edith, mystr, len); generate_chromaticity_coordinates(&edith, mystr, len); + generate_common_timing_modes(&edith, mystr, len); disp_buf((uint8_t*)&edith, EDID_LENGTH); + free(mystr); return 0; }