/** * @brief Callback when a vfo button is pressed * * @param widget * @param data */ void vfoCallback(GtkWidget* widget,gpointer data) { long long f; GtkWidget* label; if(widget==buttonAtoB) { setBFrequency(frequencyA); } else if(widget==buttonBtoA) { setAFrequency(frequencyB); } else if(widget==buttonAswapB) { f=frequencyA; setAFrequency(frequencyB); setBFrequency(f); } else if(widget==buttonSplit) { label=gtk_bin_get_child((GtkBin*)buttonSplit); if(bSplit) { bSplit=0; //gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &white); //gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, &white); splitChanged=1; frequencyAChanged=1; } else { bSplit=1; //gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &red); //gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, &red); splitChanged=1; frequencyBChanged=1; } } }
/** * @brief Increment the frequency * * @param increment */ void vfoIncrementFrequency(long increment) { if(subrx) { subrxIncrementFrequency(increment); } else { setAFrequency(frequencyA+(long long)increment); } }
/** * @brief Increment the A frequency * * @param increment */ void vfoIncrementAFrequency(long increment) { setAFrequency(frequencyA+(long long)increment); }
/* ----------------------------------------------------------------------------*/ void selectBand(GtkWidget* widget) { GtkWidget* label; BANDSTACK_ENTRY* entry; XVTR_ENTRY* xvtr_entry; int current; resetSubRx(); if(currentBandButton) { label=gtk_bin_get_child((GtkBin*)currentBandButton); gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &black); gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, &white); } label=gtk_bin_get_child((GtkBin*)widget); gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &buttonSelected); gtk_widget_modify_fg(label, GTK_STATE_PRELIGHT, &buttonSelected); //save current if(currentBandButton) { if(displayHF) { currentHFButton=currentBandButton; current=bandstack[band].current_entry; entry=&bandstack[band].entry[current]; entry->frequencyA=frequencyA; entry->mode=mode; entry->filter=filter; entry->var1Low=filterVar1Low; entry->var1High=filterVar1High; entry->var2Low=filterVar2Low; entry->var2High=filterVar2High; entry->step=frequencyIncrement; entry->preamp=preamp; entry->spectrumHigh=spectrumMAX; entry->spectrumLow=spectrumMIN; entry->spectrumStep=spectrumSTEP; entry->waterfallHigh=waterfallHighThreshold; entry->waterfallLow=waterfallLowThreshold; } else { currentXVTRButton=currentBandButton; xvtr_entry=&xvtr[xvtr_band]; xvtr_entry->rxFrequency=frequencyA; xvtr_entry->txFrequency=frequencyB; xvtr_entry->mode=mode; xvtr_entry->filter=filter; xvtr_entry->var1Low=filterVar1Low; xvtr_entry->var1High=filterVar1High; xvtr_entry->var2Low=filterVar2Low; xvtr_entry->var2High=filterVar2High; xvtr_entry->step=frequencyIncrement; xvtr_entry->preamp=preamp; xvtr_entry->spectrumHigh=spectrumMAX; xvtr_entry->spectrumLow=spectrumMIN; xvtr_entry->spectrumStep=spectrumSTEP; xvtr_entry->waterfallHigh=waterfallHighThreshold; xvtr_entry->waterfallLow=waterfallLowThreshold; } } if(widget==buttonBand14) { // XVTR / HF displayHF=!displayHF; if(displayHF) { currentBandButton=NULL; setHFTitles(); setBand(band); //selectBand(currentHFButton); } else { currentBandButton=NULL; setXVTRTitles(); setBand(xvtr_band); //selectBand(currentXVTRButton); } } else { if(displayHF) { setLOFrequency(0LL); if(currentBandButton==widget) { bandstack[band].current_entry++; if(bandstack[band].current_entry>=bandstack[band].entries) { bandstack[band].current_entry=0; } } else { currentBandButton=widget; if(widget==buttonBand1) { band=band160; } else if(widget==buttonBand2) { band=band80; } else if(widget==buttonBand3) { band=band60; } else if(widget==buttonBand4) { band=band40; } else if(widget==buttonBand5) { band=band30; } else if(widget==buttonBand6) { band=band20; } else if(widget==buttonBand7) { band=band17; } else if(widget==buttonBand8) { band=band15; } else if(widget==buttonBand9) { band=band12; } else if(widget==buttonBand10) { band=band10; } else if(widget==buttonBand11) { band=band6; } else if(widget==buttonBand12) { band=bandGen; } else if(widget==buttonBand13) { band=bandWWV; } else if(widget==buttonBand14) { band=bandXVTR; } } current=bandstack[band].current_entry; entry=&bandstack[band].entry[current]; { int *m=malloc(sizeof(int)); *m=entry->mode; setMode(m); } filterVar1Low=entry->var1Low; filterVar1High=entry->var1High; filterVar2Low=entry->var2Low; filterVar2High=entry->var2High; setFilter(entry->filter); { long long *f=malloc(sizeof(long long)); *f=entry->frequencyA; setAFrequency(f); } setIncrement(entry->step); //setPreamp(entry->preamp); forcePreamp(entry->preamp); spectrumMAX=entry->spectrumHigh; spectrumMIN=entry->spectrumLow; spectrumSTEP=entry->spectrumStep; waterfallHighThreshold=entry->waterfallHigh; waterfallLowThreshold=entry->waterfallLow; } else { currentBandButton=widget; if(widget==buttonBand1) { xvtr_band=band160; } else if(widget==buttonBand2) { xvtr_band=band80; } else if(widget==buttonBand3) { xvtr_band=band60; } else if(widget==buttonBand4) { xvtr_band=band40; } else if(widget==buttonBand5) { xvtr_band=band30; } else if(widget==buttonBand6) { xvtr_band=band20; } else if(widget==buttonBand7) { xvtr_band=band17; } else if(widget==buttonBand8) { xvtr_band=band15; } else if(widget==buttonBand9) { xvtr_band=band12; } else if(widget==buttonBand10) { xvtr_band=band10; } else if(widget==buttonBand11) { xvtr_band=band6; } else if(widget==buttonBand12) { xvtr_band=bandGen; } xvtr_entry=&xvtr[xvtr_band]; { int *m=malloc(sizeof(int)); *m=xvtr_entry->mode; setMode(m); } filterVar1Low=xvtr_entry->var1Low; filterVar1High=xvtr_entry->var1High; filterVar2Low=xvtr_entry->var2Low; filterVar2High=xvtr_entry->var2High; setFilter(xvtr_entry->filter); setLOFrequency(xvtr_entry->rxFrequencyLO); { long long *f=malloc(sizeof(long long)); *f=xvtr_entry->rxFrequency; setAFrequency(f); } setIncrement(xvtr_entry->step); //setPreamp(xvtr_entry->preamp); forcePreamp(xvtr_entry->preamp); spectrumMAX=xvtr_entry->spectrumHigh; spectrumMIN=xvtr_entry->spectrumLow; spectrumSTEP=xvtr_entry->spectrumStep; waterfallHighThreshold=xvtr_entry->waterfallHigh; waterfallLowThreshold=xvtr_entry->waterfallLow; } } }