Upstream version 2.11I

pull/2/head
Stelios Bounanos 2008-04-08 16:31:54 +01:00
rodzic a3cc8f8e93
commit 03f25698ac
17 zmienionych plików z 173 dodań i 66 usunięć

Wyświetl plik

@ -3,6 +3,7 @@ Change Log:
2.11 1) Added EXEC macro
2) Added mousewheel over Macro buttons to move between macro button sets.
3) Fixed bug in Olivia signal level display.
4) Ported to Windows (win32)
2.10.3)
1) Corrected memory leak bug.

Wyświetl plik

@ -9,7 +9,7 @@ dnl major and minor must be integers; patch may
dnl contain other characters or be empty
m4_define(FLDIGI_MAJOR, [2])
m4_define(FLDIGI_MINOR, [11])
m4_define(FLDIGI_PATCH, [H])
m4_define(FLDIGI_PATCH, [I])
AC_INIT([fldigi], FLDIGI_MAJOR.FLDIGI_MINOR[FLDIGI_PATCH], [w1hkj AT w1hkj DOT com])

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 13 KiB

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 5.6 KiB

Wyświetl plik

@ -57,7 +57,7 @@ CLEANFILES = $(BUILT_SOURCES)
if WIN32
if HAVE_WINDRES
.rc.o:
$(WINDRES) -I$(srcdir)/include -I$(srcdir)/../data/win32 $< $@
$(WINDRES) -I$(srcdir)/include -I$(srcdir)/../data/win32 $< -O coff $@
fldigi_SOURCES += $(WIN32_RES_SRC)
endif
endif

Wyświetl plik

@ -374,10 +374,7 @@ void dominoex::afc()
// freqerr = afcfilt->run(freqerr/numtones);
freqerr = decayavg(freqerr, err, 64);
// std::cout << currsymbol << ", " << freqerr << std::endl;
fflush(stdout);
if (progStatus.afconoff && (metric > progStatus.sldrSquelchValue || progStatus.sqlonoff == false)) {
set_freq(frequency + freqerr);
}

Wyświetl plik

