diff options
author | Stephen Hurd <shurd@FreeBSD.org> | 2016-04-10 21:54:40 +0000 |
---|---|---|
committer | Stephen Hurd <shurd@FreeBSD.org> | 2016-04-10 21:54:40 +0000 |
commit | 93b24289aadbacceed17b798cf89e4bb7147f3c3 (patch) | |
tree | 45cef4d9b2fe4b052282e6b4e534680fda9719d3 /comms | |
parent | 3052a7c37a4efcf1bd189f166b3864d3f0f633d6 (diff) | |
download | ports-93b24289aadbacceed17b798cf89e4bb7147f3c3.tar.gz ports-93b24289aadbacceed17b798cf89e4bb7147f3c3.zip |
Notes
Diffstat (limited to 'comms')
27 files changed, 404 insertions, 229 deletions
diff --git a/comms/qsstv/Makefile b/comms/qsstv/Makefile index 6ccba293f1e5..96a546a0a63a 100644 --- a/comms/qsstv/Makefile +++ b/comms/qsstv/Makefile @@ -1,7 +1,7 @@ # $FreeBSD$ PORTNAME= qsstv -PORTVERSION= 8.2.12 +PORTVERSION= 9.1.1 CATEGORIES= comms hamradio MASTER_SITES= http://users.telenet.be/on4qz/qsstv/downloads/ \ LOCAL/shurd @@ -16,11 +16,33 @@ LIB_DEPENDS= libfftw3.so:math/fftw3 \ libfftw3f.so:math/fftw3-float \ libhamlib.so:comms/hamlib \ libasound.so:audio/alsa-lib \ - libjasper.so:graphics/jasper + libpulse.so:audio/pulseaudio \ + libopenjp2.so.7:graphics/openjpeg BUILD_DEPENDS= v4l_compat>=0:multimedia/v4l_compat USES= qmake -USE_QT4= gui network xml moc_build rcc_build uic_build -PLIST_FILES= bin/qsstv +USE_QT5= buildtools core gui network xml + +OPTIONS_DEFINE= DOCS +DOCS_CXXFLAGS= -DWITH_DOCS + +post-patch: + @${REINPLACE_CMD} -e 's|%%PREFIX%%|${PREFIX}|g' \ + -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \ + -e 's|%%DOCSDIR%%|${DOCSDIR}|g' \ + -e 's|%%PERL%%|${PERL}|g' \ + ${WRKSRC}/qsstv/qsstv.pro ${WRKSRC}/qwt/qwt.pro \ + ${WRKSRC}/qsstv/config/directoriesconfig.cpp \ + ${WRKSRC}/qsstv/documentation/manual/manual.doxy \ + ${WRKSRC}/qsstv/documentation/manual/manual/gettingstarted.html \ + ${WRKSRC}/qsstv/documentation/manual/manual.txt + ${RM} ${WRKSRC}/qsstv/documentation/manual/manual.txt.* + ${RM} ${WRKSRC}/qsstv/documentation/manual/manual.*.orig + +post-stage: + -${RM} ${STAGEDIR}/${DOCSDIR}/manual.doxy + -${RM} ${STAGEDIR}/${DOCSDIR}/doxygen_sqlite3.db + -${RM} ${STAGEDIR}/${DOCSDIR}/*.bak + -${RM} ${STAGEDIR}/${DOCSDIR}/*.orig .include <bsd.port.mk> diff --git a/comms/qsstv/distinfo b/comms/qsstv/distinfo index a7991c9aa02f..42a875705bb0 100644 --- a/comms/qsstv/distinfo +++ b/comms/qsstv/distinfo @@ -1,2 +1,2 @@ -SHA256 (qsstv_8.2.12.tar.gz) = 3bb6cff072747981d387196780de4414f8766a5a620dc1629cb4ba4de1d3bc4d -SIZE (qsstv_8.2.12.tar.gz) = 942737 +SHA256 (qsstv_9.1.1.tar.gz) = 421a937901f98f8a0008f52ce6dde286733e5fd6a381ff8db0088e885bed6909 +SIZE (qsstv_9.1.1.tar.gz) = 12829697 diff --git a/comms/qsstv/files/patch-qsstv_config_directoriesconfig.cpp b/comms/qsstv/files/patch-qsstv_config_directoriesconfig.cpp new file mode 100644 index 000000000000..d19b824f3d98 --- /dev/null +++ b/comms/qsstv/files/patch-qsstv_config_directoriesconfig.cpp @@ -0,0 +1,14 @@ +--- qsstv/config/directoriesconfig.cpp.orig 2016-04-08 23:08:29 UTC ++++ qsstv/config/directoriesconfig.cpp +@@ -43,7 +43,11 @@ void directoriesConfig::readSettings() + txStockImagesPath=qSettings.value("txStockImagesPath",QString(getenv("HOME"))+"/tx_stock/").toString(); + templatesPath=qSettings.value("templatesPath",QString(getenv("HOME"))+"/templates/").toString(); + audioPath=qSettings.value("audioPath",QString(getenv("HOME"))+"/audio/").toString(); ++#ifdef WITH_DOCS ++ docURL=qSettings.value("docURL","file://%%DOCSDIR%%/manual").toString(); ++#else + docURL=qSettings.value("docURL","http://users.telenet.be/on4qz/qsstv_9/manual").toString(); ++#endif + saveTXimages=qSettings.value("saveTXimages",false).toBool(); + qSettings.endGroup(); + setParams(); diff --git a/comms/qsstv/files/patch-qsstv_configform.ui b/comms/qsstv/files/patch-qsstv_configform.ui deleted file mode 100644 index 8fd395056c2f..000000000000 --- a/comms/qsstv/files/patch-qsstv_configform.ui +++ /dev/null @@ -1,10 +0,0 @@ ---- qsstv/configform.ui.orig 2014-12-06 14:41:00 UTC -+++ qsstv/configform.ui -@@ -2611,7 +2611,6 @@ - </layout> - </widget> - <layoutdefault spacing="6" margin="11"/> -- <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> - <customwidgets> - <customwidget> - <class>soundControl</class> diff --git a/comms/qsstv/files/patch-qsstv_documentation_manual_manual.doxy b/comms/qsstv/files/patch-qsstv_documentation_manual_manual.doxy new file mode 100644 index 000000000000..838a67290e88 --- /dev/null +++ b/comms/qsstv/files/patch-qsstv_documentation_manual_manual.doxy @@ -0,0 +1,11 @@ +--- qsstv/documentation/manual/manual.doxy.orig 2016-04-08 23:42:31 UTC ++++ qsstv/documentation/manual/manual.doxy +@@ -1549,7 +1549,7 @@ EXTERNAL_GROUPS = YES + # The PERL_PATH should be the absolute path and name of the perl script + # interpreter (i.e. the result of `which perl'). + +-PERL_PATH = /usr/bin/perl ++PERL_PATH = %%PERL%% + + #--------------------------------------------------------------------------- + # Configuration options related to the dot tool diff --git a/comms/qsstv/files/patch-qsstv_documentation_manual_manual.txt b/comms/qsstv/files/patch-qsstv_documentation_manual_manual.txt new file mode 100644 index 000000000000..bd9107be5793 --- /dev/null +++ b/comms/qsstv/files/patch-qsstv_documentation_manual_manual.txt @@ -0,0 +1,11 @@ +--- qsstv/documentation/manual/manual.txt.orig 2016-04-09 01:25:30 UTC ++++ qsstv/documentation/manual/manual.txt +@@ -213,7 +213,7 @@ The following tabs are available + - TX Images: directory for images to transmit + - Templates: directory where the template files are stored + - Audio Records: directory for audio files (where you save/read recorded audio files) +-- Documentation: URL of the user manual (if you copied the manual locally then you can point to it with e.g. file:///usr/share/doc/qsstv/manual ++- Documentation: URL of the user manual (if you copied the manual locally then you can point to it with e.g. file://%%DOCSDIR%%/manual + <br><br> + + \li Gui diff --git a/comms/qsstv/files/patch-qsstv_documentation_manual_manual_gettingstarted.html b/comms/qsstv/files/patch-qsstv_documentation_manual_manual_gettingstarted.html new file mode 100644 index 000000000000..98f7e21e5f12 --- /dev/null +++ b/comms/qsstv/files/patch-qsstv_documentation_manual_manual_gettingstarted.html @@ -0,0 +1,11 @@ +--- qsstv/documentation/manual/manual/gettingstarted.html.orig 2016-04-09 01:25:31 UTC ++++ qsstv/documentation/manual/manual/gettingstarted.html +@@ -107,7 +107,7 @@ This information can also be used in tem + <li>TX Images: directory for images to transmit</li> + <li>Templates: directory where the template files are stored</li> + <li>Audio Records: directory for audio files (where you save/read recorded audio files)</li> +-<li>Documentation: URL of the user manual (if you copied the manual locally then you can point to it with e.g. <a href="file:///usr/share/doc/qsstv/manual">file:///usr/share/doc/qsstv/manual</a> <br /> ++<li>Documentation: URL of the user manual (if you copied the manual locally then you can point to it with e.g. <a href="file://%%DOCSDIR%%/manual">file://%%DOCSDIR%%/qsstv/manual</a> <br /> + <br /> + </li> + </ul> diff --git a/comms/qsstv/files/patch-qsstv_drmrx_channeldecode.cpp b/comms/qsstv/files/patch-qsstv_drmrx_channeldecode.cpp index 395160e7f891..f08472d1e2a3 100644 --- a/comms/qsstv/files/patch-qsstv_drmrx_channeldecode.cpp +++ b/comms/qsstv/files/patch-qsstv_drmrx_channeldecode.cpp @@ -1,4 +1,4 @@ ---- qsstv/drmrx/channeldecode.cpp.orig 2014-12-06 14:41:00 UTC +--- qsstv/drmrx/channeldecode.cpp.orig 2016-04-08 23:08:29 UTC +++ qsstv/drmrx/channeldecode.cpp @@ -29,7 +29,6 @@ #include <stdlib.h> @@ -6,5 +6,5 @@ #include <math.h> -#include <malloc.h> #include <float.h> - #include "structtemplates.h" #include "drmproto.h" + #include "drmdefs.h" diff --git a/comms/qsstv/files/patch-qsstv_drmrx_deinterleaver.cpp b/comms/qsstv/files/patch-qsstv_drmrx_deinterleaver.cpp index bb96933c7088..924dd457e1d7 100644 --- a/comms/qsstv/files/patch-qsstv_drmrx_deinterleaver.cpp +++ b/comms/qsstv/files/patch-qsstv_drmrx_deinterleaver.cpp @@ -1,4 +1,4 @@ ---- qsstv/drmrx/deinterleaver.cpp.orig 2014-12-06 14:41:00 UTC +--- qsstv/drmrx/deinterleaver.cpp.orig 2016-04-08 23:08:29 UTC +++ qsstv/drmrx/deinterleaver.cpp @@ -30,7 +30,6 @@ diff --git a/comms/qsstv/files/patch-qsstv_drmrx_demodulator.cpp b/comms/qsstv/files/patch-qsstv_drmrx_demodulator.cpp deleted file mode 100644 index a83b6ea661d0..000000000000 --- a/comms/qsstv/files/patch-qsstv_drmrx_demodulator.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- qsstv/drmrx/demodulator.cpp.orig 2014-12-06 14:41:00 UTC -+++ qsstv/drmrx/demodulator.cpp -@@ -941,7 +941,7 @@ bool demodulator::channelEstimation() - temp2 += actual_pilots[2 * j] * next_pilots[2 * j + 1] -actual_pilots[2 * j + 1] * next_pilots[2 * j]; - - } -- if (i != 0) delta_freq_offset = (float) atan2(temp2, temp1 + MIN_ABS_H); -+ if (i != 0) delta_freq_offset = (float) atan2(temp2, (float)(temp1 + MIN_ABS_H)); - - for (j = 0; j < K_max - K_min + 1; j++) - { diff --git a/comms/qsstv/files/patch-qsstv_drmrx_getmode.cpp b/comms/qsstv/files/patch-qsstv_drmrx_getmode.cpp index b2d54d0a6e33..ee5215b6cbbf 100644 --- a/comms/qsstv/files/patch-qsstv_drmrx_getmode.cpp +++ b/comms/qsstv/files/patch-qsstv_drmrx_getmode.cpp @@ -1,4 +1,4 @@ ---- qsstv/drmrx/getmode.cpp.orig 2014-12-06 14:41:00 UTC +--- qsstv/drmrx/getmode.cpp.orig 2016-04-08 23:08:29 UTC +++ qsstv/drmrx/getmode.cpp @@ -34,7 +34,6 @@ #include <stdlib.h> diff --git a/comms/qsstv/files/patch-qsstv_drmrx_mkfacmap.cpp b/comms/qsstv/files/patch-qsstv_drmrx_mkfacmap.cpp index dc28bd1580ba..78abf53439de 100644 --- a/comms/qsstv/files/patch-qsstv_drmrx_mkfacmap.cpp +++ b/comms/qsstv/files/patch-qsstv_drmrx_mkfacmap.cpp @@ -1,4 +1,4 @@ ---- qsstv/drmrx/mkfacmap.cpp.orig 2014-12-06 14:41:00 UTC +--- qsstv/drmrx/mkfacmap.cpp.orig 2016-04-08 23:08:29 UTC +++ qsstv/drmrx/mkfacmap.cpp @@ -27,7 +27,6 @@ diff --git a/comms/qsstv/files/patch-qsstv_drmrx_mkmscmap.cpp b/comms/qsstv/files/patch-qsstv_drmrx_mkmscmap.cpp index 2b75ad4d9fa8..5e0750ef646e 100644 --- a/comms/qsstv/files/patch-qsstv_drmrx_mkmscmap.cpp +++ b/comms/qsstv/files/patch-qsstv_drmrx_mkmscmap.cpp @@ -1,4 +1,4 @@ ---- qsstv/drmrx/mkmscmap.cpp.orig 2014-12-06 14:41:00 UTC +--- qsstv/drmrx/mkmscmap.cpp.orig 2016-04-08 23:08:29 UTC +++ qsstv/drmrx/mkmscmap.cpp @@ -32,7 +32,6 @@ #include <stdlib.h> diff --git a/comms/qsstv/files/patch-qsstv_drmrx_psdcmean.cpp b/comms/qsstv/files/patch-qsstv_drmrx_psdcmean.cpp index e1ec371fcef4..ee2e703609fb 100644 --- a/comms/qsstv/files/patch-qsstv_drmrx_psdcmean.cpp +++ b/comms/qsstv/files/patch-qsstv_drmrx_psdcmean.cpp @@ -1,4 +1,4 @@ ---- qsstv/drmrx/psdcmean.cpp.orig 2014-12-06 14:41:00 UTC +--- qsstv/drmrx/psdcmean.cpp.orig 2016-04-08 23:08:29 UTC +++ qsstv/drmrx/psdcmean.cpp @@ -36,7 +36,6 @@ #include <stdlib.h> diff --git a/comms/qsstv/files/patch-qsstv_drmrx_psdmean.cpp b/comms/qsstv/files/patch-qsstv_drmrx_psdmean.cpp index 64727de4ac60..535d316bf79f 100644 --- a/comms/qsstv/files/patch-qsstv_drmrx_psdmean.cpp +++ b/comms/qsstv/files/patch-qsstv_drmrx_psdmean.cpp @@ -1,4 +1,4 @@ ---- qsstv/drmrx/psdmean.cpp.orig 2014-12-06 14:41:00 UTC +--- qsstv/drmrx/psdmean.cpp.orig 2016-04-08 23:08:29 UTC +++ qsstv/drmrx/psdmean.cpp @@ -36,7 +36,6 @@ #include <stdlib.h> diff --git a/comms/qsstv/files/patch-qsstv_qsstv.pro b/comms/qsstv/files/patch-qsstv_qsstv.pro index 0efdbd76eeca..f85a7b32a5f1 100644 --- a/comms/qsstv/files/patch-qsstv_qsstv.pro +++ b/comms/qsstv/files/patch-qsstv_qsstv.pro @@ -1,28 +1,29 @@ ---- qsstv/qsstv.pro.orig 2014-12-06 14:41:00 UTC +--- qsstv/qsstv.pro.orig 2016-04-08 23:08:29 UTC +++ qsstv/qsstv.pro -@@ -420,20 +420,17 @@ HEADERS += scope/scopeoffset.h \ - FORMS += scope/scopeoffset.ui \ - scope/plotform.ui +@@ -15,7 +15,7 @@ QMAKE_CXXFLAGS_RELEASE += -O3 + + TARGET = qsstv + TEMPLATE = app +-INCLUDEPATH += config utils sound widgets dsp dispatch logbook mainwidgets rig sstv videocapt drmrx drmtx xmlrpc /usr/include/openjpeg-2.1 ++INCLUDEPATH += config utils sound widgets dsp dispatch logbook mainwidgets rig sstv videocapt drmrx drmtx xmlrpc %%LOCALBASE%%/include/openjpeg-2.1 -- INCLUDEPATH += /usr/include/qwt - LIBS += ../qwt/libqwt.a - } --CONFIG(debug ,debug|release){ --dox.commands = cd $$PWD/Documentation/manual ;doxygen manual.doxy; -+with_docs { -+dox.commands = cd Documentation/manual ;doxygen manual.doxy; - dox.depends= FORCE --PRE_TARGETDEPS += dox + SOURCES += main.cpp\ +@@ -515,8 +515,8 @@ PRE_TARGETDEPS += dox message(dox will be generated) } + -dox.path=/usr/share/doc/$$TARGET -dox.files= $$PWD/manual/* --QMAKE_EXTRA_TARGETS += dox -+dox.path=$$PREFIX/share/doc/$$TARGET -+dox.files= manual/* ++dox.path=%%DOCSDIR%% ++dox.files= documentation/manual/* + QMAKE_EXTRA_TARGETS += dox + + +@@ -524,5 +524,5 @@ QMAKE_EXTRA_TARGETS += dox + RESOURCES += \ + qsstv.qrc -target.path = /usr/bin -+target.path = $$PREFIX/bin ++target.path = %%PREFIX%%/bin INSTALLS += target dox - diff --git a/comms/qsstv/files/patch-qsstv_sound_soundalsa.cpp b/comms/qsstv/files/patch-qsstv_sound_soundalsa.cpp new file mode 100644 index 000000000000..37ed8a83b959 --- /dev/null +++ b/comms/qsstv/files/patch-qsstv_sound_soundalsa.cpp @@ -0,0 +1,81 @@ +--- qsstv/sound/soundalsa.cpp.orig 2016-04-08 23:08:29 UTC ++++ qsstv/sound/soundalsa.cpp +@@ -64,6 +64,8 @@ void soundAlsa::prepareCapture() + { + int err; + ++ snd_pcm_drop(captureHandle); ++ snd_pcm_reset(captureHandle); + if((err=snd_pcm_prepare (captureHandle)) < 0) + { + alsaErrorHandler(err,"Unable to prepare "+inputAudioDevice); +@@ -76,6 +78,8 @@ void soundAlsa::prepareCapture() + + void soundAlsa::preparePlayback() + { ++ snd_pcm_drop(playbackHandle); ++ snd_pcm_reset(playbackHandle); + snd_pcm_prepare (playbackHandle); + } + +@@ -97,6 +101,8 @@ int soundAlsa::read(int &countAvailable) + if ( count == -EPIPE ) + { + // Overrun ++ snd_pcm_drop(captureHandle); ++ snd_pcm_reset(captureHandle); + snd_pcm_prepare (captureHandle ); + snd_pcm_start (captureHandle); + errorOut() << "Overrun"; +@@ -140,6 +146,8 @@ int soundAlsa::write(uint numFrames) + else if ( framesWritten == -EPIPE ) + { + /* underrun */ ++ snd_pcm_drop(playbackHandle); ++ snd_pcm_reset(playbackHandle); + error = snd_pcm_prepare (playbackHandle); + if ( error < 0 ) + { +@@ -337,5 +345,42 @@ void getCardList(QStringList &alsaInputL + n++; + } + snd_device_name_free_hint(hints); ++ ++ snd_config_t *pcmc; ++ snd_pcm_t *pcm; ++ if (!snd_config) ++ snd_config_update(); ++ if(snd_config_search(snd_config, "pcm", &pcmc)==0) { ++ snd_config_iterator_t i, next; ++ snd_config_for_each(i, next, pcmc) { ++ snd_config_t *n = snd_config_iterator_entry(i); ++ if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) ++ continue; ++ const char *id; ++ if(snd_config_get_id(n, &id)==0) { ++ deviceName = QString(id); ++ if (deviceName == "hw" || ++ deviceName == "plughw" || ++ deviceName == "plug" || ++ deviceName == "dsnoop" || ++ deviceName == "tee" || ++ deviceName == "file" || ++ deviceName == "null" || ++ deviceName == "shm" || ++ deviceName == "cards" || ++ deviceName == "rate_convert") ++ continue; ++ if (snd_pcm_open(&pcm, id, SND_PCM_STREAM_PLAYBACK, 0) == 0) { ++ alsaOutputList.append(deviceName + " "); ++ snd_pcm_close(pcm); ++ } ++ if (snd_pcm_open(&pcm, id, SND_PCM_STREAM_CAPTURE, 0) == 0) { ++ alsaInputList.append(deviceName + " "); ++ snd_pcm_close(pcm); ++ } ++ } ++ } ++ } ++ + } + diff --git a/comms/qsstv/files/patch-qsstv_sound_soundcontrol.cpp b/comms/qsstv/files/patch-qsstv_sound_soundcontrol.cpp deleted file mode 100644 index d6ba809ac1d9..000000000000 --- a/comms/qsstv/files/patch-qsstv_sound_soundcontrol.cpp +++ /dev/null @@ -1,63 +0,0 @@ ---- qsstv/sound/soundcontrol.cpp.orig 2014-12-06 14:41:00 UTC -+++ qsstv/sound/soundcontrol.cpp -@@ -53,8 +53,8 @@ void soundControl::readSettings() - txClock=qSettings.value("txclock",BASESAMPLERATE).toDouble(); - if(fabs(1-rxClock/BASESAMPLERATE)>0.002) rxClock=BASESAMPLERATE; - if(fabs(1-txClock/BASESAMPLERATE)>0.002) txClock=BASESAMPLERATE; -- inputAudioDeviceIndex=qSettings.value("inputAudioDeviceIndex",0).toInt(); -- outputAudioDeviceIndex=qSettings.value("outputAudioDeviceIndex",0).toInt(); -+ inputAudioDevice=qSettings.value("inputAudioDevice",0).toString(); -+ outputAudioDevice=qSettings.value("outputAudioDevice",0).toString(); - soundIOPtr->soundRoutingInput= (soundIO::edataSrc)qSettings.value("soundRoutingInput", 0 ).toInt(); - soundIOPtr->soundRoutingOutput= (soundIO::edataDst)qSettings.value("soundRoutingOutput", 0 ).toInt(); - soundIOPtr->recordingSize= qSettings.value("recordingSize", 100 ).toInt(); -@@ -69,8 +69,8 @@ void soundControl::writeSettings() - qSettings.beginGroup("Sound"); - qSettings.setValue("rxclock",rxClock); - qSettings.setValue("txclock",txClock); -- qSettings.setValue("inputAudioDeviceIndex",inputAudioDeviceIndex); -- qSettings.setValue("outputAudioDeviceIndex",outputAudioDeviceIndex); -+ qSettings.setValue("inputAudioDevice",inputAudioDevice); -+ qSettings.setValue("outputAudioDevice",outputAudioDevice); - qSettings.setValue ("soundRoutingInput", soundIOPtr->soundRoutingInput ); - qSettings.setValue ("soundRoutingOutput",soundIOPtr->soundRoutingOutput ); - qSettings.setValue ("recordingSize",soundIOPtr->recordingSize ); -@@ -82,8 +82,8 @@ void soundControl::setParams() - { - setValue(rxClock,ui->inputClockLineEdit,9); - setValue(txClock,ui->outputClockLineEdit,9); -- setIndex(inputAudioDeviceIndex,ui->inputPCMNameComboBox); -- setIndex(outputAudioDeviceIndex,ui->outputPCMNameComboBox); -+ setValue(inputAudioDevice,ui->inputPCMNameComboBox); -+ setValue(outputAudioDevice,ui->outputPCMNameComboBox); - soundIOPtr->inputAudioDevice=ui->inputPCMNameComboBox->currentText(); - soundIOPtr->outputAudioDevice=ui->outputPCMNameComboBox->currentText(); - -@@ -99,13 +99,13 @@ void soundControl::setParams() - void soundControl::getParams() - { - changed=false; -- int savedInputIdx=inputAudioDeviceIndex; -- int savedOutputIdx=outputAudioDeviceIndex; -+ QString savedInput=inputAudioDevice; -+ QString savedOutput=outputAudioDevice; - getValue(rxClock,ui->inputClockLineEdit); - getValue(txClock,ui->inputClockLineEdit); - -- getIndex(inputAudioDeviceIndex,ui->inputPCMNameComboBox); -- getIndex(outputAudioDeviceIndex,ui->outputPCMNameComboBox); -+ getValue(inputAudioDevice,ui->inputPCMNameComboBox); -+ getValue(outputAudioDevice,ui->outputPCMNameComboBox); - - if (ui->inFromCard->isChecked()) soundIOPtr->soundRoutingInput=soundIO::SNDINCARD; - else if(ui->inFromFile->isChecked()) soundIOPtr->soundRoutingInput=soundIO::SNDINFILE; -@@ -114,7 +114,7 @@ void soundControl::getParams() - if (ui->outToCard->isChecked()) soundIOPtr->soundRoutingOutput=soundIO::SNDOUTCARD; - else soundIOPtr->soundRoutingOutput=soundIO::SNDOUTTOFILE; - getValue(soundIOPtr->recordingSize,ui->mbSpinBox); -- if(savedInputIdx!=inputAudioDeviceIndex) changed=true; -- if(savedOutputIdx!=outputAudioDeviceIndex) changed=true; -+ if(savedInput!=inputAudioDevice) changed=true; -+ if(savedOutput!=outputAudioDevice) changed=true; - } - diff --git a/comms/qsstv/files/patch-qsstv_sound_soundcontrol.h b/comms/qsstv/files/patch-qsstv_sound_soundcontrol.h deleted file mode 100644 index 4c85ac5bd802..000000000000 --- a/comms/qsstv/files/patch-qsstv_sound_soundcontrol.h +++ /dev/null @@ -1,13 +0,0 @@ ---- qsstv/sound/soundcontrol.h.orig 2014-12-06 14:41:00 UTC -+++ qsstv/sound/soundcontrol.h -@@ -22,8 +22,8 @@ public: - - private: - Ui::soundControl *ui; -- int inputAudioDeviceIndex; -- int outputAudioDeviceIndex; -+ QString inputAudioDevice; -+ QString outputAudioDevice; - bool changed; - void getParams(); - }; diff --git a/comms/qsstv/files/patch-qsstv_sound_soundio.cpp b/comms/qsstv/files/patch-qsstv_sound_soundio.cpp deleted file mode 100644 index 6b5c868f4220..000000000000 --- a/comms/qsstv/files/patch-qsstv_sound_soundio.cpp +++ /dev/null @@ -1,76 +0,0 @@ ---- qsstv/sound/soundio.cpp.orig 2015-02-28 15:05:28 UTC -+++ qsstv/sound/soundio.cpp -@@ -328,7 +328,9 @@ int soundIO::capture() - if ( count == -EPIPE ) - { - // Overrun -- snd_pcm_prepare (captureHandle ); -+ snd_pcm_drop (captureHandle); -+ snd_pcm_reset (captureHandle); -+ snd_pcm_prepare (captureHandle); - snd_pcm_start (captureHandle); - qDebug()<< "Overrun"; - } -@@ -573,8 +575,6 @@ bool soundIO::listCards() - // int totalDevices; - snd_pcm_info_t *pcmInfo; - snd_ctl_t *cardHandle; -- inputPCMNameList << "default"; -- outputPCMNameList << "default"; - - // No cards found yet - totalCards = 0; -@@ -582,6 +582,11 @@ bool soundIO::listCards() - // Start with first card - cardNum = -1; - -+ // We need to get a snd_ctl_card_info_t. Just alloc it on the stack -+ snd_ctl_card_info_alloca(&cardInfo); -+ // To get some info about the subdevices of this wave device (on the card), we need a -+ // snd_pcm_info_t, so let's allocate one on the stack -+ snd_pcm_info_alloca(&pcmInfo); - for (;;) - { - -@@ -599,8 +604,6 @@ bool soundIO::listCards() - qDebug() << "Can't open card "<< cardNum << snd_strerror(err); - continue; - } -- // We need to get a snd_ctl_card_info_t. Just alloc it on the stack -- snd_ctl_card_info_alloca(&cardInfo); - - // Tell ALSA to fill in our snd_ctl_card_info_t with info about this card - if ((err = snd_ctl_card_info(cardHandle, cardInfo)) >= 0) -@@ -619,9 +622,6 @@ bool soundIO::listCards() - // NOTE: It's possible that this sound card may have no wave devices on it - // at all, for example if it's only a MIDI card - if (devNum < 0) break; -- // To get some info about the subdevices of this wave device (on the card), we need a -- // snd_pcm_info_t, so let's allocate one on the stack -- snd_pcm_info_alloca(&pcmInfo); - memset(pcmInfo, 0, snd_pcm_info_sizeof()); - - // Tell ALSA which device (number) we want info about -@@ -636,6 +636,22 @@ bool soundIO::listCards() - // qDebug() << "Found:" << totalDevices << " digital audio devices on card " << cardNum; - } - -+ snd_config_t *pcm; -+ snd_config_update(); -+ if(snd_config_search(snd_config, "pcm", &pcm)==0) { -+ snd_config_iterator_t i, next; -+ snd_config_for_each(i, next, pcm) { -+ snd_config_t *n = snd_config_iterator_entry(i); -+ if (snd_config_get_type(n) != SND_CONFIG_TYPE_COMPOUND) -+ continue; -+ const char *id; -+ if(snd_config_get_id(n, &id)==0) { -+ inputPCMNameList << id; -+ outputPCMNameList << id; -+ } -+ } -+ } -+ - // qDebug() << "ALSA found cards" << totalCards; - - // ALSA allocates some mem to load its config file when we call diff --git a/comms/qsstv/files/patch-qsstv_utils_jp2io.h b/comms/qsstv/files/patch-qsstv_utils_jp2io.h new file mode 100644 index 000000000000..393a0c164440 --- /dev/null +++ b/comms/qsstv/files/patch-qsstv_utils_jp2io.h @@ -0,0 +1,10 @@ +--- qsstv/utils/jp2io.h.orig 2016-04-08 23:08:29 UTC ++++ qsstv/utils/jp2io.h +@@ -1,6 +1,6 @@ + #ifndef JP2READER_H + #define JP2READER_H +-#include "openjpeg.h" ++#include "openjpeg-2.1/openjpeg.h" + + #include <QString> + #include <QImage> diff --git a/comms/qsstv/files/patch-qsstv_videocapt_imagesettings.h b/comms/qsstv/files/patch-qsstv_videocapt_imagesettings.h new file mode 100644 index 000000000000..2bed913086b1 --- /dev/null +++ b/comms/qsstv/files/patch-qsstv_videocapt_imagesettings.h @@ -0,0 +1,10 @@ +--- qsstv/videocapt/imagesettings.h.orig 2016-04-08 23:08:29 UTC ++++ qsstv/videocapt/imagesettings.h +@@ -41,7 +41,6 @@ + #ifndef IMAGESETTINGS_H + #define IMAGESETTINGS_H + +-#include <linux/types.h> /* for videodev2.h */ + #include <linux/videodev2.h> + + #include <QDialog> diff --git a/comms/qsstv/files/patch-qsstv_videocapt_v4l2control.cpp b/comms/qsstv/files/patch-qsstv_videocapt_v4l2control.cpp new file mode 100644 index 000000000000..02f8d99cdf7f --- /dev/null +++ b/comms/qsstv/files/patch-qsstv_videocapt_v4l2control.cpp @@ -0,0 +1,11 @@ +--- qsstv/videocapt/v4l2control.cpp.orig 2016-04-08 23:08:29 UTC ++++ qsstv/videocapt/v4l2control.cpp +@@ -32,7 +32,7 @@ + #include <cerrno> + #include <cstring> + //#include <libv4l2.h> +-#include <linux/types.h> /* for videodev2.h */ ++//#include <linux/types.h> /* for videodev2.h */ + #include <linux/videodev2.h> + + #include <QPushButton> diff --git a/comms/qsstv/files/patch-qsstv_widgets_freqform.ui b/comms/qsstv/files/patch-qsstv_widgets_freqform.ui deleted file mode 100644 index 0a5c1cf589e7..000000000000 --- a/comms/qsstv/files/patch-qsstv_widgets_freqform.ui +++ /dev/null @@ -1,10 +0,0 @@ ---- qsstv/widgets/freqform.ui.orig 2014-12-06 14:41:00 UTC -+++ qsstv/widgets/freqform.ui -@@ -242,7 +242,6 @@ - </layout> - </widget> - <layoutdefault spacing="6" margin="11"/> -- <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> - <resources/> - <connections> - <connection> diff --git a/comms/qsstv/files/patch-qsstv_widgets_sweepform.ui b/comms/qsstv/files/patch-qsstv_widgets_sweepform.ui deleted file mode 100644 index 926e6686df05..000000000000 --- a/comms/qsstv/files/patch-qsstv_widgets_sweepform.ui +++ /dev/null @@ -1,10 +0,0 @@ ---- qsstv/widgets/sweepform.ui.orig 2014-12-06 14:41:00 UTC -+++ qsstv/widgets/sweepform.ui -@@ -248,7 +248,6 @@ - </layout> - </widget> - <layoutdefault spacing="6" margin="11"/> -- <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> - <resources/> - <connections> - <connection> diff --git a/comms/qsstv/files/patch-qwt_qwt.pro b/comms/qsstv/files/patch-qwt_qwt.pro index 28e5e9326196..00f628eb8d2c 100644 --- a/comms/qsstv/files/patch-qwt_qwt.pro +++ b/comms/qsstv/files/patch-qwt_qwt.pro @@ -1,8 +1,11 @@ ---- qwt/qwt.pro.orig 2014-12-06 14:41:00 UTC +--- qwt/qwt.pro.orig 2016-04-08 23:08:29 UTC +++ qwt/qwt.pro -@@ -209,5 +209,4 @@ unix:!symbian { +@@ -206,6 +206,8 @@ HEADERS += \ + unix:!symbian { + maemo5 { + target.path = /opt/usr/lib ++ freebsd { ++ target.path = %%PREFIX%%/lib } else { target.path = /usr/lib } -- INSTALLS += target - } diff --git a/comms/qsstv/pkg-plist b/comms/qsstv/pkg-plist new file mode 100644 index 000000000000..3426ce5947da --- /dev/null +++ b/comms/qsstv/pkg-plist @@ -0,0 +1,183 @@ +bin/qsstv +%%PORTDOCS%%%%DOCSDIR%%/images/Gallery_image_options.png +%%PORTDOCS%%%%DOCSDIR%%/images/Gallery_rx.png +%%PORTDOCS%%%%DOCSDIR%%/images/Gallery_template.png +%%PORTDOCS%%%%DOCSDIR%%/images/Gallery_tx.png +%%PORTDOCS%%%%DOCSDIR%%/images/binary.png +%%PORTDOCS%%%%DOCSDIR%%/images/bsr_nfy.png +%%PORTDOCS%%%%DOCSDIR%%/images/bsr_select.png +%%PORTDOCS%%%%DOCSDIR%%/images/ca%%QT_LIBDIR%%ration.png +%%PORTDOCS%%%%DOCSDIR%%/images/config.png +%%PORTDOCS%%%%DOCSDIR%%/images/config1.png +%%PORTDOCS%%%%DOCSDIR%%/images/config10.png +%%PORTDOCS%%%%DOCSDIR%%/images/config11.png +%%PORTDOCS%%%%DOCSDIR%%/images/config12.png +%%PORTDOCS%%%%DOCSDIR%%/images/config2.png +%%PORTDOCS%%%%DOCSDIR%%/images/config3.png +%%PORTDOCS%%%%DOCSDIR%%/images/config4.png +%%PORTDOCS%%%%DOCSDIR%%/images/config5.png +%%PORTDOCS%%%%DOCSDIR%%/images/config6.png +%%PORTDOCS%%%%DOCSDIR%%/images/config7.png +%%PORTDOCS%%%%DOCSDIR%%/images/config8.png +%%PORTDOCS%%%%DOCSDIR%%/images/config9.png +%%PORTDOCS%%%%DOCSDIR%%/images/cqrlog1.png +%%PORTDOCS%%%%DOCSDIR%%/images/cqrlog2.png +%%PORTDOCS%%%%DOCSDIR%%/images/editor_1.png +%%PORTDOCS%%%%DOCSDIR%%/images/editor_2.png +%%PORTDOCS%%%%DOCSDIR%%/images/editor_3.png +%%PORTDOCS%%%%DOCSDIR%%/images/editor_image_size.png +%%PORTDOCS%%%%DOCSDIR%%/images/entertext.png +%%PORTDOCS%%%%DOCSDIR%%/images/eraser.png +%%PORTDOCS%%%%DOCSDIR%%/images/fix.png +%%PORTDOCS%%%%DOCSDIR%%/images/flrig1.png +%%PORTDOCS%%%%DOCSDIR%%/images/hybrid_checkbox.png +%%PORTDOCS%%%%DOCSDIR%%/images/hybrid_dis_checkbox.png +%%PORTDOCS%%%%DOCSDIR%%/images/multiline.png +%%PORTDOCS%%%%DOCSDIR%%/images/receivedrm.png +%%PORTDOCS%%%%DOCSDIR%%/images/refreshbutton.png +%%PORTDOCS%%%%DOCSDIR%%/images/rxdrm_constellation.png +%%PORTDOCS%%%%DOCSDIR%%/images/rxdrm_segments.png +%%PORTDOCS%%%%DOCSDIR%%/images/rxdrm_status.png +%%PORTDOCS%%%%DOCSDIR%%/images/rxwidget1.png +%%PORTDOCS%%%%DOCSDIR%%/images/sstvdrmselect.png +%%PORTDOCS%%%%DOCSDIR%%/images/statusbar.png +%%PORTDOCS%%%%DOCSDIR%%/images/statusleds.png +%%PORTDOCS%%%%DOCSDIR%%/images/transmitdrm.png +%%PORTDOCS%%%%DOCSDIR%%/images/tx-with-template.png +%%PORTDOCS%%%%DOCSDIR%%/images/txdrm_compression.png +%%PORTDOCS%%%%DOCSDIR%%/images/txdrm_options.png +%%PORTDOCS%%%%DOCSDIR%%/images/txdrm_status.png +%%PORTDOCS%%%%DOCSDIR%%/images/txwidget1.png +%%PORTDOCS%%%%DOCSDIR%%/images/vk4aes.jpg +%%PORTDOCS%%%%DOCSDIR%%/images/waterfall.png +%%PORTDOCS%%%%DOCSDIR%%/images/wf_bsr_id.png +%%PORTDOCS%%%%DOCSDIR%%/images/wftextpopup.png +%%PORTDOCS%%%%DOCSDIR%%/manual.txt +%%PORTDOCS%%%%DOCSDIR%%/manual/Gallery_image_options.png +%%PORTDOCS%%%%DOCSDIR%%/manual/Gallery_rx.png +%%PORTDOCS%%%%DOCSDIR%%/manual/Gallery_template.png +%%PORTDOCS%%%%DOCSDIR%%/manual/Gallery_tx.png +%%PORTDOCS%%%%DOCSDIR%%/manual/_copying.html +%%PORTDOCS%%%%DOCSDIR%%/manual/_r_x_d_r_m.html +%%PORTDOCS%%%%DOCSDIR%%/manual/_r_x_s_s_t_v.html +%%PORTDOCS%%%%DOCSDIR%%/manual/_t_x_d_r_m.html +%%PORTDOCS%%%%DOCSDIR%%/manual/_t_x_s_s_t_v.html +%%PORTDOCS%%%%DOCSDIR%%/manual/arrow.png +%%PORTDOCS%%%%DOCSDIR%%/manual/arrowdown.png +%%PORTDOCS%%%%DOCSDIR%%/manual/arrowright.png +%%PORTDOCS%%%%DOCSDIR%%/manual/bc_s.png +%%PORTDOCS%%%%DOCSDIR%%/manual/bdwn.png +%%PORTDOCS%%%%DOCSDIR%%/manual/binary.png +%%PORTDOCS%%%%DOCSDIR%%/manual/bsr_nfy.png +%%PORTDOCS%%%%DOCSDIR%%/manual/bsr_select.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ca%%QT_LIBDIR%%ration.png +%%PORTDOCS%%%%DOCSDIR%%/manual/camera.png +%%PORTDOCS%%%%DOCSDIR%%/manual/changelog.html +%%PORTDOCS%%%%DOCSDIR%%/manual/closed.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config1.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config10.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config11.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config12.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config2.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config3.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config4.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config5.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config6.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config7.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config8.png +%%PORTDOCS%%%%DOCSDIR%%/manual/config9.png +%%PORTDOCS%%%%DOCSDIR%%/manual/cqrlog1.png +%%PORTDOCS%%%%DOCSDIR%%/manual/cqrlog2.png +%%PORTDOCS%%%%DOCSDIR%%/manual/credits.html +%%PORTDOCS%%%%DOCSDIR%%/manual/doc.png +%%PORTDOCS%%%%DOCSDIR%%/manual/doubletone.png +%%PORTDOCS%%%%DOCSDIR%%/manual/doxygen.png +%%PORTDOCS%%%%DOCSDIR%%/manual/dynsections.js +%%PORTDOCS%%%%DOCSDIR%%/manual/edit.png +%%PORTDOCS%%%%DOCSDIR%%/manual/editor.html +%%PORTDOCS%%%%DOCSDIR%%/manual/editor_1.png +%%PORTDOCS%%%%DOCSDIR%%/manual/editor_2.png +%%PORTDOCS%%%%DOCSDIR%%/manual/editor_image_size.png +%%PORTDOCS%%%%DOCSDIR%%/manual/entertext.png +%%PORTDOCS%%%%DOCSDIR%%/manual/eraser.png +%%PORTDOCS%%%%DOCSDIR%%/manual/externalprog.html +%%PORTDOCS%%%%DOCSDIR%%/manual/fcircle.png +%%PORTDOCS%%%%DOCSDIR%%/manual/fileopen.png +%%PORTDOCS%%%%DOCSDIR%%/manual/filesave.png +%%PORTDOCS%%%%DOCSDIR%%/manual/fix.png +%%PORTDOCS%%%%DOCSDIR%%/manual/fixdrm.html +%%PORTDOCS%%%%DOCSDIR%%/manual/flrig1.png +%%PORTDOCS%%%%DOCSDIR%%/manual/folderclosed.png +%%PORTDOCS%%%%DOCSDIR%%/manual/folderopen.png +%%PORTDOCS%%%%DOCSDIR%%/manual/frect.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2blank.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2doc.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2folderclosed.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2folderopen.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2lastnode.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2link.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2mlastnode.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2mnode.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2node.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2plastnode.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2pnode.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2splitbar.png +%%PORTDOCS%%%%DOCSDIR%%/manual/ftv2vertline.png +%%PORTDOCS%%%%DOCSDIR%%/manual/gallery.html +%%PORTDOCS%%%%DOCSDIR%%/manual/gettingstarted.html +%%PORTDOCS%%%%DOCSDIR%%/manual/hybrid_checkbox.png +%%PORTDOCS%%%%DOCSDIR%%/manual/hybrid_dis_checkbox.png +%%PORTDOCS%%%%DOCSDIR%%/manual/imagepopup.html +%%PORTDOCS%%%%DOCSDIR%%/manual/index.html +%%PORTDOCS%%%%DOCSDIR%%/manual/index.js +%%PORTDOCS%%%%DOCSDIR%%/manual/installation.html +%%PORTDOCS%%%%DOCSDIR%%/manual/jquery.js +%%PORTDOCS%%%%DOCSDIR%%/manual/line.png +%%PORTDOCS%%%%DOCSDIR%%/manual/multiline.png +%%PORTDOCS%%%%DOCSDIR%%/manual/nav_f.png +%%PORTDOCS%%%%DOCSDIR%%/manual/nav_g.png +%%PORTDOCS%%%%DOCSDIR%%/manual/nav_h.png +%%PORTDOCS%%%%DOCSDIR%%/manual/navtree.css +%%PORTDOCS%%%%DOCSDIR%%/manual/navtree.js +%%PORTDOCS%%%%DOCSDIR%%/manual/navtreedata.js +%%PORTDOCS%%%%DOCSDIR%%/manual/navtreeindex0.js +%%PORTDOCS%%%%DOCSDIR%%/manual/open.png +%%PORTDOCS%%%%DOCSDIR%%/manual/pages.html +%%PORTDOCS%%%%DOCSDIR%%/manual/qsstv.css +%%PORTDOCS%%%%DOCSDIR%%/manual/receivedrm.png +%%PORTDOCS%%%%DOCSDIR%%/manual/refreshbutton.png +%%PORTDOCS%%%%DOCSDIR%%/manual/replay.png +%%PORTDOCS%%%%DOCSDIR%%/manual/resize.js +%%PORTDOCS%%%%DOCSDIR%%/manual/rxdrm_constellation.png +%%PORTDOCS%%%%DOCSDIR%%/manual/rxdrm_segments.png +%%PORTDOCS%%%%DOCSDIR%%/manual/rxdrm_status.png +%%PORTDOCS%%%%DOCSDIR%%/manual/rxwidget1.png +%%PORTDOCS%%%%DOCSDIR%%/manual/splitbar.png +%%PORTDOCS%%%%DOCSDIR%%/manual/start.png +%%PORTDOCS%%%%DOCSDIR%%/manual/statusbar.html +%%PORTDOCS%%%%DOCSDIR%%/manual/statusbar.png +%%PORTDOCS%%%%DOCSDIR%%/manual/statusleds.png +%%PORTDOCS%%%%DOCSDIR%%/manual/stop.png +%%PORTDOCS%%%%DOCSDIR%%/manual/sweep.png +%%PORTDOCS%%%%DOCSDIR%%/manual/sync_off.png +%%PORTDOCS%%%%DOCSDIR%%/manual/sync_on.png +%%PORTDOCS%%%%DOCSDIR%%/manual/tab_a.png +%%PORTDOCS%%%%DOCSDIR%%/manual/tab_b.png +%%PORTDOCS%%%%DOCSDIR%%/manual/tab_h.png +%%PORTDOCS%%%%DOCSDIR%%/manual/tab_s.png +%%PORTDOCS%%%%DOCSDIR%%/manual/tabs.css +%%PORTDOCS%%%%DOCSDIR%%/manual/text.png +%%PORTDOCS%%%%DOCSDIR%%/manual/todo1.html +%%PORTDOCS%%%%DOCSDIR%%/manual/tone.png +%%PORTDOCS%%%%DOCSDIR%%/manual/transmitdrm.png +%%PORTDOCS%%%%DOCSDIR%%/manual/tx-with-template.png +%%PORTDOCS%%%%DOCSDIR%%/manual/txdrm_compression.png +%%PORTDOCS%%%%DOCSDIR%%/manual/txdrm_options.png +%%PORTDOCS%%%%DOCSDIR%%/manual/txdrm_status.png +%%PORTDOCS%%%%DOCSDIR%%/manual/txwidget1.png +%%PORTDOCS%%%%DOCSDIR%%/manual/vk4aes.jpg +%%PORTDOCS%%%%DOCSDIR%%/manual/waterfall.png +%%PORTDOCS%%%%DOCSDIR%%/manual/wftextpopup.png +%%PORTDOCS%%%%DOCSDIR%%/manual/whatsnew.html +%%PORTDOCS%%%%DOCSDIR%%/qsstv.css |