wok annotate busybox/stuff/busybox-1.25-scriptreplay.u @ rev 19597

Up: cURL (7.52.1)
author Alexander Medvedev <devl547@gmail.com>
date Sun Jan 01 17:49:15 2017 +0000 (2017-01-01)
parents f7c899b7a001
children
rev   line source
pascal@19340 1 --- busybox-1.25/util-linux/scriptreplay.c
pascal@19340 2 +++ busybox-1.25/util-linux/scriptreplay.c
pascal@19343 3 @@ -8,10 +8,20 @@
pascal@19340 4 *
pascal@19340 5 */
pascal@19340 6
pascal@19340 7 +//config:config SCRIPTREPLAY_HOTKEYS
pascal@19340 8 +//config: bool "speed control hotkeys"
pascal@19340 9 +//config: default n
pascal@19340 10 +//config: depends on SCRIPTREPLAY
pascal@19340 11 +//config: help
pascal@19343 12 +//config: Tune replay speed with + - = space return hotkeys.
pascal@19340 13 +
pascal@19340 14 //usage:#define scriptreplay_trivial_usage
pascal@19340 15 //usage: "timingfile [typescript [divisor]]"
pascal@19340 16 //usage:#define scriptreplay_full_usage "\n\n"
pascal@19343 17 //usage: "Play back typescripts, using timing information"
pascal@19343 18 +//usage: IF_SCRIPTREPLAY_HOTKEYS(
pascal@19343 19 +//usage: " and + - = space return hotkeys"
pascal@19343 20 +//usage: )
pascal@19343 21
pascal@19343 22 #include "libbb.h"
pascal@19343 23
pascal@19343 24 @@ -21,6 +31,10 @@
pascal@19340 25 const char *script = "typescript";
pascal@19340 26 double delay, factor = 1000000.0;
pascal@19340 27 int fd;
pascal@19340 28 +#if ENABLE_SCRIPTREPLAY_HOTKEYS
pascal@19340 29 + int timeout = -1;
pascal@19340 30 + char buffer[KEYCODE_BUFFER_SIZE];
pascal@19340 31 +#endif
pascal@19340 32 unsigned long count;
pascal@19340 33 FILE *tfp;
pascal@19340 34
pascal@19343 35 @@ -38,6 +52,21 @@
pascal@19340 36 while (fscanf(tfp, "%lf %lu\n", &delay, &count) == 2) {
pascal@19340 37 usleep(delay * factor);
pascal@19340 38 bb_copyfd_exact_size(fd, STDOUT_FILENO, count);
pascal@19340 39 +#if ENABLE_SCRIPTREPLAY_HOTKEYS
pascal@19340 40 + switch (read_key(0, buffer, timeout)) {
pascal@19340 41 + case ' ':
pascal@19340 42 + timeout = INT_MAX;
pascal@19340 43 + break;
pascal@19340 44 + case '=':
pascal@19340 45 + factor = 1000000.0/2;
pascal@19340 46 + case '-':
pascal@19340 47 + factor *= 4;
pascal@19340 48 + case '+':
pascal@19340 49 + factor /= 2;
pascal@19340 50 + default :
pascal@19340 51 + timeout = -1;
pascal@19340 52 + }
pascal@19340 53 +#endif
pascal@19340 54 }
pascal@19340 55 if (ENABLE_FEATURE_CLEAN_UP) {
pascal@19340 56 close(fd);