@ -409,8 +409,10 @@ void feld::send_symbol(int currsymb, int nextsymb)
}
outbuf[outlen++] = Amp * nco(tone);
if (outlen >= OUTBUFSIZE) {
std::cout << "reset\n"; std::cout.flush();
if (outlen >= OUTBUFSIZE) {
#ifndef __CYGWIN__
std::cout << "reset\n"; std::cout.flush();
#endif
break;
}
txcounter += upsampleinc;

Wyświetl plik

@ -44,9 +44,13 @@ viterbi::viterbi(int k, int poly1, int poly2)
for (int i = 0; i < outsize; i++) {
output[i] = parity(poly1 & i) | (parity(poly2 & i) << 1);
#ifndef __CYGWIN__
// printf("%5d", output[i]);
}
// printf("\n");
#else
}
#endif
for (int i = 0; i < PATHMEM; i++) {
metrics[i] = new int[nstates];

Wyświetl plik

@ -11,7 +11,9 @@
#include "fast_atof.h"
#ifdef _DEBUG
#ifndef __CYGWIN__
#define IRR_DEBUGPRINT(x) printf((x));
#endif
#else // _DEBUG
#define IRR_DEBUGPRINT(x)
#endif // _DEBUG

Wyświetl plik

@ -90,9 +90,15 @@ const char *ADIFHEADER =
int writeadif () {
// open the adif file
#ifndef __CYGWIN__
string sfname = HomeDir;
FILE *adiFile;
sfname.append("fldigi.adif");
#else
string sfname = "C:/FL_LOGBOOK/log.adif";
#endif
FILE *adiFile;
#ifndef __CYGWIN__
adiFile = fopen (sfname.c_str(), "r");
if (!adiFile) {
adiFile = fopen(sfname.c_str(),"w");
@ -105,6 +111,7 @@ int writeadif () {
fclose(adiFile);
} else
fclose(adiFile);
#endif
adiFile = fopen (sfname.c_str(), "a");
if (!adiFile)
return 1;

Wyświetl plik

@ -217,6 +217,10 @@ int main(int argc, char ** argv)
progdefaults.initInterface();
#ifdef __CYGWIN__
fl_digi_main->icon((char*)LoadIcon(fl_display, MAKEINTRESOURCE(IDI_ICON)));
#endif
fl_digi_main->show(argc, argv);
progStatus.initLastState();

Wyświetl plik

@ -519,11 +519,11 @@ int MACROTEXT::loadMacros(string filename)
ifstream mFile(filename.c_str());
if (!mFile) {
createDotFldigi();
for (int i = 0; i < 12; i++) {
btnMacro[i]->label( name[i].c_str());
btnMacro[i]->redraw_label();
}
createDotFldigi();
for (int i = 0; i < 12; i++) {
btnMacro[i]->label( name[i].c_str());
btnMacro[i]->redraw_label();
}
return 0;
// mFile.open(filename.c_str());
// if (!mFile)
@ -560,7 +560,7 @@ int MACROTEXT::loadMacros(string filename)
name[mNumber] = mLine.substr(idx+1);
if (mNumber < 12) {
FL_LOCK_D();
btnMacro[mNumber]->label( (name[mNumber]).c_str());
btnMacro[mNumber]->label( (name[mNumber]).c_str());
FL_UNLOCK_D();
}
continue;
@ -571,17 +571,21 @@ int MACROTEXT::loadMacros(string filename)
}
text[mNumber] = text[mNumber] + mLine;
}
mFile.close();
mFile.close();
return 0;
}
void MACROTEXT::loadDefault()
{
{
int erc;
string Filename = HomeDir;
Filename.append("macros.mdf");
if ((erc = loadMacros(Filename)) != 0)
if ((erc = loadMacros(Filename)) != 0)
#ifndef __CYGWIN__
printf("Error #%d loading %s\n", erc, Filename.c_str());
#else
;
#endif
}
void MACROTEXT::openMacroFile()

Wyświetl plik

@ -66,8 +66,10 @@ void parse_mailtext()
strCmdText = mailtext.substr(idxCmd + 5, idxCmdEnd - idxCmd - 5);
if (strCmdText == "server" && mailserver == false && mailclient == false) {
mailserver = true;
mailclient = false;
std::cout << "Starting pskmail server transport layer" << std::endl; std::cout.flush();
mailclient = false;
#ifndef __CYGWIN__
std::cout << "Starting pskmail server transport layer" << std::endl; std::cout.flush();
#endif
string PskMailLogName = PskMailDir;
PskMailLogName += "gMFSK.log";
Maillogfile = new cLogfile(PskMailLogName.c_str());
@ -75,13 +77,17 @@ void parse_mailtext()
} else if (strCmdText == "client" && mailclient == false && mailserver == false) {
mailclient = true;
mailserver = false;
std::cout << "Starting pskmail client transport layer" << std::endl; std::cout.flush();
#ifndef __CYGWIN__
std::cout << "Starting pskmail client transport layer" << std::endl; std::cout.flush();
#endif
string PskMailLogName = PskMailDir;
PskMailLogName += "gMFSK.log";
Maillogfile = new cLogfile(PskMailLogName.c_str());
Maillogfile->log_to_file_start();
} else if (strCmdText == "normal") {
std::cout << "Closing pskmail transport layer" << std::endl; std::cout.flush();
#ifndef __CYGWIN__
std::cout << "Closing pskmail transport layer" << std::endl; std::cout.flush();
#endif
mailserver = false;
mailclient = false;
if (Maillogfile) {
@ -147,9 +153,11 @@ void initFilePtr()
fseek(infile, 0, SEEK_END);
infileptr = ftell(infile);
fclose(infile);
}
bInitFilePtr = true;
std::cout << "Init file pointer = " << infileptr << std::endl; std::cout.flush();
}
bInitFilePtr = true;
#ifndef __CYGWIN__
std::cout << "Init file pointer = " << infileptr << std::endl; std::cout.flush();
#endif
}
#endif
@ -215,7 +223,7 @@ void check_formail() {
}
}
#else
// Windows file handling for input strings
// Windows file handling for input strings
FILE *infile;
infile = fopen(str_infile.c_str(), "rb");
if (infile) {
@ -283,12 +291,12 @@ void send0x06()
void pskmail_loop(void *)
{
#ifdef __CYGWIN__
if (!bInitFilePtr)
if (bInitFilePtr == false)
initFilePtr();
#endif
if (bSend0x06)
send0x06();
check_formail();
// if (bSend0x06)
// send0x06();
// check_formail();
Fl::repeat_timeout(0.2, pskmail_loop);//1.0, pskmail_loop);
}

Wyświetl plik

@ -56,7 +56,9 @@ void show_error(const char * a, const char * b)
msg.append(": ");
msg.append(b);
put_status((char*)msg.c_str());
std::cout << msg.c_str() << std::endl; std::cout.flush();
#ifndef __CYGWIN__
std::cout << msg.c_str() << std::endl; std::cout.flush();
#endif
}
bool hamlib_setRTSDTR()
@ -81,16 +83,19 @@ bool hamlib_setRTSDTR()
ioctl_bits |= TIOCM_DTR; // set DTR bit
else
ioctl_bits &= ~TIOCM_DTR; // clear DTR bit
#ifndef __CYGWIN__
std::cout << "TIOCM_RTS " << TIOCM_RTS << ", RTSplus " << progdefaults.RTSplus;
std::cout << std::endl;
std::cout << "TIOCM_DTR " << TIOCM_DTR << ", DTRplus " << progdefaults.DTRplus;
std::cout << std::endl;
std::cout << ioctl_bits;
std::cout << ioctl_bits;
#endif
ioctl(hamlibfd, TIOCMSET, &ioctl_bits);
close(hamlibfd);
#ifndef __CYGWIN__
std::cout << "=> setRTSDTR() => " << ioctl_bits << std::endl; std::cout.flush();
#endif
return true;
}
@ -202,7 +207,9 @@ bool hamlib_init(bool bPtt)
hamlib_rmode = RIG_MODE_NONE;//RIG_MODE_USB;
if (fl_create_thread(hamlib_thread, hamlib_loop, &dummy) < 0) {
std::cout << "Hamlib init: pthread_create failed\n"; std::cout.flush();
#ifndef __CYGWIN__
std::cout << "Hamlib init: pthread_create failed\n"; std::cout.flush();
#endif
xcvr->close();
return false;
}
@ -230,7 +237,9 @@ void hamlib_close(void)
MilliSleep(50);
count--;
if (!count) {
std::cout << "\nHamlib stuck\n"; cout.flush();
#ifndef __CYGWIN__
std::cout << "\nHamlib stuck\n"; cout.flush();
#endif
xcvr->close();
exit(0);
}

