#pragma once #define MAX_KEYER_QUEUE 5 typedef enum { PADDLE_DIT = 0, PADDLE_DAH = 1, PADDLE_STRAIGHT, } Paddle; class Transmitter { public: virtual void BeginTx(); virtual void EndTx(); }; class Keyer { public: virtual void SetOutput(Transmitter *output); virtual void Reset(); virtual void SetDitDuration(unsigned int d); virtual void Release(); virtual bool TxClosed(); virtual bool TxClosed(int relay); virtual void Tx(int relay, bool closed); virtual void Key(Paddle key, bool pressed); virtual void Tick(unsigned int millis); }; Keyer *GetKeyerByNumber(int n, Transmitter *output);