From e6bc82f5732ec6ded47a1c8256ae9df7f74dd8cb Mon Sep 17 00:00:00 2001
From: c vw <dl1ycf@darc.de>
Date: Fri, 8 Nov 2019 19:23:27 +0100
Subject: [PATCH] small changes

---
 hercules.midi.inp |  8 ++++++++
 midi.inp          |  8 ++++----
 midi2.c           |  2 +-
 midi3.c           | 48 +++++++++++++++++++++++------------------------
 4 files changed, 37 insertions(+), 29 deletions(-)

diff --git a/hercules.midi.inp b/hercules.midi.inp
index 2875309..01a3c18 100644
--- a/hercules.midi.inp
+++ b/hercules.midi.inp
@@ -1,5 +1,13 @@
 DEVICE=HERCULES
 #
+# The "Mox" key works in any of the four modes
+# (Loop/FX/Samples/Cue)
+# and  with/without the SH button pressed.
+# For such a case, we have to assign it eight times.
+#
+# Generally, you can map up to eight functions on a single
+# physical button, but in some cases you do not want to.
+#
 KEY= 1 ACTION=MOX
 KEY= 5 ACTION=MOX
 KEY= 9 ACTION=MOX
diff --git a/midi.inp b/midi.inp
index 66ef152..01094a1 100644
--- a/midi.inp
+++ b/midi.inp
@@ -12,7 +12,7 @@ DEVICE=CMD PL-1
 # Ignore this, because this happens unintentionally most of the time you
 # use the wheel.
 #
-CTRL=31 WHEEL THR=0 59 60 61 62 63 65 66 67 68 69 127 ACTION=VFO
+CTRL=31 WHEEL THR=0 59 60 61 62 63 65 66 67 68 69 127 ACTION=CURRVFO
 KEY=31 ACTION=NONE
 #
 # Big slider (pitch-bend controller): AF volume
@@ -34,7 +34,7 @@ CTRL=0 WHEEL THR=-1 -1 -1 -1 1 63 65 127 128 128 128 128 ACTION=ATT
 CTRL=1 WHEEL THR=-1 -1 -1 -1 1 63 65 127 128 128 128 128 ACTION=COMPRESS
 CTRL=2 WHEEL THR=-1 -1 -1 -1 1 63 65 127 128 128 128 128 ACTION=RITVAL
 CTRL=3 WHEEL THR=-1 -1 -1 -1 1 63 65 127 128 128 128 128 ACTION=PANLOW
-CTRL=4 WHEEL THR=-1 -1 -1 -1 1 63 65 127 128 128 128 128 ACTION=AGC
+CTRL=4 WHEEL THR=-1 -1 -1 -1 1 63 65 127 128 128 128 128 ACTION=AGCVAL
 CTRL=5 WHEEL THR=-1 -1 -1 -1 1 63 65 127 128 128 128 128 ACTION=MICGAIN
 CTRL=6 WHEEL THR=-1 -1 -1 -1 1 63 65 127 128 128 128 128 ACTION=RFPOWER
 CTRL=7 WHEEL THR=-1 -1 -1 -1 1 63 65 127 128 128 128 128 ACTION=FILTERUP
@@ -77,8 +77,8 @@ KEY=24 ACTION=TUNE                # LOAD    button: TUNE on/off
 KEY=25 ACTION=LOCK                # LOCK    button: Lock VFO(s)
 KEY=26 ACTION=PURESIGNAL          # DECK    button: toggle PURESIGNAL
 KEY=27 ACTION=SWAPRX              # SCRATCH button: Swap active/inactive RX
-KEY=32 ACTION=VFOA2B              # SYNC    button: Frequency VFO A -> VFO B
-KEY=33 ACTION=VFOB2A              # TAP     button: Frequency VFO B -> VFO A
+KEY=32 ACTION=A2B                 # SYNC    button: Frequency VFO A -> VFO B
+KEY=33 ACTION=B2A                 # TAP     button: Frequency VFO B -> VFO A
 KEY=34 ACTION=MOX                 # CUE     button: MOX on/off
 KEY=35 ACTION=SPLIT               # >||     button: toggle Split
 KEY=36 ACTION=MODEDOWN            # <<      button: Mode down
