static void load_text(int key, bool update_layer) { free_text(key); if (persist_exists(key)) { int size = persist_get_size(key); label_text[key] = malloc(size); persist_read_string(key, label_text[key], size); } else { label_text[key] = a2_strdup(label_default_text[key]); } if (update_layer) { text_layer_set_text(text_layers[key], label_text[key]); } }
void accel_init() { periodsStatic = 0; periodsLift = 0; periodsSki = 0; pendingDecel = false; if (persist_get_size (THUPKEY) == E_DOES_NOT_EXIST) { thresholdUp = MOVINGTHRESHOLD; thresholdDown = STATICTHRESHOLD; } else { thresholdUp = persist_read_int (THUPKEY); thresholdDown = persist_read_int (THDOWNKEY); } derivData = NULL; lastAccel.x = lastAccel.y = lastAccel.z = lastAccel.timestamp = 0; app_log(APP_LOG_LEVEL_INFO, __FILE__ , __LINE__, "Subscribe"); accel_data_service_subscribe(NUMSAMPLES, (AccelDataHandler) &accel_data_handler); accel_service_set_sampling_rate(ACCEL_SAMPLING_25HZ); }
static void barcode_layer_update_proc(struct Layer *layer, GContext *ctx) { if (!persist_exists(KEY_BARCODE)) return; int size = persist_get_size(KEY_BARCODE); APP_LOG((size <= 0 ? APP_LOG_LEVEL_ERROR : APP_LOG_LEVEL_DEBUG), "%s: persist_get_size -> %d", __PRETTY_FUNCTION__, size); if (size <= 0) return; uint8_t buffer[size]; size = persist_read_data(KEY_BARCODE, &buffer, size); APP_LOG((size <= 0 ? APP_LOG_LEVEL_ERROR : APP_LOG_LEVEL_DEBUG), "%s: persist_read_data -> %d", __PRETTY_FUNCTION__, size); if (size <= 0) return; graphics_context_set_fill_color(ctx, GColorWhite); GRect draw_rect = GRect( BARCODE_MIN_X - 1, BARCODE_MIN_Y - 1, ((BARCODE_MAX_X + 1) - (BARCODE_MIN_X - 1)), ((BARCODE_MAX_Y + 1) - (BARCODE_MIN_Y - 1)) ); graphics_fill_rect(ctx, draw_rect, 0, GCornerNone); graphics_context_set_fill_color(ctx, GColorBlack); int16_t rect_y = 0; for (int16_t y = 0; y < size; y++) { uint8_t column = buffer[y]; int16_t rect_h = (y == 0 || y == 14 || y == 28 || y == 43 || y == 57 || y == 71) ? 1 : 2; for (int16_t x = 0; x < 8; x++) { if (column & (1 << x)) { GRect rect = GRect(BARCODE_MIN_X + 8 * x, BARCODE_MIN_Y + rect_y, 8, rect_h); graphics_fill_rect(ctx, rect, 0, GCornerNone); } } rect_y += rect_h; } }