public void Text_changed() { if (!pressed_keys.ContainsKey(last_key) && (last_key != Keys.None)) { KeyPressData new_press = new KeyPressData(); press_count++; new_press.key_down_time = last_key_time; new_press.phrase_key_pos = press_count; new_press.key = last_key; if (timer.IsRunning) { cur_entry.PressTime = last_key_time; } else { timer.Start(); } log_manager.Press(last_key, last_key_time); if (pressed_keys.Count != 0) { foreach (KeyValuePair <Keys, KeyPressData> bar in pressed_keys) { if (bar.Value.key_down_time < new_press.key_down_time) { cur_entry.type1_impos++; } } } pressed_keys.Add(last_key, new_press); } }
public void Key_Up(Keys key) { if (pressed_keys.ContainsKey(key)) { pressed_keys[key].key_up_time = timer.ElapsedMilliseconds; KeyPressData released_key = pressed_keys[key]; cur_entry.press_data.Add(released_key); pressed_keys.Remove(key); if (pressed_keys.Count != 0) { foreach (KeyValuePair <Keys, KeyPressData> bar in pressed_keys) { if (bar.Value.key_down_time > released_key.key_down_time) { cur_entry.type2_impos++; } else { cur_entry.type1_impos--; cur_entry.type3_impos++; } } } log_manager.Release(key, released_key.key_up_time); } }
private List <KeyPressData> DecodeVectors(int[] tau_vecktor, int[] t_vecktor) { List <KeyPressData> press_data = new List <KeyPressData>(); int cur_time = 0; press_data.Clear(); for (int i = 0; i < t_vecktor.Length; i++) { KeyPressData press = new KeyPressData(); press.key_down_time = cur_time; press.key_up_time = cur_time + t_vecktor[i]; press_data.Add(press); if (i == t_vecktor.Length - 1) { continue; } cur_time += t_vecktor[i] + tau_vecktor[i]; } return(press_data); }