Cool!
I have a suggestion:
Make the library accept two callbacks. Respectively signalOn, and signalOff functions.
If one wants to signal a morse code with other means than a pin high/low, this will be (one of) the way(s) to go.
Addition to the top of the header:
typedef void (*function)(void);
Two additional private member variables:
function userSignalOn;
function userSignalOff;
2nd constructor:
Morsee( function signalOn, function signalOff, int intervail );
Implementation: (be sure to set them to 0 in the other constructor)
Morsee::Morsee( function signalOn, function signalOff, int intervail ){
userSignalOn = signalOn;
userSignalOff = signalOff;
//set other variables to 0
}
void Morsee::transmitSign( signal s )
{
byte mask = B10000000;
do
{
if (userSignalOn){
userSignalOn();
}else{
digitalWrite(_pin, HIGH);
}
if(s.code & mask) {
delay(_dash);
} else {
delay(_dot);
}
if (userSignalOff){
userSignalOff();
}else{
digitalWrite(_pin, LOW);
}
delay(_dot);
mask >>= 1;
}
while(--s.length > 0);
}
Now you could use morse coded signals for literally anything

[edit]I really like the idea of having a begin(wpm).[/edit]