]> git.rkrishnan.org Git - pihpsdr.git/commitdiff
merged in John's VFOSTEPUP/DOWN midi commands
authorc vw <dl1ycf@darc.de>
Mon, 28 Oct 2019 08:49:43 +0000 (09:49 +0100)
committerc vw <dl1ycf@darc.de>
Mon, 28 Oct 2019 08:49:43 +0000 (09:49 +0100)
1  2 
ext.c
ext.h
midi.h
midi2.c
midi3.c

diff --cc ext.c
Simple merge
diff --cc ext.h
index bc93cf2af6aeb31e11e4e0a4c1a054ed8a384a2b,a4a259d37e249491b40f5ee621fee72d58fb494d..e55453489927e4cbb265bef1d1033060ae0ca130
--- 1/ext.h
--- 2/ext.h
+++ b/ext.h
@@@ -85,8 -85,8 +85,9 @@@ extern int ext_function_update(void *da
  extern int ext_tx_set_ps(void *data);
  #endif
  
+ int ext_update_vfo_step(void *data);
  int ext_vfo_step(void *data);
 +int ext_vfo_id_step(void *data);
  int ext_vfo_mode_changed(void *data);
  int ext_set_af_gain(void *data);
  int ext_set_mic_gain(void *data);
diff --cc midi.h
index 48061d7db8f1833a6b3b63759617b732dcdad3a5,1f68f0c039adf225a47aadbdc60c20fc0e879b22..c17101e02d7c8c9d32eab458a6842da5eaf6dca6
--- 1/midi.h
--- 2/midi.h
+++ b/midi.h
@@@ -76,11 -76,11 +76,13 @@@ enum MIDIaction 
    MIDI_TUNE,                  // toggle "tune" state
    TX_DRIVE,           // RF output power
    VFO,                        // change VFO frequency
 +  VFOA,                       // change VFO-A frequency
 +  VFOB,                       // change VFO-B frequency
    VFO_A2B,            // VFO A -> B
    VFO_B2A,            // VFO B -> A
-   VOX                         // VOX on/off
+   VOX,                        // VOX on/off
+   VFO_STEP_UP,                // cycle through vfo steps upwards;
+   VFO_STEP_DOWN,      // cycle through vfo steps downwards;
  };
  
  //
