Na dobrą sprawę potrzeba tylko długości czasu trwania pauzy/kropki, bo:
Kropka = czas trwania kropki
Kreska = 3czas trwania kropki
Pauza = czas trwania kropki
Pauza między słowami (spacePause) = 7czas trwania kropki
No ale niech będzie:
struct morse {
int frequency;
int pause;
int spacePause;
int dotTime, dashTime;
void setFrequency(int f) {
frequency = f;
}
void setPause(int p) {
pause = p;
dotTime = pause;
dashTime = 3*pause;
}
void setSpacePause(int p) {
spacePause = p; // ale ja bym to wstawił do set pause jako spacePause = 7*pause;
}
void beepDot() {
Beep(frequency, dotTime);
Beep(0, pause);
}
void beepDash() {
Beep(frequency, dashTime);
Beep(0, pause);
}
void beepSpacePause() {
Beep(0, spacePause)
}
void morseMsg(std::string msg) {
for(int character = 0; character < msg.length(); ++character) {
switch(character) {
case '.' : beepDot();
break;
case '-' : beepDash();
break;
case ' ' : beepSpacePause();
break;
default : break;
}
}
}
}