Commit 7c7e280aa6766ac34c6dbf4a5a2c6b14554ccc3f

Authored by Nikita Kiryanov
Committed by Anatolij Gustschin
1 parent d3a555eddb

common lcd: simplify lcd_display

Simplify lcd_display by centralizing code into a funciton

Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>

Showing 1 changed file with 18 additions and 9 deletions Side-by-side Diff

... ... @@ -607,6 +607,22 @@
607 607  
608 608 #ifdef CONFIG_SPLASH_SCREEN_ALIGN
609 609 #define BMP_ALIGN_CENTER 0x7FFF
  610 +
  611 +static void splash_align_axis(int *axis, unsigned long panel_size,
  612 + unsigned long picture_size)
  613 +{
  614 + unsigned long panel_picture_delta = panel_size - picture_size;
  615 + unsigned long axis_alignment;
  616 +
  617 + if (*axis == BMP_ALIGN_CENTER)
  618 + axis_alignment = panel_picture_delta / 2;
  619 + else if (*axis < 0)
  620 + axis_alignment = panel_picture_delta + *axis + 1;
  621 + else
  622 + return;
  623 +
  624 + *axis = max(0, axis_alignment);
  625 +}
610 626 #endif
611 627  
612 628 int lcd_display_bitmap(ulong bmp_image, int x, int y)
... ... @@ -722,15 +738,8 @@
722 738 padded_line = (width&0x3) ? ((width&~0x3)+4) : (width);
723 739  
724 740 #ifdef CONFIG_SPLASH_SCREEN_ALIGN
725   - if (x == BMP_ALIGN_CENTER)
726   - x = max(0, (pwidth - width) / 2);
727   - else if (x < 0)
728   - x = max(0, pwidth - width + x + 1);
729   -
730   - if (y == BMP_ALIGN_CENTER)
731   - y = max(0, (panel_info.vl_row - height) / 2);
732   - else if (y < 0)
733   - y = max(0, panel_info.vl_row - height + y + 1);
  741 + splash_align_axis(&x, pwidth, width);
  742 + splash_align_axis(&y, panel_info.vl_row, height);
734 743 #endif /* CONFIG_SPLASH_SCREEN_ALIGN */
735 744  
736 745 if ((x + width) > pwidth)