summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/recorder/resize.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/apps/recorder/resize.c b/apps/recorder/resize.c
index bae72c8113..1846f5acb1 100644
--- a/apps/recorder/resize.c
+++ b/apps/recorder/resize.c
@@ -743,6 +743,29 @@ static void output_row_32_native(uint32_t row, void * row_in,
743 } 743 }
744#endif /* LCD_PIXELFORMAT */ 744#endif /* LCD_PIXELFORMAT */
745#elif LCD_DEPTH == 16 745#elif LCD_DEPTH == 16
746
747#if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE
748 /* M:Robe 500 */
749 (void) fb_width;
750 fb_data *dest = (fb_data *)ctx->bm->data + row;
751 int delta = 127;
752 unsigned r, g, b;
753 struct uint32_rgb q0;
754
755 for (col = 0; col < ctx->bm->width; col++) {
756 if (ctx->dither)
757 delta = DITHERXDY(col,dy);
758 q0 = *qp++;
759 r = SC_OUT(q0.r, ctx);
760 g = SC_OUT(q0.g, ctx);
761 b = SC_OUT(q0.b, ctx);
762 r = (31 * r + (r >> 3) + delta) >> 8;
763 g = (63 * g + (g >> 2) + delta) >> 8;
764 b = (31 * b + (b >> 3) + delta) >> 8;
765 *dest = LCD_RGBPACK_LCD(r, g, b);
766 dest += ctx->bm->height;
767 }
768#else
746 /* iriver h300, colour iPods, X5 */ 769 /* iriver h300, colour iPods, X5 */
747 fb_data *dest = (fb_data *)ctx->bm->data + fb_width * row; 770 fb_data *dest = (fb_data *)ctx->bm->data + fb_width * row;
748 int delta = 127; 771 int delta = 127;
@@ -761,6 +784,8 @@ static void output_row_32_native(uint32_t row, void * row_in,
761 b = (31 * b + (b >> 3) + delta) >> 8; 784 b = (31 * b + (b >> 3) + delta) >> 8;
762 *dest++ = LCD_RGBPACK_LCD(r, g, b); 785 *dest++ = LCD_RGBPACK_LCD(r, g, b);
763 } 786 }
787#endif
788
764#endif /* LCD_DEPTH */ 789#endif /* LCD_DEPTH */
765} 790}
766#endif 791#endif