void mconfig_defaults(struct MConfig* cfg)
{
	// Configure MTState
	cfg->touch_down = DEFAULT_TOUCH_DOWN;
	cfg->touch_up = DEFAULT_TOUCH_UP;
	cfg->ignore_thumb = DEFAULT_IGNORE_THUMB;
	cfg->ignore_palm = DEFAULT_IGNORE_PALM;
	cfg->disable_on_palm = DEFAULT_DISABLE_ON_PALM;
	cfg->disable_on_thumb = DEFAULT_DISABLE_ON_THUMB;
	cfg->thumb_ratio = DEFAULT_THUMB_RATIO;
	cfg->thumb_size = DEFAULT_THUMB_SIZE;
	cfg->palm_size = DEFAULT_PALM_SIZE;

	// Configure Gestures
	cfg->trackpad_disable = DEFAULT_TRACKPAD_DISABLE;
	cfg->button_enable = DEFAULT_BUTTON_ENABLE;
	cfg->button_integrated = DEFAULT_BUTTON_INTEGRATED;
	cfg->button_expire = DEFAULT_BUTTON_EXPIRE;
	cfg->button_zones = DEFAULT_BUTTON_ZONES;
	cfg->button_1touch = DEFAULT_BUTTON_1TOUCH;
	cfg->button_2touch = DEFAULT_BUTTON_2TOUCH;
	cfg->button_3touch = DEFAULT_BUTTON_3TOUCH;
	cfg->tap_1touch = DEFAULT_TAP_1TOUCH;
	cfg->tap_2touch = DEFAULT_TAP_2TOUCH;
	cfg->tap_3touch = DEFAULT_TAP_3TOUCH;
	cfg->tap_4touch = DEFAULT_TAP_4TOUCH;
	cfg->tap_timeout = DEFAULT_TAP_TIMEOUT;
	cfg->tap_hold = DEFAULT_TAP_HOLD;
	cfg->tap_dist = DEFAULT_TAP_DIST;
	cfg->gesture_hold = DEFAULT_GESTURE_HOLD;
	cfg->gesture_wait = DEFAULT_GESTURE_WAIT;
	cfg->scroll_dist = DEFAULT_SCROLL_DIST;
	cfg->scroll_up_btn = DEFAULT_SCROLL_UP_BTN;
	cfg->scroll_dn_btn = DEFAULT_SCROLL_DN_BTN;
	cfg->scroll_lt_btn = DEFAULT_SCROLL_LT_BTN;
	cfg->scroll_rt_btn = DEFAULT_SCROLL_RT_BTN;
	cfg->swipe_dist = DEFAULT_SWIPE_DIST;
	cfg->swipe_up_btn = DEFAULT_SWIPE_UP_BTN;
	cfg->swipe_dn_btn = DEFAULT_SWIPE_DN_BTN;
	cfg->swipe_lt_btn = DEFAULT_SWIPE_LT_BTN;
	cfg->swipe_rt_btn = DEFAULT_SWIPE_RT_BTN;
	cfg->swipe4_dist = DEFAULT_SWIPE4_DIST;
	cfg->swipe4_up_btn = DEFAULT_SWIPE4_UP_BTN;
	cfg->swipe4_dn_btn = DEFAULT_SWIPE4_DN_BTN;
	cfg->swipe4_lt_btn = DEFAULT_SWIPE4_LT_BTN;
	cfg->swipe4_rt_btn = DEFAULT_SWIPE4_RT_BTN;
	cfg->scale_dist = DEFAULT_SCALE_DIST;
	cfg->scale_up_btn = DEFAULT_SCALE_UP_BTN;
	cfg->scale_dn_btn = DEFAULT_SCALE_DN_BTN;
	cfg->rotate_dist = SQRVAL(DEFAULT_ROTATE_DIST);
	cfg->rotate_lt_btn = DEFAULT_ROTATE_LT_BTN;
	cfg->rotate_rt_btn = DEFAULT_ROTATE_RT_BTN;
	cfg->drag_enable = DEFAULT_DRAG_ENABLE;
	cfg->drag_timeout = DEFAULT_DRAG_TIMEOUT;
	cfg->sensitivity = DEFAULT_SENSITIVITY;
}
void mconfig_defaults(struct MConfig* cfg)
{
	// Configure MTState
	cfg->touch_down = DEFAULT_TOUCH_DOWN;
	cfg->touch_up = DEFAULT_TOUCH_UP;
	cfg->ignore_thumb = DEFAULT_IGNORE_THUMB;
	cfg->ignore_palm = DEFAULT_IGNORE_PALM;
	cfg->disable_on_palm = DEFAULT_DISABLE_ON_PALM;
	cfg->disable_on_thumb = DEFAULT_DISABLE_ON_THUMB;
	cfg->thumb_ratio = DEFAULT_THUMB_RATIO;
	cfg->thumb_size = DEFAULT_THUMB_SIZE;
	cfg->palm_size = DEFAULT_PALM_SIZE;
	cfg->edge_left_size = DEFAULT_EDGE_LEFT_SIZE;
	cfg->edge_right_size = DEFAULT_EDGE_RIGHT_SIZE;
	cfg->edge_top_size = DEFAULT_EDGE_TOP_SIZE;
	cfg->edge_bottom_size = DEFAULT_EDGE_BOTTOM_SIZE;

	// Configure Gestures
	cfg->trackpad_disable = DEFAULT_TRACKPAD_DISABLE;
	cfg->button_enable = DEFAULT_BUTTON_ENABLE;
	cfg->button_integrated = DEFAULT_BUTTON_INTEGRATED;
	cfg->button_expire = DEFAULT_BUTTON_EXPIRE;
	cfg->button_zones = DEFAULT_BUTTON_ZONES;
	cfg->button_1touch = DEFAULT_BUTTON_1TOUCH;
	cfg->button_2touch = DEFAULT_BUTTON_2TOUCH;
	cfg->button_3touch = DEFAULT_BUTTON_3TOUCH;
	cfg->tap_1touch = DEFAULT_TAP_1TOUCH;
	cfg->tap_2touch = DEFAULT_TAP_2TOUCH;
	cfg->tap_3touch = DEFAULT_TAP_3TOUCH;
	cfg->tap_4touch = DEFAULT_TAP_4TOUCH;
	cfg->tap_timeout = DEFAULT_TAP_TIMEOUT;
	cfg->tap_hold = DEFAULT_TAP_HOLD;
	cfg->tap_dist = DEFAULT_TAP_DIST;
	cfg->gesture_hold = DEFAULT_GESTURE_HOLD;
	cfg->gesture_wait = DEFAULT_GESTURE_WAIT;
	cfg->scroll.dist = DEFAULT_SCROLL_DIST;
	cfg->scroll.hold = DEFAULT_SCROLL_HOLD;
	cfg->scroll.drag_sens = DEFAULT_SWIPE_SENS;
	cfg->scroll.up_btn = DEFAULT_SCROLL_UP_BTN;
	cfg->scroll.dn_btn = DEFAULT_SCROLL_DN_BTN;
	cfg->scroll.lt_btn = DEFAULT_SCROLL_LT_BTN;
	cfg->scroll.rt_btn = DEFAULT_SCROLL_RT_BTN;
	cfg->scroll_coast.min_speed = DEFAULT_SCROLL_COAST_MIN_SPEED;
	cfg->scroll_coast.tick_ms = DEFAULT_SCROLL_COAST_TICK_MS;
	cfg->scroll_coast.num_of_ticks = DEFAULT_SCROLL_COAST_DURATION / cfg->scroll_coast.tick_ms;
	cfg->swipe3.dist = DEFAULT_SWIPE_DIST;
	cfg->swipe3.hold = DEFAULT_SWIPE_HOLD;
	cfg->swipe3.drag_sens = DEFAULT_SWIPE_SENS;
	cfg->swipe3.up_btn = DEFAULT_SWIPE_UP_BTN;
	cfg->swipe3.dn_btn = DEFAULT_SWIPE_DN_BTN;
	cfg->swipe3.lt_btn = DEFAULT_SWIPE_LT_BTN;
	cfg->swipe3.rt_btn = DEFAULT_SWIPE_RT_BTN;
	cfg->swipe4.dist = DEFAULT_SWIPE4_DIST;
	cfg->swipe4.hold = DEFAULT_SWIPE_HOLD;
	cfg->swipe4.drag_sens = DEFAULT_SWIPE_SENS;
	cfg->swipe4.up_btn = DEFAULT_SWIPE4_UP_BTN;
	cfg->swipe4.dn_btn = DEFAULT_SWIPE4_DN_BTN;
	cfg->swipe4.lt_btn = DEFAULT_SWIPE4_LT_BTN;
	cfg->swipe4.rt_btn = DEFAULT_SWIPE4_RT_BTN;
	cfg->scale_dist = DEFAULT_SCALE_DIST;
	cfg->scale_up_btn = DEFAULT_SCALE_UP_BTN;
	cfg->scale_dn_btn = DEFAULT_SCALE_DN_BTN;
	cfg->rotate_dist = SQRVAL(DEFAULT_ROTATE_DIST);
	cfg->rotate_lt_btn = DEFAULT_ROTATE_LT_BTN;
	cfg->rotate_rt_btn = DEFAULT_ROTATE_RT_BTN;

	cfg->hold1_move1_stationary.max_move = DEFAULT_HOLD1_MOVE1_STATIONARY_MAX_MOVE;
	cfg->hold1_move1_stationary.button = DEFAULT_HOLD1_MOVE1_STATIONARY_BTN;
	cfg->hold1_move1.dist = DEFAULT_HOLD1_MOVE1_DIST;
	cfg->hold1_move1.hold = DEFAULT_HOLD1_MOVE1_HOLD;
	cfg->hold1_move1.drag_sens = DEFAULT_HOLD1_MOVE1_SENS;
	cfg->hold1_move1.up_btn = DEFAULT_HOLD1_MOVE1_BTN;
	cfg->hold1_move1.dn_btn = DEFAULT_HOLD1_MOVE1_BTN;
	cfg->hold1_move1.lt_btn = DEFAULT_HOLD1_MOVE1_BTN;
	cfg->hold1_move1.rt_btn = DEFAULT_HOLD1_MOVE1_BTN;

#if 0
	cfg->hold1_move2_stationary.max_move = DEFAULT_HOLD1_MOVE2_STATIONARY_MAX_MOVE;
	cfg->hold1_move2_stationary.button = DEFAULT_HOLD1_MOVE2_STATIONARY_BTN;
	cfg->hold1_move2.dist = DEFAULT_HOLD1_MOVE2_DIST;
	cfg->hold1_move2.hold = DEFAULT_HOLD1_MOVE2_HOLD;
	cfg->hold1_move2.drag_sens = DEFAULT_HOLD1_MOVE2_SENS;
	cfg->hold1_move2.up_btn = DEFAULT_HOLD1_MOVE2_BTN;
	cfg->hold1_move2.dn_btn = DEFAULT_HOLD1_MOVE2_BTN;
	cfg->hold1_move2.lt_btn = DEFAULT_HOLD1_MOVE2_BTN;
	cfg->hold1_move2.rt_btn = DEFAULT_HOLD1_MOVE2_BTN;

	cfg->hold1_move3_stationary.max_move = DEFAULT_HOLD1_MOVE3_STATIONARY_MAX_MOVE;
	cfg->hold1_move3_stationary.button = DEFAULT_HOLD1_MOVE3_STATIONARY_BTN;
	cfg->hold1_move3.dist = DEFAULT_HOLD1_MOVE3_DIST;
	cfg->hold1_move3.hold = DEFAULT_HOLD1_MOVE3_HOLD;
	cfg->hold1_move3.drag_sens = DEFAULT_HOLD1_MOVE3_SENS;
	cfg->hold1_move3.up_btn = DEFAULT_HOLD1_MOVE3_BTN;
	cfg->hold1_move3.dn_btn = DEFAULT_HOLD1_MOVE3_BTN;
	cfg->hold1_move3.lt_btn = DEFAULT_HOLD1_MOVE3_BTN;
	cfg->hold1_move3.rt_btn = DEFAULT_HOLD1_MOVE3_BTN;
#endif

	cfg->drag_enable = DEFAULT_DRAG_ENABLE;
	cfg->drag_timeout = DEFAULT_DRAG_TIMEOUT;
	cfg->sensitivity = DEFAULT_SENSITIVITY;
	cfg->scroll_smooth = DEFAULT_SCROLL_HIGH_PREC;
}