uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) { (void)u8g; u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); switch(msg) { case U8G_DEV_MSG_SET_8PIXEL: if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) u8g_pb8h8_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); break; case U8G_DEV_MSG_SET_PIXEL: u8g_pb8h8_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); break; case U8G_DEV_MSG_INIT: break; case U8G_DEV_MSG_STOP: break; case U8G_DEV_MSG_PAGE_FIRST: u8g_pb8h8_Clear(pb); u8g_page_First(&(pb->p)); break; case U8G_DEV_MSG_PAGE_NEXT: if ( u8g_page_Next(&(pb->p)) == 0 ) return 0; u8g_pb8h8_Clear(pb); break; #ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION case U8G_DEV_MSG_IS_BBX_INTERSECTION: return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); #endif case U8G_DEV_MSG_GET_PAGE_BOX: u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); break; case U8G_DEV_MSG_GET_WIDTH: *((u8g_uint_t *)arg) = pb->width; break; case U8G_DEV_MSG_GET_HEIGHT: *((u8g_uint_t *)arg) = pb->p.total_height; break; case U8G_DEV_MSG_SET_COLOR_ENTRY: break; case U8G_DEV_MSG_SET_XY_CB: break; case U8G_DEV_MSG_GET_MODE: return U8G_MODE_R3G3B2; } return 1; }
void u8g_pb8h8_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) { b->buf = buf; b->width = width; u8g_pb8h8_Clear(b); }