added gamma_test

This commit is contained in:
Vincent-FK 2020-10-13 15:19:43 +02:00
parent cb331d8b01
commit 040c31924a
11 changed files with 131 additions and 6 deletions

View File

@ -9,7 +9,8 @@ prodScreen_speakerTest.c \
prodScreen_ledTest.c \ prodScreen_ledTest.c \
prodScreen_magnetTest.c \ prodScreen_magnetTest.c \
prodScreen_validation.c \ prodScreen_validation.c \
prodScreen_showImage.c prodScreen_showImage.c \
prodScreen_gamma.c
# Output # Output
EXEC=funkey_prod_screens EXEC=funkey_prod_screens

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
ProdResources/gamegear.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
ProdResources/gba.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View File

@ -26,7 +26,8 @@ static s_prod_test prod_tests[] = {
{"LED", launch_prod_screen_LED, 0}, {"LED", launch_prod_screen_LED, 0},
{"MAGNET", launch_prod_screen_magnet, 0}, {"MAGNET", launch_prod_screen_magnet, 0},
{"VALIDATE", launch_prod_screen_validation, 0}, {"VALIDATE", launch_prod_screen_validation, 0},
{"SHOW_IMAGE", launch_prod_screen_showImage, 1} {"SHOW_IMAGE", launch_prod_screen_showImage, 1},
{"GAMMA", launch_prod_screen_gamma, 0}
}; };
static int idx_current_prod_test = 0; static int idx_current_prod_test = 0;

View File

