]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
Added "CWKEY" MIDI-action for use with external keyers
authorc vw <dl1ycf@darc.de>
Tue, 12 Jan 2021 16:01:18 +0000 (17:01 +0100)
committerc vw <dl1ycf@darc.de>
Tue, 12 Jan 2021 16:01:18 +0000 (17:01 +0100)
midi.h
midi2.c
midi3.c

diff --git a/midi.h b/midi.h
index cc7024ee739aac0aed304fa7a22a357f2828f8b5..54b14f42a736b211fe636cc8c2f8dec75f35d5a6 100644 (file)
--- a/midi.h
+++ b/midi.h
@@ -61,6 +61,7 @@ enum MIDIaction {
   MIDI_ACTION_COMPRESS,                // COMPRESS:            TX compressor value
   MIDI_ACTION_CTUN,            // CTUN:                toggle CTUN on/off
   MIDI_ACTION_VFO,             // CURRVFO:             change VFO frequency
+  MIDI_ACTION_CWKEY,           // CWKEY:               Unconditional CW key-down/up (outside keyer)
   MIDI_ACTION_CWL,             // CWL:                 Left paddle pressed (use with ONOFF)
   MIDI_ACTION_CWR,             // CWR:                 Right paddle pressed (use with ONOFF)
   MIDI_ACTION_CWSPEED,         // CWSPEED:             Set speed of (iambic) CW keyer
diff --git a/midi2.c b/midi2.c
index e316ea104428dc76bf80d5ba9ed26df6902a940e..f6caaca1b9376e4c587d4b1b04eb3a9e5ce9a149 100644 (file)
--- a/midi2.c
+++ b/midi2.c
@@ -125,6 +125,7 @@ static struct {
         { MIDI_ACTION_COMPRESS,        "COMPRESS"},
        { MIDI_ACTION_CTUN,             "CTUN"},
        { MIDI_ACTION_VFO,              "CURRVFO"},
+       { MIDI_ACTION_CWKEY,            "CWKEY"},
        { MIDI_ACTION_CWL,              "CWL"},
        { MIDI_ACTION_CWR,              "CWR"},
        { MIDI_ACTION_CWSPEED,          "CWSPEED"},
diff --git a/midi3.c b/midi3.c
index d876cd80f048264b33aa03000d69ab0579b94c77..5ad079aa24e8c678ae1e48de04bbde54956170f9 100644 (file)
--- a/midi3.c
+++ b/midi3.c
@@ -217,6 +217,26 @@ void DoTheMidi(enum MIDIaction action, enum MIDItype type, int val) {
                g_idle_add(ext_vfo_step, GINT_TO_POINTER(val));
            }
            break;
+       /////////////////////////////////////////////////////////// "CW"
+       case MIDI_ACTION_CWKEY: // only key
+         //
+         // This is a CW key-up/down which works outside the keyer.
+         // It is intended for the use of external keyers
+         // and works if not compiled with LOCALCW
+         // and/or using "CW handled in radio". 
+         // NO BREAK-IN! The keyer has to send a MIDI "PTT on" command and
+         // wait a decent amount of time before doing key-down.
+          //
+           if (type == MIDI_TYPE_KEY) {
+              if (val != 0) {
+               cw_key_down=480000;  // max. 10 sec
+               cw_key_up=0;
+             } else {
+               cw_key_down=0;
+               cw_key_up=0;
+             }
+            }
+           break;
        /////////////////////////////////////////////////////////// "CWL"
        /////////////////////////////////////////////////////////// "CWR"
        case MIDI_ACTION_CWL: // only key