diff options
Diffstat (limited to 'apps/plugins/jpeg.c')
-rw-r--r-- | apps/plugins/jpeg.c | 72 |
1 files changed, 30 insertions, 42 deletions
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c index 7ca59b29cd..5060996639 100644 --- a/apps/plugins/jpeg.c +++ b/apps/plugins/jpeg.c | |||
@@ -1523,7 +1523,7 @@ void cleanup(void *parameter) | |||
1523 | { | 1523 | { |
1524 | (void)parameter; | 1524 | (void)parameter; |
1525 | 1525 | ||
1526 | gray_show_display(false); | 1526 | gray_show(false); |
1527 | } | 1527 | } |
1528 | 1528 | ||
1529 | /* interactively scroll around the image */ | 1529 | /* interactively scroll around the image */ |
@@ -1548,13 +1548,12 @@ int scroll_bmp(struct t_disp* pdisp) | |||
1548 | move = MIN(10, pdisp->x); | 1548 | move = MIN(10, pdisp->x); |
1549 | if (move > 0) | 1549 | if (move > 0) |
1550 | { | 1550 | { |
1551 | gray_scroll_right(move, false); /* scroll right */ | 1551 | gray_ub_scroll_right(move); /* scroll right */ |
1552 | pdisp->x -= move; | 1552 | pdisp->x -= move; |
1553 | gray_drawgraymap( | 1553 | gray_ub_gray_bitmap_part( |
1554 | pdisp->bitmap + pdisp->y * pdisp->stride + pdisp->x, | 1554 | pdisp->bitmap, pdisp->x, pdisp->y, pdisp->stride, |
1555 | 0, MAX(0, (LCD_HEIGHT-pdisp->height)/2), // x, y | 1555 | 0, MAX(0, (LCD_HEIGHT-pdisp->height)/2), /* x, y */ |
1556 | move, MIN(LCD_HEIGHT, pdisp->height), // w, h | 1556 | move, MIN(LCD_HEIGHT, pdisp->height)); /* w, h */ |
1557 | pdisp->stride); | ||
1558 | } | 1557 | } |
1559 | break; | 1558 | break; |
1560 | 1559 | ||
@@ -1563,13 +1562,13 @@ int scroll_bmp(struct t_disp* pdisp) | |||
1563 | move = MIN(10, pdisp->width - pdisp->x - LCD_WIDTH); | 1562 | move = MIN(10, pdisp->width - pdisp->x - LCD_WIDTH); |
1564 | if (move > 0) | 1563 | if (move > 0) |
1565 | { | 1564 | { |
1566 | gray_scroll_left(move, false); /* scroll left */ | 1565 | gray_ub_scroll_left(move); /* scroll left */ |
1567 | pdisp->x += move; | 1566 | pdisp->x += move; |
1568 | gray_drawgraymap( | 1567 | gray_ub_gray_bitmap_part( |
1569 | pdisp->bitmap + pdisp->y * pdisp->stride + pdisp->x + LCD_WIDTH - move, | 1568 | pdisp->bitmap, pdisp->x + LCD_WIDTH - move, |
1569 | pdisp->y, pdisp->stride, | ||
1570 | LCD_WIDTH - move, MAX(0, (LCD_HEIGHT-pdisp->height)/2), /* x, y */ | 1570 | LCD_WIDTH - move, MAX(0, (LCD_HEIGHT-pdisp->height)/2), /* x, y */ |
1571 | move, MIN(LCD_HEIGHT, pdisp->height), /* w, h */ | 1571 | move, MIN(LCD_HEIGHT, pdisp->height)); /* w, h */ |
1572 | pdisp->stride); | ||
1573 | } | 1572 | } |
1574 | break; | 1573 | break; |
1575 | 1574 | ||
@@ -1578,16 +1577,12 @@ int scroll_bmp(struct t_disp* pdisp) | |||
1578 | move = MIN(8, pdisp->y); | 1577 | move = MIN(8, pdisp->y); |
1579 | if (move > 0) | 1578 | if (move > 0) |
1580 | { | 1579 | { |
1581 | if (move == 8) | 1580 | gray_ub_scroll_down(move); /* scroll down */ |
1582 | gray_scroll_down8(false); /* scroll down by 8 pixel */ | ||
1583 | else | ||
1584 | gray_scroll_down(move, false); /* scroll down 1..7 pixel */ | ||
1585 | pdisp->y -= move; | 1581 | pdisp->y -= move; |
1586 | gray_drawgraymap( | 1582 | gray_ub_gray_bitmap_part( |
1587 | pdisp->bitmap + pdisp->y * pdisp->stride + pdisp->x, | 1583 | pdisp->bitmap, pdisp->x, pdisp->y, pdisp->stride, |
1588 | MAX(0, (LCD_WIDTH-pdisp->width)/2), 0, /* x, y */ | 1584 | MAX(0, (LCD_WIDTH-pdisp->width)/2), 0, /* x, y */ |
1589 | MIN(LCD_WIDTH, pdisp->width), move, /* w, h */ | 1585 | MIN(LCD_WIDTH, pdisp->width), move); /* w, h */ |
1590 | pdisp->stride); | ||
1591 | } | 1586 | } |
1592 | break; | 1587 | break; |
1593 | 1588 | ||
@@ -1596,16 +1591,13 @@ int scroll_bmp(struct t_disp* pdisp) | |||
1596 | move = MIN(8, pdisp->height - pdisp->y - LCD_HEIGHT); | 1591 | move = MIN(8, pdisp->height - pdisp->y - LCD_HEIGHT); |
1597 | if (move > 0) | 1592 | if (move > 0) |
1598 | { | 1593 | { |
1599 | if (move == 8) | 1594 | gray_ub_scroll_up(move); /* scroll up */ |
1600 | gray_scroll_up8(false); /* scroll up by 8 pixel */ | ||
1601 | else | ||
1602 | gray_scroll_up(move, false); /* scroll up 1..7 pixel */ | ||
1603 | pdisp->y += move; | 1595 | pdisp->y += move; |
1604 | gray_drawgraymap( | 1596 | gray_ub_gray_bitmap_part( |
1605 | pdisp->bitmap + (pdisp->y + LCD_HEIGHT - move) * pdisp->stride + pdisp->x, | 1597 | pdisp->bitmap, pdisp->x, |
1598 | pdisp->y + LCD_HEIGHT - move, pdisp->stride, | ||
1606 | MAX(0, (LCD_WIDTH-pdisp->width)/2), LCD_HEIGHT - move, /* x, y */ | 1599 | MAX(0, (LCD_WIDTH-pdisp->width)/2), LCD_HEIGHT - move, /* x, y */ |
1607 | MIN(LCD_WIDTH, pdisp->width), move, /* w, h */ | 1600 | MIN(LCD_WIDTH, pdisp->width), move); /* w, h */ |
1608 | pdisp->stride); | ||
1609 | } | 1601 | } |
1610 | break; | 1602 | break; |
1611 | 1603 | ||
@@ -1806,7 +1798,7 @@ int main(char* filename) | |||
1806 | int fd; | 1798 | int fd; |
1807 | int filesize; | 1799 | int filesize; |
1808 | int grayscales; | 1800 | int grayscales; |
1809 | int graysize; // helper | 1801 | long graysize; // helper |
1810 | unsigned char* buf_jpeg; /* compressed JPEG image */ | 1802 | unsigned char* buf_jpeg; /* compressed JPEG image */ |
1811 | static struct jpeg jpg; /* too large for stack */ | 1803 | static struct jpeg jpg; /* too large for stack */ |
1812 | int status; | 1804 | int status; |
@@ -1830,7 +1822,7 @@ int main(char* filename) | |||
1830 | /* initialize the grayscale buffer: | 1822 | /* initialize the grayscale buffer: |
1831 | * 112 pixels wide, 8 rows (64 pixels) high, (try to) reserve | 1823 | * 112 pixels wide, 8 rows (64 pixels) high, (try to) reserve |
1832 | * 32 bitplanes for 33 shades of gray. (uses 28856 bytes)*/ | 1824 | * 32 bitplanes for 33 shades of gray. (uses 28856 bytes)*/ |
1833 | grayscales = gray_init_buffer(buf, buf_size, 112, 8, 32, &graysize) + 1; | 1825 | grayscales = gray_init(rb, buf, buf_size, false, 112, 8, 32, &graysize) + 1; |
1834 | buf += graysize; | 1826 | buf += graysize; |
1835 | buf_size -= graysize; | 1827 | buf_size -= graysize; |
1836 | if (grayscales < 33 || buf_size <= 0) | 1828 | if (grayscales < 33 || buf_size <= 0) |
@@ -1907,16 +1899,15 @@ int main(char* filename) | |||
1907 | rb->lcd_puts(0, 3, print); | 1899 | rb->lcd_puts(0, 3, print); |
1908 | rb->lcd_update(); | 1900 | rb->lcd_update(); |
1909 | 1901 | ||
1910 | gray_clear_display(); | 1902 | gray_ub_clear_display(); |
1911 | gray_drawgraymap( | 1903 | gray_ub_gray_bitmap_part( |
1912 | p_disp->bitmap + p_disp->y * p_disp->stride + p_disp->x, | 1904 | p_disp->bitmap, p_disp->x, p_disp->y, p_disp->stride, |
1913 | MAX(0, (LCD_WIDTH - p_disp->width) / 2), | 1905 | MAX(0, (LCD_WIDTH - p_disp->width) / 2), |
1914 | MAX(0, (LCD_HEIGHT - p_disp->height) / 2), | 1906 | MAX(0, (LCD_HEIGHT - p_disp->height) / 2), |
1915 | MIN(LCD_WIDTH, p_disp->width), | 1907 | MIN(LCD_WIDTH, p_disp->width), |
1916 | MIN(LCD_HEIGHT, p_disp->height), | 1908 | MIN(LCD_HEIGHT, p_disp->height)); |
1917 | p_disp->stride); | ||
1918 | 1909 | ||
1919 | gray_show_display(true); /* switch on grayscale overlay */ | 1910 | gray_show(true); /* switch on grayscale overlay */ |
1920 | 1911 | ||
1921 | /* drawing is now finished, play around with scrolling | 1912 | /* drawing is now finished, play around with scrolling |
1922 | * until you press OFF or connect USB | 1913 | * until you press OFF or connect USB |
@@ -1952,12 +1943,12 @@ int main(char* filename) | |||
1952 | break; | 1943 | break; |
1953 | } | 1944 | } |
1954 | 1945 | ||
1955 | gray_show_display(false); /* switch off overlay */ | 1946 | gray_show(false); /* switch off overlay */ |
1956 | 1947 | ||
1957 | } | 1948 | } |
1958 | while (status != PLUGIN_OK && status != PLUGIN_USB_CONNECTED); | 1949 | while (status != PLUGIN_OK && status != PLUGIN_USB_CONNECTED); |
1959 | 1950 | ||
1960 | gray_release_buffer(); /* deinitialize */ | 1951 | gray_release(); /* deinitialize */ |
1961 | 1952 | ||
1962 | return status; | 1953 | return status; |
1963 | } | 1954 | } |
@@ -1973,9 +1964,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter) | |||
1973 | 1964 | ||
1974 | rb = api; /* copy to global api pointer */ | 1965 | rb = api; /* copy to global api pointer */ |
1975 | 1966 | ||
1976 | /* This plugin uses the grayscale framework, so initialize */ | ||
1977 | gray_init(api); | ||
1978 | |||
1979 | return main((char*)parameter); | 1967 | return main((char*)parameter); |
1980 | } | 1968 | } |
1981 | 1969 | ||