diff --git a/midi2.c b/midi2.c
index 4754f52..db6d979 100644
--- a/midi2.c
+++ b/midi2.c
@@ -99,7 +99,7 @@ static struct {
   const char *str;
 } ActionTable[] = {
         { AF_GAIN,      	"AFGAIN"},
-        { MIDI_AGC,     	"AGC"},
+        { MIDI_AGC,     	"AGCVAL"},
 	{ AGCATTACK,   		"AGCATTACK"},
         { ATT,          	"ATT"},
         { BAND_DOWN,    	"BANDDOWN"},
diff --git a/midi3.c b/midi3.c
index 2f5c260..120e792 100644
--- a/midi3.c
+++ b/midi3.c
@@ -34,6 +34,11 @@ void DoTheMidi(enum MIDIaction action, enum MIDItype type, int val) {
     // Handle cases in alphabetical order of the key words in midi.inp
     //
     switch (action) {
+	case VFO_A2B: // only key supported
+	    if (type == MIDI_KEY) {
+	      g_idle_add(ext_vfo_a_to_b, NULL);
+	    }
+	    break;
 	case AF_GAIN: // knob or wheel supported
             switch (type) {
 	      case MIDI_KNOB:
@@ -51,6 +56,15 @@ void DoTheMidi(enum MIDIaction action, enum MIDItype type, int val) {
 	    }
 	    g_idle_add(ext_update_af_gain, NULL);
 	    break;
+	case AGCATTACK: // only key supported
+	    // cycle through fast/med/slow AGC attack
+	    if (type == MIDI_KEY) {
+	      new=active_receiver->agc + 1;
+	      if (new > AGC_FAST) new=0;
+	      active_receiver->agc=new;
+	      g_idle_add(ext_vfo_update, NULL);
+	    }
+	    break;
 	case MIDI_AGC: // knob or wheel supported
 	    switch (type) {
 	      case MIDI_KNOB:
@@ -70,15 +84,6 @@ void DoTheMidi(enum MIDIaction action, enum MIDItype type, int val) {
 	    *dp=dnew;
 	    g_idle_add(ext_set_agc_gain, (gpointer) dp);
 	    break;
-	case AGCATTACK: // only key supported
-	    // cycle through fast/med/slow AGC attack
-	    if (type == MIDI_KEY) {
-	      new=active_receiver->agc + 1;
-	      if (new > AGC_FAST) new=0;
-	      active_receiver->agc=new;
-	      g_idle_add(ext_vfo_update, NULL);
-	    }
-	    break;
 	case ATT:	// Key for ALEX attenuator, wheel or knob for slider
 	    switch(type) {
 	      case MIDI_KEY:
@@ -109,6 +114,11 @@ void DoTheMidi(enum MIDIaction action, enum MIDItype type, int val) {
 		break;
 	    }
 	    break;
+	case VFO_B2A: // only key supported
+	    if (type == MIDI_KEY) {
+	      g_idle_add(ext_vfo_b_to_a, NULL);
+	    }
+	    break;
 	case BAND_DOWN:
 	case BAND_UP:
 	    switch (type) {
@@ -167,6 +177,11 @@ void DoTheMidi(enum MIDIaction action, enum MIDItype type, int val) {
 	      g_idle_add(ext_ctun_update, NULL);
 	    }
 	    break;
+	case VFO: // only wheel supported
+	    if (type == MIDI_WHEEL && !locked) {
+		g_idle_add(ext_vfo_step, GINT_TO_POINTER(val));
+	    }
+	    break;
         case MIDI_DUP:
             if(duplex) {
               duplex=0;
@@ -518,11 +533,6 @@ void DoTheMidi(enum MIDIaction action, enum MIDItype type, int val) {
 		g_idle_add(ext_tune_update, GINT_TO_POINTER(new));
 	    }
 	    break;    
-	case VFO: // only wheel supported
-	    if (type == MIDI_WHEEL && !locked) {
-		g_idle_add(ext_vfo_step, GINT_TO_POINTER(val));
-	    }
-	    break;
 	case VFOA: // only wheel supported
 	case VFOB: // only wheel supported
 	    if (type == MIDI_WHEEL && !locked) {
@@ -532,16 +542,6 @@ void DoTheMidi(enum MIDIaction action, enum MIDItype type, int val) {
 		g_idle_add(ext_vfo_id_step, ip);
 	    }
 	    break;
-	case VFO_A2B: // only key supported
-	    if (type == MIDI_KEY) {
-	      g_idle_add(ext_vfo_a_to_b, NULL);
-	    }
-	    break;
-	case VFO_B2A: // only key supported
-	    if (type == MIDI_KEY) {
-	      g_idle_add(ext_vfo_b_to_a, NULL);
-	    }
-	    break;
         case VFO_STEP_DOWN: // key or wheel supported
         case VFO_STEP_UP:
 	    switch (type) {
-- 
2.45.2