+void mw_set_read_light_sensor_response_cb(mwdevice_t *mwdevice, void (*mw_read_light_sensor_response_cb) (mwdevice_t *mwdevice, unsigned short *light_level, unsigned short *light_level_avg, void *user_data), void *user_data)
+{
+ if (mw_read_light_sensor_response_cb != NULL)
+ mwdevice->mw_read_light_sensor_response_cb = mw_read_light_sensor_response_cb;
+ if (user_data != NULL)
+ mwdevice->mw_rlsrsp_data = user_data;
+}
+
+int mw_status_change_event(mwdevice_t *mwdevice, unsigned char option, unsigned char *statrsp, int len)
+{
+ unsigned char mode = (option & 0x0f);
+ unsigned char status = statrsp[0];
+#ifdef DEBUG
+ fprintf(stderr, "Status change event for mode %s: %s\n", mw_screen_mode_names[mode], mw_status_string[status]);
+#endif
+
+ // mwdevice->screen_mode = mode;
+ if (mwdevice->mw_status_change_event_cb != NULL)
+ mwdevice->mw_status_change_event_cb(mwdevice, &mode, &status, mwdevice->mw_stchev_data);
+
+ return 0;
+}
+
+void mw_set_status_change_event_cb(mwdevice_t *mwdevice, void (*mw_status_change_event_cb) (mwdevice_t *mwdevice, unsigned char *scrmode, unsigned char *status, void *user_data), void *user_data)
+{
+ if (mw_status_change_event_cb != NULL)
+ mwdevice->mw_status_change_event_cb = mw_status_change_event_cb;
+ if (user_data != NULL)
+ mwdevice->mw_stchev_data = user_data;
+}
+
+int mw_low_battery_warning_message(mwdevice_t *mwdevice)
+{
+#ifdef DEBUG
+ fprintf(stderr, "Watch battery low, please connect charger\n");
+#endif
+ if (mwdevice->mw_low_battery_warning_message_cb != NULL)
+ mwdevice->mw_low_battery_warning_message_cb(mwdevice, mwdevice->mw_lbatwarnmsg_data);
+
+ return 0;
+}
+
+void mw_set_low_battery_warning_message_cb(mwdevice_t *mwdevice, void (*mw_low_battery_warning_message_cb) (mwdevice_t *mwdevice, void *user_data), void *user_data)
+{
+ if (mw_low_battery_warning_message_cb != NULL)
+ mwdevice->mw_low_battery_warning_message_cb = mw_low_battery_warning_message_cb;
+ if (user_data != NULL)
+ mwdevice->mw_lbatwarnmsg_data = user_data;
+}
+
+int mw_low_battery_bt_off_message(mwdevice_t *mwdevice)
+{
+#ifdef DEBUG
+ fprintf(stderr, "Watch battery extremely low - radio will turn off\n");
+#endif
+ if (mwdevice->mw_low_battery_bt_off_message_cb != NULL)
+ mwdevice->mw_low_battery_bt_off_message_cb(mwdevice, mwdevice->mw_lbatbtoff_data);
+
+ return 0;
+}
+
+void mw_set_low_battery_bt_off_message_cb(mwdevice_t *mwdevice, void (*mw_low_battery_bt_off_message_cb) (mwdevice_t *mwdevice, void *user_data), void *user_data)
+{
+ if (mw_low_battery_bt_off_message_cb != NULL)
+ mwdevice->mw_low_battery_bt_off_message_cb = mw_low_battery_bt_off_message_cb;
+ if (user_data != NULL)
+ mwdevice->mw_lbatbtoff_data = user_data;
+}