uint8_t u8g_dev_pb16h2_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_pb16h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); } break; case U8G_DEV_MSG_SET_PIXEL: u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg, 0); break; case U8G_DEV_MSG_SET_4TPIXEL: u8g_pb16h2_Or4PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); break; case U8G_DEV_MSG_SET_TPIXEL: u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg, 1); break; case U8G_DEV_MSG_INIT: break; case U8G_DEV_MSG_STOP: break; case U8G_DEV_MSG_PAGE_FIRST: u8g_page_First(&(pb->p)); u8g_pb16h2_Clear(pb); break; case U8G_DEV_MSG_PAGE_NEXT: if ( u8g_page_Next(&(pb->p)) == 0 ) return 0; u8g_pb16h2_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_GRAY2BIT; } return 1; }
void u8g_pb16h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) { b->buf = buf; b->width = width; u8g_pb16h2_Clear(b); }