From f1da4d04117dd77625d3661c10c285077177c8ea Mon Sep 17 00:00:00 2001 From: Tait Hoyem <44244401+TTWNO@users.noreply.github.com> Date: Sun, 16 Jun 2019 20:19:15 +0000 Subject: [PATCH] Readd timechanging for slow mode --- main.c | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/main.c b/main.c index f8c23c4..1678bc9 100644 --- a/main.c +++ b/main.c @@ -1,12 +1,18 @@ #include "morse.h" #include #include +#include #include const long DEFAULT_DASH_PAUSE = 300000; const long DEFAULT_DOT_PAUSE = 150000; int main(int argc, char *argv[]){ + char* inputString; + char* outputString; + // outputChar tracks the current printing character when slow printing is enabled + char outputChar; + long dash_delay = DEFAULT_DASH_PAUSE; long dot_delay = DEFAULT_DOT_PAUSE; @@ -41,8 +47,6 @@ int main(int argc, char *argv[]){ } if (convertFromMorse){ - char* inputString; - char* outputString; // for every line in the input, until the end of file while ((getline(&inputString, &buflen, stdin))!=EOF){ int stringLen = strlen(inputString); @@ -58,8 +62,6 @@ int main(int argc, char *argv[]){ fflush(stdin); } } else { - char* inputString; - char* outputString; // for each line of input while ((getline(&inputString, &buflen, stdin))!=EOF){ int stringLen = strlen(inputString); @@ -70,9 +72,27 @@ int main(int argc, char *argv[]){ } outputString = string_to_morse(inputString); - printf("%s\n", outputString); - // force flush the buffer incase user is in interactive mode - fflush(stdin); + + if (isSlow){ + for (int i = 0; i < strlen(outputString); i++){ + outputChar = outputString[i]; + if (outputChar == '-'){ + usleep(dash_delay); + printf("%c", outputChar); + } else if (outputChar == '.'){ + usleep(dot_delay); + printf("%c", outputChar); + } else { + printf("%c", outputChar); + } + fflush(stdout); + } + printf("\n"); + } else { + printf("%s\n", outputString); + // force flush the buffer incase user is in interactive mode + fflush(stdin); + } } } return 0;