@ -16,6 +16,7 @@
#include "prodScreen_magnetTest.h" #include "prodScreen_magnetTest.h"
#include "prodScreen_validation.h" #include "prodScreen_validation.h"
#include "prodScreen_showImage.h" #include "prodScreen_showImage.h"
#include "prodScreen_gamma.h"
/// Defines /// Defines
@ -42,10 +43,6 @@
#define FONT_NAME_INFO FONT_NAME_TITLE #define FONT_NAME_INFO FONT_NAME_TITLE
#define FONT_SIZE_INFO 18 #define FONT_SIZE_INFO 18
#define IMG_CONSOLE_LAYOUT FOLDER_RESSOURCES"/funkey_with_buttons.png"
#define IMG_BUTTON_LR_GREEN FOLDER_RESSOURCES"/button_LR_green.png"
#define IMG_BUTTON_NORMAL_GREEN FOLDER_RESSOURCES"/button_round_green.png"
typedef struct typedef struct
{ {
char *cmd_line_argument; char *cmd_line_argument;

View File

@ -1,6 +1,10 @@
#ifndef __PROD_SCREEN_BUTTONS__ #ifndef __PROD_SCREEN_BUTTONS__
#define __PROD_SCREEN_BUTTONS__ #define __PROD_SCREEN_BUTTONS__
#define IMG_CONSOLE_LAYOUT FOLDER_RESSOURCES"/funkey_with_buttons.png"
#define IMG_BUTTON_LR_GREEN FOLDER_RESSOURCES"/button_LR_green.png"
#define IMG_BUTTON_NORMAL_GREEN FOLDER_RESSOURCES"/button_round_green.png"
int launch_prod_screen_buttons(int argc, char *argv[]); int launch_prod_screen_buttons(int argc, char *argv[]);
#endif //__PROD_SCREEN_BUTTONS__ #endif //__PROD_SCREEN_BUTTONS__

113
prodScreen_gamma.c Normal file
View File

@ -0,0 +1,113 @@
#include "funkey_prod_screens.h"
/// Defines
/// Static variables
/// -------------- FUNCTIONS IMPLEMENTATION --------------
int launch_prod_screen_gamma(int argc, char *argv[]){
SDL_Event event;
SDL_Surface *text_surface = NULL;
SDL_Rect text_pos;
int res = EXIT_FAILURE;
int stop_menu_loop = 0;
/* Fill screen white */
SDL_FillRect(hw_surface, NULL, SDL_MapRGBA(hw_surface->format, bg_color.r, bg_color.g, bg_color.b, 0) );
#if 0
/* Write Title */
text_surface = TTF_RenderText_Shaded(font_info, "GAMMA", text_color, bg_color);
int height_title = text_surface->h;
text_pos.x = hw_surface->w/2 - text_surface->w/2;
text_pos.y = 0;
SDL_BlitSurface(text_surface, NULL, hw_surface, &text_pos);
SDL_FreeSurface(text_surface);
/* Write:
"L=FAIL"
*/
SDL_Color red_color={220,20,20};
text_surface = TTF_RenderText_Shaded(font_info, "L=FAIL", red_color, bg_color);
int height_buttons = text_surface->h;
text_pos.x = X_PADDING;
text_pos.y = hw_surface->h - text_surface->h;
SDL_BlitSurface(text_surface, NULL, hw_surface, &text_pos);
SDL_FreeSurface(text_surface);
/* Write:
"R=OK"
*/
SDL_Color green_color={20,220,20};
text_surface = TTF_RenderText_Shaded(font_info, "R=DONE", green_color, bg_color);
text_pos.x = hw_surface->w - text_surface->w - X_PADDING;
text_pos.y = hw_surface->h - text_surface->h;
SDL_BlitSurface(text_surface, NULL, hw_surface, &text_pos);
SDL_FreeSurface(text_surface);
#endif
/* Load Img */
SDL_Surface *image=IMG_Load(IMG_CONSOLE_COLOR_CHART);
if(!image) {
printf("ERROR IMG_Load: %s\n", IMG_GetError());
printf("IMG path is: %s\n", IMG_CONSOLE_COLOR_CHART);
exit(1);
}
SDL_SetAlpha( image, 0, SDL_ALPHA_OPAQUE );
/* Convert to RGBA 32bits*/
SDL_Surface *image_rgb_RGBA32b = SDL_CreateRGBSurface(SDL_SWSURFACE, image->w, image->h, 32,
image->format->Rmask, image->format->Gmask,
image->format->Bmask, image->format->Amask);
SDL_BlitSurface(image, NULL, image_rgb_RGBA32b, NULL);
SDL_FreeSurface(image);
/* Resize image */
SDL_Surface *image_RGBA32b_resized = zoomSurface(image_rgb_RGBA32b, hw_surface->w, hw_surface->h);
SDL_FreeSurface(image_rgb_RGBA32b);
/* Blit image */
SDL_BlitSurface(image_RGBA32b_resized, NULL, hw_surface, NULL);
SDL_FreeSurface(image_RGBA32b_resized);
/// -------- Main loop ---------
while (!stop_menu_loop)
{
/// -------- Handle Keyboard Events ---------
while (SDL_PollEvent(&event))
switch(event.type)
{
case SDL_QUIT:
stop_menu_loop = 1;
break;
case SDL_KEYDOWN:
switch (event.key.keysym.sym)
{
case SDLK_m:
stop_menu_loop = 1;
res = ERROR_MANUAL_FAIL;
break;
case SDLK_n:
case SDLK_ESCAPE:
stop_menu_loop = 1;
res = 0;
break;
default:
break;
}
}
/* To investigate but with Buildroot, we need this: */
SDL_Flip(hw_surface);
/* Sleep for some time */
SDL_Delay(SLEEP_PERIOD_MS);
}
return res;
}

8
prodScreen_gamma.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef __PROD_SCREEN_GAMMA__
#define __PROD_SCREEN_GAMMA__
#define IMG_CONSOLE_COLOR_CHART FOLDER_RESSOURCES"/color_chart.png"
int launch_prod_screen_gamma(int argc, char *argv[]);
#endif //__PROD_SCREEN_GAMMA__

View File

@ -2,5 +2,6 @@
#define __PROD_SCREEN_SHOW_IMAGE__ #define __PROD_SCREEN_SHOW_IMAGE__
int launch_prod_screen_showImage(int argc, char *argv[]); int launch_prod_screen_showImage(int argc, char *argv[]);
SDL_Surface * zoomSurface(SDL_Surface *src_surface, int dst_width, int dst_height);
#endif //__PROD_SCREEN_SHOW_IMAGE__ #endif //__PROD_SCREEN_SHOW_IMAGE__