static void handle_bluetooth(bool connected) { if (connected == true && !(bitmap_layer_get_bitmap(sBluetoothLayer) == s_res_bluetooth)) { bitmap_layer_set_bitmap(sBluetoothLayer, s_res_bluetooth); } if (connected == false && !(bitmap_layer_get_bitmap(sBluetoothLayer) == s_res_empty)){ bitmap_layer_set_bitmap(sBluetoothLayer, s_res_empty); } vibes_short_pulse(); }
static void center() { if(bitmap_layer_get_bitmap(topleft_image) == num1right && bitmap_layer_get_bitmap(topright_image) != num1left) { // top row left alignment layer_set_frame(bitmap_layer_get_layer(topleft_image), GRect(0, 5, 64, 76)); layer_set_frame(bitmap_layer_get_layer(topright_image), GRect(64, 5, 64, 76)); } else if(bitmap_layer_get_bitmap(topleft_image) != num1right && bitmap_layer_get_bitmap(topright_image) == num1left) { // top row right alignment layer_set_frame(bitmap_layer_get_layer(topleft_image), GRect(14, 5, 64, 76)); layer_set_frame(bitmap_layer_get_layer(topright_image), GRect(78, 5, 64, 76)); } else { // top row default alignment layer_set_frame(bitmap_layer_get_layer(topleft_image), GRect(7, 5, 64, 76)); layer_set_frame(bitmap_layer_get_layer(topright_image), GRect(71, 5, 64, 76)); } if(bitmap_layer_get_bitmap(bottomleft_image) == num1right && bitmap_layer_get_bitmap(bottomright_image) != num1left) { // bottom row left alignment layer_set_frame(bitmap_layer_get_layer(bottomleft_image), GRect(0, 86, 64, 76)); layer_set_frame(bitmap_layer_get_layer(bottomright_image), GRect(64, 86, 64, 76)); } else if(bitmap_layer_get_bitmap(bottomleft_image) != num1right && bitmap_layer_get_bitmap(bottomright_image) == num1left) { // bottom row right alignment layer_set_frame(bitmap_layer_get_layer(bottomleft_image), GRect(14, 86, 64, 76)); layer_set_frame(bitmap_layer_get_layer(bottomright_image), GRect(78, 86, 64, 76)); } else { // bottom row default alignment layer_set_frame(bitmap_layer_get_layer(bottomleft_image), GRect(7, 86, 64, 76)); layer_set_frame(bitmap_layer_get_layer(bottomright_image), GRect(71, 86, 64, 76)); } }
void handle_battery(BatteryChargeState charge) { if (charge.is_charging && !(bitmap_layer_get_bitmap(sChargingLayer) == s_res_charging)) { bitmap_layer_set_bitmap(sChargingLayer, s_res_charging); } else if(!(bitmap_layer_get_bitmap(sChargingLayer) == s_res_empty)) { bitmap_layer_set_bitmap(sChargingLayer, s_res_empty); } if (charge.charge_percent >= 90 && !(bitmap_layer_get_bitmap(sBatteryLayer) == s_res_battery_100)) { bitmap_layer_set_bitmap(sBatteryLayer, s_res_battery_100); } else if (charge.charge_percent >= 70 && charge.charge_percent < 90 && !(bitmap_layer_get_bitmap(sBatteryLayer) == s_res_battery_80)) { bitmap_layer_set_bitmap(sBatteryLayer, s_res_battery_80); } else if (charge.charge_percent >= 50 && charge.charge_percent < 70 && !(bitmap_layer_get_bitmap(sBatteryLayer) == s_res_battery_60)) { bitmap_layer_set_bitmap(sBatteryLayer, s_res_battery_60); } else if (charge.charge_percent >= 30 && charge.charge_percent < 50 && !(bitmap_layer_get_bitmap(sBatteryLayer) == s_res_battery_40)) { bitmap_layer_set_bitmap(sBatteryLayer, s_res_battery_40); } else if (charge.charge_percent >= 10 && charge.charge_percent < 30 && !(bitmap_layer_get_bitmap(sBatteryLayer) == s_res_battery_20)) { bitmap_layer_set_bitmap(sBatteryLayer, s_res_battery_20); } else if(charge.charge_percent < 10 && !(bitmap_layer_get_bitmap(sBatteryLayer) == s_res_battery_0)) { bitmap_layer_set_bitmap(sBatteryLayer, s_res_battery_0); } }
static void bitmapLayerUpdate(struct Layer *layer, GContext *ctx){ GBitmap *framebuffer; const GBitmap *graphic = bitmap_layer_get_bitmap((BitmapLayer *)layer); int height; uint8_t finalBits; uint8_t *bfr, *bitmap;; // printf("bitmap layer update proc\n"); framebuffer = graphics_capture_frame_buffer(ctx); height = graphic->bounds.size.h; // APP_LOG(APP_LOG_LEVEL_DEBUG, "bitmaplayerupdate: %d, height: %d", framebuffer->row_size_bytes, height); for (int yindex =0; yindex < height; yindex++){ // APP_LOG(APP_LOG_LEVEL_DEBUG, "----- yindex %d", yindex); for ( int xindex = 0; xindex < graphic->row_size_bytes; xindex++){ bfr = (((uint8_t*)framebuffer->addr)+(yindex * framebuffer->row_size_bytes)+xindex); bitmap = (((uint8_t*)graphic->addr)+(yindex * graphic->row_size_bytes)+xindex); finalBits = *bitmap ^ *bfr; // APP_LOG(APP_LOG_LEVEL_DEBUG, "bfr: %0x, bitmsp: %0x, finalBits: %x", (unsigned int)bfr, (unsigned int)bitmap, finalBits ); *bfr = finalBits; } } graphics_release_frame_buffer(ctx, framebuffer); }