mirror of
https://github.com/TomHarte/CLK.git
synced 2025-03-06 01:30:19 +00:00
Corrects phase counting for machines that pause after clear. Which is all of them by default.
This commit is contained in:
parent
54b3e511e9
commit
346d80e30b
@ -81,27 +81,28 @@ uint16_t Typer::try_type_next_character() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Advance phase.
|
||||
++phase_;
|
||||
|
||||
// If this is the start of the output sequence, start with a reset all keys.
|
||||
// Then pause unless the caracter mapper says not to.
|
||||
if(!phase_) {
|
||||
if(phase_ == 1) {
|
||||
delegate_->clear_all_keys();
|
||||
if(character_mapper_->needs_pause_after_reset_all_keys()) {
|
||||
return 0xffff; // Arbitrarily. Anything non-zero will do.
|
||||
}
|
||||
++phase_;
|
||||
}
|
||||
|
||||
// Advance phase.
|
||||
++phase_;
|
||||
|
||||
// If the sequence is over, stop.
|
||||
if(sequence[phase_ - 1] == KeyboardMachine::MappedMachine::KeyEndSequence) {
|
||||
if(sequence[phase_ - 2] == KeyboardMachine::MappedMachine::KeyEndSequence) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Otherwise, type the key.
|
||||
delegate_->set_key_state(sequence[phase_ - 1], true);
|
||||
delegate_->set_key_state(sequence[phase_ - 2], true);
|
||||
|
||||
return sequence[phase_ - 1];
|
||||
return sequence[phase_ - 2];
|
||||
}
|
||||
|
||||
bool Typer::type_next_character() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user