diff --git a/qmap/commons.h b/qmap/commons.h index 2e6b142a8..e973a58de 100644 --- a/qmap/commons.h +++ b/qmap/commons.h @@ -96,6 +96,11 @@ extern struct { char result[50][60]; //Staging area for QMAP decodes } decodes_; +extern struct { + char revision[22]; + char saveFileName[120]; +} savecom_; + } #endif // COMMONS_H diff --git a/qmap/libqmap/q65c.f90 b/qmap/libqmap/q65c.f90 index 2032c40a1..2c76756be 100644 --- a/qmap/libqmap/q65c.f90 +++ b/qmap/libqmap/q65c.f90 @@ -1,4 +1,4 @@ -subroutine q65c(fname0,revision0) +subroutine q65c use timer_module, only: timer use timer_impl, only: fini_timer !, limtrace @@ -15,7 +15,6 @@ subroutine q65c(fname0,revision0) integer values(8) logical first logical*1 bAlso30 - character*(*) fname0,revision0 character*120 fname character*22 revision character*12 mycall,hiscall @@ -25,6 +24,7 @@ subroutine q65c(fname0,revision0) common/decodes/ndecodes,ncand,nQDecoderDone,nWDecoderBusy, & nWTransmitting,result(50) common/datcom2/dd(2,5760000),ss(400,NFFT),savg(NFFT),nparams0 + common/savecom/revision,fname !### REMEMBER that /npar/ is not updated until nparams=nparams0 is executed. ### common/npar/fcenter,nutc,fselected,mousedf,mousefqso,nagain, & ndepth,ndiskdat,ntx60,newdat,nn1,nn2,nfcal,nfshift, & @@ -35,8 +35,6 @@ subroutine q65c(fname0,revision0) data first/.true./ save first - fname=fname0 - revision=revision0 nparams=nparams0 !Copy parameters into common/npar/ datetime(12:)='00 ' npatience=1 diff --git a/qmap/mainwindow.cpp b/qmap/mainwindow.cpp index 61aef4721..5cfe1a61b 100644 --- a/qmap/mainwindow.cpp +++ b/qmap/mainwindow.cpp @@ -940,9 +940,14 @@ void MainWindow::decode() //decode() int len1=m_saveFileName.length(); int len2=m_revision.length(); - watcher3.setFuture(QtConcurrent::run (std::bind (q65c_, - m_saveFileName.toLatin1().constData(), - m_revision.toLatin1().constData(), len1, len2))); + + memcpy(savecom_.revision, m_revision.toLatin1(), len2); + memcpy(savecom_.saveFileName, m_saveFileName.toLatin1(),len1); + + watcher3.setFuture(QtConcurrent::run (q65c_)); + //, + // m_saveFileName.toLatin1().constData(), + // m_revision.toLatin1().constData(), len1, len2))); decodeBusy(true); } diff --git a/qmap/mainwindow.h b/qmap/mainwindow.h index f4a7c5bbf..3c2fb75b0 100644 --- a/qmap/mainwindow.h +++ b/qmap/mainwindow.h @@ -200,7 +200,7 @@ extern "C" { void astrosub00_ (int* nyear, int* month, int* nday, double* uth, int* nfreq, const char* mygrid, int* ndop00, int len1); - void q65c_(const char* fname, const char* revision, int len1, int len2); + void q65c_(); void all_done_();