diff --git a/src/morse.cpp b/src/morse.cpp index a6ffa32..c162ca0 100644 --- a/src/morse.cpp +++ b/src/morse.cpp @@ -5,20 +5,65 @@ #include "morse.h" static std::map morseCode = { - {'A', ".-"}, {'B', "-..."}, {'C', "-.-."}, {'D', "-.."}, {'E', "."}, {'F', "..-."}, - {'G', "--."}, {'H', "...."}, {'I', ".."}, {'J', ".---"}, {'K', "-.-"}, {'L', ".-.."}, - {'M', "--"}, {'N', "-."}, {'O', "---"}, {'P', ".--."}, {'Q', "--.-"}, {'R', ".-."}, - {'S', "..."}, {'T', "-"}, {'U', "..-"}, {'V', "...-"}, {'W', ".--"}, {'X', "-..-"}, - {'Y', "-.--"}, {'Z', "--.."}, {'1', ".----"}, {'2', "..---"}, {'3', "...--"}, {'4', "....-"}, - {'5', "....."}, {'6', "-...."}, {'7', "--..."}, {'8', "---.."}, {'9', "----."}, {'0', "-----"}, - {',', "--..--"}, {'.', ".-.-.-"}, {'?', "..--.."}, {'/', "-..-."}, {'-', "-....-"}, {':', "---..."}, - {'&', ".-..."}, {'\'', ".----."}, {'@', ".--.-."}, {')', "-.--.-"}, {'(', "-.--."}, {'\"', ".-..-."}, - {'=', "-...-"}, // '=' == - {'b', "-...-.-"}, // '=' == - {'k', "-.--."}, // k == - {'s', "...-.-"}, // s == - {'+', ".-.-."}, // + == - {'a', "-.-.-"}, // a == + {'A', ".-"}, + {'B', "-..."}, + {'C', "-.-."}, + {'D', "-.."}, + {'E', "."}, + {'F', "..-."}, + {'G', "--."}, + {'H', "...."}, + {'I', ".."}, + {'J', ".---"}, + {'K', "-.-"}, + {'L', ".-.."}, + {'M', "--"}, + {'N', "-."}, + {'O', "---"}, + {'P', ".--."}, + {'Q', "--.-"}, + {'R', ".-."}, + {'S', "..."}, + {'T', "-"}, + {'U', "..-"}, + {'V', "...-"}, + {'W', ".--"}, + {'X', "-..-"}, + {'Y', "-.--"}, + {'Z', "--.."}, + {'1', ".----"}, + {'2', "..---"}, + {'3', "...--"}, + {'4', "....-"}, + {'5', "....."}, + {'6', "-...."}, + {'7', "--..."}, + {'8', "---.."}, + {'9', "----."}, + {'0', "-----"}, + {',', "--..--"}, + {'.', ".-.-.-"}, + {'?', "..--.."}, + {':', "---..."}, + {'&', ".-..."}, + // Some WinKeyer compatible mappings … + {'\"', ".-..-."}, // " => + {'$', "...-..-"}, // $ => + {'\'', ".----."}, // ' => + {'(', "-.--."}, // ( => + {')', "-.--.-"}, // ) => + {'+', ".-.-."}, // + => + {'-', "-....-"}, // - => + {'/', "-..-."}, // / => + {':', "-.--."}, // : => + {';', ".-.-"}, // ; => + {'<', ".-.-."}, // < => [sic!] + {'=', "-...-"}, // = => + {'>', "...-.-"}, // > == + {'@', ".--.-."}, // @ => + {'[', ".-..."}, // [ => + {'\\', "-..-."}, // \ => + {']', "-.--."}, // ] => [sic!] }; void refurbishMessage(std::string &msg) @@ -84,26 +129,26 @@ std::string messageToMorse(std::string &msg) return morseString; } -std::string charToMorse(char ch) { +std::string charToMorse(char ch) +{ std::string morseString {}; if (ch == ' ') { - morseString.push_back('w'); - return morseString; - } + morseString.push_back('w'); + return morseString; + } for (unsigned int j = 0; j < morseCode[ch].length(); j++) { - char m = morseCode[ch][j]; + char m = morseCode[ch][j]; - morseString += m; + morseString += m; - if (j < morseCode[ch].length() - 1) { - morseString.push_back('i'); - } + if (j < morseCode[ch].length() - 1) { + morseString.push_back('i'); } + } morseString.push_back('c'); return morseString; - } \ No newline at end of file