X-Git-Url: https://git.kernelconcepts.de/?p=metawatch.git;a=blobdiff_plain;f=mw_main.c;h=566b8fbc4264dd3eff8d72e3dc9dfc027e7e6d32;hp=17b52adcaaeb8167b378c16d7c821801e8775568;hb=681932903c2c6fedf430b34739d0b696058bc571;hpb=b11171caa5c6ef0a685c134ea01b89a8330bd74e diff --git a/mw_main.c b/mw_main.c index 17b52ad..566b8fb 100644 --- a/mw_main.c +++ b/mw_main.c @@ -310,7 +310,7 @@ void draw_idle_calendar(mwdevice_t *mwdevice) px=0; py=3; for (i=0; i<7; i++) { - snprintf(pnum, 3, dnames[i]); + snprintf(pnum, 3, "%s", dnames[i]); mw_buf_print(mwbuf, px, py, pnum, 0, MW_WHITE, MW_BLACK); px += 14; }; @@ -396,7 +396,13 @@ void test_application(mwdevice_t *mwdevice) unsigned char *bbuf; int len; + mw_enable_button(mwdevice, MW_SCREEN_MODE_IDLE, MW_BUTTON_A, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_A); + mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_A, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_A); + mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_B, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_B); + mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_C, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_C); + mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_E, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_E); + mw_enable_button(mwdevice, MW_SCREEN_MODE_APPLICATION, MW_BUTTON_F, MW_BUTTON_IMMEDIATE, MW_BUTTON_EVENT_MESSAGE, MW_BUTTON_F); mw_configure_watch_mode(mwdevice, MW_SCREEN_MODE_APPLICATION, 0, 30, 0); mwbuf = mw_alloc_pbuffer(96, 96, 1); @@ -681,6 +687,20 @@ signal_filter (DBusConnection *connection, DBusMessage *message, void *user_data return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } +void mw_button_event_message_cb(mwdevice_t *mwdevice, unsigned char buttons, unsigned char options, void *user_data) +{ + g_print("button event cb:0x%02x 0x%02x\n", buttons, options); + g_print("screen is %d\n", mwdevice->screen_mode); + if (mwdevice->screen_mode == MW_SCREEN_MODE_IDLE) { + if (buttons == MW_BUTTON_A) + test_application(mwdevice); + } + if (mwdevice->screen_mode == MW_SCREEN_MODE_APPLICATION) { + if (buttons == MW_BUTTON_C) + mw_update_display(mwdevice, MW_SCREEN_MODE_IDLE, 0); + } +} + int main(int argc, char **argv) { int mw_fd; @@ -763,6 +783,7 @@ int main(int argc, char **argv) mdata.cmdline_pos = 0; mw_init(&mdata.mwdevice, mw_fd); + mw_set_button_event_message_cb(&mdata.mwdevice, mw_button_event_message_cb, NULL); g_main_loop_run (mdata.mloop);