Wyświetl plik

@ -45,7 +45,8 @@ static long long llFreq = 0;
static int dummy = 0;
static void *rigCAT_loop(void *args);
#ifndef __CYGWIN__
void printhex(string s)
{
for (unsigned int i = 0; i < s.length(); i++) {
@ -69,6 +70,7 @@ char * printtime()
strftime(sztime, 79, "[%H:%M:%S]", now);
return sztime;
}
#endif
bool readpending = false;
int readtimeout;
@ -87,7 +89,9 @@ bool hexout( string s, int retnbr)
MilliSleep(1);
if (readtimeout == 0) {
readpending = false;
#ifndef __CYGWIN__
std::cout << "rigio timeout!" << std::endl; fflush(stdout);
#endif
return false;
}
@ -114,7 +118,7 @@ bool hexout( string s, int retnbr)
if (retnbr > 0) {
num = rigio.ReadBuffer (replybuff, retnbr > 200 ? 200 : retnbr);
// debug code
#ifndef __CYGWIN__
// if (num) {
// std::cout << printtime() << "Rsp (" << n << "): ";
// printhex(replybuff, num);
@ -122,6 +126,7 @@ bool hexout( string s, int retnbr)
// std::cout << printtime() << "Rsp (" << n << "): no reply" << std::endl;
// std::cout.flush();
// to here
#endif
}
if (retnbr == 0 || num == retnbr) {
@ -792,24 +797,32 @@ unused__ static void show_error(const char * a, const char * b)
string msg = a;
msg.append(": ");
msg.append(b);
#ifndef __CYGWIN__
std::cout << msg << std::endl;
#endif
}
bool rigCAT_init()
{
if (rigCAT_open == true) {
std::cout << "RigCAT already open file present\n"; fflush(stdout);
#ifndef __CYGWIN__
std::cout << "RigCAT already open file present\n"; fflush(stdout);
#endif
return false;
}
if (readRigXML() == false) {
std::cout << "No rig.xml file present\n"; std::cout.flush();
#ifndef __CYGWIN__
std::cout << "No rig.xml file present\n"; std::cout.flush();
#endif
return false;
}
if (rigio.OpenPort() == false) {
#ifndef __CYGWIN__
std::cout << "Cannot open serial port " << (char *)rigio.Device().c_str();
std::cout << std::endl; std::cout.flush();
std::cout << std::endl; std::cout.flush();
#endif
return false;
}
llFreq = 0;
@ -817,12 +830,16 @@ bool rigCAT_init()
sRigWidth = "";
if (rigCAT_getfreq() <= 0) {
std::cout << "Transceiver not responding\n"; std::cout.flush();
#ifndef __CYGWIN__
std::cout << "Transceiver not responding\n"; std::cout.flush();
#endif
return false;
}
if (fl_create_thread(rigCAT_thread, rigCAT_loop, &dummy) < 0) {
std::cout << "rig init: pthread_create failed\n"; std::cout.flush();
#ifndef __CYGWIN__
std::cout << "rig init: pthread_create failed\n"; std::cout.flush();
#endif
rigio.ClosePort();
return false;
}
@ -847,7 +864,9 @@ void rigCAT_close(void)
MilliSleep(50);
count--;
if (!count) {
std::cout << "\nRigCAT stuck\n"; fflush(stdout);
#ifndef __CYGWIN__
std::cout << "\nRigCAT stuck\n"; fflush(stdout);
#endif
fl_lock(&rigCAT_mutex);
rigio.ClosePort();
fl_unlock(&rigCAT_mutex);

Wyświetl plik

@ -73,7 +73,9 @@ void parseDREV(size_t &);
void parseDMAKS(size_t &);
void parseDSHIFT(size_t &);
#ifndef __CYGWIN__
void print(size_t &);
#endif
list<XMLIOS> commands;
list<XMLIOS> reply;
@ -166,7 +168,8 @@ TAGS datatags[] = {
;
//=====================================================================
#ifndef __CYGWIN__
void print(size_t &p0, int indent)
{
#ifdef DEBUGXML
@ -176,6 +179,7 @@ void print(size_t &p0, int indent)
std::cout << strXML.substr(p0, tend - p0 + 1).c_str() << std::endl;
#endif
}
#endif
size_t tagEnd(size_t p0)
{
@ -331,7 +335,9 @@ void parseMODEdefs(size_t &p0, list<MODE> &lmd)
p0++;
return;
}
print(p0,0);
#ifndef __CYGWIN__
print(p0,0);
#endif
p0 = nextTag(p0);
while (p0 != string::npos && p0 < pend && tagIs(p0, "<ELEMENT")) {
elend = tagEnd(p0);
@ -340,7 +346,9 @@ void parseMODEdefs(size_t &p0, list<MODE> &lmd)
p0 = tagEnd(p0);
p0 = nextTag(p0);
while (p0 != string::npos && p0 < elend) {
print(p0,1);
#ifndef __CYGWIN__
print(p0,1);
#endif
if ( isBytes(p0, stemp) ) {
lmd.push_back(MODE(strELEMENT,stemp));
}
@ -384,11 +392,15 @@ void parseLSBMODES(size_t &p0)
{
size_t pend = tagEnd(p0);
string sMode;
print(p0,0);
#ifndef __CYGWIN__
print(p0,0);
#endif
p0 = nextTag(p0);
while (p0 < pend && isString(p0, sMode)) {
LSBmodes.push_back(sMode);
print (p0,1);
#ifndef __CYGWIN__
print (p0,1);
#endif
p0 = tagEnd(p0);
p0 = nextTag(p0);
}
@ -411,7 +423,9 @@ void parseBWdefs(size_t &p0, list<BW> &lbw)
p0++;
return;
}
print(p0,0);
#ifndef __CYGWIN__
print(p0,0);
#endif
p0 = nextTag(p0);
while (p0 != string::npos && p0 < pend && tagIs(p0, "<ELEMENT")) {
elend = tagEnd(p0);
@ -420,7 +434,9 @@ void parseBWdefs(size_t &p0, list<BW> &lbw)
p0 = tagEnd(p0);
p0 = nextTag(p0);
while (p0 != string::npos && p0 < elend) {
print(p0,1);
#ifndef __CYGWIN__
print(p0,1);
#endif
if ( isBytes(p0, stemp) ) {
lbw.push_back(BW(strELEMENT,stemp));
}
@ -558,7 +574,9 @@ void parsePORT(size_t &p0)
size_t p1;
TAGS *pv;
print(p0,0);
#ifndef __CYGWIN__
print(p0,0);
#endif
rig.clear();
p1 = nextTag(p0);
@ -566,7 +584,9 @@ void parsePORT(size_t &p0)
pv = porttags;
while (pv->tag) {
if (strXML.find(pv->tag, p1) == p1) {
print(p1, 1);
#ifndef __CYGWIN__
print(p1, 1);
#endif
if (pv->fp)
(pv->fp)(p1);
break;
@ -589,6 +609,7 @@ void parsePORT(size_t &p0)
}
p0 = pend;
#ifdef DEBUGXML
#ifndef __CYGWIN__
std::cout << "port: " << rig.port.c_str() << std::endl;
std::cout << "baud: " << rig.baud << std::endl;
std::cout << "retries: " << rig.retries << std::endl;
@ -598,6 +619,7 @@ void parsePORT(size_t &p0)
std::cout << "initial dts: " << (rig.dtr ? "+12" : "-12") << std::endl;
std::cout << "use dtr ptt: " << (rig.dtrptt ? "T" : "F") << std::endl;
std::cout << "use flowcontrol: " << (rig.rtscts ? "T" : "F") << std :: endl;
#endif
#endif
}
@ -644,49 +666,65 @@ void parseIOSint(size_t &p0)
void parseDTYPE(size_t &p1)
{
print(p1,2);
#ifndef __CYGWIN__
print(p1,2);
#endif
iosTemp.data.dtype = getElement(p1);
}
void parseDSIZE(size_t &p1)
{
print(p1,2);
#ifndef __CYGWIN__
print(p1,2);
#endif
iosTemp.data.size = getInt(p1);
}
void parseDMAX(size_t &p1)
{
print(p1,2);
#ifndef __CYGWIN__
print(p1,2);
#endif
iosTemp.data.max = getInt(p1);
}
void parseDMIN(size_t &p1)
{
print(p1,2);
#ifndef __CYGWIN__
print(p1,2);
#endif
iosTemp.data.min = getInt(p1);
}
void parseDRESOL(size_t &p1)
{
print(p1,2);
#ifndef __CYGWIN__
print(p1,2);
#endif
iosTemp.data.resolution = getFloat(p1);
}
void parseDREV(size_t &p1)
{
print(p1,2);
#ifndef __CYGWIN__
print(p1,2);
#endif
iosTemp.data.reverse = getBool(p1);
}
void parseDMAKS(size_t &p1)
{
print(p1,2);
#ifndef __CYGWIN__
print(p1,2);
#endif
iosTemp.data.andmask = getInt(p1);
}
void parseDSHIFT(size_t &p1)
{
print(p1,2);
#ifndef __CYGWIN__
print(p1,2);
#endif
iosTemp.data.shiftbits = getInt(p1);
}
@ -701,7 +739,9 @@ void parseIOSdata(size_t &p0)
pv = datatags;
while (pv->tag) {
if (strXML.find(pv->tag, p1) == p1) {
print(p1, 1);
#ifndef __CYGWIN__
print(p1, 1);
#endif
if (pv->fp)
(pv->fp)(p1);
break;
@ -757,7 +797,9 @@ bool parseIOS(size_t &p0, TAGS *valid)
size_t p1;
TAGS *pv;
print(p0,0);
#ifndef __CYGWIN__
print(p0,0);
#endif
iosTemp.clear();
p1 = nextTag(p0);
@ -765,7 +807,9 @@ bool parseIOS(size_t &p0, TAGS *valid)
pv = valid;
while (pv->tag) {
if (strXML.find(pv->tag, p1) == p1) {
print(p1, 1);
#ifndef __CYGWIN__
print(p1, 1);
#endif
if (pv->fp)
(pv->fp)(p1);
break;

Wyświetl plik

@ -110,6 +110,7 @@ void MixerOSS::initValues()
pcmlevel0 = PCMVolume();
vollevel0 = OutVolume();
/*
#ifndef __CYGWIN__
std::cout << "Sound card initial state:" << std::endl;
std::cout << " Dev mask " << hex << devmask << std::endl;
std::cout << " Rec mask " << hex << recmask << std::endl;
@ -118,7 +119,8 @@ void MixerOSS::initValues()
std::cout << " Line Level = " << linelevel0 << std::endl;
std::cout << " Mic Level = " << miclevel0 << std::endl;
std::cout << " Pcm Level = " << pcmlevel0 << std::endl;
std::cout << " Vol Level = " << vollevel0 << std::endl;
std::cout << " Vol Level = " << vollevel0 << std::endl;
#endif
*/
}

Wyświetl plik

@ -367,7 +367,9 @@ void trx_start_macro_timer()
void trx_start(void)
{
if (trxrunning) {
std::cout<< "trx already running!\n"; fflush(stdout);
#ifndef __CYGWIN__
std::cout<< "trx already running!\n"; fflush(stdout);
#endif
return;
}
@ -400,7 +402,9 @@ void trx_start(void)
_trx_tune = 0;
active_modem = 0;
if (fl_create_thread(trx_thread, trx_loop, &dummy) < 0) {
std::cout << "trx pthread_create:" << std::endl; fflush(stdout);
#ifndef __CYGWIN__
std::cout << "trx pthread_create:" << std::endl; fflush(stdout);
#endif
trxrunning = false;
exit(1);
}