Ejemplo n.º 1
0
static int clock_on_timer(swapi_message_t *msg, void *data){
	swap_clock_t	*sc = (swap_clock_t *)data;

	ASSERT((msg != NULL) && (sc != NULL));

	swapi_log_info("clock receive timer message!\n");
	clock_draw(sc);

	return 0;
}
Ejemplo n.º 2
0
void
window_clock_draw_screen(struct window_pane *wp)
{
	struct window_clock_mode_data	*data = wp->modedata;
	struct screen_write_ctx	 	 ctx;
	int				 colour, style;

	colour = options_get_number(&wp->window->options, "clock-mode-colour");
	style = options_get_number(&wp->window->options, "clock-mode-style");

	screen_write_start(&ctx, NULL, &data->screen);
	clock_draw(&ctx, colour, style);
	screen_write_stop(&ctx);
}
Ejemplo n.º 3
0
static int clock_on_resume(swapi_swap_t *sw){
	swap_clock_t			*sc;

	ASSERT(sw != NULL);

	swapi_log_info("swap clock is resume!\n");

	sc = (swap_clock_t *)swapi_swap_get(sw);
	if(sc == NULL){
		swapi_log_warn("swap clock not setting!\n");
		return -1;
	}

	clock_draw(sc);
	return 0;
}
Ejemplo n.º 4
0
static void clock_set_view(swap_clock_t *sc, int vtype){
	ASSERT(sc != NULL);

	switch(vtype){
	case kCLOCK_VIEW_ANALOG:
		swapi_window_set_view(swapi_swap_get_window(sc->sc_swap), &sc->sc_cav.cav_view);
		break;

	case kCLOCK_VIEW_DIGITAL:
		swapi_window_set_view(swapi_swap_get_window(sc->sc_swap), &sc->sc_cdv);
		break;

	default:
		return;
	}

	sc->sc_vtype = vtype;

	clock_draw(sc);
}
Ejemplo n.º 5
0
void clock_draw_cond()
{
	if(timer%(CLOCK_PRESCALE)==0 && timer_counting)
		clock_draw();
}
Ejemplo n.º 6
0
void clock_reset()
{
	clock_stop();
	timer=0;
	clock_draw();
}
Ejemplo n.º 7
0
/**********************************************************************
 * Plugin starts here
 **********************************************************************/
enum plugin_status plugin_start(const void* parameter){
    int button;
    int last_second = -1;
    bool redraw=true;
    struct time time;
    struct counter counter;
    bool exit_clock = false;
    (void)parameter;
    atexit(cleanup);

#if LCD_DEPTH > 1
    rb->lcd_set_backdrop(NULL);
#endif

    load_settings();

    /* init xlcd functions */
    counter_init(&counter);
    clock_draw_set_colors();

    while(!exit_clock){
        clock_update_time(&time);

        if(!clock_settings.general.idle_poweroff)
            rb->reset_poweroff_timer();

        /*************************
         * Scan for button presses
         ************************/
        button =  pluginlib_getaction(HZ/10, plugin_contexts, PLA_ARRAY_COUNT);
        redraw=true;/* we'll set it to false afterwards if there was no action */
        switch (button){
            case ACTION_COUNTER_TOGGLE: /* start/stop counter */
                if(clock_settings.general.show_counter)
                    counter_toggle(&counter);
                break;

            case ACTION_COUNTER_RESET: /* reset counter */
                if(clock_settings.general.show_counter)
                    counter_reset(&counter);
                break;

            case ACTION_MODE_NEXT_REPEAT:
            case ACTION_MODE_NEXT:
                clock_settings.mode++;
                if(clock_settings.mode >= NB_CLOCK_MODES)
                    clock_settings.mode = 0;
                break;

            case ACTION_MODE_PREV_REPEAT:
            case ACTION_MODE_PREV:
                clock_settings.mode--;
                if(clock_settings.mode < 0)
                    clock_settings.mode = NB_CLOCK_MODES-1;
                break;
            case ACTION_SKIN_PREV_REPEAT:
            case ACTION_SKIN_PREV:
                clock_settings_skin_next(&clock_settings);
                break;
            case ACTION_SKIN_NEXT_REPEAT:
            case ACTION_SKIN_NEXT:
                clock_settings_skin_previous(&clock_settings);
                break;
            case ACTION_MENU:
                clock_draw_restore_colors();
                exit_clock=main_menu();
                break;
            default:
                exit_on_usb(button);
                if(time.second != last_second){
                    last_second=time.second;
                    redraw=true;
                }else
                    redraw=false;
                break;
        }

        if(redraw){
            clock_draw_set_colors();
            FOR_NB_SCREENS(i)
                clock_draw(rb->screens[i], &time, &counter);
            redraw=false;
        }
    }

    return PLUGIN_OK;
}