summaryrefslogtreecommitdiff
path: root/apps/recorder
diff options
context:
space:
mode:
Diffstat (limited to 'apps/recorder')
-rw-r--r--apps/recorder/bmp.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/apps/recorder/bmp.c b/apps/recorder/bmp.c
index 8fcd8ca92e..9f83748a82 100644
--- a/apps/recorder/bmp.c
+++ b/apps/recorder/bmp.c
@@ -423,6 +423,24 @@ void output_row_8_native(uint32_t row, void * row_in,
423 } 423 }
424#endif /* LCD_PIXELFORMAT */ 424#endif /* LCD_PIXELFORMAT */
425#elif LCD_DEPTH == 16 425#elif LCD_DEPTH == 16
426#if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE
427 /* M:Robe 500 */
428 fb_data *dest = (fb_data *)ctx->bm->data + row;
429 int delta = 127;
430 unsigned r, g, b;
431 for (col = 0; col < ctx->bm->width; col++) {
432 if (ctx->dither)
433 delta = DITHERXDY(col,dy);
434 r = qp->red;
435 g = qp->green;
436 b = (qp++)->blue;
437 r = (31 * r + (r >> 3) + delta) >> 8;
438 g = (63 * g + (g >> 2) + delta) >> 8;
439 b = (31 * b + (b >> 3) + delta) >> 8;
440 *dest = LCD_RGBPACK_LCD(r, g, b);
441 dest += ctx->bm->height;
442 }
443#else
426 /* iriver h300, colour iPods, X5 */ 444 /* iriver h300, colour iPods, X5 */
427 fb_data *dest = (fb_data *)ctx->bm->data + fb_width * row; 445 fb_data *dest = (fb_data *)ctx->bm->data + fb_width * row;
428 int delta = 127; 446 int delta = 127;
@@ -438,6 +456,7 @@ void output_row_8_native(uint32_t row, void * row_in,
438 b = (31 * b + (b >> 3) + delta) >> 8; 456 b = (31 * b + (b >> 3) + delta) >> 8;
439 *dest++ = LCD_RGBPACK_LCD(r, g, b); 457 *dest++ = LCD_RGBPACK_LCD(r, g, b);
440 } 458 }
459#endif
441#endif /* LCD_DEPTH */ 460#endif /* LCD_DEPTH */
442} 461}
443#endif 462#endif