|
|
|
@ -29,7 +29,7 @@ const std::initializer_list<std::pair<std::string, std::string>> keyboard_shortc |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
{"enter", "Enter seek request"}, |
|
|
|
|
{"x", "+/-Replay speed"}, |
|
|
|
|
{"+/-", "Playback speed"}, |
|
|
|
|
{"q", "Exit"}, |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
@ -331,13 +331,18 @@ void ConsoleUI::handleKey(char c) { |
|
|
|
|
refresh(); |
|
|
|
|
getch_timer.start(1000, this); |
|
|
|
|
|
|
|
|
|
} else if (c == 'x') { |
|
|
|
|
if (replay->hasFlag(REPLAY_FLAG_FULL_SPEED)) { |
|
|
|
|
replay->removeFlag(REPLAY_FLAG_FULL_SPEED); |
|
|
|
|
rWarning("replay at normal speed"); |
|
|
|
|
} else { |
|
|
|
|
replay->addFlag(REPLAY_FLAG_FULL_SPEED); |
|
|
|
|
rWarning("replay at full speed"); |
|
|
|
|
} else if (c == '+' || c == '=') { |
|
|
|
|
auto it = std::upper_bound(speed_array.begin(), speed_array.end(), replay->getSpeed()); |
|
|
|
|
if (it != speed_array.end()) { |
|
|
|
|
rWarning("playback speed: %.1fx", *it); |
|
|
|
|
replay->setSpeed(*it); |
|
|
|
|
} |
|
|
|
|
} else if (c == '_' || c == '-') { |
|
|
|
|
auto it = std::lower_bound(speed_array.begin(), speed_array.end(), replay->getSpeed()); |
|
|
|
|
if (it != speed_array.begin()) { |
|
|
|
|
auto prev = std::prev(it); |
|
|
|
|
rWarning("playback speed: %.1fx", *prev); |
|
|
|
|
replay->setSpeed(*prev); |
|
|
|
|
} |
|
|
|
|
} else if (c == 'e') { |
|
|
|
|
replay->seekToFlag(FindFlag::nextEngagement); |
|
|
|
|