diff --cc midi2.c
Simple merge
diff --cc midi3.c
index 21e3eea500742243ecbaec4faaa53eca08fc994e,efa5361f68cf3bb05a87991e8581bd2fb72c72e9..af9219a6736d0c534b759363dcfa8f05a5a7872f
+++ b/midi3.c
@@@ -264,107 -254,92 +264,113 @@@ void DoTheMidi(enum MIDIaction action, 
            if (dnew > 0.5) transmitter->compressor=1;
            g_idle_add(ext_set_compression, NULL);
            break;
 -      case MIDI_NB:
 +      case MIDI_NB: // only key supported
            // cycle through NoiseBlanker settings
 -          if (active_receiver->nb) {
 +            if (type == MIDI_KEY) {
 +            if (active_receiver->nb) {
                active_receiver->nb = 0;
                active_receiver->nb2= 1;
 -          } else if (active_receiver->nb2) {
 +            } else if (active_receiver->nb2) {
                active_receiver->nb = 0;
                active_receiver->nb2= 0;
 -          } else {
 +            } else {
                active_receiver->nb = 1;
                active_receiver->nb2= 0;
 +            }
 +            g_idle_add(ext_vfo_update, NULL);
            }
 -          g_idle_add(ext_vfo_update, NULL);
            break;
 -      case MIDI_NR:
 +      case MIDI_NR: // only key supported
            // cycle through NoiseReduction settings
 -          if (active_receiver->nr) {
 +          if (type == MIDI_KEY) {
 +            if (active_receiver->nr) {
                active_receiver->nr = 0;
                active_receiver->nr2= 1;
 -          } else if (active_receiver->nr2) {
 +            } else if (active_receiver->nr2) {
                active_receiver->nr = 0;
                active_receiver->nr2= 0;
 -          } else {
 +            } else {
                active_receiver->nr = 1;
                active_receiver->nr2= 0;
 +            }
 +            g_idle_add(ext_vfo_update, NULL);
            }
 -          g_idle_add(ext_vfo_update, NULL);
            break;
 -      case VOX:
 +      case VOX: // only key supported
            // toggle VOX
 -          vox_enabled = !vox_enabled;
 -          g_idle_add(ext_vfo_update, NULL);
 +          if (type == MIDI_KEY) {
 +            vox_enabled = !vox_enabled;
 +            g_idle_add(ext_vfo_update, NULL);
 +          }
            break;
 -      case MIDI_CTUN:
 +      case MIDI_CTUN: // only key supported
            // toggle CTUN
 -          new=active_receiver->id;
 -          if(!vfo[new].ctun) {
 +          if (type == MIDI_KEY) {
 +            new=active_receiver->id;
 +            if(!vfo[new].ctun) {
                vfo[new].ctun=1;
                vfo[new].offset=0;
 -          } else {
 +            } else {
                vfo[new].ctun=0;
 +            }
 +            vfo[new].ctun_frequency=vfo[new].frequency;
 +            set_offset(active_receiver,vfo[new].offset);
 +            g_idle_add(ext_vfo_update, NULL);
            }
 -          vfo[new].ctun_frequency=vfo[new].frequency;
 -          set_offset(active_receiver,vfo[new].offset);
 -          g_idle_add(ext_vfo_update, NULL);
            break;
 -      case MIDI_PS:
 +      case MIDI_PS: // only key supported
  #ifdef PURESIGNAL
            // toggle PURESIGNAL
 -          new=!(transmitter->puresignal);
 -          g_idle_add(ext_tx_set_ps,GINT_TO_POINTER(new));
 +          if (type == MIDI_KEY) {
 +            new=!(transmitter->puresignal);
 +            g_idle_add(ext_tx_set_ps,GINT_TO_POINTER(new));
 +          }
  #endif
            break;
 -      case MIDI_SPLIT:
 +      case MIDI_SPLIT: // only key supported
            // toggle split mode
 -          if(!split) {
 +          if (type == MIDI_KEY) {
 +            if(!split) {
                split=1;
                tx_set_mode(transmitter,vfo[VFO_B].mode);
 -          } else {
 +            } else {
                split=0;
                tx_set_mode(transmitter,vfo[VFO_A].mode);
 +            }
 +            g_idle_add(ext_vfo_update, NULL);
            }
 -          g_idle_add(ext_vfo_update, NULL);
            break;
 -      case VFO_A2B:
 -          g_idle_add(ext_vfo_a_to_b, NULL);
 +      case VFO_A2B: // only key supported
 +          if (type == MIDI_KEY) {
 +            g_idle_add(ext_vfo_a_to_b, NULL);
 +          }
            break;
 -      case VFO_B2A:
 -          g_idle_add(ext_vfo_b_to_a, NULL);
 +      case VFO_B2A: // only key supported
 +          if (type == MIDI_KEY) {
 +            g_idle_add(ext_vfo_b_to_a, NULL);
 +          }
            break;
 -      case MIDI_LOCK:
 -          locked=!locked;
 -          g_idle_add(ext_vfo_update, NULL);
 +      case MIDI_LOCK: // only key supported
 +          if (type == MIDI_KEY) {
 +            locked=!locked;
 +            g_idle_add(ext_vfo_update, NULL);
 +          }
            break;
 -      case AGCATTACK:
 -          new=active_receiver->agc + 1;
 -          if (new > AGC_FAST) new=0;
 -          active_receiver->agc=new;
 -          g_idle_add(ext_vfo_update, NULL);
 +      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 VFO_STEP_UP:
+           g_idle_add(ext_update_vfo_step, GINT_TO_POINTER(1));
+             break;
+         case VFO_STEP_DOWN:
+           g_idle_add(ext_update_vfo_step, GINT_TO_POINTER(-1));
+             break;
        case ACTION_NONE:
            // No error message, this is the "official" action for un-used controller buttons.
            break;