void update_now_usec (struct timeval *tv) { const time_t last = now; update_now (tv->tv_sec); if (now > last || (now == last && tv->tv_usec > now_usec)) now_usec = tv->tv_usec; }
static void tuple_changed_callback(const uint32_t key, const Tuple* tuple_new, const Tuple* tuple_old, void* context) { int value = tuple_new->value->uint8; switch (key) { case setting_seconds: seconds = value; persist_write_int(setting_seconds, seconds); if (seconds == seconds_on) enable_seconds(); else disable_seconds(); break; case setting_background: background = value; persist_write_int(setting_background, background); bitmap_layer_set_bitmap(background_layer, (background == background_simple) ? background_simple_bitmap : background_bitmap); layer_mark_dirty((Layer*) background_layer); break; case setting_info: info = value; persist_write_int(setting_info, info); if (info == info_on) enable_info(); else disable_info(); break; case setting_digital: digital = value; persist_write_int(setting_digital, digital); if (digital == digital_off) disable_digital(); else enable_digital(); break; } update_now(); }