kopia lustrzana https://github.com/jamescoxon/dl-fldigi
Upstream version 1.37f-exp
rodzic
0872322213
commit
e1efe8c816
|
@ -1,6 +1,6 @@
|
|||
Change Log:
|
||||
|
||||
1.36 1) Increased TxPPM to +/- 50000 to match the RxPPM range
|
||||
1.37 1) Increased TxPPM to +/- 50000 to match the RxPPM range
|
||||
2) Changed all audio i/o to separate 2 channel control (stereo)
|
||||
3) Added right channel CW QRQ signal
|
||||
4) Added right channel pseudo FSK signal
|
||||
|
@ -24,6 +24,7 @@ Change Log:
|
|||
The new libraries provide portaudio sound card mapping, and the
|
||||
ability to save and playback wav files (when fldigi is run as:
|
||||
fldigi TEST).
|
||||
16) Added Azimuth computation to QRZ query (submitted by WA5ZNU).
|
||||
1.34 1) Cleaned up unused code segments
|
||||
2) Modified CW decoder to allow setting upper and lower limits on
|
||||
Tx WPM
|
||||
|
|
|
@ -1013,6 +1013,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
|
|||
{ Fl_Check_Button* o = btnViewXmtSignal = new Fl_Check_Button(108, 105, 137, 20, "View Xmt Signal");
|
||||
o->down_box(FL_DOWN_BOX);
|
||||
o->callback((Fl_Callback*)cb_btnViewXmtSignal);
|
||||
o->hide();
|
||||
o->value(progdefaults.viewXmtSignal);
|
||||
}
|
||||
{ Fl_Counter* o = cntLowFreqCutoff = new Fl_Counter(280, 84, 94, 21, "Low Freq Cutoff");
|
||||
|
|
|
@ -168,14 +168,14 @@ progdefaults.changed = true;}
|
|||
Fl_Check_Button btnViewXmtSignal {
|
||||
label {View Xmt Signal}
|
||||
callback {progdefaults.viewXmtSignal=o->value();
|
||||
progdefaults.changed = true;}
|
||||
xywh {108 105 137 20} down_box DOWN_BOX
|
||||
progdefaults.changed = true;} selected
|
||||
xywh {108 105 137 20} down_box DOWN_BOX hide
|
||||
code0 {o->value(progdefaults.viewXmtSignal);}
|
||||
}
|
||||
Fl_Counter cntLowFreqCutoff {
|
||||
label {Low Freq Cutoff}
|
||||
callback {progdefaults.LowFreqCutoff=(int)(o->value());
|
||||
progdefaults.changed = true;} selected
|
||||
progdefaults.changed = true;}
|
||||
xywh {280 84 94 21} type Simple minimum 0 maximum 500 step 50 value 300
|
||||
code0 {o->value(progdefaults.LowFreqCutoff);}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,151 @@
|
|||
// generated by Fast Light User Interface Designer (fluid) version 1.0107
|
||||
|
||||
#ifndef Config_h
|
||||
#define Config_h
|
||||
#include <FL/Fl.H>
|
||||
#include "globals.h"
|
||||
#include "modem.h"
|
||||
#include "configuration.h"
|
||||
extern Fl_Double_Window *dlgConfig;
|
||||
#include <FL/Fl_Double_Window.H>
|
||||
#include <FL/Fl_Tabs.H>
|
||||
extern Fl_Tabs *tabsConfigure;
|
||||
#include <FL/Fl_Group.H>
|
||||
extern Fl_Group *tabOperator;
|
||||
#include <FL/Fl_Input.H>
|
||||
extern Fl_Input *inpMyCallsign;
|
||||
extern Fl_Input *inpMyName;
|
||||
extern Fl_Input *inpMyQth;
|
||||
extern Fl_Input *inpMyLocator;
|
||||
#include <FL/Fl_Check_Button.H>
|
||||
extern Fl_Check_Button *btnUseLeadingZeros;
|
||||
#include <FL/Fl_Value_Input.H>
|
||||
extern Fl_Value_Input *nbrContestStart;
|
||||
extern Fl_Value_Input *nbrContestDigits;
|
||||
extern Fl_Group *tabWaterfall;
|
||||
extern Fl_Check_Button *btnBlackman;
|
||||
extern Fl_Check_Button *btnHamming;
|
||||
extern Fl_Check_Button *btnHanning;
|
||||
extern Fl_Check_Button *btnTriangular;
|
||||
extern Fl_Check_Button *btnUseCursorLines;
|
||||
extern Fl_Check_Button *btnUseBWTracks;
|
||||
extern Fl_Check_Button *btnUseCursorCenterLine;
|
||||
extern Fl_Check_Button *btnViewXmtSignal;
|
||||
#include <FL/Fl_Counter.H>
|
||||
extern Fl_Counter *cntLowFreqCutoff;
|
||||
#include "colorbox.h"
|
||||
extern colorbox *Palette;
|
||||
#include <FL/Fl_Button.H>
|
||||
extern Fl_Button *btnColor[9];
|
||||
extern Fl_Button *btnLoadPalette;
|
||||
extern Fl_Button *btnSavePalette;
|
||||
extern Fl_Group *tabInterface;
|
||||
#include <FL/Fl_Round_Button.H>
|
||||
extern Fl_Input *inpTTYdev;
|
||||
extern Fl_Round_Button *btnRTSptt;
|
||||
extern Fl_Round_Button *btnDTRptt;
|
||||
extern Fl_Round_Button *btnRTSplusV;
|
||||
extern Fl_Round_Button *btnDTRplusV;
|
||||
#include <FL/Fl_Box.H>
|
||||
extern Fl_Round_Button *btnPTT[5];
|
||||
extern Fl_Check_Button *chkUSEMEMMAP;
|
||||
extern Fl_Check_Button *chkUSERIGCAT;
|
||||
extern Fl_Check_Button *chkUSEHAMLIB;
|
||||
extern Fl_ComboBox *cboHamlibRig;
|
||||
extern Fl_Input *inpRIGdev;
|
||||
#include <FL/Fl_Choice.H>
|
||||
extern Fl_Choice *mnuBaudRate;
|
||||
extern Fl_Button *btnInit_Interface;
|
||||
extern Fl_Check_Button *btnQRZnotavailable;
|
||||
extern Fl_Check_Button *btnQRZsocket;
|
||||
extern Fl_Check_Button *btnQRZcdrom;
|
||||
extern Fl_Group *tabSoundCard;
|
||||
extern Fl_Tabs *tabsSoundCard;
|
||||
extern Fl_Group *tabMixer;
|
||||
#include <FL/Fl_Light_Button.H>
|
||||
extern void setMixerInput(int);
|
||||
extern Fl_Light_Button *btnLineIn;
|
||||
extern Fl_Light_Button *btnMicIn;
|
||||
#include <FL/Fl_Value_Slider.H>
|
||||
extern void setPCMvolume(double);
|
||||
extern Fl_Value_Slider *valPCMvolume;
|
||||
#include <FL/Fl_Input_Choice.H>
|
||||
extern Fl_Input_Choice *menuMix;
|
||||
extern void resetMixerControls();
|
||||
extern Fl_Check_Button *btnMixer;
|
||||
extern Fl_Group *tabAudio;
|
||||
#include <FL/Fl_Spinner.H>
|
||||
extern Fl_Spinner *cntRxRateCorr;
|
||||
extern Fl_Spinner *cntTxRateCorr;
|
||||
extern Fl_Spinner *cntTxOffset;
|
||||
extern Fl_Group *AudioIO;
|
||||
extern Fl_Round_Button *btnAudioIO[2];
|
||||
extern Fl_Input_Choice *menuOSSDev;
|
||||
extern Fl_Input_Choice *menuPADev;
|
||||
extern Fl_Value_Input *valCWsweetspot;
|
||||
extern Fl_Value_Input *valRTTYsweetspot;
|
||||
extern Fl_Value_Input *valPSKsweetspot;
|
||||
extern Fl_Check_Button *btnStartAtSweetSpot;
|
||||
extern Fl_Check_Button *btnsendid;
|
||||
extern Fl_Group *tabModems;
|
||||
extern Fl_Tabs *tabsModems;
|
||||
extern Fl_Group *tabCW;
|
||||
extern Fl_Value_Slider *sldrCWbandwidth;
|
||||
extern Fl_Counter *cntCWrange;
|
||||
extern Fl_Check_Button *btnCWrcvTrack;
|
||||
#include <FL/Fl_Value_Output.H>
|
||||
extern Fl_Value_Output *valCWrcvWPM;
|
||||
#include <FL/Fl_Progress.H>
|
||||
extern Fl_Progress *prgsCWrcvWPM;
|
||||
extern Fl_Value_Slider *sldrCWxmtWPM;
|
||||
extern Fl_Counter *cntCWlowerlimit;
|
||||
extern Fl_Counter *cntCWupperlimit;
|
||||
extern Fl_Counter *cntCWweight;
|
||||
extern Fl_Counter *cntCWdash2dot;
|
||||
extern Fl_Counter *cntCWrisetime;
|
||||
extern Fl_Counter *cntCWdefWPM;
|
||||
extern Fl_Group *tabCWQSK;
|
||||
extern Fl_Check_Button *btnQSK;
|
||||
extern Fl_Counter *cntPreTiming;
|
||||
extern Fl_Counter *cntPostTiming;
|
||||
extern Fl_Group *tabDomEX;
|
||||
extern Fl_Input *txtSecondary;
|
||||
extern Fl_Button *btnRestartDomEX;
|
||||
extern Fl_Counter *valDominoEX_BW;
|
||||
extern Fl_Group *tabFeld;
|
||||
#include "fontdef.h"
|
||||
extern Fl_Choice *selHellFont;
|
||||
extern Fl_Value_Slider *sldrHellBW;
|
||||
extern Fl_Check_Button *btnHellXmtWidth;
|
||||
extern Fl_Check_Button *btnHellRcvWidth;
|
||||
extern Fl_Check_Button *btnBlackboard;
|
||||
extern Fl_Check_Button *btnHellFastAttack;
|
||||
extern Fl_Check_Button *btnHellSlowAttack;
|
||||
extern Fl_Check_Button *btnFeldHellIdle;
|
||||
extern Fl_Group *tabOlivia;
|
||||
extern Fl_Choice *mnuOlivia_Tones;
|
||||
extern Fl_Choice *mnuOlivia_Bandwidth;
|
||||
extern Fl_Button *btnRestartOlivia;
|
||||
extern Fl_Check_Button *btnPSKmailSweetSpot;
|
||||
extern Fl_Group *tabRTTY;
|
||||
extern Fl_Choice *selShift;
|
||||
extern Fl_Choice *selBaud;
|
||||
extern Fl_Choice *selBits;
|
||||
extern Fl_Choice *selParity;
|
||||
extern Fl_Choice *selStopBits;
|
||||
extern Fl_Check_Button *chkPseudoFSK;
|
||||
extern Fl_Button *btnRestartRtty;
|
||||
extern Fl_Check_Button *btnCRCRLF;
|
||||
extern Fl_Check_Button *btnAUTOCRLF;
|
||||
extern Fl_Counter *cntrAUTOCRLF;
|
||||
extern Fl_Check_Button *btnRTTY_USB;
|
||||
extern Fl_Round_Button *btnRTTYafc[3];
|
||||
extern Fl_Check_Button *btnPreferXhairScope;
|
||||
#include <FL/Fl_Return_Button.H>
|
||||
extern Fl_Return_Button *btnCloseConfig;
|
||||
extern Fl_Button *btnSaveConfig;
|
||||
Fl_Double_Window* ConfigureDialog();
|
||||
void openConfig();
|
||||
void closeDialog();
|
||||
void createConfig();
|
||||
#endif
|
|
@ -468,7 +468,7 @@ void textview::drawmodify()
|
|||
// find the screen location for the character redraw
|
||||
size_t posidx = laststartidx;
|
||||
int posX = 0, posY = charheight - descent;
|
||||
char c;
|
||||
char c = 0;
|
||||
|
||||
fl_font(TextFont, TextSize);
|
||||
while (posidx < modidx) {
|
||||
|
@ -483,7 +483,7 @@ void textview::drawmodify()
|
|||
}
|
||||
// should now be pointing to the (x,y) screen location for the character
|
||||
char cstr[] = "";
|
||||
cstr[0] = c = buff[modidx];
|
||||
cstr[0] = buff[modidx];
|
||||
// erase existing
|
||||
if ((attr[modidx] & 0x20) == 0x20)
|
||||
fl_color(FL_YELLOW);
|
||||
|
@ -1102,7 +1102,8 @@ int TextEdit::nextChar()
|
|||
modidx = xmtidx;
|
||||
damage(4);
|
||||
Fl::unlock();
|
||||
Fl::awake();
|
||||
Fl::flush();
|
||||
// Fl::awake();
|
||||
return (buff[xmtidx++]);
|
||||
}
|
||||
|
||||
|
|
|
@ -110,6 +110,7 @@ Fl_Input *inpRstOut;
|
|||
Fl_Input *inpQth;
|
||||
Fl_Input *inpLoc;
|
||||
Fl_Input *inpNotes;
|
||||
Fl_Input *inpAZ; // WA5ZNU
|
||||
Fl_Button *qsoTime;
|
||||
Fl_Button *qsoClear;
|
||||
Fl_Button *qsoSave;
|
||||
|
@ -832,6 +833,7 @@ void clearQSO()
|
|||
inpRstOut->value("");
|
||||
inpQth->value("");
|
||||
inpLoc->value("");
|
||||
inpAZ->value(""); // WA5ZNU
|
||||
inpNotes->value("");
|
||||
Fl::unlock();
|
||||
}
|
||||
|
@ -1137,13 +1139,19 @@ void create_fl_digi_main() {
|
|||
Y += Hqsoframe;
|
||||
|
||||
Fl_Group *qsoFrame2 = new Fl_Group(0,Y, WNOM, Hnotes);
|
||||
inpNotes = new Fl_Input(89 + 22, Y, WNOM - 89 - 44 - 22, Hnotes,"Notes:");
|
||||
|
||||
inpNotes = new Fl_Input(136, Y, WNOM - 136 - 44 - 120, Hnotes,"Notes:"); // WA5ZNU
|
||||
inpNotes->align(FL_ALIGN_LEFT);
|
||||
|
||||
cboBand = new Fl_ComboBox(2, Y, 85, Hnotes, "");
|
||||
cboBand->hide();
|
||||
btnSideband = new Fl_Button(88, Y+1, 22, 22, "U");
|
||||
btnSideband->callback(cb_btnSideband, 0);
|
||||
btnSideband->hide();
|
||||
|
||||
inpAZ = new Fl_Input(WNOM - 44 - 80, Y, 80, Hnotes, "AZ:"); // WA5ZNU
|
||||
inpAZ->align(FL_ALIGN_LEFT);
|
||||
|
||||
qsoSave = new Fl_Button(WNOM - 42, Y + 1, 40, Hnotes- 2, "Save");
|
||||
qsoSave->callback(qsoSave_cb, 0);
|
||||
qsoFrame2->resizable(inpNotes);
|
||||
|
@ -1152,7 +1160,6 @@ void create_fl_digi_main() {
|
|||
|
||||
int sw = 15;
|
||||
Fl_Group *MixerFrame = new Fl_Group(0,Y,sw, Hrcvtxt + Hxmttxt);
|
||||
// valRcvMixer = new Fl_Slider(0, Y, sw, (Hrcvtxt + Hxmttxt)/2 - 15, "R");
|
||||
valRcvMixer = new Fl_Slider(0, Y, sw, (Htext)/2, "");
|
||||
valRcvMixer->type(FL_VERT_NICE_SLIDER);
|
||||
valRcvMixer->color(fl_rgb_color(0,110,30));
|
||||
|
@ -1160,7 +1167,6 @@ void create_fl_digi_main() {
|
|||
valRcvMixer->selection_color(fl_rgb_color(255,255,0));
|
||||
valRcvMixer->range(1.0,0.0);
|
||||
valRcvMixer->callback( (Fl_Callback *)cb_RcvMixer);
|
||||
// valXmtMixer = new Fl_Slider(0, Y + (Hrcvtxt + Hxmttxt)/2, sw, (Hrcvtxt + Hxmttxt)/2 - 15, "T");
|
||||
valXmtMixer = new Fl_Slider(0, Y + (Htext)/2, sw, (Htext)/2, "");
|
||||
valXmtMixer->type(FL_VERT_NICE_SLIDER);
|
||||
valXmtMixer->color(fl_rgb_color(110,0,30));
|
||||
|
@ -1438,6 +1444,7 @@ void put_S2Nstatus(char *msg)
|
|||
|
||||
void put_WARNstatus(double val)
|
||||
{
|
||||
Fl::lock();
|
||||
if (val < 0.05)
|
||||
WARNstatus->color(FL_BLACK);
|
||||
if (val > 0.05)
|
||||
|
@ -1447,6 +1454,7 @@ void put_WARNstatus(double val)
|
|||
if (val > 0.98)
|
||||
WARNstatus->color(FL_DARK_RED);
|
||||
WARNstatus->redraw();
|
||||
Fl::unlock();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1463,7 +1471,6 @@ void clear_StatusMessages()
|
|||
StatusBar->label("");
|
||||
S2Nstatus->label("");
|
||||
IMDstatus->label("");
|
||||
// WARNstatus->label("");
|
||||
Fl::unlock();
|
||||
Fl::awake();
|
||||
}
|
||||
|
|
|
@ -74,6 +74,7 @@ extern Fl_Input *inpRstOut;
|
|||
extern Fl_Input *inpQth;
|
||||
extern Fl_Input *inpLoc;
|
||||
extern Fl_Input *inpNotes;
|
||||
extern Fl_Input *inpAZ; // WA5ZNU
|
||||
extern Fl_Button *qsoClear;
|
||||
extern Fl_Button *qsoSave;
|
||||
extern Fl_Button *btnMacroTimer;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef _VERSION_H
|
||||
#define _VERSION_H
|
||||
|
||||
#define FLDIGI_VERSION "1.37e-exp"
|
||||
#define FLDIGI_VERSION "1.37f-exp"
|
||||
|
||||
#endif
|
||||
|
|
|
@ -147,9 +147,9 @@ int main(int argc, char ** argv) {
|
|||
arqchecks();
|
||||
|
||||
Fl::lock(); // start the gui thread!!
|
||||
// Fl::visual(FL_RGB); // insure 24 bit color operation
|
||||
Fl::visual(FL_RGB); // insure 24 bit color operation
|
||||
|
||||
Fl::visual(FL_DOUBLE|FL_INDEX|FL_RGB);
|
||||
// Fl::visual(FL_DOUBLE|FL_INDEX| FL_RGB);
|
||||
|
||||
fl_register_images();
|
||||
Fl::set_fonts(0);
|
||||
|
|
|
@ -35,6 +35,8 @@
|
|||
#include <sys/time.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <math.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include <FL/fl_ask.H>
|
||||
|
||||
|
@ -45,7 +47,7 @@
|
|||
|
||||
#include "qrzcall.h"
|
||||
#include "main.h"
|
||||
#include "Config.h"
|
||||
#include "Config.h"
|
||||
#include "fl_digi.h"
|
||||
#include "qrzlib.h"
|
||||
|
||||
|
@ -243,12 +245,72 @@ int getRecord()
|
|||
return 0;
|
||||
}
|
||||
|
||||
// code submitted by WA5ZNU
|
||||
//#define MY_QRA ("CM87wk")
|
||||
int bearing(const char *, const char *);
|
||||
void qra(const char *, double &, double &);
|
||||
|
||||
int bearing(const char *myqra, const char *dxqra) {
|
||||
double lat1, lat1r, lon1;
|
||||
double lat2, lat2r, lon2;
|
||||
double dlong, arg1, arg2a, arg2b, arg2, bearingr, bearing;
|
||||
double k=180.0/M_PI;
|
||||
|
||||
qra(dxqra, lat2, lon2);
|
||||
qra(myqra, lat1, lon1);
|
||||
//std::cout << lat1 << " " << lon1 << std::endl << lat2 << " " << lon2 << std::endl; cout.flush();
|
||||
|
||||
lat1r=lat1/k;
|
||||
lat2r=lat2/k;
|
||||
|
||||
dlong = lon2/k - lon1/k;
|
||||
|
||||
arg1 = sin(dlong) * cos(lat2r);
|
||||
arg2a = cos(lat1r) * sin(lat2r);
|
||||
arg2b = sin(lat1r) * cos(lat2r) * cos(dlong);
|
||||
arg2 = arg2a - arg2b;
|
||||
bearingr = atan2(arg1, arg2);
|
||||
|
||||
bearing = floor(0.5+fmod(360.0 + (bearingr * k), 360.0));
|
||||
return (int)bearing;
|
||||
}
|
||||
|
||||
|
||||
// code submitted by WA5ZNU
|
||||
void qra(const char *szqra, double &lat, double &lon) {
|
||||
int c1 = toupper(szqra[0])-'A';
|
||||
int c2 = toupper(szqra[1])-'A';
|
||||
int c3 = szqra[2]-'0';
|
||||
int c4 = szqra[3]-'0';
|
||||
int c5, c6;
|
||||
if (strlen(szqra) > 4) {
|
||||
c5 = toupper(szqra[4])-'A';
|
||||
c6 = toupper(szqra[5])-'A';
|
||||
lat = (((c2 * 10.0) + c4 + ((c6 + 0.5)/24.0)) - 90.0);
|
||||
lon = (((c1 * 20.0) + (c3 * 2.0) + ((c5 + 0.5) / 12.0)) - 180.0);
|
||||
} else {
|
||||
lat = (((c2 * 10.0) + c4 ) - 90.0);
|
||||
lon = (((c1 * 20.0) + (c3 * 2.0)) - 180.0);
|
||||
}
|
||||
}
|
||||
|
||||
void QRZ_disp_result()
|
||||
{
|
||||
Fl::lock();
|
||||
inpName->value(qrzfname.c_str());
|
||||
inpQth->value(qrzqth.c_str());
|
||||
inpLoc->value(qrzgrid.c_str());
|
||||
// code provided by WA5ZNU
|
||||
if (!progdefaults.myLocator.empty()) {
|
||||
char buf[10];
|
||||
buf[0] = '\0';
|
||||
if (!qrzgrid.empty()) {
|
||||
int b = bearing( progdefaults.myLocator.c_str(), qrzgrid.c_str() );
|
||||
int br = (b + 180) % 360;
|
||||
snprintf(buf, 256, "%03d / %03d", b, br);
|
||||
}
|
||||
inpAZ->value(buf);
|
||||
}
|
||||
inpNotes->value(qrznotes.c_str());
|
||||
Fl::unlock();
|
||||
}
|
||||
|
|
|
@ -197,29 +197,31 @@ void modem::set_samplerate(int smprate)
|
|||
void modem::ModulateXmtr(double *buffer, int len)
|
||||
{
|
||||
scard->write_samples(buffer, len);
|
||||
if (progdefaults.viewXmtSignal)
|
||||
for (int i = 0; i < len; i++) {
|
||||
scdata[scptr] = buffer[i] * 0.1;
|
||||
scptr++;
|
||||
if (scptr == 512) {
|
||||
wf->sig_data(scdata, 512);
|
||||
scptr = 0;
|
||||
}
|
||||
}
|
||||
return;
|
||||
// if (progdefaults.viewXmtSignal)
|
||||
// for (int i = 0; i < len; i++) {
|
||||
// scdata[scptr] = buffer[i] * 0.01;
|
||||
// scptr++;
|
||||
// if (scptr == 512) {
|
||||
// wf->sig_data(scdata, 512);
|
||||
// scptr = 0;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
void modem::ModulateStereo(double *left, double *right, int len)
|
||||
{
|
||||
scard->write_stereo(left, right, len);
|
||||
if (progdefaults.viewXmtSignal)
|
||||
for (int i = 0; i < len; i++) {
|
||||
scdata[scptr] = left[i] * 0.1;
|
||||
scptr++;
|
||||
if (scptr == 512) {
|
||||
wf->sig_data(scdata, 512);
|
||||
scptr = 0;
|
||||
}
|
||||
}
|
||||
return;
|
||||
// if (progdefaults.viewXmtSignal)
|
||||
// for (int i = 0; i < len; i++) {
|
||||
// scdata[scptr] = left[i] * 0.01;
|
||||
// scptr++;
|
||||
// if (scptr == 512) {
|
||||
// wf->sig_data(scdata, 512);
|
||||
// scptr = 0;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -365,7 +365,7 @@ Fl::lock();
|
|||
for (; sigy > ynext; sigy--) sig_img[sigpixel += IMAGE_WIDTH] = graylevel;
|
||||
sig_img[sigpixel++] = graylevel;
|
||||
}
|
||||
inpFreq->redraw();
|
||||
// inpFreq->redraw();
|
||||
redraw();
|
||||
Fl::unlock();
|
||||
}
|
||||
|
@ -418,14 +418,12 @@ void WFdisp::sig_data( double *sig, int len ) {
|
|||
}
|
||||
|
||||
inpFreq->value(szFrequency);
|
||||
inpFreq->redraw();
|
||||
Fl::unlock();
|
||||
Fl::awake();
|
||||
|
||||
// signal level indicator
|
||||
put_WARNstatus(peakaudio);
|
||||
|
||||
Fl::unlock();
|
||||
Fl::awake();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue