├── .github └── workflows │ ├── ci-build-ubuntu-20.yml │ └── ci-build.yml ├── .gitignore ├── .travis.yml ├── AUTHORS ├── COPYING ├── ChangeLog ├── Doxyfile ├── INSTALL ├── Makefile.am ├── NEWS ├── README.md ├── ToDo ├── configure.ac ├── datastructures ├── doc ├── Makefile.am ├── Manual.md ├── Xresources ├── images │ ├── BasicFileStructure.png │ └── DefaultTerminal.png ├── keynames.txt └── station-sample.cbr ├── macros ├── ax_append_flag.m4 ├── ax_cflags_warn_all.m4 ├── ax_pthread.m4 ├── ax_require_defined.m4 ├── ax_with_curses.m4 └── ax_with_curses_extra.m4 ├── rules ├── Makefile.am ├── aadx_as ├── aadx_dx ├── arrl10m_dx ├── arrl160m_usa ├── arrldx_dx ├── arrldx_usa ├── arrlfd ├── arrlss ├── contest ├── cqp │ ├── cqp_ca │ └── cqp_ca_mults ├── cqww ├── cqww160 │ ├── cqww160 │ ├── cqww160.py │ └── cqww160.txt ├── cwops_mini_cwt ├── dxped ├── eakingofspain │ ├── eakingofspain │ └── eakingofspain.py ├── eudx │ ├── eudx │ └── eudx.py ├── eusprint ├── focmarathon ├── hadx │ ├── hadx │ └── hadx.py ├── hskc │ ├── hskc │ └── hskc.py ├── iota │ ├── iota │ └── iota.py ├── ksqp │ ├── ksqp │ └── ksqp.py ├── lzdx ├── mcd │ ├── mcd │ ├── mcd.py │ └── mcd.txt ├── mst │ └── mst ├── mwc │ ├── mwc │ └── mwc.py ├── naqp │ ├── naqp │ └── naqp.py ├── neqp │ ├── neqp │ ├── neqp_mults │ └── neqp_mults_outside ├── okom ├── pacc_dx ├── pacc_pa ├── qso ├── raem ├── raem.py ├── spdx_dx ├── spdx_sp ├── ssa_mt ├── stewperry ├── template ├── tesla ├── tesla.py ├── ukeidx │ ├── ukeidx │ └── ukeidx.py ├── waedc_dx ├── waedc_dx_rtty ├── waedc_eu ├── waedc_eu_rtty └── wpx ├── scripts ├── Makefile.am ├── play_vk └── soundlog ├── share ├── Makefile.am ├── arrl10m_mults ├── arrldx_mults ├── arrlsections ├── cabrillo.fmt ├── callmaster ├── cty.dat ├── cwops.txt ├── darcmults ├── ea_sections ├── help.txt ├── logcfg.dat ├── ok_om.txt ├── okommults ├── paccmults ├── spdxmults └── ssamults ├── src ├── Makefile.am ├── addcall.c ├── addcall.h ├── addmult.c ├── addmult.h ├── addpfx.c ├── addpfx.h ├── addspot.c ├── addspot.h ├── audio.c ├── audio.h ├── autocq.c ├── autocq.h ├── background_process.c ├── background_process.h ├── bandmap.c ├── bandmap.h ├── bands.c ├── bands.h ├── cabrillo_utils.c ├── cabrillo_utils.h ├── calledit.c ├── calledit.h ├── callinput.c ├── callinput.h ├── change_rst.c ├── change_rst.h ├── changefreq.c ├── changefreq.h ├── changepars.c ├── changepars.h ├── checklogfile.c ├── checklogfile.h ├── checkqtclogfile.c ├── checkqtclogfile.h ├── cleanup.c ├── cleanup.h ├── clear_display.c ├── clear_display.h ├── clusterinfo.c ├── clusterinfo.h ├── cqww_simulator.c ├── cqww_simulator.h ├── cw_utils.c ├── cw_utils.h ├── debug.c ├── debug.h ├── deleteqso.c ├── deleteqso.h ├── dxcc.c ├── dxcc.h ├── edit_last.c ├── edit_last.h ├── editlog.c ├── editlog.h ├── err_utils.c ├── err_utils.h ├── fldigixmlrpc.c ├── fldigixmlrpc.h ├── focm.c ├── focm.h ├── freq_display.c ├── freq_display.h ├── genqtclist.c ├── genqtclist.h ├── get_time.c ├── get_time.h ├── getctydata.c ├── getctydata.h ├── getexchange.c ├── getexchange.h ├── getmessages.c ├── getmessages.h ├── getpx.c ├── getpx.h ├── gettxinfo.c ├── gettxinfo.h ├── getwwv.c ├── getwwv.h ├── globalvars.h ├── grabspot.c ├── grabspot.h ├── hamlib_keyer.c ├── hamlib_keyer.h ├── ignore_unused.h ├── initial_exchange.c ├── initial_exchange.h ├── keyer.c ├── keyer.h ├── keystroke_names.h ├── lancode.c ├── lancode.h ├── last10.c ├── last10.h ├── listmessages.c ├── listmessages.h ├── log_to_disk.c ├── log_to_disk.h ├── log_utils.c ├── log_utils.h ├── logit.c ├── logit.h ├── logview.c ├── logview.h ├── main.c ├── makelogline.c ├── makelogline.h ├── math_utils.h ├── messagechange.c ├── messagechange.h ├── muf.c ├── muf.h ├── netkeyer.c ├── netkeyer.h ├── nicebox.c ├── nicebox.h ├── note.c ├── note.h ├── paccdx.c ├── paccdx.h ├── parse_logcfg.c ├── parse_logcfg.h ├── plugin.c ├── plugin.h ├── printcall.c ├── printcall.h ├── qrb.c ├── qrb.h ├── qsonr_to_str.c ├── qsonr_to_str.h ├── qtc_log.c ├── qtc_log.h ├── qtcutil.c ├── qtcutil.h ├── qtcvars.h ├── qtcwin.c ├── qtcwin.h ├── readcabrillo.c ├── readcabrillo.h ├── readcalls.c ├── readcalls.h ├── readctydata.c ├── readctydata.h ├── readqtccalls.c ├── readqtccalls.h ├── recall_exchange.c ├── recall_exchange.h ├── rtty.c ├── rtty.h ├── rules.c ├── rules.h ├── score.c ├── score.h ├── scroll_log.c ├── scroll_log.h ├── searchcallarray.c ├── searchcallarray.h ├── searchlog.c ├── searchlog.h ├── sendbuf.c ├── sendbuf.h ├── sendqrg.c ├── sendqrg.h ├── sendspcall.c ├── sendspcall.h ├── set_tone.c ├── set_tone.h ├── setcontest.c ├── setcontest.h ├── show_help.c ├── show_help.h ├── showinfo.c ├── showinfo.h ├── showmsg.c ├── showmsg.h ├── showpxmap.c ├── showpxmap.h ├── showscore.c ├── showscore.h ├── showzones.c ├── showzones.h ├── sockserv.c ├── sockserv.h ├── speedupndown.c ├── speedupndown.h ├── splitscreen.c ├── splitscreen.h ├── stoptx.c ├── stoptx.h ├── store_qso.c ├── store_qso.h ├── sunup.c ├── sunup.h ├── time_update.c ├── time_update.h ├── tlf.h ├── tlf_curses.h ├── tlf_panel.h ├── trx_memory.c ├── trx_memory.h ├── ui_utils.c ├── ui_utils.h ├── utils.c ├── utils.h ├── write_keyer.c ├── write_keyer.h ├── writecabrillo.c ├── writecabrillo.h ├── zone_nr.c └── zone_nr.h ├── test ├── Makefile.am ├── ReadMe.adoc ├── data.c ├── data │ ├── continents.txt │ ├── countries.txt │ ├── ie_empty_call.txt │ ├── ie_long_line.txt │ ├── ie_no_comma.txt │ ├── ie_ok.txt │ ├── ie_ok_dos.txt │ ├── ie_ok_multi_column.txt │ └── ie_ok_tab.txt ├── functions.c ├── generate_defs.pl ├── rules │ ├── cqp_dx │ │ ├── cqp.log │ │ ├── logcfg.dat │ │ └── rules │ │ │ ├── cqp │ │ │ └── cqp.py │ ├── cqww │ │ ├── cqww.log │ │ ├── logcfg.dat │ │ └── rules │ │ │ └── cqww │ ├── cqww160 │ │ ├── cqww160.log │ │ ├── cqww160.txt │ │ ├── logcfg.dat │ │ └── rules │ │ │ ├── cqww160 │ │ │ └── cqww160.py │ ├── eudx │ │ ├── eudx.log │ │ ├── logcfg.dat │ │ └── rules │ │ │ ├── eudx │ │ │ └── eudx.py │ ├── focmarathon │ │ ├── logcfg.dat │ │ ├── marathon.log │ │ └── rules │ │ │ └── focmarathon │ ├── hskc │ │ ├── hskc.log │ │ ├── logcfg.dat │ │ └── rules │ │ │ ├── hskc │ │ │ └── hskc.py │ ├── iota_island │ │ ├── iota.log │ │ ├── logcfg.dat │ │ └── rules │ │ │ ├── iota │ │ │ └── iota.py │ ├── iota_world │ │ ├── iota.log │ │ ├── logcfg.dat │ │ └── rules │ │ │ ├── iota │ │ │ └── iota.py │ ├── ksqp │ │ ├── ksqp.log │ │ ├── logcfg.dat │ │ └── rules │ │ │ ├── ksqp │ │ │ └── ksqp.py │ ├── mcd │ │ ├── logcfg.dat │ │ ├── mcd.log │ │ └── rules │ │ │ ├── mcd │ │ │ ├── mcd.py │ │ │ └── mcd.txt │ ├── mst │ │ ├── logcfg.dat │ │ ├── mst.log │ │ └── rules │ │ │ └── mst │ ├── mwc │ │ ├── logcfg.dat │ │ ├── mwc.log │ │ └── rules │ │ │ ├── mwc │ │ │ └── mwc.py │ ├── naqp │ │ ├── logcfg.dat │ │ ├── naqp.log │ │ └── rules │ │ │ ├── naqp │ │ │ └── naqp.py │ ├── neqp │ │ ├── logcfg.dat │ │ ├── neqp.log │ │ ├── neqp_mults │ │ ├── neqp_mults_outside │ │ └── rules │ │ │ └── neqp │ ├── run_tlf.py │ └── ukeidx │ │ ├── logcfg.dat │ │ ├── rules │ │ ├── ukeidx │ │ └── ukeidx.py │ │ └── ukeidx.log ├── test.h ├── test_addcall.c ├── test_addmult.c ├── test_addpfx.c ├── test_adif.c ├── test_bands.c ├── test_cabrillo.c ├── test_checklogfile.c ├── test_clusterinfo.c ├── test_contest.c ├── test_dxcc.c ├── test_getctydata.c ├── test_getexchange.c ├── test_initial_exchange.c ├── test_lancode.c ├── test_logutils.c ├── test_parse_logcfg.c ├── test_prefix.c ├── test_readcalls.c ├── test_recallexchange.c ├── test_rules.c ├── test_score.c ├── test_searchlog.c ├── test_sendbuf.c ├── test_utils.c ├── test_workedstations.c ├── test_wwv.c └── test_zone_nr.c ├── tlf.1.in └── tools └── astylerc /.github/workflows/ci-build-ubuntu-20.yml: -------------------------------------------------------------------------------- 1 | name: CI build for Ubuntu 20 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-20.04 13 | timeout-minutes: 3 14 | env: 15 | TERM: xterm 16 | AM_COLOR_TESTS: always 17 | 18 | steps: 19 | - uses: actions/checkout@v4 20 | - name: Show OS info 21 | run: cat /etc/os-release 22 | - name: Install dependencies 23 | run: | 24 | sudo apt-get -qq update 25 | sudo apt-get install -y libhamlib-dev libxmlrpc-core-c3-dev libcmocka-dev python3-pexpect astyle 26 | - name: Set up datadir 27 | run: mkdir datadir && ln -s $PWD/share datadir/tlf 28 | - name: Check source formatting 29 | run: | 30 | F=$(astyle --dry-run --formatted --options=tools/astylerc src/*.[ch]) 31 | if [ ! -z "$F" ] ; then sed -e 's/^F/To be f/' <<< $F; exit 1; fi 32 | - name: Autoreconf and basic make 33 | run: | 34 | autoreconf -i && ./configure --datadir=$PWD/datadir && make -j2 35 | - name: Configure with xmlrpc 36 | run: | 37 | make clean && ./configure --datadir=$PWD/datadir --enable-fldigi-xmlrpc && make -j2 38 | - name: Run tests 39 | id: run_tests 40 | continue-on-error: true 41 | run: make check 42 | - name: Show failed test results 43 | if: ${{ steps.run_tests.outcome == 'failure' }} 44 | run: | 45 | for f in test/run_*.log; do 46 | grep -q FAILED $f && echo -e "\n>>> $f:\n" && cat $f 47 | done 48 | exit 1 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | Makefile 3 | Makefile.in 4 | *.[oa] 5 | *.code-workspace 6 | *.gcda 7 | *.gcno 8 | *.swp 9 | tlf 10 | tlf.1 11 | README 12 | autom4te.cache 13 | aclocal.m4 14 | compile 15 | config.guess 16 | config.h 17 | config.h.in 18 | config.log 19 | config.status 20 | config.sub 21 | configure 22 | depcomp 23 | install-sh 24 | missing 25 | src/.deps 26 | src/cscope.out 27 | src/.gdbinit 28 | stamp-h1 29 | test/defs.* 30 | test/run_* 31 | test/*.log 32 | test/.deps 33 | test-driver 34 | 35 | # temporary internal files 36 | .bmdata.dat 37 | .paras 38 | 39 | # backed-up log file 40 | 20*_*_*.log 41 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: C 2 | 3 | before_install: 4 | - sudo apt-get -qq update 5 | - sudo apt-get install -y libhamlib-dev 6 | - sudo apt-get install -y libxmlrpc-core-c3-dev 7 | - wget https://cmocka.org/files/1.1/cmocka-1.1.5.tar.xz 8 | - tar -xvf cmocka-1.1.5.tar.xz 9 | - cd cmocka-1.1.5 10 | - mkdir build 11 | - cd build 12 | - cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug .. 13 | - make 14 | - sudo make install 15 | - cd ../.. 16 | - rm -rf cmocka-1.1.5 cmocka-1.1.5.tar.xz 17 | 18 | script: 19 | - autoreconf -i && ./configure && make 20 | - make clean && ./configure --enable-fldigi-xmlrpc && make 21 | - make check; rc=$?; cat test/run_*.log; exit $rc 22 | 23 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Rein Couperus 2 | Thomas Beierlein 3 | 4 | contributions by: 5 | Joop Stakenborg (PG4I), 6 | Dimiter Kroumov (LZ3NY), 7 | Martin OK1RR 8 | Andy G4KNO 9 | Fred DH5FS 10 | Nate N0NB 11 | Mario DH5YM 12 | Ervin HA2OS 13 | Zoltan HA5CQZ 14 | Stephen W8BSD 15 | Joerg DL8DTL 16 | 17 | and others 18 | 19 | -------------------------------------------------------------------------------- /INSTALL: -------------------------------------------------------------------------------- 1 | INSTALL 2 | 3 | Please see README.md for installation instructions. -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | ACLOCAL_AMFLAGS = -I macros 2 | 3 | SUBDIRS = doc rules src share scripts test 4 | 5 | CLEANFILES = *~ 6 | 7 | man_MANS = tlf.1 8 | 9 | README: README.md 10 | grep -v "Build Status" $< > $(srcdir)/$@ 11 | 12 | EXTRA_DIST = README.md 13 | -------------------------------------------------------------------------------- /doc/Makefile.am: -------------------------------------------------------------------------------- 1 | DOC_FILES = Manual.md keynames.txt station-sample.cbr Xresources \ 2 | images/BasicFileStructure.png images/DefaultTerminal.png 3 | 4 | doc_DATA = $(DOC_FILES) 5 | 6 | EXTRA_DIST = $(DOC_FILES) 7 | 8 | CLEANFILES = *~ 9 | -------------------------------------------------------------------------------- /doc/images/BasicFileStructure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tlf/tlf/5eadf0fbc8605550ee94a4bd071041c77ba09e67/doc/images/BasicFileStructure.png -------------------------------------------------------------------------------- /doc/images/DefaultTerminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tlf/tlf/5eadf0fbc8605550ee94a4bd071041c77ba09e67/doc/images/DefaultTerminal.png -------------------------------------------------------------------------------- /doc/station-sample.cbr: -------------------------------------------------------------------------------- 1 | X-: 2 | X-: Sample station configuration Cabrillo template 3 | X-: 4 | X-: after editing and renaming add this line to logcfg.dat 5 | X-: CABRILLO-TEMPLATE = station.cbr 6 | X-: 7 | X-: (all lines starting with X- are comments) 8 | 9 | START-OF-LOG: 3.0 10 | X-: I always use cluster, work CW-only barefoot 11 | CATEGORY-ASSISTED: ASSISTED 12 | CATEGORY-MODE: CW 13 | CATEGORY-OPERATOR: SINGLE-OP 14 | CATEGORY-POWER: LOW 15 | CATEGORY-STATION: FIXED 16 | CATEGORY-TRANSMITTER: ONE 17 | X-: band info will be asked unless specified 18 | X-CATEGORY-BAND: 20M 19 | X-: no offtime, no overlay 20 | CATEGORY-TIME: - 21 | CATEGORY-OVERLAY: - 22 | CLUB: XYZ DX CLUB 23 | NAME: Joe Doe 24 | EMAIL: j.doe@xmail.com 25 | ADDRESS: 123 Main St. 26 | ADDRESS(2): c/o Max Mustermann 27 | ADDRESS-CITY: Mycity 28 | ADDRESS-COUNTRY: Mycountry 29 | X-: soapbox will be asked unless set ... 30 | X-SOAPBOX: 73 31 | X-: ... or disabled 32 | X-SOAPBOX: - 33 | 34 | QSO: << QSO lines are also ignored 35 | 36 | END-OF-LOG: 37 | -------------------------------------------------------------------------------- /macros/ax_require_defined.m4: -------------------------------------------------------------------------------- 1 | # =========================================================================== 2 | # http://www.gnu.org/software/autoconf-archive/ax_require_defined.html 3 | # =========================================================================== 4 | # 5 | # SYNOPSIS 6 | # 7 | # AX_REQUIRE_DEFINED(MACRO) 8 | # 9 | # DESCRIPTION 10 | # 11 | # AX_REQUIRE_DEFINED is a simple helper for making sure other macros have 12 | # been defined and thus are available for use. This avoids random issues 13 | # where a macro isn't expanded. Instead the configure script emits a 14 | # non-fatal: 15 | # 16 | # ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found 17 | # 18 | # It's like AC_REQUIRE except it doesn't expand the required macro. 19 | # 20 | # Here's an example: 21 | # 22 | # AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) 23 | # 24 | # LICENSE 25 | # 26 | # Copyright (c) 2014 Mike Frysinger 27 | # 28 | # Copying and distribution of this file, with or without modification, are 29 | # permitted in any medium without royalty provided the copyright notice 30 | # and this notice are preserved. This file is offered as-is, without any 31 | # warranty. 32 | 33 | #serial 1 34 | 35 | AC_DEFUN([AX_REQUIRE_DEFINED], [dnl 36 | m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])]) 37 | ])dnl AX_REQUIRE_DEFINED 38 | -------------------------------------------------------------------------------- /rules/Makefile.am: -------------------------------------------------------------------------------- 1 | RULES_FILES = arrl10m_dx arrl160m_usa arrldx_dx arrldx_usa arrlfd arrlss \ 2 | contest cqww cwops_mini_cwt \ 3 | dxped eusprint focmarathon lzdx pacc_pa pacc_dx \ 4 | okom qso spdx_dx spdx_sp ssa_mt stewperry template \ 5 | wpx waedc_dx waedc_eu waedc_dx_rtty waedc_eu_rtty \ 6 | aadx_dx aadx_as 7 | SUBDIRS = 8 | 9 | rulesdir = $(pkgdatadir)/rules 10 | rules_DATA = $(RULES_FILES) 11 | 12 | EXTRA_DIST = $(RULES_FILES) 13 | 14 | CLEANFILES = *~ 15 | 16 | -------------------------------------------------------------------------------- /rules/aadx_as: -------------------------------------------------------------------------------- 1 | ################################ 2 | # AADX contest for AS stations # 3 | # HA2OS, 13.06.2014 # 4 | ################################ 5 | # 6 | CONTEST=aadx 7 | LOGFILE=aadx.log 8 | CONTEST_MODE 9 | CABRILLO=UNIVERSAL 10 | 11 | BANDWEIGHT_POINTS=160:3,80:2,40:1,20:1,15:1,10:2 12 | DX_POINTS=3 13 | MY_CONTINENT_POINTS=1 14 | RECALL_MULTS 15 | PFX_MULT_MULTIBAND 16 | 17 | ################################# 18 | #NOB4 19 | # 20 | ################################## 21 | # # 22 | # Messages F1= to F12= # 23 | # Message CQ_TU_MSG= # 24 | # Message S&P_TU_MSG= # 25 | # # 26 | # % = call # 27 | # @ = hiscall # 28 | # # = serial # 29 | # [ = RST # 30 | # + = increase cw speed # 31 | # - = decrease cw speed # 32 | # # 33 | ################################## 34 | # 35 | F1=+++CQ TEST AA DE ---% ++TEST-- 36 | F2=@ DE % 37 | F3=CFM UR ++5NN --YOURAGE 38 | F4=TU 73 39 | F5= @ 40 | F6=% 41 | F7=@ SRI QSO B4 GL 42 | F8=AGN 43 | F9= ? 44 | F10= QRZ? 45 | F11= PSE K 46 | F12=++++TEST AA ----% % 47 | # 48 | CQ_TU_MSG=+++CQ AA DE ---% 49 | S&P_TU_MSG=TU 5NN YOURAGE 50 | # 51 | #ALT_0= 52 | #ALT_1= 53 | #ALT_2= 54 | #ALT_3= 55 | #ALT_4= 56 | #ALT_5= 57 | #ALT_6= 58 | #ALT_7= 59 | #ALT_8= 60 | #ALT_9= 61 | # 62 | ####### END ##################### 63 | -------------------------------------------------------------------------------- /rules/aadx_dx: -------------------------------------------------------------------------------- 1 | #################################### 2 | # AADX contest for NON AS stations # 3 | # HA2OS, 13.06.2014 # 4 | #################################### 5 | # 6 | CONTEST=aadx 7 | LOGFILE=aadx.log 8 | CONTEST_MODE 9 | CABRILLO=UNIVERSAL 10 | 11 | BANDWEIGHT_POINTS=160:3,80:2,40:1,20:1,15:1,10:2 12 | CONTINENT_LIST_POINTS=1 13 | CONTINENTLIST=AS 14 | USE_CONTINENTLIST_ONLY 15 | RECALL_MULTS 16 | PFX_MULT_MULTIBAND 17 | 18 | ################################# 19 | #NOB4 20 | # 21 | ################################## 22 | # # 23 | # Messages F1= to F12= # 24 | # Message CQ_TU_MSG= # 25 | # Message S&P_TU_MSG= # 26 | # # 27 | # % = call # 28 | # @ = hiscall # 29 | # # = serial # 30 | # [ = RST # 31 | # + = increase cw speed # 32 | # - = decrease cw speed # 33 | # # 34 | ################################## 35 | # 36 | F1=+++CQ TEST DE ---%++ TEST -- 37 | F2=@ DE % 38 | F3=CFM UR ++5NN --43 39 | F4=TU 73 40 | F5= @ 41 | F6=% 42 | F7=@ SRI QSO B4 GL 43 | F8=AGN 44 | F9= ? 45 | F10= QRZ? 46 | F11= PSE K 47 | F12=++++TEST AA ----% % 48 | # 49 | CQ_TU_MSG=+++TU TEST AA ---% 50 | S&P_TU_MSG=++TU 5NN --43 51 | # 52 | #ALT_0= 53 | #ALT_1= 54 | #ALT_2= 55 | #ALT_3= 56 | #ALT_4= 57 | #ALT_5= 58 | #ALT_6= 59 | #ALT_7= 60 | #ALT_8= 61 | #ALT_9= 62 | # 63 | ####### END ##################### 64 | -------------------------------------------------------------------------------- /rules/arrl10m_dx: -------------------------------------------------------------------------------- 1 | ############################### 2 | # ARRL 10m CONTEST (DX side) # 3 | ############################### 4 | # 5 | CONTEST=arrl10m_dx 6 | LOGFILE=arrl10m_dx.log 7 | CONTEST_MODE 8 | CABRILLO=UNIVERSAL 9 | 10 | SSBPOINTS=2 11 | CWPOINTS=4 12 | MIXED 13 | DX_&_SECTIONS 14 | MULT_LIST=arrl10m_mults 15 | # 16 | ################################## 17 | # # 18 | # Messages F1= to F12= # 19 | # Message CQ_TU_MSG= # 20 | # Message S&P_TU_MSG= # 21 | # # 22 | # % = call # 23 | # @ = hiscall # 24 | # # = serial # 25 | # [ = RST # 26 | # + = increase cw speed # 27 | # - = decrease cw speed # 28 | # # 29 | ################################## 30 | # 31 | F1=CQ % % TEST 32 | F2= % 33 | F3=@ +++5NN---# 34 | F4=TU 35 | F5= @ 36 | F6=% 37 | F7=@ SRI QSO B4 GL 38 | F8=AGN 39 | F9= ? 40 | F10= QRZ? 41 | F11= PSE K 42 | F12=++++TEST---- % % 43 | # 44 | CQ_TU_MSG=TU % 45 | S&P_TU_MSG=TU +++5NN---# 46 | # 47 | #ALT_0= 48 | #ALT_1= 49 | #ALT_2= 50 | #ALT_3= 51 | #ALT_4= 52 | #ALT_5= 53 | #ALT_6= 54 | #ALT_7= 55 | #ALT_8= 56 | #ALT_9= 57 | # 58 | 59 | -------------------------------------------------------------------------------- /rules/arrl160m_usa: -------------------------------------------------------------------------------- 1 | ################################# 2 | # ARRL 160m CONTEST (Stateside) # 3 | ################################# 4 | # 5 | CONTEST=arrl160m_usa 6 | LOGFILE=arrl160m.log 7 | CONTEST_MODE 8 | CABRILLO=UNIVERSAL 9 | # 10 | MULT_LIST=arrlsections 11 | DX_&_SECTIONS 12 | RECALL_MULTS 13 | # 14 | COUNTRY_LIST_POINTS=5 15 | TWO_POINTS 16 | ################################## 17 | # # 18 | # Messages F1= to F12= # 19 | # Message CQ_TU_MSG= # 20 | # Message S&P_TU_MSG= # 21 | # # 22 | # % = call # 23 | # @ = hiscall # 24 | # # = serial # 25 | # [ = RST # 26 | # + = increase cw speed # 27 | # - = decrease cw speed # 28 | # # 29 | ################################## 30 | # 31 | F1=CQ DE % TEST 32 | F2=@ DE % 33 | F3=@ ++5NN--PA 34 | F4=TU 73 35 | F5= @ 36 | F6=% 37 | F7=@ SRI QSO B4 GL 38 | F8=AGN 39 | F9= ? 40 | F10= QRZ? 41 | F11= PSE K 42 | F12=++++TEST---- % % 43 | # 44 | CQ_TU_MSG=TU % 45 | S&P_TU_MSG=TU 5NN PA 46 | # 47 | #ALT_0= 48 | #ALT_1= 49 | #ALT_2= 50 | #ALT_3= 51 | #ALT_4= 52 | #ALT_5= 53 | #ALT_6= 54 | #ALT_7= 55 | #ALT_8= 56 | #ALT_9= 57 | # 58 | 59 | -------------------------------------------------------------------------------- /rules/arrldx_dx: -------------------------------------------------------------------------------- 1 | ############################### 2 | # ARRL DX CONTEST (DX side) # 3 | ############################### 4 | # 5 | CONTEST=arrldx_dx 6 | LOGFILE=arrltest.log 7 | CONTEST_MODE 8 | CABRILLO=UNIVERSAL 9 | # 10 | MULT_LIST=arrldx_mults 11 | COUNTRYLIST=W,VE 12 | USE_COUNTRYLIST_ONLY 13 | COUNTRY_LIST_POINTS=3 14 | SECTION_MULT 15 | RECALL_MULTS 16 | # 17 | ################################## 18 | # # 19 | # Messages F1= to F12= # 20 | # Message CQ_TU_MSG= # 21 | # Message S&P_TU_MSG= # 22 | # # 23 | # % = call # 24 | # @ = hiscall # 25 | # # = serial # 26 | # [ = RST # 27 | # + = increase cw speed # 28 | # - = decrease cw speed # 29 | # # 30 | ################################## 31 | # 32 | F1=CQ DE % TEST 33 | F2=@ DE % 34 | F3=@ ++5NN--1TT 35 | F4=TU 73 36 | F5= @ 37 | F6=% 38 | F7=@ SRI QSO B4 GL 39 | F8=AGN 40 | F9= ? 41 | F10= QRZ? 42 | F11= PSE K 43 | F12=++++TEST---- % % 44 | # 45 | CQ_TU_MSG=TU % 46 | S&P_TU_MSG=TU 5NN 1TT 47 | # 48 | #ALT_0= 49 | #ALT_1= 50 | #ALT_2= 51 | #ALT_3= 52 | #ALT_4= 53 | #ALT_5= 54 | #ALT_6= 55 | #ALT_7= 56 | #ALT_8= 57 | #ALT_9= 58 | # 59 | 60 | -------------------------------------------------------------------------------- /rules/arrldx_usa: -------------------------------------------------------------------------------- 1 | ############################### 2 | # ARRL DX CONTEST (Stateside) # 3 | ############################### 4 | # 5 | CONTEST=arrldx_usa 6 | LOGFILE=arrltest.log 7 | CONTEST_MODE 8 | CABRILLO=UNIVERSAL 9 | # 10 | RECALL_MULTS 11 | # 12 | ################################## 13 | # # 14 | # Messages F1= to F12= # 15 | # Message CQ_TU_MSG= # 16 | # Message S&P_TU_MSG= # 17 | # # 18 | # % = call # 19 | # @ = hiscall # 20 | # # = serial # 21 | # [ = RST # 22 | # + = increase cw speed # 23 | # - = decrease cw speed # 24 | # # 25 | ################################## 26 | # 27 | F1=CQ DE % TEST 28 | F2=@ DE % 29 | F3=@ ++5NN--PA 30 | F4=TU 73 31 | F5= @ 32 | F6=% 33 | F7=@ SRI QSO B4 GL 34 | F8=AGN 35 | F9= ? 36 | F10= QRZ? 37 | F11= PSE K 38 | F12=++++TEST---- % % 39 | # 40 | CQ_TU_MSG=TU % 41 | S&P_TU_MSG=TU 5NN PA 42 | # 43 | #ALT_0= 44 | #ALT_1= 45 | #ALT_2= 46 | #ALT_3= 47 | #ALT_4= 48 | #ALT_5= 49 | #ALT_6= 50 | #ALT_7= 51 | #ALT_8= 52 | #ALT_9= 53 | # 54 | 55 | -------------------------------------------------------------------------------- /rules/arrlss: -------------------------------------------------------------------------------- 1 | ################################################ 2 | # The ARRL SWEEPSTAKES contest needs a # 3 | # multiplier file containing the sections # 4 | # which are used as a multiplier in the # 5 | # directory you start tlf from (arrlsections). # 6 | ################################################ 7 | # 8 | CONTEST=arrl_ss 9 | LOGFILE=ss.log 10 | MULT_LIST=arrlsections 11 | CONTEST_MODE 12 | CABRILLO=ARRL-SS 13 | NO_RST 14 | # 15 | ################################## 16 | # # 17 | # Messages F1= to F12= # 18 | # Message CQ_TU_MSG= # 19 | # Message S&P_TU_MSG= # 20 | # # 21 | # % = call # 22 | # @ = hiscall # 23 | # # = serial # 24 | # [ = RST # 25 | # + = increase cw speed # 26 | # - = decrease cw speed # 27 | # # 28 | ################################## 29 | # 30 | F1=CQ CQ DE % % K 31 | F2=@ DE % 32 | F3=@ # A % 83 CT 33 | F4=TU 73 34 | F5= @ 35 | F6=% 36 | F7=@ SRI QSO B4 GL 37 | F8=AGN 38 | F9= ? 39 | F10= QRZ? 40 | F11= PSE K 41 | F12=++++TEST---- % % 42 | # 43 | CQ_TU_MSG=TU % 44 | S&P_TU_MSG=TU UR # A % 83 CT 45 | # 46 | ALT_0=message alt 0 47 | ALT_1=nr is # # 48 | ALT_2=prec? 49 | ALT_3=ur section? 50 | ALT_4=ck is 83 83 51 | ALT_5=sec is CT CT 52 | #ALT_6= 53 | #ALT_7= 54 | #ALT_8= 55 | #ALT_9= 56 | # 57 | # Alternate ALT messages: 58 | #ALT_1=# 59 | #ALT_2=A 60 | #ALT_3=% 61 | #ALT_4=83 62 | #ALT_5=CT 63 | ####### END ##################### 64 | -------------------------------------------------------------------------------- /rules/contest: -------------------------------------------------------------------------------- 1 | ######################## 2 | # General contest mode # 3 | ######################## 4 | # 5 | CONTEST=contest 6 | LOGFILE=qso.log 7 | CONTEST_MODE 8 | CABRILLO=UNIVERSAL 9 | # 10 | ################################## 11 | # # 12 | # Messages F1= to F12= # 13 | # Message CQ_TU_MSG= # 14 | # Message S&P_TU_MSG= # 15 | # # 16 | # % = call # 17 | # @ = hiscall # 18 | # # = serial # 19 | # [ = RST # 20 | # + = increase cw speed # 21 | # - = decrease cw speed # 22 | # # 23 | ################################## 24 | # 25 | F1=TEST DE % K 26 | F2=@ DE % 27 | F3=@ 5NN# 28 | F4=TU 29 | F5= @ 30 | F6=% 31 | F7=@ SRI QSO B4 GL 32 | F8=AGN 33 | F9= ? 34 | F10= QRZ? 35 | F11= PSE K 36 | F12=TEST % % 37 | # 38 | CQ_TU_MSG=TU % 39 | S&P_TU_MSG=TU UR 5NN # 40 | # 41 | #ALT_0= 42 | #ALT_1= 43 | #ALT_2= 44 | #ALT_3= 45 | #ALT_4= 46 | #ALT_5= 47 | #ALT_6= 48 | #ALT_7= 49 | #ALT_8= 50 | #ALT_9= 51 | # 52 | #SEND_DE 53 | # 54 | ####### END ##################### 55 | 56 | -------------------------------------------------------------------------------- /rules/cqp/cqp_ca: -------------------------------------------------------------------------------- 1 | ######################## 2 | # Provided by: Victor Denisov N6DVS 3 | # Last Verified: 2023-08-23 4 | ######################## 5 | # 6 | CONTEST=California_QSO_Party 7 | CONTEST_MODE 8 | LOGFILE=cqp.log 9 | CABRILLO=UNIVERSAL 10 | CWPOINTS=3 11 | SSBPOINTS=2 12 | SERIAL+SECTION 13 | MULT_LIST=cqp_mults 14 | SECTION_MULT_ONCE 15 | NO_RST 16 | LEADING_ZEROS_SERIAL=OFF 17 | # 18 | ################################## 19 | # # 20 | # Messages F1= to F12= # 21 | # Message CQ_TU_MSG= # 22 | # Message S&P_TU_MSG= # 23 | # # 24 | # % = call # 25 | # @ = hiscall # 26 | # # = serial # 27 | # [ = RST # 28 | # + = increase cw speed # 29 | # - = decrease cw speed # 30 | # # 31 | ################################## 32 | # 33 | F1=cq cqp % 34 | F2=@ DE % 35 | F3=@ # trin 36 | F4=TU 37 | F5=@ 38 | F6=% 39 | F7=@ SRI QSO B4 GL 40 | F8=AGN 41 | F9= ? 42 | F10= QRZ? 43 | F11= PSE K 44 | F12=cq cqp % 45 | # 46 | CQ_TU_MSG=TU % 47 | S&P_TU_MSG=TU # trin 48 | # 49 | #ALT_0= 50 | ALT_1=NR # # 51 | ALT_2=QTH TRIN TRIN 52 | ALT_3=NR? 53 | ALT_4=QTH? 54 | #ALT_5= 55 | #ALT_6= 56 | #ALT_7= 57 | #ALT_8= 58 | #ALT_9= 59 | # 60 | #SEND_DE 61 | # 62 | CABRILLO-QSO-FORMAT=CQP 63 | ####### END ##################### 64 | -------------------------------------------------------------------------------- /rules/cqp/cqp_ca_mults: -------------------------------------------------------------------------------- 1 | # This mult file is suitable for a California station. 2 | # Mults are states and counties are aliases for California. 3 | # If you operate outside of California your mults will be California counties. 4 | ######################### 5 | ## California Counties ## 6 | ######################### 7 | CA:ALAM,ALPI,AMAD,BUTT,CALA,COLU,CCOS,DELN,ELDO,FRES,GLEN,HUMB,IMPE,INYO,KERN,KING,LAKE,LASS,LANG,MADE,MARN,MARP,MEND,MERC,MODO,MONO,MONT,NAPA,NEVA,ORAN,PLAC,PLUM,RIVE,SACR,SBEN,SBER,SDIE,SFRA,SJOA,SLUI,SMAT,SBAR,SCLA,SCRU,SHAS,SIER,SISK,SOLA,SONO,STAN,SUTT,TEHA,TRIN,TULA,TUOL,VENT,YOLO,YUBA 8 | ################### 9 | ## United States ## 10 | ################### 11 | AL 12 | AK 13 | AZ 14 | AR 15 | CO 16 | CT 17 | DE 18 | FL 19 | GA 20 | HI 21 | ID 22 | IL 23 | IN 24 | IA 25 | KS 26 | KY 27 | LA 28 | ME 29 | MD 30 | MA 31 | MI 32 | MN 33 | MS 34 | MO 35 | MT 36 | NE 37 | NV 38 | NH 39 | NJ 40 | NM 41 | NY 42 | NC 43 | ND 44 | OH 45 | OK 46 | OR 47 | PA 48 | RI 49 | SC 50 | SD 51 | TN 52 | TX 53 | UT 54 | VT 55 | VA 56 | WA 57 | WV 58 | WI 59 | WY 60 | ############ 61 | ## Canada ## 62 | ############ 63 | NB 64 | NL 65 | NS 66 | PE 67 | QC 68 | ON 69 | MB 70 | SK 71 | AB 72 | BC 73 | NT 74 | NU 75 | YT 76 | ######## 77 | ## DX ## 78 | ######## 79 | # All other locations 80 | -------------------------------------------------------------------------------- /rules/cqww160/cqww160: -------------------------------------------------------------------------------- 1 | # CQ World Wide 160-Meter Contest 2 | # https://www.cq160.com/ 3 | # 4 | # Provided by: HA5CQZ 5 | 6 | CONTEST=cqww160 7 | LOGFILE=cqww160.log 8 | 9 | CONTEST_MODE 10 | 11 | INITIAL_EXCHANGE=cqww160.txt 12 | RECALL_MULTS 13 | 14 | # scoring handled by cqww160.py 15 | 16 | # mults handled by cqww160.py 17 | GENERIC_MULT = ALL 18 | 19 | PLUGIN_CONFIG=cqww160.txt 20 | 21 | # 22 | # Replace MA with your actual sent exchange here 23 | # 24 | CABRILLO-EXCHANGE=MA 25 | F3=@ ++5NN-- MA 26 | S&P_TU_MSG=TU ++5NN-- MA 27 | 28 | CABRILLO=UNIVERSAL 29 | # 30 | # NOTE: change CW to SSB for the phone contest 31 | # Be sure to use hyphens as shown. 32 | # DO NOT PUT THE YEAR OR USE PH INSTEAD OF SSB. 33 | # 34 | CABRILLO-CONTEST=CQ-160-CW 35 | CABRILLO-CATEGORY-MODE=CW 36 | CABRILLO-CATEGORY-BAND=160M 37 | CABRILLO-CATEGORY-POWER=(HIGH,LOW,QRP) 38 | CABRILLO-CATEGORY-OPERATOR=(SINGLE-OP,MULTI-OP,CHECKLOG) 39 | CABRILLO-OPERATORS=N0CALL 40 | CABRILLO-CLUB=FILL THIS IN 41 | 42 | # 43 | # Check the correct location below (see https://www.cq160.com/locations.htm) 44 | # 45 | CABRILLO-LOCATION=MA 46 | 47 | 48 | # fixed fields 49 | CABRILLO-CATEGORY-TRANSMITTER=ONE 50 | CABRILLO-CATEGORY-STATION=- 51 | CABRILLO-CATEGORY-TIME=- 52 | CABRILLO-CATEGORY-OVERLAY=- 53 | CABRILLO-OFFTIME=- 54 | -------------------------------------------------------------------------------- /rules/cwops_mini_cwt: -------------------------------------------------------------------------------- 1 | CONTEST=cwops_mini_cwt 2 | LOGFILE=cwops_mini_cwt.log 3 | CONTEST_MODE 4 | CABRILLO=UNIVERSAL 5 | # 6 | ################################## 7 | # # 8 | # Messages F1= to F12= # 9 | # Message CQ_TU_MSG= # 10 | # Message S&P_TU_MSG= # 11 | # # 12 | # % = call # 13 | # @ = hiscall # 14 | # # = serial # 15 | # [ = RST # 16 | # + = increase cw speed # 17 | # - = decrease cw speed # 18 | # # 19 | ################################## 20 | # 21 | F1=TEST % % CWT 22 | F2=@ DE % 23 | F3=@ JO 2225 24 | F4=TU 73 25 | F5= @ 26 | F6=% 27 | F7=@ SRI QSO B4 GL 28 | F8=AGN 29 | F9= ? 30 | F10= QRZ? 31 | F11= PSE K 32 | F12= TEST % % CWT 33 | # 34 | CQ_TU_MSG=TU % 35 | S&P_TU_MSG=TU JO 2225 36 | ################################# 37 | # # 38 | # POINTS LIST # 39 | # # 40 | ################################# 41 | ONE_POINT 42 | ################################# 43 | # # 44 | # MULIPLIER # 45 | # # 46 | ################################# 47 | UNIQUE_CALL_MULTI=ALL 48 | RECALL_MULTS 49 | ################################# 50 | # # 51 | # EXCHANGE # 52 | # # 53 | ################################# 54 | INITIAL_EXCHANGE=cwops.txt 55 | -------------------------------------------------------------------------------- /rules/dxped: -------------------------------------------------------------------------------- 1 | ################### 2 | # DXPEDITION mode # 3 | ################### 4 | # 5 | CONTEST=dxped 6 | LOGFILE=qso.log 7 | CONTEST_MODE 8 | # 9 | # 10 | ################################## 11 | # # 12 | # Messages F1= to F12= # 13 | # Message CQ_TU_MSG= # 14 | # Message S&P_TU_MSG= # 15 | # # 16 | # % = call # 17 | # @ = hiscall # 18 | # # = serial # 19 | # [ = RST # 20 | # + = increase cw speed # 21 | # - = decrease cw speed # 22 | # # 23 | ################################## 24 | # 25 | F1=CQ DE % K 26 | F2=@ DE % 27 | F3=@ 5NN 28 | F4=TU 73 29 | F5= @ 30 | F6=% 31 | F7=@ SRI QSO B4 GL 32 | F8=AGN 33 | F9= ? 34 | F10= QRZ? 35 | F11= PSE K 36 | F12=++++TEST---- % % 37 | # 38 | CQ_TU_MSG=TU % UP 39 | S&P_TU_MSG=TU UR 5NN 40 | # 41 | #ALT_0= 42 | #ALT_1= 43 | #ALT_2= 44 | #ALT_3= 45 | #ALT_4= 46 | #ALT_5= 47 | #ALT_6= 48 | #ALT_7= 49 | #ALT_8= 50 | #ALT_9= 51 | # 52 | #SEND_DE 53 | # 54 | ####### END ##################### 55 | 56 | -------------------------------------------------------------------------------- /rules/eakingofspain/eakingofspain.py: -------------------------------------------------------------------------------- 1 | """ 2 | https://concursos.ure.es/en/s-m-el-rey-de-espana-cw/bases/ 3 | 4 | Multipliers: The Multipliers, on each band, are the same for both EA and DX stations and are as follows: 5 | 6 | – The EADX-100 entities. 7 | 8 | – The Spanish provinces (52). 9 | 10 | – Special station His Majesty The King of Spain (EF0F) will pass the abbreviation (SMR) 11 | 12 | """ 13 | 14 | EA_DXCCS = ['EA', 'EA6', 'EA8', 'EA9'] 15 | EA_PROVINCES = ['AV', 'BU', 'C', 'LE', 'LO', 'LU', 'O', 'OU', 'P', 'PO', 'S', 16 | 'SA', 'SG', 'SO', 'VA', 'ZA', 'BI', 'HU', 'NA', 'SS', 'TE', 'VI', 'Z', 17 | 'B', 'GI', 'L', 'T', 'BA', 'CC', 'CR', 'CU', 'GU', 'M', 'TO', 'A', 'AB', 18 | 'CS', 'MU', 'V', 'IB', 'AL', 'CA', 'CO', 'GR', 'H', 'J', 'MA', 'SE', 'GC', 19 | 'TF', 'CE', 'ML', 'SMR'] 20 | 21 | def check_exchange(qso): 22 | dxcc = tlf.get_dxcc(qso.call) 23 | 24 | if dxcc.main_prefix in EA_DXCCS: 25 | exchange = qso.exchange.strip() 26 | if exchange in EA_PROVINCES: 27 | mult = f'{dxcc.main_prefix}/{exchange}' 28 | else: 29 | mult = '' # invalid county 30 | else: 31 | mult = dxcc.main_prefix 32 | 33 | return {'mult1_value': mult} 34 | 35 | -------------------------------------------------------------------------------- /rules/eudx/eudx: -------------------------------------------------------------------------------- 1 | ######################## 2 | # EU-DX contest # 3 | ######################## 4 | # https://www.eudx-contest.com/rules/ 5 | # 6 | # Provided by: HA5CQZ 7 | # 8 | CONTEST_MODE 9 | LOGFILE=eudx.log 10 | 11 | CABRILLO=UNIVERSAL 12 | CABRILLO-CONTEST=EUDXC 13 | 14 | #================================ 15 | # Select one of following blocks: 16 | #-------------------------------- 17 | # 18 | # non-EU stations send ITU zone 19 | # 20 | #CABRILLO-EXCHANGE=00 21 | #F3=@ ++5NN-- 00 22 | #S&P_TU_MSG=TU ++5NN-- 00 23 | #PLUGIN_CONFIG=DX 24 | #-------------------------------- 25 | # 26 | # EU stations send region code 27 | # 28 | CABRILLO-EXCHANGE=XX00 29 | F3=@ ++5NN-- XX00 30 | S&P_TU_MSG=TU ++5NN-- XX00 31 | PLUGIN_CONFIG=IT 32 | #================================ 33 | 34 | MIXED 35 | 36 | # Scoring: 37 | # (handled by eudx.py) 38 | 39 | 40 | # Multipliers: 41 | # EU regions and DXCC countries per band 42 | # (handled by eudx.py) 43 | GENERIC_MULT=BAND 44 | 45 | -------------------------------------------------------------------------------- /rules/eusprint: -------------------------------------------------------------------------------- 1 | ########################### 2 | # European SPRINT contest # 3 | ########################### 4 | # 5 | CONTEST=sprint 6 | LOGFILE=eusprint.log 7 | CONTEST_MODE 8 | CABRILLO=EUSPRINT 9 | # 10 | ################################## 11 | # # 12 | # Messages F1= to F12= # 13 | # Message CQ_TU_MSG= # 14 | # Message S&P_TU_MSG= # 15 | # # 16 | # % = call # 17 | # @ = hiscall # 18 | # # = serial # 19 | # [ = RST # 20 | # + = increase cw speed # 21 | # - = decrease cw speed # 22 | # # 23 | ################################## 24 | # 25 | F1=CQ DE % TEST 26 | F2=@ DE % 27 | F3=@ de % # REIN 28 | F4=TU 73 29 | F5= @ 30 | F6=% 31 | F7=@ SRI QSO B4 GL 32 | F8=AGN 33 | F9= ? 34 | F10= QRZ? 35 | F11= PSE K 36 | F12=++++TEST---- % % 37 | # 38 | CQ_TU_MSG=TU % 39 | S&P_TU_MSG=@ DE % TU # REIN 40 | # 41 | #ALT_0= 42 | #ALT_1= 43 | #ALT_2= 44 | #ALT_3= 45 | #ALT_4= 46 | #ALT_5= 47 | #ALT_6= 48 | #ALT_7= 49 | #ALT_8= 50 | #ALT_9= 51 | # 52 | SHORT_SERIAL 53 | # 54 | ####### END ##################### 55 | -------------------------------------------------------------------------------- /rules/hadx/hadx: -------------------------------------------------------------------------------- 1 | ########################## 2 | # HA-DX contest # 3 | ########################## 4 | # https://ha-dx.com/en/contest-rules 5 | # 6 | 7 | LOGFILE=hadx.log 8 | CONTEST_MODE 9 | 10 | CABRILLO-CONTEST= HA-DX 11 | CABRILLO-CATEGORY-BAND= (SOSB, SOAB, SO3BAND, YOUTH6H, MS) 12 | CABRILLO-CATEGORY-MODE= (CW, SSB, MIXED) 13 | CABRILLO-CATEGORY-TRANSMITTER= (ONE, MULTI) 14 | 15 | CABRILLO-CATEGORY-STATION=- 16 | CABRILLO-CATEGORY-OVERLAY=- 17 | CABRILLO-CATEGORY-TIME=- 18 | CABRILLO-LOCATION=- 19 | CABRILLO-OFFTIME=- 20 | 21 | #================================ 22 | # Select one of following blocks: 23 | #-------------------------------- 24 | # 25 | # non-HA stations send serial number 26 | # 27 | CABRILLO-EXCHANGE=# 28 | F3=@ ++5NN-- # 29 | S&P_TU_MSG=TU ++5NN-- # 30 | MY_COUNTRY_POINTS=2 31 | #-------------------------------- 32 | # 33 | # magyar állomások megyét adnak 34 | # 35 | ##CABRILLO-EXCHANGE=XX 36 | ##F3=@ ++5NN-- XX 37 | ##S&P_TU_MSG=TU ++5NN-- XX 38 | ##MY_COUNTRY_POINTS=10 39 | #================================ 40 | 41 | INITIAL_EXCHANGE=hadx.txt 42 | RECALL_MULTS 43 | 44 | # Scoring: 45 | # Contact with a Hungarian station: 10 points 46 | # Contact with a station on your continent: 2 points 47 | # Contact with a station on another continent: 5 points 48 | # 49 | COUNTRY_LIST_POINTS=10 50 | COUNTRYLIST=HA 51 | 52 | MY_CONTINENT_POINTS=2 53 | DX_POINTS=5 54 | 55 | # Multipliers: 56 | # worked DXCC + WAE list countries (exception HA) and Hungarian counties 57 | # per band, regardless of mode. 58 | # (handled by hadx.py) 59 | 60 | GENERIC_MULT=BAND 61 | 62 | -------------------------------------------------------------------------------- /rules/hadx/hadx.py: -------------------------------------------------------------------------------- 1 | """ 2 | HA-DX contest 3 | https://ha-dx.com/en/contest-rules 4 | """ 5 | 6 | HA_COUNTIES = ['BN', 'BA', 'BE', 'BO', 'CS', 'FE', 'GY', 'HB', 'HE', 7 | 'SZ', 'KO', 'NG', 'PE', 'SO', 'SA', 'TO', 'VA', 'VE', 'ZA', 'BP'] 8 | 9 | def check_exchange(qso): 10 | dxcc = tlf.get_dxcc(qso.call) 11 | 12 | if dxcc.main_prefix == 'HA': 13 | exchange = qso.exchange.strip() 14 | if exchange in HA_COUNTIES: 15 | mult = f'HA/{exchange}' 16 | else: 17 | mult = '' # invalid county 18 | else: 19 | mult = dxcc.main_prefix 20 | 21 | return {'mult1_value': mult} 22 | 23 | -------------------------------------------------------------------------------- /rules/hskc/hskc: -------------------------------------------------------------------------------- 1 | # 2 | # Hungarian Straight Key Contest 3 | # https://hskc.ha8kux.com/en/contest-rules 4 | # 5 | # Provided by: Zoltan Csahok HA5CQZ 6 | 7 | CONTEST=hskc 8 | LOGFILE=hskc.log 9 | 10 | CONTEST_MODE 11 | 12 | GENERIC_MULT = BAND 13 | 14 | # scoring and mults handled by hskc.py 15 | 16 | 17 | CABRILLO-CONTEST=HSKC 18 | CABRILLO-CATEGORY-MODE=CW 19 | CABRILLO-CATEGORY-BAND=80M 20 | CABRILLO-CATEGORY-POWER=(LOW,QRP) 21 | CABRILLO-CATEGORY-OPERATOR=(SINGLE-OP,MULTI-OP) 22 | 23 | # fixed Cabrillo fields 24 | CABRILLO-CATEGORY-TRANSMITTER=ONE 25 | CABRILLO-OPERATORS=- 26 | CABRILLO-CATEGORY-STATION=- 27 | CABRILLO-CATEGORY-TIME=- 28 | CABRILLO-CATEGORY-OVERLAY=- 29 | CABRILLO-OFFTIME=- 30 | CABRILLO-LOCATION=- 31 | CABRILLO-CLUB=- 32 | 33 | -------------------------------------------------------------------------------- /rules/hskc/hskc.py: -------------------------------------------------------------------------------- 1 | """ 2 | Hungarian Straight Key Contest 3 | https://hskc.ha8kux.com/en/contest-rules 4 | """ 5 | import re 6 | 7 | MULT_PATTERN = re.compile(r""" 8 | ( # either 9 | ([0-9][A-Z])[A-Z]* # the last digit of the prefix and the next letter (first letter of the suffix) 10 | | # or 11 | ([0-9A-Z]{2}) # the last two characters of the callsign 12 | ) 13 | (/([0-9]|[A-Z]+))? # optional trailing call modifier - ignored 14 | $ # end of string 15 | """, re.VERBOSE) 16 | 17 | 18 | # QSO with a Category A station 3 points, with a Category B station 1 point 19 | def score(qso): 20 | if qso.exchange.strip().endswith('A'): 21 | return 3 22 | else: 23 | return 1 24 | 25 | 26 | def check_exchange(qso): 27 | m = MULT_PATTERN.search(qso.call) 28 | mult = '' 29 | if m: 30 | if m.group(2): 31 | mult = m.group(2) 32 | elif m.group(3): 33 | mult = m.group(3) 34 | 35 | return {'mult1_value': mult} 36 | 37 | -------------------------------------------------------------------------------- /rules/iota/iota: -------------------------------------------------------------------------------- 1 | # 2 | # RSGB IOTA Contest 3 | # https://www.rsgbcc.org/hf/rules/2024/riota.shtml 4 | # 5 | # Provided by: Zoltan Csahok HA5CQZ 6 | 7 | CONTEST=iota 8 | LOGFILE=iota.log 9 | 10 | CONTEST_MODE 11 | 12 | GENERIC_MULT = BAND 13 | 14 | # scoring and mults handled by iota.py 15 | 16 | CABRILLO=UNIVERSAL 17 | CABRILLO-CONTEST=RSGB-IOTA 18 | CABRILLO-CATEGORY-MODE=(CW,SSB,MIXED) 19 | CABRILLO-LOCATION=(WORLD,NON-DXPEDITION,DXPEDITION) 20 | CABRILLO-CATEGORY-BAND=ALL 21 | CABRILLO-CATEGORY-POWER=(HIGH,LOW,QRP) 22 | CABRILLO-CATEGORY-OPERATOR=(SINGLE-OP,MULTI-1,MULTI-2) 23 | CABRILLO-CATEGORY-TIME=(12-HOURS,24-HOURS) 24 | 25 | # fixed Cabrillo fields 26 | CABRILLO-CATEGORY-TRANSMITTER=ONE 27 | CABRILLO-OPERATORS=- 28 | CABRILLO-CATEGORY-STATION=- 29 | CABRILLO-CATEGORY-OVERLAY=- 30 | CABRILLO-OFFTIME=- 31 | CABRILLO-CLUB=- 32 | 33 | -------------------------------------------------------------------------------- /rules/lzdx: -------------------------------------------------------------------------------- 1 | ################# 2 | # LZ DX CONTEST # 3 | # by LZ3NY # 4 | ################# 5 | # 6 | CONTEST=lzdx 7 | LOGFILE=lzdx.log 8 | CONTEST_MODE 9 | CABRILLO=UNIVERSAL 10 | CABRILLO-CONTEST=LZ-DX 11 | # 12 | ################################## 13 | # # 14 | # Messages F1= to F12= # 15 | # Message CQ_TU_MSG= # 16 | # Message S&P_TU_MSG= # 17 | # # 18 | # % = call # 19 | # @ = hiscall # 20 | # # = serial # 21 | # [ = RST # 22 | # + = increase cw speed # 23 | # - = decrease cw speed # 24 | # # 25 | ################################## 26 | # 27 | F1=CQ LZ DE % % K 28 | F2=@ DE % 29 | F3=@ ++5NN--SF 30 | F4=TU 73 31 | F5= @ 32 | F6=% 33 | F7=@ SRI QSO B4 GL 34 | F8=AGN 35 | F9= ? 36 | F10= QRZ? 37 | F11= PSE K 38 | F12=++++TEST---- % % 39 | # 40 | CQ_TU_MSG=TU % 41 | S&P_TU_MSG=TU 5NN SF 42 | # 43 | #ALT_0= 44 | #ALT_1= 45 | #ALT_2= 46 | #ALT_3= 47 | #ALT_4= 48 | #ALT_5= 49 | #ALT_6= 50 | #ALT_7= 51 | #ALT_8= 52 | #ALT_9= 53 | # 54 | MIXED 55 | # 56 | COUNTRYLIST=LZ 57 | MY_COUNTRY_POINTS=1 58 | MY_CONTINENT_POINTS=1 59 | DX_POINTS=3 60 | COUNTRY_LIST_POINTS=10 61 | ITUMULT 62 | WYSIWYG_MULTIBAND 63 | -------------------------------------------------------------------------------- /rules/mcd/mcd: -------------------------------------------------------------------------------- 1 | ############################## 2 | # Marconi Club QSO Party Day # 3 | ############################## 4 | # http://www.ariloano.it/marconiclub/ 5 | # 6 | # Provided by: Zoltan Csahok HA5CQZ 7 | # 8 | 9 | LOGFILE=mcd.log 10 | CONTEST_MODE 11 | 12 | CABRILLO=UNIVERSAL 13 | CABRILLO-CONTEST= MCD-QSO-PARTY 14 | CABRILLO-CATEGORY-BAND= ALL 15 | CABRILLO-CATEGORY-MODE= CW 16 | CABRILLO-CATEGORY-TRANSMITTER= ONE 17 | CABRILLO-CATEGORY-OPERATOR= ONE 18 | 19 | CABRILLO-CATEGORY-ASSISTED= - 20 | CABRILLO-CATEGORY-POWER= - 21 | CABRILLO-CATEGORY-TIME= - 22 | CABRILLO-CATEGORY-STATION=- 23 | CABRILLO-CATEGORY-OVERLAY=- 24 | CABRILLO-LOCATION=- 25 | CABRILLO-OFFTIME=- 26 | CABRILLO-CLUB=- 27 | CABRILLO-OPERATORS=- 28 | 29 | #================================ 30 | # Select one of following blocks: 31 | #-------------------------------- 32 | # 33 | # non-members send serial number 34 | # 35 | CABRILLO-EXCHANGE=# 36 | F3=@ ++5NN-- # 37 | S&P_TU_MSG=TU ++5NN-- # 38 | #-------------------------------- 39 | # 40 | # Marconi Club members send membership number 41 | # 42 | ##CABRILLO-EXCHANGE= MC123 43 | ##F3=@ ++5NN-- MC123 44 | ##S&P_TU_MSG=TU ++5NN-- MC123 45 | #================================ 46 | 47 | # Scoring: 48 | # (handled by mcd.py) 49 | 50 | 51 | # Multipliers: 52 | # The multiplier total is the sum of worked MC members on each band 53 | # (handled by mcd.py) 54 | 55 | GENERIC_MULT=BAND 56 | 57 | 58 | RECALL_MULTS 59 | INITIAL_EXCHANGE=rules/mcd.txt 60 | 61 | PLUGIN_CONFIG=rules/mcd.txt 62 | 63 | -------------------------------------------------------------------------------- /rules/mcd/mcd.py: -------------------------------------------------------------------------------- 1 | """ 2 | Marconi Club QSO Party Day 3 | http://www.ariloano.it/marconiclub/ 4 | """ 5 | 6 | import re 7 | 8 | MEMBERS = {} 9 | 10 | def init(cfg): 11 | # read initial exchange file 12 | global MEMBERS 13 | comment = re.compile("(^#|^$)") # starts with a hash or empty 14 | with open(cfg) as file: 15 | for line in file: 16 | line = line.strip() 17 | if comment.match(line): 18 | continue 19 | [call, exchange] = line.split(',') 20 | MEMBERS[call] = exchange 21 | 22 | 23 | def get_member_id(exchange): 24 | if exchange.startswith('MC'): 25 | return exchange 26 | 27 | return '' 28 | 29 | 30 | # - 5 points for a QSO with a member of Marconi Club A.R.I. Loano 31 | # - 1 point for a QSO with a non-member 32 | def score(qso): 33 | 34 | if get_member_id(qso.exchange): 35 | points = 5 36 | else: 37 | points = 1 38 | 39 | return points 40 | 41 | 42 | def check_exchange(qso): 43 | mult = get_member_id(qso.exchange) 44 | if not mult and qso.call in MEMBERS: 45 | mult = MEMBERS[qso.call] 46 | 47 | return {'mult1_value': mult} 48 | 49 | -------------------------------------------------------------------------------- /rules/mst/mst: -------------------------------------------------------------------------------- 1 | ######################## 2 | # MST contest 3 | # https://internationalcwcouncil.org/mst-contest/ 4 | # 5 | # Provided by: Victor Denisov N6DVS 6 | # Last Verified: 2023-06-12 7 | ######################## 8 | # 9 | CONTEST_MODE 10 | LOGFILE=mst.log 11 | CABRILLO=UNIVERSAL 12 | ONE_POINT 13 | UNIQUE_CALL_MULTI=ALL 14 | LEADING_ZEROS_SERIAL=OFF 15 | NO_RST 16 | # 17 | ################################## 18 | # # 19 | # Messages F1= to F12= # 20 | # Message CQ_TU_MSG= # 21 | # Message S&P_TU_MSG= # 22 | # # 23 | # % = call # 24 | # @ = hiscall # 25 | # # = serial # 26 | # [ = RST # 27 | # + = increase cw speed # 28 | # - = decrease cw speed # 29 | # # 30 | ################################## 31 | # 32 | F1=cq mst % 33 | F2=@ DE % 34 | F3=vic # 35 | F4=TU 36 | F5=@ 37 | F6=% 38 | F7=@ SRI QSO B4 GL 39 | F8=AGN 40 | F9= ? 41 | F10= QRZ? 42 | F11= PSE K 43 | F12=cq mst % 44 | # 45 | CQ_TU_MSG=TU % 46 | S&P_TU_MSG=vic # 47 | # 48 | #ALT_0= 49 | ALT_1=name? 50 | ALT_2=vic 51 | ALT_3=nr? 52 | ALT_4=# 53 | #ALT_5= 54 | #ALT_6= 55 | #ALT_7= 56 | #ALT_8= 57 | #ALT_9= 58 | # 59 | #SEND_DE 60 | # 61 | ####### END ##################### 62 | 63 | -------------------------------------------------------------------------------- /rules/mwc/mwc: -------------------------------------------------------------------------------- 1 | # OK1WC Memorial (MWC) 2 | # https://memorial-ok1wc.cz/index.php?page=rules2l 3 | # 4 | # Provided by: HA5CQZ 5 | 6 | CONTEST=mwc 7 | LOGFILE=mwc.log 8 | 9 | CONTEST_MODE 10 | SERIAL_EXCHANGE 11 | 12 | # scoring 13 | ONE_POINT 14 | 15 | # mults handled by mwc.py 16 | GENERIC_MULT = BAND 17 | 18 | 19 | CABRILLO-CONTEST=MWC 20 | CABRILLO-CATEGORY-MODE=CW 21 | CABRILLO-CATEGORY-BAND=(80M,40M,ALL) 22 | CABRILLO-CATEGORY-POWER=(LOW,QRP) 23 | 24 | # fixed Cabrillo fields 25 | CABRILLO-CATEGORY-OPERATOR=SINGLE-OP 26 | CABRILLO-CATEGORY-TRANSMITTER=ONE 27 | CABRILLO-OPERATORS=- 28 | CABRILLO-CATEGORY-STATION=- 29 | CABRILLO-CATEGORY-TIME=- 30 | CABRILLO-CATEGORY-OVERLAY=- 31 | CABRILLO-OFFTIME=- 32 | CABRILLO-LOCATION=- 33 | CABRILLO-CLUB=- 34 | 35 | -------------------------------------------------------------------------------- /rules/mwc/mwc.py: -------------------------------------------------------------------------------- 1 | """ 2 | OK1WC Memorial (MWC) 3 | https://memorial-ok1wc.cz/index.php?page=rules2l 4 | """ 5 | 6 | import re 7 | 8 | # match trailing call modifier (e.g. /8, /P, /MM, /QRP, etc.) 9 | MODIFIER_PATTERN = re.compile('/(\d|[A-Z]+)$') 10 | 11 | def check_exchange(qso): 12 | call = MODIFIER_PATTERN.sub('', qso.call) # remove modifier 13 | if len(call) > 1: 14 | mult = call[-1] # last character of the call 15 | else: 16 | mult = '' 17 | 18 | return {'mult1_value': mult} 19 | 20 | -------------------------------------------------------------------------------- /rules/naqp/naqp: -------------------------------------------------------------------------------- 1 | ######################## 2 | # North American QSO Party 3 | # Provided by: Victor Denisov N6DVS 4 | # Last Verified: 2023-03-19 5 | ######################## 6 | # 7 | CONTEST_MODE 8 | LOGFILE=naqp.log 9 | CABRILLO=UNIVERSAL 10 | #ONE_POINT 11 | #SERIAL_OR_SECTION 12 | GENERIC_MULT=BAND 13 | #MULT_LIST=naqp_mults 14 | #SECTION_MULT 15 | NO_RST 16 | PLUGIN_CONFIG=dummy 17 | # 18 | ################################## 19 | # # 20 | # Messages F1= to F12= # 21 | # Message CQ_TU_MSG= # 22 | # Message S&P_TU_MSG= # 23 | # # 24 | # % = call # 25 | # @ = hiscall # 26 | # # = serial # 27 | # [ = RST # 28 | # + = increase cw speed # 29 | # - = decrease cw speed # 30 | # # 31 | ################################## 32 | # 33 | F1=cq naqp % 34 | F2=@ DE % 35 | F3=vic ca 36 | F4=TU 37 | F5=@ 38 | F6=% 39 | F7=@ SRI QSO B4 GL 40 | F8=AGN 41 | F9= ? 42 | F10= QRZ? 43 | F11= PSE K 44 | F12=cq naqp % 45 | # 46 | CQ_TU_MSG=TU % 47 | S&P_TU_MSG=vic ca 48 | # 49 | #ALT_0= 50 | ALT_1=ca 51 | ALT_2=qth? 52 | ALT_3=vic 53 | ALT_4=name? 54 | #ALT_5= 55 | #ALT_6= 56 | #ALT_7= 57 | #ALT_8= 58 | #ALT_9= 59 | # 60 | #SEND_DE 61 | # 62 | CABRILLO-QSO-FORMAT=NAQP 63 | CABRILLO-EXCHANGE=vic ca 64 | CABRILLO-CONTEST= 65 | ####### END ##################### 66 | 67 | -------------------------------------------------------------------------------- /rules/naqp/naqp.py: -------------------------------------------------------------------------------- 1 | """ 2 | NAQP contest 3 | https://ncjweb.com/NAQP-Rules.pdf 4 | """ 5 | 6 | countries = ['CA', 'AL', 'AK', 'AZ', 'AR', 'CO', 'CT', 'DE', 'FL', 'GA', 'HI', 'ID', 'IL', 'IN', 'IA', 7 | 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 8 | 'NM', 'NY', 'NC', 'ND', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 9 | 'VA', 'WA', 'WV', 'WI', 'WY', 'DC', 10 | # Canada 11 | 'NB', 'NL', 'NS', 'PE', 'QC', 'ON', 'MB', 'SK', 'AB', 'BC', 'NT', 'NU', 'YT', 12 | # Other countries 13 | '4U1/u', '6Y', '8P', 'C6', 'CM', 'CY9', 'CY0', 'FG', 'FJ', 'FM', 'FO', 'FP', 'FS', 14 | 'HH', 'HI', 'HK0', 'HP', 'HR', 'J3', 'J6', 'J7', 'J8', 'KG4', 'KP1', 'KP2', 'KP4', 15 | 'KP5', 'OX', 'PJ5', 'PJ7', 'TG', 'TI', 'TI9', 'V2', 'V3', 'V4', 'VP2E', 'VP2M', 'VP2V', 16 | 'VP5', 'VP9', 'XE', 'XF4', 'YN', 'YS', 'YV0', 'ZF'] 17 | 18 | def score(qso): 19 | return 1 20 | 21 | def check_exchange(qso): 22 | parts = qso.exchange.strip().split() 23 | 24 | mult = '' 25 | if len(parts) == 2: 26 | if parts[1] in countries: 27 | mult = parts[1] 28 | else: 29 | mult = '' 30 | else: 31 | mult = '' 32 | return {'mult1_value': mult} 33 | -------------------------------------------------------------------------------- /rules/neqp/neqp_mults: -------------------------------------------------------------------------------- 1 | # This is the mult file for a New England station. 2 | # Mults are states, and New England counties are aliases for their state. 3 | # Outside of New England, use neqp_mults_outside instead. 4 | ########################## 5 | ## New England Counties ## 6 | ########################## 7 | CT:CTCAP,CTGBR,CTLCR,CTNAU,CTNOE,CTNOW,CTSOE,CTSOC,CTWES 8 | MA:MABAR,MABER,MABRI,MADUK,MAESS,MAFRA,MAHMD,MAHMP,MAMID,MANAN,MANOR,MAPLY,MASUF,MAWOR 9 | ME:MEAND,MEARO,MECUM,MEFRA,MEHAN,MEKEN,MEKNO,MELIN,MEOXF,MEPEN,MEPIS,MESAG,MESOM,MEWAL,MEWAS,MEYOR 10 | NH:NHBEL,NHCAR,NHCHE,NHCOO,NHGRA,NHHIL,NHMER,NHROC,NHSTR,NHSUL 11 | RI:RIBRI,RIKEN,RINEW,RIPRO,RIWAS 12 | VT:VTADD,VTBEN,VTCAL,VTCHI,VTESS,VTFRA,VTGRA,VTLAM,VTORA,VTORL,VTRUT,VTWAS,VTWNH,VTWND 13 | ################################ 14 | ## Other states and provinces ## 15 | ################################ 16 | AL 17 | AZ 18 | AR 19 | CA 20 | CO 21 | DE 22 | FL 23 | GA 24 | ID 25 | IL 26 | IN 27 | IA 28 | KS 29 | KY 30 | LA 31 | MD 32 | MI 33 | MN 34 | MS 35 | MO 36 | MT 37 | NC 38 | ND 39 | NE 40 | NV 41 | NJ 42 | NM 43 | NY 44 | OH 45 | OK 46 | OR 47 | PA 48 | SC 49 | SD 50 | TN 51 | TX 52 | UT 53 | VA 54 | WA 55 | WV 56 | WI 57 | WY 58 | DC 59 | NB 60 | NS 61 | QC 62 | ON 63 | MB 64 | SK 65 | AB 66 | BC 67 | NT 68 | NF 69 | LB 70 | YT 71 | PE 72 | NU 73 | -------------------------------------------------------------------------------- /rules/neqp/neqp_mults_outside: -------------------------------------------------------------------------------- 1 | # This is the mult file for a station outside New England. 2 | # Mults are New England counties. 3 | ########################## 4 | ## New England Counties ## 5 | ########################## 6 | CTCAP 7 | CTGBR 8 | CTLCR 9 | CTNAU 10 | CTNOE 11 | CTNOW 12 | CTSOE 13 | CTSOC 14 | CTWES 15 | MABAR 16 | MABER 17 | MABRI 18 | MADUK 19 | MAESS 20 | MAFRA 21 | MAHMD 22 | MAHMP 23 | MAMID 24 | MANAN 25 | MANOR 26 | MAPLY 27 | MASUF 28 | MAWOR 29 | MEAND 30 | MEARO 31 | MECUM 32 | MEFRA 33 | MEHAN 34 | MEKEN 35 | MEKNO 36 | MELIN 37 | MEOXF 38 | MEPEN 39 | MEPIS 40 | MESAG 41 | MESOM 42 | MEWAL 43 | MEWAS 44 | MEYOR 45 | NHBEL 46 | NHCAR 47 | NHCHE 48 | NHCOO 49 | NHGRA 50 | NHHIL 51 | NHMER 52 | NHROC 53 | NHSTR 54 | NHSUL 55 | RIBRI 56 | RIKEN 57 | RINEW 58 | RIPRO 59 | RIWAS 60 | VTADD 61 | VTBEN 62 | VTCAL 63 | VTCHI 64 | VTESS 65 | VTFRA 66 | VTGRA 67 | VTLAM 68 | VTORA 69 | VTORL 70 | VTRUT 71 | VTWAS 72 | VTWNH 73 | VTWND 74 | -------------------------------------------------------------------------------- /rules/okom: -------------------------------------------------------------------------------- 1 | ################## 2 | # OK-OM Contest # 3 | ################## 4 | # 5 | CONTEST=okom 6 | LOGFILE=okom.log 7 | CONTEST_MODE 8 | CABRILLO=UNIVERSAL 9 | CABRILLO-CONTEST=OKOM 10 | # 11 | MULT_LIST=okommults 12 | COUNTRYLIST=OK,OM 13 | COUNTRY_LIST_POINTS=1 14 | USE_COUNTRYLIST_ONLY 15 | SERIAL_OR_SECTION 16 | SECTION_MULT 17 | INITIAL_EXCHANGE=ok_om.txt 18 | RECALL_MULTS 19 | 20 | ################################## 21 | # # 22 | # Messages F1= to F12= # 23 | # Message CW_TU_MSG= # 24 | # Message S&P_TU_MSG= # 25 | # # 26 | # % = call # 27 | # @ = hiscall # 28 | # # = serial # 29 | # [ = RST # 30 | # + = increase cw speed # 31 | # - = decrease cw speed # 32 | # (works only with parport # 33 | # interface) # 34 | # # 35 | ################################## 36 | # 37 | F1=+TEST -% %+TEST- 38 | F2=% 39 | F3=+@ 5NN -# # 40 | F4=TU 73 41 | F5=@ 42 | F6=% 43 | F7=@ SRI QSO B4 GL 44 | F8=AGN 45 | F9=? 46 | F10=QRZ? 47 | F11=PSE K 48 | F12=+TEST -% %+ TEST- 49 | # 50 | CQ_TU_MSG=+TU -%+ TEST- 51 | S&P_TU_MSG=+TU 5NN -# # 52 | 53 | -------------------------------------------------------------------------------- /rules/pacc_dx: -------------------------------------------------------------------------------- 1 | ######################################### 2 | # PACC contest for stations outside PA0 # 3 | # PA0R, 3.10.2003 # 4 | ######################################### 5 | # 6 | CONTEST=pacc_dx 7 | LOGFILE=paccdx.log 8 | CONTEST_MODE 9 | CABRILLO=UNIVERSAL 10 | ################################# 11 | MULT_LIST=paccmults 12 | COUNTRYLIST=PA 13 | USE_COUNTRYLIST_ONLY 14 | COUNTRY_LIST_POINTS=1 15 | SECTION_MULT 16 | RECALL_MULTS 17 | SERIAL_EXCHANGE 18 | SHORT_SERIAL 19 | NOB4 20 | # 21 | ################################## 22 | # # 23 | # Messages F1= to F12= # 24 | # Message CQ_TU_MSG= # 25 | # Message S&P_TU_MSG= # 26 | # # 27 | # % = call # 28 | # @ = hiscall # 29 | # # = serial # 30 | # [ = RST # 31 | # + = increase cw speed # 32 | # - = decrease cw speed # 33 | # # 34 | ################################## 35 | # 36 | F1=CQ PA DE % TEST 37 | F2=@ DE % 38 | F3=@ ++5NN--# 39 | F4=TU 73 40 | F5= @ 41 | F6=% 42 | F7=@ SRI QSO B4 GL 43 | F8=AGN 44 | F9= ? 45 | F10= QRZ? 46 | F11= PSE K 47 | F12=++++TEST---- % % 48 | # 49 | CQ_TU_MSG=TU % 50 | S&P_TU_MSG=TU 5NN # 51 | # 52 | #ALT_0= 53 | #ALT_1= 54 | #ALT_2= 55 | #ALT_3= 56 | #ALT_4= 57 | #ALT_5= 58 | #ALT_6= 59 | #ALT_7= 60 | #ALT_8= 61 | #ALT_9= 62 | # 63 | ####### END ##################### 64 | -------------------------------------------------------------------------------- /rules/pacc_pa: -------------------------------------------------------------------------------- 1 | # PACC contest for stations inside PA0 # 2 | ######################################## 3 | CONTEST=pacc_pa 4 | LOGFILE=pacc.log 5 | CONTEST_MODE 6 | CABRILLO=UNIVERSAL 7 | # 8 | ################################## 9 | # # 10 | # Messages F1= to F12= # 11 | # Message CQ_TU_MSG= # 12 | # Message S&P_TU_MSG= # 13 | # # 14 | # % = call # 15 | # @ = hiscall # 16 | # # = serial # 17 | # [ = RST # 18 | # + = increase cw speed # 19 | # - = decrease cw speed # 20 | # # 21 | ################################## 22 | # 23 | F1=CQ DE % TEST 24 | F2=@ DE % 25 | F3=@ ++5NN--NB 26 | F4=TU 73 27 | F5= @ 28 | F6=% 29 | F7=@ SRI QSO B4 GL 30 | F8=AGN 31 | F9= ? 32 | F10= QRZ? 33 | F11= PSE K 34 | F12=++++TEST---- % % 35 | # 36 | CQ_TU_MSG=TU % 37 | S&P_TU_MSG=TU 5NN NB 38 | # 39 | #ALT_0= 40 | #ALT_1= 41 | #ALT_2= 42 | #ALT_3= 43 | #ALT_4= 44 | #ALT_5= 45 | #ALT_6= 46 | #ALT_7= 47 | #ALT_8= 48 | #ALT_9= 49 | # 50 | ################################# 51 | NOB4 52 | ####### END ##################### 53 | -------------------------------------------------------------------------------- /rules/qso: -------------------------------------------------------------------------------- 1 | ###################################################### 2 | # General qso mode (no contest procedure, no points) # 3 | # by PA0R 4.10.2003 # 4 | ###################################################### 5 | # 6 | CONTEST=qso 7 | LOGFILE=qso.log 8 | # 9 | ################################## 10 | # # 11 | # Messages F1= to F12= # 12 | # Message CQ_TU_MSG= # 13 | # Message S&P_TU_MSG= # 14 | # # 15 | # % = call # 16 | # @ = hiscall # 17 | # # = serial # 18 | # [ = RST # 19 | # + = increase cw speed # 20 | # - = decrease cw speed # 21 | # # 22 | ################################## 23 | # 24 | F1=CQ CQ DX DE % % K 25 | F2=@ DE % 26 | F3=@ DE % R OM TU FER CALL = UR 5NN 5NN HW? K 27 | F4=TU 73 ES GL 28 | F5= @ 29 | F6=% 30 | F7=@ SRI QSO B4 GL 31 | F8=AGN 32 | F9= ? 33 | F10= QRZ? 34 | F11= PSE K 35 | F12=CQ CQ DX DE % % K 36 | # 37 | CQ_TU_MSG=TU ES 73 % 38 | S&P_TU_MSG=TU 5NN GL 39 | # 40 | #ALT_0= 41 | #ALT_1= 42 | #ALT_2= 43 | #ALT_3= 44 | #ALT_4= 45 | #ALT_5= 46 | #ALT_6= 47 | #ALT_7= 48 | #ALT_8= 49 | #ALT_9= 50 | # 51 | ####### END ##################### 52 | -------------------------------------------------------------------------------- /rules/raem: -------------------------------------------------------------------------------- 1 | CONTEST=raem 2 | LOGFILE=raem.log 3 | CONTEST_MODE 4 | 5 | CABRILLO=RAEM 6 | CABRILLO-CONTEST=RAEM 7 | CABRILLO-CATEGORY-MODE=CW 8 | #CABRILLO-CATEGORY-BAND=ALL 9 | #CABRILLO-CATEGORY-BAND=20M 10 | 11 | NO_RST 12 | 13 | # 14 | # adapt these to fit your location 15 | # 16 | MYQRA=JN97AA 17 | 18 | CABRILLO-EXCHANGE=# 47N19O 19 | F3=@ # 47N 19O 20 | S&P_TU_MSG=TU # 47N 19O 21 | -------------------------------------------------------------------------------- /rules/raem.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | # e.g. 001 57n85o 4 | XCHG_PATTERN = re.compile('\d+\s+(\d+)\s*([NS])\s*(\d+)\s*([OW])') 5 | 6 | def setup(): 7 | return None 8 | 9 | # 10 | # https://raem.srr.ru/rules/ 11 | # 12 | def score(qso): 13 | xchg = qso.exchange.strip().upper() 14 | 15 | # 1. Every valid QSO gives 50 points. 16 | m = XCHG_PATTERN.match(xchg) 17 | if not m: 18 | return 0 19 | points = 50 20 | 21 | # 2. Every one degree in geographic coordinates’ difference in latitude 22 | # (your and received coordinates in exchange) gives one point in addition; 23 | # the same for longitude. 24 | lat = int(m.group(1)) 25 | if m.group(2) == 'S': 26 | lat = -lat 27 | lon = int(m.group(3)) 28 | if m.group(4) == 'O': 29 | lon = -lon 30 | points = points + abs(lat - round(tlf.MY_LAT)) 31 | diff_long = abs(lon - round(tlf.MY_LONG)) 32 | if diff_long > 180: 33 | diff_long = 360 - diff_long 34 | points = points + diff_long 35 | 36 | # 3. Every QSO with a polar amateur radio station (defined as a station 37 | # located within the Earth’s Polar Circles and sending a latitude 38 | # of 66 degrees or greater) adds 100 to points from p.2. 39 | if abs(lat) >= 66: 40 | points = points + 100 41 | 42 | # 4. Every QSO with the RAEM memorial amateur radio station adds 300 43 | # to points from p.2. 44 | if qso.call == 'RAEM': 45 | points = points + 300 46 | 47 | return points 48 | 49 | -------------------------------------------------------------------------------- /rules/spdx_dx: -------------------------------------------------------------------------------- 1 | ######################################### 2 | # SPDX contest for stations outside SP # 3 | # PA0R, 3.10.2003 # 4 | ######################################### 5 | # 6 | CONTEST=spdx_dx 7 | LOGFILE=spdx.log 8 | CONTEST_MODE 9 | CABRILLO=UNIVERSAL 10 | ################################# 11 | MULT_LIST=spdxmults 12 | COUNTRYLIST=SP 13 | USE_COUNTRYLIST_ONLY 14 | COUNTRY_LIST_POINTS=3 15 | SECTION_MULT 16 | RECALL_MULTS 17 | SERIAL_EXCHANGE 18 | SHORT_SERIAL 19 | NOB4 20 | # 21 | ################################## 22 | # # 23 | # Messages F1= to F12= # 24 | # Message CQ_TU_MSG= # 25 | # Message S&P_TU_MSG= # 26 | # # 27 | # % = call # 28 | # @ = hiscall # 29 | # # = serial # 30 | # [ = RST # 31 | # + = increase cw speed # 32 | # - = decrease cw speed # 33 | # # 34 | ################################## 35 | # 36 | F1=CQ SP DE % TEST 37 | F2=@ DE % 38 | F3=@ ++5NN--# 39 | F4=TU 73 40 | F5= @ 41 | F6=% 42 | F7=@ SRI QSO B4 GL 43 | F8=AGN 44 | F9= ? 45 | F10= QRZ? 46 | F11= PSE K 47 | F12=++++TEST---- % % 48 | # 49 | CQ_TU_MSG=TU % 50 | S&P_TU_MSG=TU 5NN # 51 | # 52 | #ALT_0= 53 | #ALT_1= 54 | #ALT_2= 55 | #ALT_3= 56 | #ALT_4= 57 | #ALT_5= 58 | #ALT_6= 59 | #ALT_7= 60 | #ALT_8= 61 | #ALT_9= 62 | # 63 | ####### END ##################### 64 | -------------------------------------------------------------------------------- /rules/spdx_sp: -------------------------------------------------------------------------------- 1 | ######################################### 2 | # SPDX contest for stations outside SP # 3 | # PA0R, 3.10.2003 # 4 | ######################################### 5 | # 6 | CONTEST=spdx_sp 7 | LOGFILE=spdx.log 8 | CONTEST_MODE 9 | CABRILLO=UNIVERSAL 10 | ################################# 11 | MY_COUNTRY_POINTS=0 12 | MY_CONTINENT_POINTS=1 13 | DX_POINTS=3 14 | COUNTRY_MULT 15 | SERIAL_EXCHANGE 16 | NOB4 17 | # 18 | ################################## 19 | # # 20 | # Messages F1= to F12= # 21 | # Message CQ_TU_MSG= # 22 | # Message S&P_TU_MSG= # 23 | # # 24 | # % = call # 25 | # @ = hiscall # 26 | # # = serial # 27 | # [ = RST # 28 | # + = increase cw speed # 29 | # - = decrease cw speed # 30 | # # 31 | ################################## 32 | # 33 | F1=CQ DE % TEST 34 | F2=@ DE % 35 | F3=@ ++5NN--B 36 | F4=TU 73 37 | F5= @ 38 | F6=% 39 | F7=@ SRI QSO B4 GL 40 | F8=AGN 41 | F9= ? 42 | F10= QRZ? 43 | F11= PSE K 44 | F12=++++TEST---- % % 45 | # 46 | CQ_TU_MSG=TU % 47 | S&P_TU_MSG=TU 5NN B 48 | # 49 | #ALT_0= 50 | #ALT_1= 51 | #ALT_2= 52 | #ALT_3= 53 | #ALT_4= 54 | #ALT_5= 55 | #ALT_6= 56 | #ALT_7= 57 | #ALT_8= 58 | #ALT_9= 59 | # 60 | ####### END ##################### 61 | -------------------------------------------------------------------------------- /rules/ssa_mt: -------------------------------------------------------------------------------- 1 | ################################################ 2 | # SSA_MT CONTEST # 3 | ################################################ 4 | # 5 | CONTEST=ssa_mt 6 | LOGFILE=ssa.log 7 | #MULT_LIST=ssamults 8 | SERIAL+GRID4 9 | CONTEST_MODE 10 | TWO_POINTS 11 | # 12 | ################################## 13 | # # 14 | # Messages F1= to F12= # 15 | # Message CQ_TU_MSG= # 16 | # Message S&P_TU_MSG= # 17 | # # 18 | # % = call # 19 | # @ = hiscall # 20 | # # = serial # 21 | # [ = RST # 22 | # + = increase cw speed # 23 | # - = decrease cw speed # 24 | # # 25 | ################################## 26 | # 27 | F1=CQ CQ DE % % K 28 | F2=@ DE % 29 | F3=@ # JO65AA 30 | F4=TU 73 31 | F5= @ 32 | F6=% 33 | F7=@ SRI QSO B4 GL 34 | F8=AGN 35 | F9= ? 36 | F10= QRZ? 37 | F11= PSE K 38 | F12=++++TEST---- % % 39 | # 40 | CQ_TU_MSG=TU % 41 | S&P_TU_MSG=TU UR # JO65AA 42 | # 43 | #ALT_0=message alt 0 44 | #ALT_1= 45 | #ALT_2= 46 | #ALT_3= 47 | #ALT_4= 48 | #ALT_5= 49 | #ALT_6= 50 | #ALT_7= 51 | #ALT_8= 52 | #ALT_9= 53 | # 54 | ####### END ##################### 55 | -------------------------------------------------------------------------------- /rules/stewperry: -------------------------------------------------------------------------------- 1 | ######################## 2 | # Stew Perry contest # 3 | ######################## 4 | # 5 | CONTEST=stewperry 6 | LOGFILE=stewperry.log 7 | CONTEST_MODE 8 | CABRILLO=UNIVERSAL 9 | NO_RST 10 | # 11 | ################################## 12 | # # 13 | # Messages F1= to F12= # 14 | # Message CQ_TU_MSG= # 15 | # Message S&P_TU_MSG= # 16 | # # 17 | # % = call # 18 | # @ = hiscall # 19 | # # = serial # 20 | # [ = RST # 21 | # + = increase cw speed # 22 | # - = decrease cw speed # 23 | # # 24 | ################################## 25 | # 26 | F1=TEST DE % K 27 | F2=@ DE % 28 | F3=@ JN97 29 | F4=TU 30 | F5= @ 31 | F6=% 32 | F7=@ SRI QSO B4 GL 33 | F8=AGN 34 | F9= ? 35 | F10= QRZ? 36 | F11= PSE K 37 | F12=TEST % % 38 | # 39 | CQ_TU_MSG=TU % 40 | S&P_TU_MSG=TU JN97 41 | # 42 | #ALT_0= 43 | #ALT_1= 44 | #ALT_2= 45 | #ALT_3= 46 | #ALT_4= 47 | #ALT_5= 48 | #ALT_6= 49 | #ALT_7= 50 | #ALT_8= 51 | #ALT_9= 52 | # 53 | #SEND_DE 54 | # 55 | ####### END ##################### 56 | 57 | -------------------------------------------------------------------------------- /rules/tesla: -------------------------------------------------------------------------------- 1 | ########################## 2 | # Tesla Memorial contest # 3 | ########################## 4 | # 5 | CONTEST=tesla 6 | LOGFILE=tesla.log 7 | CONTEST_MODE 8 | 9 | CABRILLO=TESLA 10 | CABRILLO-CONTEST=TESLA 11 | CABRILLO-CATEGORY-MODE=CW 12 | #CABRILLO-CATEGORY-BAND=ALL 13 | #CABRILLO-CATEGORY-BAND=40M 14 | 15 | # 16 | # adapt these to fit your location 17 | # 18 | MYQRA=JN97 19 | 20 | F3=@ # JN97 21 | S&P_TU_MSG=TU # JN97 22 | 23 | 24 | -------------------------------------------------------------------------------- /rules/tesla.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | # e.g. 023 KN03 4 | XCHG_PATTERN = re.compile('\d+\s*(\w{2}\d{2})') 5 | 6 | def setup(): 7 | return None 8 | 9 | # 10 | # http://www.radiosport.yu1srs.org.rs/HFTeslaMemorial/index.php/rules 11 | # 12 | def score(qso): 13 | xchg = qso.exchange.strip().upper() 14 | 15 | m = XCHG_PATTERN.match(xchg) 16 | if not m: 17 | return 0 18 | 19 | # Points are calculated based on the distance 20 | # between the centers of the middle of QTH grids: 21 | 22 | qrb = tlf.get_qrb_for_locator(m.group(1)) 23 | if not qrb: 24 | return 0 25 | 26 | distance = int(qrb.distance) 27 | 28 | if distance <= 600: return 10 # UP to 600 km = 10 points 29 | if distance <= 1200: return 13 # 601 - 1200 km = 13 points 30 | if distance <= 1800: return 16 # 1201 - 1800 km = 16 points 31 | if distance <= 2400: return 20 # 1801 - 2400 km = 20 points 32 | if distance <= 3600: return 24 # 2401 - 3600 km = 24 points 33 | if distance <= 4800: return 28 # 3600 - 4800 km = 28 points 34 | if distance <= 6000: return 32 # 4801 - 6000 km = 32 points 35 | if distance <= 7200: return 36 # 6001 - 7200 km = 36 points 36 | if distance <= 8400: return 40 # 7201 - 8400 km = 40 points 37 | return 45 # above 8401 km = 45 points 38 | 39 | -------------------------------------------------------------------------------- /rules/ukeidx/ukeidx: -------------------------------------------------------------------------------- 1 | ########################## 2 | # UK/EI DX Contest # 3 | ########################## 4 | # https://ukeicc.com/dx-contest-rules.php 5 | # 6 | # Provided by: Zoltan Csahok HA5CQZ 7 | # 8 | 9 | LOGFILE=ukeidx.log 10 | CONTEST_MODE 11 | 12 | # 13 | # change CW to SSB for the phone round 14 | # 15 | CABRILLO=UNIVERSAL 16 | CABRILLO-CONTEST= DX CW Contest 17 | CABRILLO-CATEGORY-BAND= ALL 18 | CABRILLO-CATEGORY-MODE= CW 19 | CABRILLO-CATEGORY-TRANSMITTER= (ONE, MULTI) 20 | CABRILLO-CATEGORY-TIME= (24-HOURS, 12-HOURS) 21 | 22 | CABRILLO-CATEGORY-STATION=- 23 | CABRILLO-CATEGORY-OVERLAY=- 24 | CABRILLO-LOCATION=- 25 | CABRILLO-OFFTIME=- 26 | 27 | #================================ 28 | # Select one of following blocks: 29 | #-------------------------------- 30 | # 31 | # non-UK/EI stations send serial number 32 | # 33 | CABRILLO-EXCHANGE=# -- 34 | F3=@ ++5NN-- # 35 | S&P_TU_MSG=TU ++5NN-- # 36 | #-------------------------------- 37 | # 38 | # UK/EI stations send serial number and district code 39 | # 40 | ##CABRILLO-EXCHANGE=# XX 41 | ##F3=@ ++5NN-- # XX 42 | ##S&P_TU_MSG=TU ++5NN-- # XX 43 | #================================ 44 | 45 | # Scoring: 46 | # (handled by ukeidx.py) 47 | 48 | 49 | # Multipliers: 50 | # The multiplier total is the total of different DXCC countries worked 51 | # on each band, (excluding the UK/EI DXCC countries 52 | # EI, G, GD, GI, GJ, GM, GU, GW) plus UK/EI District Codes worked on each band 53 | # (handled by ukeidx.py) 54 | 55 | GENERIC_MULT=BAND 56 | 57 | -------------------------------------------------------------------------------- /rules/wpx: -------------------------------------------------------------------------------- 1 | ################## 2 | # CQ WPX Contest # 3 | ################## 4 | # 5 | CONTEST=wpx 6 | LOGFILE=wpx.log 7 | CONTEST_MODE 8 | CABRILLO=UNIVERSAL 9 | # 10 | ################################## 11 | # # 12 | # Messages F1= to F12= # 13 | # Message CQ_TU_MSG= # 14 | # Message S&P_TU_MSG= # 15 | # # 16 | # % = call # 17 | # @ = hiscall # 18 | # # = serial # 19 | # [ = RST # 20 | # + = increase cw speed # 21 | # - = decrease cw speed # 22 | # # 23 | ################################## 24 | # 25 | F1=CQ DE % TEST 26 | F2=@ DE % 27 | F3=@ ++5NN--# 28 | F4=TU 73 29 | F5= @ 30 | F6=% 31 | F7=@ SRI QSO B4 GL 32 | F8=AGN 33 | F9= ? 34 | F10= QRZ? 35 | F11= PSE K 36 | F12=++++TEST---- % % 37 | # 38 | CQ_TU_MSG=TU % 39 | S&P_TU_MSG=TU 5NN # 40 | # 41 | #ALT_0= 42 | #ALT_1= 43 | #ALT_2= 44 | #ALT_3= 45 | #ALT_4= 46 | #ALT_5= 47 | #ALT_6= 48 | #ALT_7= 49 | #ALT_8= 50 | #ALT_9= 51 | # 52 | SHORT_SERIAL 53 | # 54 | ####### END ##################### 55 | -------------------------------------------------------------------------------- /scripts/Makefile.am: -------------------------------------------------------------------------------- 1 | SCRIPT_FILES = soundlog play_vk 2 | 3 | bin_SCRIPTS = $(SCRIPT_FILES) 4 | 5 | EXTRA_DIST = $(SCRIPT_FILES) 6 | 7 | CLEANFILES = *~ 8 | 9 | -------------------------------------------------------------------------------- /scripts/play_vk: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Part of the TLF contest logging program for amateur radio operators 4 | # by Rein Coperous PA0R and Thomas Beierlein DL1JBE 2011. 5 | # 6 | # This program is free software; you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation; either version 2 of the License, or 9 | # (at your option) any later version. 10 | 11 | # These script is responsible for playing voice key message files 12 | # on the command of the TLF main program. 13 | # It gets called as 'play_vk filename' and plays the content of 14 | # the audio file 'filename' on the default sound device. 15 | # 16 | # You can adapt it to your convenience to 17 | # - mute or unmute your microphone 18 | # - play different file formats or 19 | # - use another output device 20 | # 21 | # An executable copy of 'play_vk' in your contest directory (containing the 22 | # logcfg.dat file) can be adapted and has precedence over the standard install 23 | 24 | # accept SIGTERM and SIGINT signals and kill play command as soon as possible 25 | trap 'kill -s KILL $PID' TERM INT 26 | 27 | # mute mic 28 | #amixer -c 0 set Mic mute -q 29 | 30 | # play file on the default sound device in background, so signals can be caught 31 | # by the 'trap' instruction above 32 | 33 | # SoX play utility syntax 34 | play -q $1 2> /dev/null & 35 | PID=$! 36 | wait $PID 37 | 38 | 39 | #unmute mic 40 | #amixer -c 0 set Mic unmute -q 41 | -------------------------------------------------------------------------------- /scripts/soundlog: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # accept SIGTERM and SIGINT signals and kill rec command as soon as possible 3 | trap 'kill -s INT $PID' TERM USR1 4 | 5 | # restart recording as long as ~/.VRlock exists; 6 | # to stop recording remove ~/.VRlock before terminating the script 7 | # (will be done by TLF automatically) 8 | while [ -f $HOME/.VRlock ] 9 | do 10 | # store recorded files in actual directory 11 | filename=$(eval date +%d%H%M)".au" 12 | if test -f $filename 13 | then 14 | sleep 10 15 | else 16 | # Example command for OSS rec 17 | # rec -w -r 8000 $filename > /dev/null 2> /dev/null 18 | 19 | # Example command for SoX rec 20 | rec -c 1 -r 8000 -q $filename & 21 | PID=$! 22 | wait $PID 23 | fi 24 | done 25 | -------------------------------------------------------------------------------- /share/Makefile.am: -------------------------------------------------------------------------------- 1 | TLF_FILES = cabrillo.fmt callmaster cty.dat cwops.txt \ 2 | logcfg.dat arrl10m_mults \ 3 | arrldx_mults arrlsections ea_sections okommults ok_om.txt \ 4 | paccmults spdxmults ssamults help.txt darcmults 5 | 6 | tlfdir = $(pkgdatadir) 7 | tlf_DATA = $(TLF_FILES) 8 | 9 | EXTRA_DIST = $(TLF_FILES) 10 | 11 | CLEANFILES = *~ 12 | -------------------------------------------------------------------------------- /share/arrl10m_mults: -------------------------------------------------------------------------------- 1 | AL 2 | AK 3 | AZ 4 | AR 5 | CA 6 | CO 7 | CT 8 | DC 9 | DE 10 | FL 11 | GA 12 | HI 13 | ID 14 | IL 15 | IN 16 | IA 17 | KS 18 | KY 19 | LA 20 | ME 21 | MD 22 | MA 23 | MI 24 | MN 25 | MS 26 | MO 27 | MT 28 | NE 29 | NV 30 | NH 31 | NJ 32 | NM 33 | NY 34 | NC 35 | ND 36 | OH 37 | OK 38 | OR 39 | PA 40 | RI 41 | SC 42 | SD 43 | TN 44 | TX 45 | UT 46 | VT 47 | VA 48 | WA 49 | WV 50 | WI 51 | WY 52 | AB 53 | BC 54 | LB 55 | MB 56 | NB 57 | NF 58 | NS 59 | NT 60 | NU 61 | ON 62 | PE 63 | QC 64 | SK 65 | YT 66 | AGS 67 | BAC 68 | BCS 69 | CAM 70 | CHI 71 | CHH 72 | CMX 73 | COA 74 | COL 75 | DGO 76 | EMX 77 | GTO 78 | GRO 79 | HGO 80 | JAL 81 | MIC 82 | MOR 83 | NAY 84 | NLE 85 | OAX 86 | PUE 87 | QRO 88 | QUI 89 | SLP 90 | SIN 91 | SON 92 | TAB 93 | TAM 94 | TLX 95 | VER 96 | YUC 97 | ZAC 98 | -------------------------------------------------------------------------------- /share/arrldx_mults: -------------------------------------------------------------------------------- 1 | AL 2 | AZ 3 | AR 4 | CA 5 | CO 6 | CT 7 | DE 8 | FL 9 | GA 10 | ID 11 | IL 12 | IN 13 | IA 14 | KS 15 | KY 16 | LA 17 | ME 18 | MD 19 | MA 20 | MI 21 | MN 22 | MS 23 | MO 24 | MT 25 | NC 26 | ND 27 | NE 28 | NV 29 | NH 30 | NJ 31 | NM 32 | NY 33 | OH 34 | OK 35 | OR 36 | PA 37 | RI 38 | SC 39 | SD 40 | TN 41 | TX 42 | UT 43 | VT 44 | VA 45 | WA 46 | WV 47 | WI 48 | WY 49 | DC 50 | NB 51 | NS 52 | QC 53 | ON 54 | MB 55 | SK 56 | AB 57 | BC 58 | NT 59 | NF 60 | LB 61 | YT 62 | PE 63 | NU 64 | -------------------------------------------------------------------------------- /share/arrlsections: -------------------------------------------------------------------------------- 1 | AB 2 | AK 3 | AL 4 | AR 5 | AZ 6 | BC 7 | CO 8 | CT 9 | DE 10 | EB 11 | EMA 12 | ENY 13 | EPA 14 | EWA 15 | GA 16 | GH 17 | IA 18 | ID 19 | IL 20 | IN 21 | KS 22 | KY 23 | LA 24 | LAX 25 | MB 26 | MDC 27 | ME 28 | MI 29 | MN 30 | MO 31 | MS 32 | MT 33 | NB 34 | NC 35 | ND 36 | NE 37 | NFL 38 | NH 39 | NL 40 | NLI 41 | NM 42 | NNJ 43 | NNY 44 | NS 45 | NTX 46 | NV 47 | OH 48 | OK 49 | ONE 50 | ONN 51 | ONS 52 | OR 53 | ORG 54 | PAC 55 | PE 56 | PR 57 | QC 58 | RI 59 | SB 60 | SC 61 | SCV 62 | SD 63 | SDG 64 | SF 65 | SFL 66 | SJV 67 | SK 68 | SNJ 69 | STX 70 | SV 71 | TER 72 | TN 73 | UT 74 | VA 75 | VI 76 | VT 77 | WCF 78 | WI 79 | WMA 80 | WNY 81 | WPA 82 | WTX 83 | WV 84 | WWA 85 | WY 86 | -------------------------------------------------------------------------------- /share/ea_sections: -------------------------------------------------------------------------------- 1 | A 2 | AB 3 | AL 4 | AV 5 | B 6 | BA 7 | BI 8 | BU 9 | C 10 | CA 11 | CC 12 | CE 13 | CO 14 | CR 15 | CS 16 | CU 17 | GC 18 | GI 19 | GR 20 | GU 21 | H 22 | HU 23 | IB 24 | J 25 | L 26 | LE 27 | LO 28 | LU 29 | M 30 | MA 31 | ML 32 | MU 33 | NA 34 | O 35 | OU 36 | P 37 | PO 38 | S 39 | SA 40 | SE 41 | SG 42 | SO 43 | SS 44 | T 45 | TE 46 | TF 47 | TO 48 | V 49 | VA 50 | VI 51 | Z 52 | ZA 53 | -------------------------------------------------------------------------------- /share/okommults: -------------------------------------------------------------------------------- 1 | APA 2 | APB 3 | APC 4 | APD 5 | APE 6 | APF 7 | APG 8 | APH 9 | API 10 | APJ 11 | BAA 12 | BAB 13 | BAC 14 | BAD 15 | BAE 16 | BAN 17 | BAR 18 | BBE 19 | BBN 20 | BBY 21 | BKD 22 | BKH 23 | BKO 24 | BMB 25 | BME 26 | BNY 27 | BPB 28 | BPV 29 | BPZ 30 | BRA 31 | BRE 32 | BST 33 | BYT 34 | CAD 35 | CBU 36 | CCK 37 | CJH 38 | CPE 39 | CPI 40 | CPR 41 | CTA 42 | CST 43 | DCH 44 | DDO 45 | DET 46 | DKL 47 | DKU 48 | DKV 49 | DPJ 50 | DPM 51 | DPS 52 | DRO 53 | DSO 54 | DST 55 | DTA 56 | ECH 57 | ECL 58 | EDE 59 | EJA 60 | ELI 61 | ELO 62 | ELT 63 | EMO 64 | ETE 65 | EUL 66 | FCR 67 | FHB 68 | FHK 69 | FJI 70 | FNA 71 | FPA 72 | FRK 73 | FSE 74 | FSV 75 | FTR 76 | FUO 77 | GAL 78 | GBL 79 | GBM 80 | GBR 81 | GBV 82 | GEL 83 | GHO 84 | GJI 85 | GKR 86 | GPR 87 | GTR 88 | GUH 89 | GVY 90 | GZL 91 | GZN 92 | GZS 93 | HBR 94 | HFM 95 | HJE 96 | HKA 97 | HLO 98 | HNJ 99 | HOL 100 | HOP 101 | HOS 102 | HPR 103 | HSU 104 | HUM 105 | HVS 106 | ILA 107 | KEA 108 | KEB 109 | KEC 110 | KED 111 | KEO 112 | KEZ 113 | KNM 114 | KOM 115 | KRU 116 | LEV 117 | LMI 118 | LUC 119 | LVC 120 | MAL 121 | MAR 122 | MED 123 | MIC 124 | MYJ 125 | NAM 126 | NIT 127 | NMV 128 | NZA 129 | PAR 130 | PBY 131 | PEZ 132 | PIE 133 | POL 134 | POP 135 | PRE 136 | PRI 137 | PUC 138 | REV 139 | ROZ 140 | RSO 141 | RUZ 142 | SAB 143 | SEA 144 | SEN 145 | SKA 146 | SLU 147 | SNI 148 | SNV 149 | SOB 150 | STR 151 | SVI 152 | TNC 153 | TOP 154 | TRE 155 | TRN 156 | TTE 157 | TVR 158 | VKR 159 | VRT 160 | ZAR 161 | ZIH 162 | ZIL 163 | ZMO 164 | ZVO 165 | -------------------------------------------------------------------------------- /share/paccmults: -------------------------------------------------------------------------------- 1 | DR 2 | FL 3 | FR 4 | GD 5 | GR 6 | LB 7 | NB 8 | NH 9 | OV 10 | UT 11 | ZH 12 | ZL 13 | -------------------------------------------------------------------------------- /share/spdxmults: -------------------------------------------------------------------------------- 1 | B 2 | C 3 | D 4 | F 5 | G 6 | R 7 | J 8 | K 9 | L 10 | M 11 | O 12 | P 13 | S 14 | U 15 | W 16 | Z 17 | -------------------------------------------------------------------------------- /share/ssamults: -------------------------------------------------------------------------------- 1 | A 2 | B 3 | C 4 | D 5 | E 6 | F 7 | G 8 | H 9 | I 10 | K 11 | L 12 | M 13 | N 14 | O 15 | P 16 | R 17 | S 18 | T 19 | U 20 | W 21 | X 22 | Y 23 | Z 24 | AC 25 | BD 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/addcall.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2013 Ervin Hegedüs - HA2OS 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef ADDCALL_H 23 | #define ADDCALL_H 24 | 25 | #include "tlf.h" 26 | 27 | extern int excl_add_veto; 28 | 29 | struct qso_t *collect_qso_data(void); 30 | bool check_veto(int countrynr); 31 | int lookup_country_in_pfxnummult_array(int n); 32 | int addcall(struct qso_t *qso); 33 | int addcall2(void); 34 | int get_band(char *logline); 35 | 36 | #endif /* ADDCALL_H */ 37 | -------------------------------------------------------------------------------- /src/addpfx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef ADDPFX_H 22 | #define ADDPFX_H 23 | 24 | #include 25 | 26 | bool pfx_is_new(char *prefix); 27 | bool pfx_is_new_on(char *prefix, int bandindex); 28 | int add_pfx(char *pxstr, unsigned int bandindex); 29 | unsigned int GetNrOfPfx_once(); 30 | unsigned int GetNrOfPfx_multiband(); 31 | unsigned int GetNrOfPfx_OnBand(unsigned int bandindex); 32 | void InitPfx(); 33 | 34 | #endif /* ADDPFX_H */ 35 | -------------------------------------------------------------------------------- /src/addspot.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef ADDSPOT_H 22 | #define ADDSPOT_H 23 | 24 | #include 25 | 26 | void add_to_spots(char *call, freq_t freq); 27 | void add_local_spot(void); 28 | void add_cluster_spot(void); 29 | 30 | #endif /* ADDSPOT_H */ 31 | -------------------------------------------------------------------------------- /src/audio.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003-2004 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | /* ------------------------------------------------------------ 21 | * audio.h include file for soundcard input routine 22 | * 23 | *--------------------------------------------------------------*/ 24 | 25 | #ifndef AUDIO_H 26 | #define AUDIO_H 27 | 28 | #include 29 | 30 | extern char *vk_record_cmd; 31 | extern char *vk_play_cmd; 32 | extern char *soundlog_record_cmd; 33 | extern char *soundlog_play_cmd; 34 | extern char *soundlog_dir; 35 | 36 | void sound_setup_default(void); 37 | void record(void); 38 | bool is_sr_running(); 39 | void sr_stop(); 40 | 41 | void vk_play_file(char *audiofile); 42 | void vk_stop(); 43 | bool is_vk_finished(); 44 | 45 | 46 | #endif /* AUDIO_H */ 47 | -------------------------------------------------------------------------------- /src/autocq.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef AUTOCQ_H 22 | #define AUTOCQ_H 23 | 24 | int auto_cq(void); 25 | 26 | #endif /* end of include guard: AUTOCQ_H */ 27 | 28 | -------------------------------------------------------------------------------- /src/background_process.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2014 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef BACKGROUND_PROCESS_H 23 | #define BACKGROUND_PROCESS_H 24 | 25 | void *background_process(void *); 26 | void terminate_background_process(); 27 | void pause_background_process(void); 28 | void resume_background_process(void); 29 | 30 | #endif /* end of include guard: BACKGROUND_PROCESS_H */ 31 | -------------------------------------------------------------------------------- /src/calledit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef CALLEDIT_H 22 | #define CALLEDIT_H 23 | 24 | void calledit(void); 25 | int insert_char(int); 26 | 27 | #endif /* CALLEDIT_H */ 28 | -------------------------------------------------------------------------------- /src/callinput.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef CALLINPUT_H 22 | #define CALLINPUT_H 23 | 24 | #include 25 | 26 | #include 27 | 28 | int callinput(void); 29 | void send_bandswitch(freq_t freq); 30 | bool valid_call_char(int ch); 31 | bool plain_number(char *str); 32 | 33 | #endif /* CALLINPUT_H */ 34 | -------------------------------------------------------------------------------- /src/change_rst.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2020 Thomas Beierlein 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef CHANGE_RST_H 21 | #define CHANGE_RST_H 22 | 23 | #include 24 | 25 | extern bool change_rst; 26 | 27 | void rst_init(char *init_string) ; 28 | void rst_reset(void); 29 | void rst_set_strings(); 30 | void rst_recv_up(); 31 | void rst_recv_down(); 32 | void rst_sent_up(); 33 | void rst_sent_down(); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /src/changefreq.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef CHANGEFREQ_H 22 | #define CHANGEFREQ_H 23 | 24 | void change_freq(void); 25 | 26 | #endif /* CHANGEFREQ_H */ 27 | -------------------------------------------------------------------------------- /src/changepars.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef CHANGEPARS_H 22 | #define CHANGEPARS_H 23 | 24 | 25 | void set_trxmode_internally(int mode); 26 | int changepars(void); 27 | void networkinfo(void); 28 | void multiplierinfo(void); 29 | 30 | 31 | #endif /* end of include guard: CHANGEPARS_H */ 32 | -------------------------------------------------------------------------------- /src/checklogfile.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef CHECKLOGFILE_H 22 | #define CHECKLOGFILE_H 23 | 24 | int checklogfile_new(char *filename); 25 | void checklogfile(void); 26 | 27 | #endif /* CHECKLOGFILE_H */ 28 | -------------------------------------------------------------------------------- /src/checkqtclogfile.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2013 Ervin Hegedüs - HA2OS 4 | * 2015 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef CHECKQTCLOGFILE_H 23 | #define CHECKQTCLOGFILE_H 24 | 25 | int checkqtclogfile(); 26 | 27 | #endif /* end of include guard: CHECKQTCLOGFILE_H */ 28 | -------------------------------------------------------------------------------- /src/cleanup.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef CLEANUP_H 22 | #define CLEANUP_H 23 | 24 | void cleanup_comment(void); 25 | void restore_comment(void); 26 | void cleanup_hiscall(void); 27 | void restore_hiscall(void); 28 | void cleanup_qso(void); 29 | void cleanup(void); 30 | 31 | #endif /* CLEANUP_H */ 32 | -------------------------------------------------------------------------------- /src/clear_display.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef CLEAR_DISPLAY_H 22 | #define CLEAR_DISPLAY_H 23 | 24 | void init_keyer_terminal(void); 25 | void show_header_line(void); 26 | void clear_display(void); 27 | void add_to_keyer_terminal(char *buffer); 28 | void clear_line(int); 29 | 30 | #endif /* CLEAR_DISPLAY_H */ 31 | -------------------------------------------------------------------------------- /src/clusterinfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2011-2014 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef CLUSTERINFO_H 23 | #define CLUSTERINFO_H 24 | 25 | void clusterinfo(void); 26 | 27 | #endif /* end of include guard: CLUSTERINFO_H */ 28 | -------------------------------------------------------------------------------- /src/cqww_simulator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2014 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef CQWW_SIMULATOR_H 23 | #define CQWW_SIMULATOR_H 24 | 25 | #include 26 | 27 | extern bool simulator; 28 | 29 | typedef enum {IDLE, CALL, REPEAT, FINAL} simstate_t; 30 | 31 | simstate_t get_simulator_state(); 32 | void set_simulator_state(simstate_t s); 33 | void cqww_simulator(void); 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /src/cw_utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2013 Thomas Beierlein 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef CW_UTILS_H 22 | #define CW_UTILS_H 23 | 24 | unsigned int getCWdots(char ch); 25 | unsigned int cw_message_length(char *message); 26 | 27 | #endif /* end of include guard: CW_UTILS_H */ 28 | -------------------------------------------------------------------------------- /src/deleteqso.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2012 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef DELETEQSO_H 23 | #define DELETEQSO_H 24 | 25 | void delete_qso(void); 26 | 27 | #endif /* DELETEQSO_H */ 28 | -------------------------------------------------------------------------------- /src/edit_last.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2012 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef EDIT_LAST_H 23 | #define EDIT_LAST_H 24 | 25 | void edit_last(void); 26 | 27 | #endif /* EDIT_LAST_H */ 28 | -------------------------------------------------------------------------------- /src/editlog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef EDITLOG_H 22 | #define EDITLOG_H 23 | 24 | void edit(char *filename); 25 | void logedit(void); 26 | 27 | #endif /* EDITLOG_H */ 28 | -------------------------------------------------------------------------------- /src/focm.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2014 Thomas Beierlein 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef _FOC_H 22 | #define _FOC_H 23 | 24 | #include "tlf.h" 25 | 26 | extern contest_config_t config_focm; 27 | 28 | void foc_init(void); 29 | int foc_score(char *call); 30 | int foc_total_score(); 31 | void foc_show_scoring(int start_colmn); 32 | void foc_show_cty(); 33 | 34 | #endif /* end of include guard: _FOC_H */ 35 | -------------------------------------------------------------------------------- /src/freq_display.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef FREQ_DISPLAY_H 22 | #define FREQ_DISPLAY_H 23 | 24 | void freq_display(void); 25 | 26 | #endif /* FREQ_DISPLAY_H */ 27 | -------------------------------------------------------------------------------- /src/genqtclist.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2013 Ervin Hegedüs - HA2OS 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef GENQTCLIST_H 22 | #define GENQTCLIST_H 23 | 24 | int genqtclist(char *callsign, int nrofqtc); 25 | 26 | 27 | #endif /* end of include guard: GENQTCLIST_H */ 28 | -------------------------------------------------------------------------------- /src/get_time.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef GET_TIME_H 22 | #define GET_TIME_H 23 | 24 | #include 25 | 26 | #define DATE_FORMAT "%d-%b-%y" // 23-Apr-20 27 | #define TIME_FORMAT "%H:%M" 28 | #define DATE_TIME_FORMAT DATE_FORMAT " " TIME_FORMAT 29 | 30 | extern long timecorr; 31 | 32 | time_t get_time(); 33 | int get_minutes(); 34 | 35 | time_t format_time(char *buffer, size_t size, const char *format); 36 | time_t format_time_with_offset(char *buffer, size_t size, const char *format, 37 | double offset); 38 | 39 | time_t parse_time(const char *buffer, const char *format); 40 | 41 | #endif /* GET_TIME_H */ 42 | -------------------------------------------------------------------------------- /src/getctydata.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef GETCTYDATA_H 22 | #define GETCTYDATA_H 23 | 24 | #include "dxcc.h" 25 | 26 | prefix_data *getctyinfo(char *call); 27 | int getctynr(char *call); 28 | int getctydata(char *call); 29 | int getctydata_pfx(char *call); 30 | 31 | 32 | #endif /* end of include guard: GETCTYDATA_H */ 33 | -------------------------------------------------------------------------------- /src/getexchange.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef GETEXCHANGE_H 22 | #define GETEXCHANGE_H 23 | 24 | #include "tlf.h" 25 | 26 | extern bool call_update; 27 | 28 | void checkexchange(struct qso_t *qso, bool interactive); 29 | int getexchange(void); 30 | 31 | #endif /* GETEXCHANGE_H */ 32 | -------------------------------------------------------------------------------- /src/getmessages.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef GETMESSAGES_H 22 | #define GETMESSAGES_H 23 | 24 | void getstationinfo(void); 25 | void show_station_info(void); 26 | 27 | #endif /* GETMESSAGES_H */ 28 | -------------------------------------------------------------------------------- /src/getpx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef GETPX_H 22 | #define GETPX_H 23 | 24 | char *get_wpx_pfx(char *checkcall); 25 | void getpx(char *checkcall); 26 | int districtnumber(char *prefix); 27 | 28 | #endif /* GETPX_H */ 29 | -------------------------------------------------------------------------------- /src/gettxinfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free oftware; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef GETTXINFO_H 22 | #define GETTXINFO_H 23 | 24 | #define SETCWMODE (-1) 25 | #define SETSSBMODE (-2) 26 | #define RESETRIT (-3) 27 | #define SETDIGIMODE (-4) 28 | 29 | #include 30 | 31 | void set_outfreq(freq_t hertz); 32 | freq_t get_outfreq(); 33 | 34 | void gettxinfo(void); 35 | 36 | #endif /* GETTXINFO_H */ 37 | -------------------------------------------------------------------------------- /src/getwwv.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef GETWWV_H 22 | #define GETWWV_H 23 | 24 | #include 25 | 26 | extern double ssn_r; // sunspot number for MUF calculation 27 | extern char lastwwv[]; // processed WWV message 28 | extern char lastwwv_raw[]; // raw WWV message 29 | extern time_t lastwwv_time; 30 | 31 | void wwv_add(const char *s); 32 | void wwv_set_r(double r); 33 | void wwv_set_sfi(double sfi); 34 | void wwv_show_footer(); 35 | 36 | #endif /* GETWWV_H */ 37 | -------------------------------------------------------------------------------- /src/grabspot.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef GRABSPOT_H 22 | #define GRABSPOT_H 23 | 24 | #include 25 | #include 26 | 27 | extern bool grab_up; 28 | 29 | freq_t grabspot(void); 30 | freq_t grab_next(void); 31 | 32 | #endif /* GRABSPOT_H */ 33 | -------------------------------------------------------------------------------- /src/hamlib_keyer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003-2004-2005 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | int hamlib_keyer_set_speed(int *cwspeed); 21 | int hamlib_keyer_get_speed(int *cwspeed); 22 | int hamlib_keyer_send(char *cwmessage); 23 | int hamlib_keyer_stop(); 24 | -------------------------------------------------------------------------------- /src/ignore_unused.h: -------------------------------------------------------------------------------- 1 | #ifndef IGNORE_UNUSED_H 2 | #define IGNORE_UNUSED_H 3 | 4 | #define IGNORE(x) do { \ 5 | if (x) \ 6 | (void)0; \ 7 | } while(0) 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /src/keyer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef KEYER_H 22 | #define KEYER_H 23 | 24 | int handle_common_key(int key); 25 | 26 | void keyer(void); 27 | 28 | #endif /* end of include guard: KEYER_H */ 29 | -------------------------------------------------------------------------------- /src/last10.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef LAST10_H 22 | #define LAST10_H 23 | 24 | int last10(void); 25 | 26 | #endif /* LAST10_H */ 27 | -------------------------------------------------------------------------------- /src/listmessages.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef LISTMESSAGES_H 22 | #define LISTMESSAGES_H 23 | 24 | void listmessages(void); 25 | 26 | #endif /* end of include guard: LISTMESSAGES_H */ 27 | -------------------------------------------------------------------------------- /src/log_to_disk.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef LOG_TO_DISK_H 22 | #define LOG_TO_DISK_H 23 | 24 | void restart_band_timer(void); 25 | void log_to_disk(int from_lan); 26 | 27 | #endif /* LOG_TO_DISK_H */ 28 | -------------------------------------------------------------------------------- /src/log_utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2019 Thomas Beierlein 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | /* ------------------------------------------------------------------------ 20 | * util functions to work with lines from log 21 | * 22 | ---------------------------------------------------------------------------*/ 23 | #ifndef LOG_UTILS_H 24 | #define LOG_UTILS_H 25 | 26 | #include 27 | 28 | bool log_is_comment(const char *buffer); 29 | int log_get_band(const char *logline); 30 | int log_get_mode(const char *logline); 31 | int log_get_points(const char *logline); 32 | struct qso_t *parse_qso(char *buffer); 33 | void free_qso(struct qso_t *ptr); 34 | void free_qso_array(); 35 | void init_qso_array(); 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /src/logit.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef LOGIT_H 22 | #define LOGIT_H 23 | 24 | void logit(void); 25 | void refresh_comment(void); 26 | 27 | 28 | #endif /* end of include guard: LOGIT_H */ 29 | -------------------------------------------------------------------------------- /src/logview.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef LOGVIEW_H 22 | #define LOGVIEW_H 23 | 24 | int logview(void); 25 | 26 | #endif /* LOGVIEW_H */ 27 | -------------------------------------------------------------------------------- /src/makelogline.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef _MAKELOGLINE_H 22 | #define _MAKELOGLINE_H 23 | 24 | #include "tlf.h" 25 | 26 | char *makelogline(struct qso_t *qso); 27 | 28 | #endif /* end of include guard: _MAKELOGLINE_H */ 29 | -------------------------------------------------------------------------------- /src/math_utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2023 Thomas Beierlein 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef MATH_UTILS_H 22 | #define MATH_UTILS_H 23 | 24 | /* Make sure math.h is included before the following definitions */ 25 | #ifndef MATH_H 26 | #include 27 | #endif 28 | 29 | /* provide a fallback for M_PI_2 as C standard does not guarantee the definition 30 | of these constant */ 31 | #ifndef M_PI_2 32 | # define M_PI_2 1.57079632679489661923 /* pi/2 */ 33 | #endif 34 | 35 | #define RADIAN (90.0 / M_PI_2) 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /src/messagechange.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef MESSAGECHANGE_H 22 | #define MESSAGECHANGE_H 23 | 24 | void message_change(void); 25 | 26 | #endif /* MESSAGECHANGE_H */ 27 | -------------------------------------------------------------------------------- /src/muf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef MUF_H 22 | #define MUF_H 23 | 24 | extern int month; 25 | 26 | void muf(void); 27 | 28 | #endif /* end of include guard: MUF_H */ 29 | -------------------------------------------------------------------------------- /src/nicebox.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef NICEBOX_H 22 | #define NICEBOX_H 23 | 24 | #include "tlf_curses.h" 25 | 26 | void wnicebox(WINDOW *win, int y, int x, int height, int width, char *boxname); 27 | void nicebox(int y, int x, int height, int width, char *boxname); 28 | void ask(char *buffer, char *what); 29 | 30 | #endif /* NICEBOX_H */ 31 | -------------------------------------------------------------------------------- /src/note.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef NOTE_H 22 | #define NOTE_H 23 | 24 | void include_note(void); 25 | 26 | #endif /* NOTE_H */ 27 | -------------------------------------------------------------------------------- /src/paccdx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef PACCDX_H 22 | #define PACCDX_H 23 | 24 | #define W_CALL 0 25 | #define VE_CALL 1 26 | #define ZL_CALL 2 27 | #define JA_CALL 3 28 | #define PY_CALL 4 29 | #define CE_CALL 5 30 | #define LU_CALL 6 31 | #define VK_CALL 7 32 | #define ZS_CALL 8 33 | #define UA9_CALL 9 34 | 35 | int pacc_pa(void); 36 | 37 | #endif /* PACCDX_H */ 38 | -------------------------------------------------------------------------------- /src/plugin.h: -------------------------------------------------------------------------------- 1 | #ifndef PLUGIN_H 2 | #define PLUGIN_H 3 | 4 | #include "tlf.h" 5 | 6 | int plugin_init(const char *name); 7 | void plugin_close(); 8 | 9 | bool plugin_has_setup(); 10 | void plugin_setup(); 11 | 12 | bool plugin_has_score(); 13 | int plugin_score(struct qso_t *qso); 14 | 15 | bool plugin_has_check_exchange(); 16 | void plugin_check_exchange(struct qso_t *qso); 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /src/printcall.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2013 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef PRINTCALL_H 23 | #define PRINTCALL_H 24 | 25 | void printcall(void); 26 | void highlightCall(unsigned int n); 27 | 28 | #endif /* PRINTCALL_H */ 29 | -------------------------------------------------------------------------------- /src/qrb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef QRB_H 22 | #define QRB_H 23 | 24 | #include 25 | 26 | int get_qrb(double *range, double *bearing); 27 | 28 | bool get_qrb_for_locator(const char *locator, double *range, double *bearing); 29 | 30 | #endif /* end of include guard: QRB_H */ 31 | -------------------------------------------------------------------------------- /src/qsonr_to_str.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | /* ------------------------------------------------------------ 20 | * i-to-a function for qso number (4 chars) 21 | * 22 | *--------------------------------------------------------------*/ 23 | 24 | 25 | #include 26 | #include 27 | #include 28 | 29 | void qsonr_to_str(char *output, int number) { 30 | 31 | if (number <= 0 || number > 9999) { // should in fact never happen ... 32 | strcpy(output, "????"); 33 | return; 34 | } 35 | sprintf(output, "%04d", number); 36 | } 37 | -------------------------------------------------------------------------------- /src/qsonr_to_str.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef QSONR_TO_STR_H 22 | #define QSONR_TO_STR_H 23 | 24 | void qsonr_to_str(char *output, int number); 25 | 26 | #endif /* QSONR_TO_STR_H */ 27 | -------------------------------------------------------------------------------- /src/qtc_log.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2013 Ervin Hegedüs - HA2OS 4 | * 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef LOG_RECV_QTC_TO_DISK_H 23 | #define LOG_RECV_QTC_TO_DISK_H 24 | 25 | #include "cabrillo_utils.h" 26 | 27 | void store_qtc(char *loglineptr, int direction, char *filename); 28 | int log_recv_qtc_to_disk(int qsonr); 29 | int log_sent_qtc_to_disk(int qsonr); 30 | void make_qtc_logline(struct read_qtc_t qtc_line, char *fname); 31 | 32 | #endif /* end of include guard: LOG_RECV_QTC_TO_DISK_H */ 33 | -------------------------------------------------------------------------------- /src/qtcwin.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2013 Ervin Hegedüs - HA2OS 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef QTCWIN_H 22 | #define QTCWIN_H 23 | 24 | void qtc_main_panel(int direction); 25 | 26 | #endif /* end of include guard: QTCWIN_H */ 27 | -------------------------------------------------------------------------------- /src/readcabrillo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2017 Ervin Hegedus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef READ_CABRILLO_H 21 | #define READ_CABRILLO_H 22 | 23 | #define READCAB_MODE_CLI 1 24 | 25 | int readcabrillo(int mode); 26 | 27 | #endif /* READ_CABRILLO_H */ 28 | -------------------------------------------------------------------------------- /src/readcalls.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2013 Ervin Hegedüs - HA2OS 5 | * 2012-2022 Thomas Beierlein 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | 23 | #ifndef READCALLS_H 24 | #define READCALLS_H 25 | 26 | #include 27 | 28 | int lookup_country_in_pfxnummult_array(int n); 29 | int readcalls(const char *logfile, bool interactive); 30 | int log_read_n_score(); 31 | int synclog(char *synclogfile); 32 | 33 | #endif /* READCALLS_H */ 34 | -------------------------------------------------------------------------------- /src/readctydata.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef READCTYDATA_H 22 | #define READCTYDATA_H 23 | 24 | void readctydata(void); 25 | 26 | #endif /* READCTYDATA_H */ 27 | -------------------------------------------------------------------------------- /src/readqtccalls.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2013 Ervin Hegedüs - HA2OS 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef READQTCCALLS_H 22 | #define READQTCCALLS_H 23 | 24 | int readqtccalls(); 25 | 26 | 27 | #endif /* end of include guard: READQTCCALLS_H */ 28 | -------------------------------------------------------------------------------- /src/recall_exchange.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef RECALL_EXCHANGE_H 22 | #define RECALL_EXCHANGE_H 23 | 24 | int recall_exchange(void); 25 | int get_proposed_exchange(void); 26 | 27 | #endif /* RECALL_EXCHANGE_H */ 28 | -------------------------------------------------------------------------------- /src/rtty.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003-2004 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | /* ------------------------------------------------------------ 21 | * rtty.h rtty mini terminal 22 | * 23 | *--------------------------------------------------------------*/ 24 | 25 | 26 | #ifndef RTTY_H 27 | #define RTTY_H 28 | 29 | int init_controller() ; 30 | void deinit_controller(); 31 | void rx_rtty(); 32 | void show_rtty(void); 33 | 34 | #endif /* end of include guard: RTTY_H */ 35 | 36 | -------------------------------------------------------------------------------- /src/rules.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2003 LZ3NY 4 | * 2003-2004 Rein Couperus 5 | * 2011-2015 Thomas Beierlein 6 | * 7 | * This program is free software; you can redistribute it and/or modify 8 | * it under the terms of the GNU General Public License as published by 9 | * the Free Software Foundation; either version 2 of the License, or 10 | * (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU General Public License 18 | * along with this program; if not, write to the Free Software 19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 | */ 21 | 22 | 23 | #ifndef RULES_H 24 | #define RULES_H 25 | 26 | int read_rules(); 27 | 28 | #endif /* RULES_H */ 29 | -------------------------------------------------------------------------------- /src/score.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2013-2014 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef _SCORE_H 23 | #define _SCORE_H 24 | #include 25 | #include "tlf.h" 26 | 27 | int score_wpx(struct qso_t *qso); 28 | int score_cqww(struct qso_t *qso); 29 | int score_arrlfd(struct qso_t *qso); 30 | int score_arrldx_usa(struct qso_t *qso); 31 | int score_stewperry(struct qso_t *qso); 32 | int score(struct qso_t *qso); 33 | void score_qso(struct qso_t *qso); 34 | int score2(char *line); 35 | bool country_found(char prefix[]); 36 | bool is_in_countrylist(int countrynr); 37 | bool is_in_continentlist(char *continent); 38 | 39 | #endif /* end of include guard: _SCORE_H */ 40 | -------------------------------------------------------------------------------- /src/scroll_log.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SCROLL_LOG_H 22 | #define SCROLL_LOG_H 23 | 24 | void scroll_log(void); 25 | 26 | #endif /* SCROLL_LOG_H */ 27 | -------------------------------------------------------------------------------- /src/searchcallarray.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SEARCHCALLARRAY_H 22 | #define SEARCHCALLARRAY_H 23 | 24 | #include 25 | 26 | #include "tlf.h" 27 | 28 | void init_worked(void); 29 | int lookup_worked(char *call); 30 | int lookup_or_add_worked(char *call); 31 | bool worked_in_current_minitest_period(int found); 32 | bool is_dupe(char *call, int bandindex, int mode); 33 | void update_worked(int station, struct qso_t *qso); 34 | 35 | #endif /* SEARCHCALLARRAY_H */ 36 | -------------------------------------------------------------------------------- /src/searchlog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SEARCHLOG_H 22 | #define SEARCHLOG_H 23 | 24 | #include 25 | #include 26 | 27 | extern GPtrArray *callmaster; 28 | #define CALLMASTERARRAY(n) ((char *) g_ptr_array_index(callmaster, n)) 29 | 30 | extern char *callmaster_filename; 31 | extern char callmaster_version[12]; 32 | 33 | int load_callmaster(void); 34 | 35 | /* search 'hiscall' in the log */ 36 | void searchlog(void); 37 | 38 | void InitSearchPanel(void); 39 | void ShowSearchPanel(void); 40 | void HideSearchPanel(void); 41 | void OnLowerSearchPanel(int x, char *str); 42 | 43 | #endif /* SEARCHLOG_H */ 44 | -------------------------------------------------------------------------------- /src/sendbuf.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2014 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef SENDBUF_H 23 | #define SENDBUF_H 24 | 25 | typedef void (*ExpandMacro_t)(void); 26 | 27 | void ExpandMacro_CurrentQso(void); 28 | void ExpandMacro_PreviousQso(void); 29 | 30 | char short_number(char c); 31 | void sendmessage(const char *msg); 32 | void send_standard_message(int msg); 33 | void send_standard_message_prev_qso(int msg); 34 | void send_keyer_message(int msg); 35 | 36 | void replace_n(char *buf, int size, const char *what, const char *rep, 37 | int count); 38 | 39 | #endif /* SENDBUF_H */ 40 | -------------------------------------------------------------------------------- /src/sendqrg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SENDQRG_H 22 | #define SENDQRG_H 23 | 24 | #include 25 | #include 26 | 27 | #ifdef HAMLIB_FILPATHLEN 28 | #define TLFFILPATHLEN HAMLIB_FILPATHLEN 29 | #else 30 | #ifdef FILPATHLEN 31 | #define TLFFILPATHLEN FILPATHLEN 32 | #else 33 | #error "(HAMLIB_)FILPATHLEN macro not found" 34 | #endif 35 | #endif 36 | 37 | bool rig_has_send_morse(); 38 | bool rig_has_stop_morse(); 39 | 40 | int init_tlf_rig(void); 41 | void close_tlf_rig(RIG *my_rig); 42 | void rig_debug_init(); 43 | 44 | bool sendqrg(void); 45 | 46 | #endif /* end of include guard: SENDQRG_H */ 47 | -------------------------------------------------------------------------------- /src/sendspcall.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2014 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef SENDSPCALL_H 23 | #define SENDSPCALL_H 24 | 25 | void sendspcall(void); 26 | 27 | 28 | #endif /* end of include guard: SENDSPCALL_H */ 29 | 30 | -------------------------------------------------------------------------------- /src/set_tone.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SET_TONE_H 22 | #define SET_TONE_H 23 | 24 | extern char tonestr[]; 25 | 26 | void set_tone(void); 27 | void write_tone(void); 28 | 29 | 30 | #endif /* end of include guard: SET_TONE_H */ 31 | -------------------------------------------------------------------------------- /src/setcontest.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SETCONTEST_H 22 | #define SETCONTEST_H 23 | 24 | #include "bandmap.h" 25 | #include "globalvars.h" 26 | 27 | #define CONTEST_IS(cid) (contest->id == cid) 28 | #define IS_ALL_BAND (CONTEST_IS(QSO) || !iscontest) 29 | 30 | extern contest_config_t config_qso; 31 | 32 | bool general_ismulti(spot *data); 33 | contest_config_t *lookup_contest(char *name); 34 | void list_contests(); 35 | void setcontest(char *name); 36 | bool no_multi(spot *data); 37 | 38 | #endif /* SETCONTEST_H */ 39 | -------------------------------------------------------------------------------- /src/show_help.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2013 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef SHOW_HELP_H 23 | #define SHOW_HELP_H 24 | 25 | int show_help(void); 26 | 27 | #endif /* end of include guard: SHOW_HELP_H */ 28 | -------------------------------------------------------------------------------- /src/showinfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SHOWINFO_H 22 | #define SHOWINFO_H 23 | 24 | void update_info_line(); 25 | 26 | #endif /* end of include guard: SHOWINFO_H */ 27 | -------------------------------------------------------------------------------- /src/showmsg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef STARTMSG_H 22 | #define STARTMSG_H 23 | 24 | /* 25 | * These functions provide progress and error reporting at start-up phase 26 | * !!! Do not call them after switching to the main screen !!! 27 | * For runtime notifications use TLF_SHOW_* macros instead 28 | */ 29 | 30 | void clearmsg(void); 31 | void clearmsg_wait(void); 32 | void showmsg(char *message); // output text 33 | void shownr(char *message, int nr); // output text + number 34 | void showstring(const char *message1, 35 | const char *message2); // output 2 strings 36 | 37 | 38 | #endif /* end of include guard: STARTMSG_H */ 39 | -------------------------------------------------------------------------------- /src/showpxmap.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SHOWPXMAP_H 22 | #define SHOWPXMAP_H 23 | 24 | void show_mults(void); 25 | 26 | #endif /* SHOWPXMAP_H */ 27 | -------------------------------------------------------------------------------- /src/showscore.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SHOWSCORE_H 22 | #define SHOWSCORE_H 23 | 24 | /* get total number of points */ 25 | int get_nr_of_points(); 26 | /* get total number of multis */ 27 | int get_nr_of_mults(); 28 | /* calculate total score */ 29 | int get_total_score(); 30 | 31 | void showscore(void); 32 | 33 | #endif /* SHOWSCORE_H */ 34 | -------------------------------------------------------------------------------- /src/showzones.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SHOWZONES_H 22 | #define SHOWZONES_H 23 | 24 | int show_zones(int bandinx); 25 | 26 | #endif /* SHOWZONES_H */ 27 | -------------------------------------------------------------------------------- /src/speedupndown.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2014 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | 22 | #ifndef SPEEDUPNDOWN_H 23 | #define SPEEDUPNDOWN_H 24 | 25 | #define CW_SPEED_MIN 6 26 | #define CW_SPEED_MAX 60 27 | #define CW_SPEED_STEP 2 /* up/down 2 wpm */ 28 | 29 | int speedup(void); 30 | int speeddown(void); 31 | int setweight(int weight); 32 | 33 | #endif /* end of include guard: SPEEDUPNDOWN_H */ 34 | 35 | -------------------------------------------------------------------------------- /src/stoptx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef STOPTX_H 22 | #define STOPTX_H 23 | 24 | int stoptx(void); 25 | 26 | #endif /* STOPTX_H */ 27 | -------------------------------------------------------------------------------- /src/store_qso.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef STORE_QSO_H 22 | #define STORE_QSO_H 23 | 24 | void store_qso(const char *file, char *loglineptr); 25 | 26 | #endif /* STORE_QSO_H */ 27 | -------------------------------------------------------------------------------- /src/sunup.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef SUNUP_H 22 | #define SUNUP_H 23 | 24 | void sunup(double DEST_Lat, double *sunrise, double *sundown); 25 | 26 | #endif /* end of include guard: SUNUP_H */ 27 | -------------------------------------------------------------------------------- /src/time_update.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef TIME_UPDATE_H 22 | #define TIME_UPDATE_H 23 | 24 | #include 25 | 26 | extern bool force_show_freq; 27 | 28 | void update_line(const char *timebuf); 29 | void update_line_rst(); 30 | void time_update(void); 31 | 32 | #endif /* TIME_UPDATE_H */ 33 | -------------------------------------------------------------------------------- /src/tlf_panel.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2015 Nate Bargmann 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | /* Collate the macro test boilerplate into this file and then 22 | * include this file into the Tlf source files that need panel.h 23 | * functions. 24 | * 25 | * For ncurses including panel.h also includes curses.h. 26 | */ 27 | 28 | #ifndef TLF_PANEL_H 29 | #define TLF_PANEL_H 30 | 31 | #include 32 | 33 | #if defined HAVE_NCURSESW_PANEL_H 34 | # include 35 | #elif defined HAVE_NCURSES_PANEL_H 36 | # include 37 | #elif defined HAVE_PANEL_H 38 | # include 39 | #else 40 | # error "SysV-compatible Curses Panel header file required" 41 | #endif 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /src/trx_memory.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2020 Zoltan Csahok 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | #ifndef TRX_MEMORY_H 21 | #define TRX_MEMORY_H 22 | 23 | #include "time_update.h" 24 | #include "tlf.h" 25 | 26 | extern freq_t memory_get_freq(); // returns 0 if memory is empty 27 | extern cqmode_t memory_get_cqmode(); // returns NONE if memory is empty 28 | 29 | extern void memory_store_or_pop(); 30 | extern void memory_store(); 31 | extern void memory_pop(); 32 | extern void memory_swap(); 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /src/ui_utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2015 Thomas Beierlein 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef UI_UTILS_H 22 | #define UI_UTILS_H 23 | 24 | extern int key_kNXT3; 25 | extern int key_kPRV3; 26 | extern int key_kNXT5; 27 | extern int key_kPRV5; 28 | 29 | void refreshp(); 30 | int modify_attr(int attr); 31 | int lookup_key(char *capability); 32 | void lookup_keys(); 33 | 34 | /** convenience macro to name alt-keys */ 35 | #define ALT(c) (c + 128) 36 | 37 | int key_get(); 38 | int key_poll(); 39 | void resize_layout(); 40 | 41 | const char *spaces(int); 42 | 43 | #endif /* UI_UTILS_H */ 44 | -------------------------------------------------------------------------------- /src/utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 2013 Thomas Beierlein 5 | * 6 | * This program is free software; you can redistribute it and/or modify 7 | * it under the terms of the GNU General Public License as published by 8 | * the Free Software Foundation; either version 2 of the License, or 9 | * (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 | */ 20 | 21 | #ifndef UTILS_H 22 | #define UTILS_H 23 | 24 | #include 25 | 26 | bool check_qra(char *qra); 27 | char *find_available(char *filename); 28 | void get_partial_callsign(char *call1, char *call2, char *partial); 29 | 30 | #endif /* UTILS_H */ 31 | -------------------------------------------------------------------------------- /src/write_keyer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef WRITE_KEYER_H 22 | #define WRITE_KEYER_H 23 | 24 | void keyer_append(const char *string); 25 | void keyer_append_char(const char c); 26 | void keyer_flush(); 27 | void write_keyer(void); 28 | 29 | #endif /* WRITE_KEYER_H */ 30 | -------------------------------------------------------------------------------- /src/writecabrillo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef WRITE_CABRILLO_H 22 | #define WRITE_CABRILLO_H 23 | 24 | int write_cabrillo(void); 25 | int write_adif(void); 26 | 27 | #endif /* WRITE_CABRILLO_H */ 28 | -------------------------------------------------------------------------------- /src/zone_nr.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | /* ------------------------------------------------------------ 20 | * get zone number 21 | * 22 | *--------------------------------------------------------------*/ 23 | #include "string.h" 24 | 25 | int zone_nr(char *comment) { 26 | int z = 0; 27 | 28 | if (strlen(comment) < 2) 29 | return z; 30 | 31 | if (comment[0] <= 57 && comment[0] >= 48) 32 | z = (comment[0] - 48) * 10; 33 | if (comment[1] <= 57 && comment[1] >= 48) 34 | z = (comment[1] - 48) + z; 35 | return (z); 36 | } 37 | -------------------------------------------------------------------------------- /src/zone_nr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Tlf - contest logging program for amateur radio operators 3 | * Copyright (C) 2001-2002-2003 Rein Couperus 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 | */ 19 | 20 | 21 | #ifndef ZONE_NR_H 22 | #define ZONE_NR_H 23 | 24 | int zone_nr(char *comment); 25 | 26 | #endif /* ZONE_NR_H */ 27 | -------------------------------------------------------------------------------- /test/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | include defs.am # generated by generate_defs.pl called from configure.ac 3 | 4 | AM_CPPFLAGS = @GLIB_CFLAGS@ -DTOP_SRCDIR=\"$(abs_top_srcdir)\" 5 | 6 | LIBS = @LIBM_LIB@ @PTHREAD_LIBS@ @GLIB_LIBS@ @HAMLIB_LIBS@ \ 7 | @PANEL_LIBS@ @CURSES_LIBS@ @CMOCKA_LIBS@ \ 8 | @PYTHON_LIBS@ \ 9 | -Wl,-wrap=sleep \ 10 | -Wl,-wrap=key_get \ 11 | -Wl,-wrap=key_poll \ 12 | -Wl,-wrap=sendto \ 13 | -Wl,-wrap=wgetch \ 14 | -Wl,-wrap=refreshp 15 | 16 | noinst_HEADERS = \ 17 | test.h 18 | 19 | AM_CFLAGS += @PTHREAD_CFLAGS@ 20 | 21 | AM_CPPFLAGS += -DSRCDIR=\"$(abs_srcdir)\" 22 | 23 | DATA_FILES = data/ie_empty_call.txt data/ie_long_line.txt \ 24 | data/ie_no_comma.txt data/ie_ok.txt \ 25 | data/ie_ok_dos.txt data/ie_ok_multi_column.txt \ 26 | data/ie_ok_tab.txt \ 27 | data/continents.txt data/countries.txt \ 28 | generate_defs.pl 29 | 30 | EXTRA_DIST = $(DATA_FILES) 31 | 32 | clean-local: 33 | rm -f *test.log 34 | -------------------------------------------------------------------------------- /test/ReadMe.adoc: -------------------------------------------------------------------------------- 1 | Test setup 2 | ========== 3 | Zoltan Csahok 4 | 5 | General setup 6 | ------------- 7 | 8 | The setup is as follows 9 | 10 | * There are test groups defined in *test_XX.c* files. 11 | * Each file defines test functions *void test_AA(void **state)* 12 | * Each test can have setup/teardown functions (*setup_AA()* and 13 | *teardown_AA()*) or there can be common (*_default*) s/t functions. 14 | ** These functions are used by *cmocka_unit_test_setup_teardown* 15 | * A test group can have overall s/t functions, they are used in 16 | *cmocka_run_group_tests* 17 | * A test group specifies which objects it has to be linked with using 18 | *// OBJECT bbb.o* syntax 19 | * For each test group an own runner *run_XX[.c]* is generated and built. 20 | It is linked with *data.c* (global data) and *functions.c* 21 | (common net/hamlib functions). 22 | * Wrapping can be added later if needed. 23 | * *make check* runs the test groups and reports their result (_PASS_/_FAIL)_. 24 | The actual logs are in *run_XX.log* files, they contain detailed info on failures 25 | (they are output by the CI jobs). 26 | * If new test groups or test cases are added then an *autoreconf -i* must be 27 | executed. 28 | 29 | -------------------------------------------------------------------------------- /test/data/continents.txt: -------------------------------------------------------------------------------- 1 | xx:EU,OC 2 | aadx: AS 3 | -------------------------------------------------------------------------------- /test/data/countries.txt: -------------------------------------------------------------------------------- 1 | adx:G,GM,F 2 | BDX: EA, CT 3 | cdx: LY, YL, ES 4 | beru:2D,2E,2I,2J,2M,2U,2W,3B6,3B7,3B8,3B9,3D2,3D2,3D2,3DA,4S ,5B,5H ,5N ,5W ,5X ,5Z ,6Y ,7P ,7Q ,8P ,8Q ,8R ,9G ,9H ,9J ,9L ,9M0,9M2,9M6,9M8,9V ,9X ,9Y ,A2 ,A3 ,AP ,C2 ,C4,C5 ,C6 ,C9 ,CY0,CY9,E5 ,E5 ,G,GD,GI,GJ,GM,GU,GW,H2,H40,H44,J3 ,J6 ,J7 ,J8 ,M,MD,MI,MJ,MM,MU,MW,P2 ,P3,S2 ,S7 ,T2 ,T30,T31,T32,T33,TJ ,V2 ,V3 ,V4 ,V5 ,V8 ,VE1,VE2,VE3,VE4,VE5,VE6,VE7,VE8,VE9,VK0,VK0,VK1,VK2,VK3,VK4,VK5,VK6,VK7,VK8,VK9,VK9,VK9M,VK9N,VK9W,VK9X,VO1,VO2,VP2M,VP2V,VP3E,VP5,VP6,VP6,VP8,VP8,VP8,VP8,VP8,VP8,VP9,VQ9,VU ,VU4,VU7,VY0,VY1,VY2,YJ ,Z2 ,ZB2,ZC4,ZD7,ZD8,ZD9,ZF ,ZK2,ZK3,ZL0,ZL1,ZL2,ZL3,ZL4,ZL6,ZL7,ZL8,ZL9,ZS0,ZS1,ZS2,ZS3,ZS4,ZS5,ZS6,ZS8 5 | -------------------------------------------------------------------------------- /test/data/ie_empty_call.txt: -------------------------------------------------------------------------------- 1 | ,123 2 | -------------------------------------------------------------------------------- /test/data/ie_long_line.txt: -------------------------------------------------------------------------------- 1 | a123456789b123456789c123456789d123456789e123456789f123456789g123456789h123456789i123456789j123456789 2 | -------------------------------------------------------------------------------- /test/data/ie_no_comma.txt: -------------------------------------------------------------------------------- 1 | A1AA,123 2 | A2BB 456 3 | -------------------------------------------------------------------------------- /test/data/ie_ok.txt: -------------------------------------------------------------------------------- 1 | 2 | !!Order!!, Call, Exch1 3 | # 4 | 2E0BBB ,51N00W 5 | 2E0AAA, 51N3W 6 | 7 | YU5T,43N22O 8 | 9 | -------------------------------------------------------------------------------- /test/data/ie_ok_dos.txt: -------------------------------------------------------------------------------- 1 | 2 | #!!Order!!, Call, Exch1 3 | # 4 | 2E0BBB ,51N00W 5 | 2E0AAA, 51N3W 6 | 7 | YU5T,43N22O 8 | 9 | -------------------------------------------------------------------------------- /test/data/ie_ok_multi_column.txt: -------------------------------------------------------------------------------- 1 | 2E0BBB, 51N00W,comment1 2 | 2E0AAA,51N3W , comment2 3 | YU5T,43N22O,,,comment3, 4 | -------------------------------------------------------------------------------- /test/data/ie_ok_tab.txt: -------------------------------------------------------------------------------- 1 | # leading tab 2 | 2E0BBB, 51N00W 3 | # tab after call 4 | 2E0AAA ,51N3W 5 | # tab after comma 6 | YU5T, 43N22O 7 | -------------------------------------------------------------------------------- /test/rules/cqp_dx/cqp.log: -------------------------------------------------------------------------------- 1 | 40CW 21-Nov-23 22:34 0001 AB1AAA --- --- 4ELDO ELDO 3 2 | 40CW 21-Nov-23 22:34 0002 AB1BBB --- --- 007 ELDO 3 3 | 40CW 21-Nov-23 22:35 0003 AB1CCC --- --- 123 KING TULA KING TUL 3 4 | 40CW 21-Nov-23 22:36 0004 AB1DDD --- --- 27TULA 3 5 | 40CW 21-Nov-23 22:36 0005 AB1EEE --- --- 64ORAN ORAN 3 6 | 40SSB 21-Nov-23 22:37 0006 AB1FFF --- --- 8 BUTT BUTT 2 7 | 40SSB 21-Nov-23 22:38 0007 AB1GGG --- --- 5 TULA KERN KERN 2 8 | -------------------------------------------------------------------------------- /test/rules/cqp_dx/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=cqp 2 | CALL=AB6AAA 3 | -------------------------------------------------------------------------------- /test/rules/cqp_dx/rules/cqp: -------------------------------------------------------------------------------- 1 | ######################## 2 | # 3 | # 4 | # 5 | ######################## 6 | # 7 | CONTEST_MODE 8 | LOGFILE=cqp.log 9 | CABRILLO=UNIVERSAL 10 | GENERIC_MULT=BAND 11 | NO_RST 12 | PLUGIN_CONFIG=FL 13 | SSBPOINTS=2 14 | CWPOINTS=3 15 | # 16 | ################################## 17 | # # 18 | # Messages F1= to F12= # 19 | # Message CQ_TU_MSG= # 20 | # Message S&P_TU_MSG= # 21 | # # 22 | # % = call # 23 | # @ = hiscall # 24 | # # = serial # 25 | # [ = RST # 26 | # + = increase cw speed # 27 | # - = decrease cw speed # 28 | # # 29 | ################################## 30 | # 31 | F1=cq cqp % 32 | F2=@ DE % 33 | F3=# FL 34 | F4=TU 35 | F5=@ 36 | F6=% 37 | F7=@ SRI QSO B4 GL 38 | F8=AGN 39 | F9= ? 40 | F10= QRZ? 41 | F11= PSE K 42 | F12=cq cqp % 43 | # 44 | CQ_TU_MSG=TU % 45 | S&P_TU_MSG=# FL 46 | # 47 | #ALT_0= 48 | #ALT_1= 49 | #ALT_2= 50 | #ALT_3= 51 | #ALT_4= 52 | #ALT_5= 53 | #ALT_6= 54 | #ALT_7= 55 | #ALT_8= 56 | #ALT_9= 57 | # 58 | #SEND_DE 59 | # 60 | CABRILLO-QSO-FORMAT=CQP 61 | CABRILLO-EXCHANGE=# FL 62 | CABRILLO-CONTEST= 63 | ####### END ##################### 64 | 65 | -------------------------------------------------------------------------------- /test/rules/cqww/cqww.log: -------------------------------------------------------------------------------- 1 | 40CW 11-Feb-23 11:52 0001 AA1AA 599 599 05 K 05 0 2 | -------------------------------------------------------------------------------- /test/rules/cqww/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=cqww 2 | CALL=N0CALL 3 | -------------------------------------------------------------------------------- /test/rules/cqww/rules/cqww: -------------------------------------------------------------------------------- 1 | ../../../../rules/cqww -------------------------------------------------------------------------------- /test/rules/cqww160/cqww160.log: -------------------------------------------------------------------------------- 1 | 160CW 28-Jan-23 11:51 0001 K9QZO 599 599 IL K/IL 2 2 | 160CW 28-Jan-23 11:52 0002 P29AS 599 599 28 P2 10 3 | 160CW 28-Jan-23 11:54 0003 4S7TWG 599 599 22 4S 10 4 | 160CW 28-Jan-23 11:54 0004 JT1FAX 599 599 23 JT 10 5 | 160CW 28-Jan-23 11:54 0005 WA6MIC 599 599 CA K/CA 2 6 | 160CW 28-Jan-23 11:54 0006 K9AAA 599 599 IL 2 7 | 160CW 28-Jan-23 11:55 0007 LZ1XXX 599 599 20 LZ 10 8 | 160CW 28-Jan-23 11:56 0008 PA1ZZ/MM 599 599 36 5 9 | 160CW 28-Jan-23 11:56 0009 PA2XX 599 599 14 PA 10 10 | 160CW 28-Jan-23 11:57 0010 VE1BBB 599 599 NB VE/NB 5 11 | 160CW 28-Jan-23 11:58 0011 I1CCC 599 599 15 I 10 12 | 160CW 28-Jan-23 11:59 0012 IT9DDD 599 599 15 IT9 10 13 | 160CW 28-Jan-23 12:00 0013 TA1EE 599 599 20 TA1 10 14 | 160CW 28-Jan-23 12:01 0014 TA2F 599 599 20 TA 10 15 | 160CW 28-Jan-23 12:28 0015 4U1WB 599 599 DC K/DC 2 16 | 160CW 28-Jan-23 12:34 0016 AA3B 599 599 PA K/PA 2 17 | -------------------------------------------------------------------------------- /test/rules/cqww160/cqww160.txt: -------------------------------------------------------------------------------- 1 | ../../../rules/cqww160/cqww160.txt -------------------------------------------------------------------------------- /test/rules/cqww160/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=cqww160 2 | CALL=N0CALL 3 | -------------------------------------------------------------------------------- /test/rules/cqww160/rules/cqww160: -------------------------------------------------------------------------------- 1 | ../../../../rules/cqww160/cqww160 -------------------------------------------------------------------------------- /test/rules/cqww160/rules/cqww160.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/cqww160/cqww160.py -------------------------------------------------------------------------------- /test/rules/eudx/eudx.log: -------------------------------------------------------------------------------- 1 | 40CW 31-Jan-24 19:53 0001 OE1AAA 599 599 AT03 OE AT03 10 2 | 40CW 31-Jan-24 19:53 0002 OE3BBB 599 599 AT04 AT04 10 3 | 40CW 31-Jan-24 19:54 0003 OE5CCC 599 599 AT03 10 4 | 40CW 31-Jan-24 19:54 0004 LZ1DDD 599 599 BG01 LZ BG01 10 5 | 20CW 31-Jan-24 19:54 0005 LZ2EEE 599 599 BG01 LZ BG01 10 6 | 40SSB 31-Jan-24 19:56 0006 LZ1DDD 599 599 BG01 10 7 | 40CW 31-Jan-24 19:57 0007 IS9FFF 599 599 IT15 IS IT15 2 8 | 40CW 31-Jan-24 19:58 0008 IG9X 599 599 IT17 IG9 IT17 2 9 | 40CW 31-Jan-24 19:59 0009 I9QQQ 599 599 IT04 I IT04 2 10 | 40CW 31-Jan-24 20:00 0010 K1WWW 599 599 07 K 5 11 | 40CW 31-Jan-24 20:01 0011 ER9RRR 599 599 29 ER 3 12 | -------------------------------------------------------------------------------- /test/rules/eudx/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=eudx 2 | CALL=IK1AAA 3 | -------------------------------------------------------------------------------- /test/rules/eudx/rules/eudx: -------------------------------------------------------------------------------- 1 | ../../../../rules/eudx/eudx -------------------------------------------------------------------------------- /test/rules/eudx/rules/eudx.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/eudx/eudx.py -------------------------------------------------------------------------------- /test/rules/focmarathon/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=focmarathon 2 | CALL=N0CALL 3 | -------------------------------------------------------------------------------- /test/rules/focmarathon/marathon.log: -------------------------------------------------------------------------------- 1 | 20CW 20-Feb-23 08:07 0001 DF2IC 599 599 1624 1 14025.0 2 | 40CW 20-Feb-23 08:07 0002 DJ5ZN 599 599 1145 1 7010.0 3 | 40CW 20-Feb-23 08:07 0003 OK1RR 599 599 1437 1 7010.0 4 | 20CW 20-Feb-23 08:08 0004 DF2IC 599 599 1624 0 14025.0 5 | 15CW 20-Feb-23 08:08 0005 DF2IC 599 599 1624 1 21025.0 6 | 15CW 20-Feb-23 08:08 0006 G4FOC 599 599 1234 2 21025.0 7 | -------------------------------------------------------------------------------- /test/rules/focmarathon/rules/focmarathon: -------------------------------------------------------------------------------- 1 | ../../../../rules/focmarathon -------------------------------------------------------------------------------- /test/rules/hskc/hskc.log: -------------------------------------------------------------------------------- 1 | 80CW 09-Apr-24 19:35 0001 HA2MN 599 599 123A 2M 3 2 | 80CW 09-Apr-24 19:39 0002 HA5ABC 599 599 123A 5A 3 3 | 80CW 09-Apr-24 19:39 0003 YU9VK 599 599 123B 9V 1 4 | 80CW 09-Apr-24 19:39 0004 SP5A 599 599 8A 3 5 | 80CW 09-Apr-24 19:39 0005 HA8KZ 599 599 12A 8K 3 6 | 80CW 09-Apr-24 19:39 0006 HA8KW 599 599 42A 3 7 | 80CW 09-Apr-24 19:39 0007 HG2007PAX 599 599 311A 7P 3 8 | 80CW 09-Apr-24 19:40 0008 HA/DJ7EJ/M 599 599 23B 7E 1 9 | 80CW 09-Apr-24 19:40 0009 YO6QBC 599 599 19A 6Q 3 10 | 80CW 09-Apr-24 19:40 0010 HL22 599 599 7B 22 1 11 | 80CW 09-Apr-24 19:40 0011 TX9 599 599 726A X9 3 12 | 80CW 09-Apr-24 19:41 0012 TM380 599 599 5A 80 3 13 | 80CW 09-Apr-24 20:03 0013 IM0/S52JKL 599 599 213A 2J 3 14 | -------------------------------------------------------------------------------- /test/rules/hskc/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=hskc 2 | CALL=HA5AAA 3 | -------------------------------------------------------------------------------- /test/rules/hskc/rules/hskc: -------------------------------------------------------------------------------- 1 | ../../../../rules/hskc/hskc -------------------------------------------------------------------------------- /test/rules/hskc/rules/hskc.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/hskc/hskc.py -------------------------------------------------------------------------------- /test/rules/iota_island/iota.log: -------------------------------------------------------------------------------- 1 | 40CW 27-Jul-24 15:33 0001 OK1ABC 599 599 123 ------ 5 2 | 40CW 27-Jul-24 15:35 0002 G2ABC 599 599 456 EU-005 EU-005c 15 3 | 40CW 27-Jul-24 15:37 0003 EI3ABC 599 599 086 EU-115 EU-115c 5 4 | 40CW 27-Jul-24 15:38 0004 G4ABC 599 599 007 EU-005 15 5 | 40CW 27-Jul-24 20:48 0005 EA5ABC 599 599 042 EU-151 EU-151c 15 6 | 40SSB 27-Jul-24 20:48 0006 G6ABC 59 59 1234 EU-005 EU-005s 15 7 | 20SSB 27-Jul-24 20:59 0007 G7ABC 59 59 065 EU-005 EU-005s 15 8 | 20SSB 27-Jul-24 21:00 0008 F8ABC 59 59 087 ------ 5 9 | -------------------------------------------------------------------------------- /test/rules/iota_island/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=iota 2 | CALL=EI5AAA 3 | 4 | PLUGIN_CONFIG=EU-115 5 | CABRILLO-EXCHANGE=# EU-115 6 | -------------------------------------------------------------------------------- /test/rules/iota_island/rules/iota: -------------------------------------------------------------------------------- 1 | ../../../../rules/iota/iota -------------------------------------------------------------------------------- /test/rules/iota_island/rules/iota.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/iota/iota.py -------------------------------------------------------------------------------- /test/rules/iota_world/iota.log: -------------------------------------------------------------------------------- 1 | 40CW 27-Jul-24 15:33 0001 OK1ABC 599 599 123 ------ 2 2 | 40CW 27-Jul-24 15:35 0002 G2ABC 599 599 456 EU-005 EU-005c 15 3 | 40CW 27-Jul-24 15:37 0003 EI3ABC 599 599 086 EU-115 EU-115c 15 4 | 40CW 27-Jul-24 15:38 0004 G4ABC 599 599 007 EU-005 15 5 | 40CW 27-Jul-24 20:48 0005 EA5ABC 599 599 042 EU-151 EU-151c 15 6 | 40SSB 27-Jul-24 20:48 0006 G6ABC 59 59 1234 EU-005 EU-005s 15 7 | 20SSB 27-Jul-24 20:59 0007 G7ABC 59 59 065 EU-005 EU-005s 15 8 | 20SSB 27-Jul-24 21:00 0008 F8ABC 59 59 087 ------ 2 9 | -------------------------------------------------------------------------------- /test/rules/iota_world/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=iota 2 | CALL=HA5AAA 3 | 4 | CABRILLO-EXCHANGE=# ------ 5 | -------------------------------------------------------------------------------- /test/rules/iota_world/rules/iota: -------------------------------------------------------------------------------- 1 | ../../../../rules/iota/iota -------------------------------------------------------------------------------- /test/rules/iota_world/rules/iota.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/iota/iota.py -------------------------------------------------------------------------------- /test/rules/ksqp/ksqp.log: -------------------------------------------------------------------------------- 1 | 40CW 04-Apr-23 04:13 0001 A6B 599 599 CA CA 3 2 | 40CW 04-Apr-23 04:13 0002 W7C 599 599 WA WA 3 3 | 40CW 04-Apr-23 04:13 0003 A0B 599 599 WOO KS 3 4 | 40CW 04-Apr-23 04:13 0004 A0C 599 599 JEW 3 5 | 40CW 04-Apr-23 04:14 0005 W1T 599 599 ME ME 3 6 | -------------------------------------------------------------------------------- /test/rules/ksqp/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=ksqp 2 | CALL=N0CALL 3 | -------------------------------------------------------------------------------- /test/rules/ksqp/rules/ksqp: -------------------------------------------------------------------------------- 1 | ../../../../rules/ksqp/ksqp -------------------------------------------------------------------------------- /test/rules/ksqp/rules/ksqp.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/ksqp/ksqp.py -------------------------------------------------------------------------------- /test/rules/mcd/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=mcd 2 | CALL=HA0XXX 3 | -------------------------------------------------------------------------------- /test/rules/mcd/mcd.log: -------------------------------------------------------------------------------- 1 | 40CW 04-Jan-24 17:25 0001 DJ6SI 599 599 MC1 MC1 5 2 | 40CW 04-Jan-24 17:26 0002 F1AAA 599 599 008 1 3 | 40CW 04-Jan-24 17:26 0003 ON5ME 599 599 MC10 MC10 5 4 | 20CW 04-Jan-24 17:28 0004 DJ6SI 599 599 MC1 MC1 5 5 | 20CW 04-Jan-24 17:29 0005 OK1RR 599 599 MC223 MC223 5 6 | -------------------------------------------------------------------------------- /test/rules/mcd/rules/mcd: -------------------------------------------------------------------------------- 1 | ../../../../rules/mcd/mcd -------------------------------------------------------------------------------- /test/rules/mcd/rules/mcd.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/mcd/mcd.py -------------------------------------------------------------------------------- /test/rules/mcd/rules/mcd.txt: -------------------------------------------------------------------------------- 1 | ../../../../rules/mcd/mcd.txt -------------------------------------------------------------------------------- /test/rules/mst/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=mst 2 | CALL=N0CALL 3 | -------------------------------------------------------------------------------- /test/rules/mst/mst.log: -------------------------------------------------------------------------------- 1 | 20CW 12-Jun-23 19:33 0001 N5NA --- --- ALAN 54 N5NA 1 14040.8 2 | 20CW 12-Jun-23 19:34 0002 W0OJY --- --- BILL 33 W0OJY 1 14038.9 3 | 20CW 12-Jun-23 19:35 0003 K0DME --- --- BEN 51 K0DME 1 14042.1 4 | 20CW 12-Jun-23 19:36 0004 K6NR --- --- DANA 37 K6NR 1 14044.0 5 | 20CW 12-Jun-23 19:39 0005 KR2Q --- --- NUG 48 KR2Q 1 14043.1 6 | 20CW 12-Jun-23 19:43 0006 K3JT --- --- TERRY 47 K3JT 1 14030.9 7 | 20CW 12-Jun-23 19:45 0007 W5LXS --- --- ROGER 38 W5LXS 1 14035.2 8 | 20CW 12-Jun-23 19:46 0008 N6VOH --- --- BARRY 1 N6VOH 1 14035.2 9 | 20CW 12-Jun-23 19:46 0009 N5EP --- --- STEVE 31 N5EP 1 14035.2 10 | 20CW 12-Jun-23 19:47 0010 W5TM --- --- ED 65 W5TM 1 14035.2 11 | 20CW 12-Jun-23 19:57 0011 WA5PFJ --- --- JOHN 44 WA5PFJ 1 14034.5 12 | 40CW 12-Jun-23 19:58 0012 W5TM --- --- ED 65 1 7035.2 13 | 40CW 12-Jun-23 19:59 0013 WA5PFJ --- --- JOHN 44 1 7034.5 14 | -------------------------------------------------------------------------------- /test/rules/mst/rules/mst: -------------------------------------------------------------------------------- 1 | ../../../../rules/mst/mst -------------------------------------------------------------------------------- /test/rules/mwc/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=mwc 2 | CALL=N0CALL 3 | -------------------------------------------------------------------------------- /test/rules/mwc/mwc.log: -------------------------------------------------------------------------------- 1 | 80CW 13-Mar-23 16:46 0001 OK1PY 599 599 020 Y 1 3535.7 2 | 80CW 13-Mar-23 16:47 0002 OK1RA 599 599 028 A 1 3538.7 3 | 80CW 13-Mar-23 16:48 0003 OK1OZ 599 599 019 Z 1 3540.0 4 | 80CW 13-Mar-23 16:49 0004 OM5A 599 599 020 1 3546.1 5 | 80CW 13-Mar-23 16:50 0005 HA2KI 599 599 048 I 1 3542.4 6 | 40CW 13-Mar-23 16:52 0006 OK2BFA 599 599 037 A 1 7028.7 7 | -------------------------------------------------------------------------------- /test/rules/mwc/rules/mwc: -------------------------------------------------------------------------------- 1 | ../../../../rules/mwc/mwc -------------------------------------------------------------------------------- /test/rules/mwc/rules/mwc.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/mwc/mwc.py -------------------------------------------------------------------------------- /test/rules/naqp/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=naqp 2 | CALL=N6DVS 3 | -------------------------------------------------------------------------------- /test/rules/naqp/rules/naqp: -------------------------------------------------------------------------------- 1 | ../../../../rules/naqp/naqp -------------------------------------------------------------------------------- /test/rules/naqp/rules/naqp.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/naqp/naqp.py -------------------------------------------------------------------------------- /test/rules/neqp/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=neqp 2 | CALL=N0CALL 3 | -------------------------------------------------------------------------------- /test/rules/neqp/neqp.log: -------------------------------------------------------------------------------- 1 | 40CW 13-Apr-23 22:02 0001 AA1B 599 599 HARCT 2 2 | 40CW 13-Apr-23 22:02 0002 AA1C 599 599 HMDMA 2 3 | 40CW 13-Apr-23 22:03 0003 AA1D 599 599 MIDMA 2 4 | 40CW 13-Apr-23 22:03 0004 AA6A 599 599 CA CA 2 5 | 40CW 13-Apr-23 22:03 0005 GM1A 599 599 DX GM 2 6 | 40CW 09-Apr-24 19:12 0006 CT1AA 599 599 DX CT 2 7 | 40CW 09-Apr-24 19:13 0007 K1AA 599 599 CTCAP CT 2 8 | 40CW 09-Apr-24 19:13 0008 K1AB 599 599 MESAG ME 2 9 | -------------------------------------------------------------------------------- /test/rules/neqp/neqp_mults: -------------------------------------------------------------------------------- 1 | # This is the mult file for a New England station. 2 | # Mults are states, and New England counties are aliases for their state. 3 | # Outside of New England, use neqp_mults_outside instead. 4 | ########################## 5 | ## New England Counties ## 6 | ########################## 7 | CT:CTCAP,CTGBR,CTLCR,CTNAU,CTNOE,CTNOW,CTSOE,CTSOC,CTWES 8 | MA:MABAR,MABER,MABRI,MADUK,MAESS,MAFRA,MAHMD,MAHMP,MAMID,MANAN,MANOR,MAPLY,MASUF,MAWOR 9 | ME:MEAND,MEARO,MECUM,MEFRA,MEHAN,MEKEN,MEKNO,MELIN,MEOXF,MEPEN,MEPIS,MESAG,MESOM,MEWAL,MEWAS,MEYOR 10 | NH:NHBEL,NHCAR,NHCHE,NHCOO,NHGRA,NHHIL,NHMER,NHROC,NHSTR,NHSUL 11 | RI:RIBRI,RIKEN,RINEW,RIPRO,RIWAS 12 | VT:VTADD,VTBEN,VTCAL,VTCHI,VTESS,VTFRA,VTGRA,VTLAM,VTORA,VTORL,VTRUT,VTWAS,VTWNH,VTWND 13 | ################################ 14 | ## Other states and provinces ## 15 | ################################ 16 | AL 17 | AZ 18 | AR 19 | CA 20 | CO 21 | DE 22 | FL 23 | GA 24 | ID 25 | IL 26 | IN 27 | IA 28 | KS 29 | KY 30 | LA 31 | MD 32 | MI 33 | MN 34 | MS 35 | MO 36 | MT 37 | NC 38 | ND 39 | NE 40 | NV 41 | NJ 42 | NM 43 | NY 44 | OH 45 | OK 46 | OR 47 | PA 48 | SC 49 | SD 50 | TN 51 | TX 52 | UT 53 | VA 54 | WA 55 | WV 56 | WI 57 | WY 58 | DC 59 | NB 60 | NS 61 | QC 62 | ON 63 | MB 64 | SK 65 | AB 66 | BC 67 | NT 68 | NF 69 | LB 70 | YT 71 | PE 72 | NU 73 | -------------------------------------------------------------------------------- /test/rules/neqp/neqp_mults_outside: -------------------------------------------------------------------------------- 1 | # This is the mult file for a station outside New England. 2 | # Mults are New England counties. 3 | ########################## 4 | ## New England Counties ## 5 | ########################## 6 | CTCAP 7 | CTGBR 8 | CTLCR 9 | CTNAU 10 | CTNOE 11 | CTNOW 12 | CTSOE 13 | CTSOC 14 | CTWES 15 | MABAR 16 | MABER 17 | MABRI 18 | MADUK 19 | MAESS 20 | MAFRA 21 | MAHMD 22 | MAHMP 23 | MAMID 24 | MANAN 25 | MANOR 26 | MAPLY 27 | MASUF 28 | MAWOR 29 | MEAND 30 | MEARO 31 | MECUM 32 | MEFRA 33 | MEHAN 34 | MEKEN 35 | MEKNO 36 | MELIN 37 | MEOXF 38 | MEPEN 39 | MEPIS 40 | MESAG 41 | MESOM 42 | MEWAL 43 | MEWAS 44 | MEYOR 45 | NHBEL 46 | NHCAR 47 | NHCHE 48 | NHCOO 49 | NHGRA 50 | NHHIL 51 | NHMER 52 | NHROC 53 | NHSTR 54 | NHSUL 55 | RIBRI 56 | RIKEN 57 | RINEW 58 | RIPRO 59 | RIWAS 60 | VTADD 61 | VTBEN 62 | VTCAL 63 | VTCHI 64 | VTESS 65 | VTFRA 66 | VTGRA 67 | VTLAM 68 | VTORA 69 | VTORL 70 | VTRUT 71 | VTWAS 72 | VTWNH 73 | VTWND 74 | -------------------------------------------------------------------------------- /test/rules/run_tlf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys 4 | import os 5 | import shutil 6 | import glob 7 | import pexpect 8 | 9 | TLF = "../../../src/tlf" 10 | 11 | # first check if python plugin would be used and skip test if not compiled in 12 | if glob.glob('rules/*.py'): 13 | rc = os.system(f"{TLF} -? | grep Features: | grep -q python-plugin") 14 | if rc != 0: 15 | sys.exit(3) # skip this one 16 | 17 | 18 | COMMAND = f"{TLF} -nrv" 19 | fout = None 20 | #fout = open("run.log", "wb") # uncomment this line to get interaction log 21 | PARAS = '.paras' 22 | 23 | open(PARAS, 'a').close() # create .paras to skip first time greeting 24 | 25 | rc = 0 26 | 27 | p = pexpect.spawn(COMMAND) 28 | if fout: 29 | p.logfile = fout 30 | 31 | i = p.expect(["continue", "save it", pexpect.TIMEOUT], timeout=2); 32 | if i == 0: 33 | rc = 0 34 | elif i == 1: 35 | rc = 1 36 | p.send('N') # do not save log 37 | p.expect("continue", timeout=2); 38 | else: 39 | rc = 2 40 | 41 | if fout: 42 | fout.close() 43 | 44 | os.remove(PARAS) 45 | shutil.rmtree("rules/__pycache__", ignore_errors=True) 46 | 47 | sys.exit(rc) 48 | 49 | -------------------------------------------------------------------------------- /test/rules/ukeidx/logcfg.dat: -------------------------------------------------------------------------------- 1 | RULES=ukeidx 2 | CALL=HA0XXX 3 | -------------------------------------------------------------------------------- /test/rules/ukeidx/rules/ukeidx: -------------------------------------------------------------------------------- 1 | ../../../../rules/ukeidx/ukeidx -------------------------------------------------------------------------------- /test/rules/ukeidx/rules/ukeidx.py: -------------------------------------------------------------------------------- 1 | ../../../../rules/ukeidx/ukeidx.py -------------------------------------------------------------------------------- /test/rules/ukeidx/ukeidx.log: -------------------------------------------------------------------------------- 1 | 40CW 29-Apr-23 12:19 0001 G1ABC 599 599 7 OX G/OX 4 2 | 40CW 29-Apr-23 12:20 0002 DL1WWW 599 599 97 DL 2 3 | 40CW 29-Apr-23 12:20 0003 N6CCC 599 599 539 K 4 4 | 40CW 29-Apr-23 12:21 0004 EI2XYZ 599 599 25 DU EI/DU 4 5 | 20CW 29-Apr-23 12:24 0005 GM3RRR 599 599 6 TD G/TD 2 6 | 20CW 29-Apr-23 12:25 0006 G0XXX 599 599 123ABA 2 7 | -------------------------------------------------------------------------------- /test/test.h: -------------------------------------------------------------------------------- 1 | #ifndef _TEST_H 2 | #define _TEST_H 3 | 4 | // 5 | // common includes for the test groups 6 | // 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #include 19 | 20 | #include 21 | 22 | #ifndef FREE_DYNAMIC_STRING 23 | #define FREE_DYNAMIC_STRING(p) if (p != NULL) {g_free(p); p = NULL;} 24 | #endif 25 | 26 | extern const char STRING_NOT_SET[]; 27 | 28 | extern const char *showmsg_spy, *showstring_spy1, *showstring_spy2; 29 | 30 | typedef int (*int_func_t)(void); 31 | 32 | // plugin functions for the mocks 33 | extern int_func_t key_poll_func; 34 | extern int_func_t getch_func; 35 | 36 | // the real functions 37 | extern int __real_key_poll(); 38 | 39 | // number of mvprintw lines to store 40 | #define NLAST 30 41 | // length of a mvprintw line 42 | #define LINESZ 100 43 | extern char mvprintw_history[NLAST][LINESZ]; 44 | extern void clear_mvprintw_history(); 45 | 46 | // sendto() 47 | extern int sendto_call_count; 48 | extern char *sendto_last_message; 49 | extern int sendto_last_len; 50 | 51 | 52 | #endif 53 | -------------------------------------------------------------------------------- /test/test_rules.c: -------------------------------------------------------------------------------- 1 | #include "test.h" 2 | #include 3 | #include 4 | 5 | GString *errors; 6 | 7 | int setup_default(void **state) { 8 | 9 | errors = g_string_new(""); 10 | 11 | return 0; 12 | } 13 | 14 | int teardown_default(void **state) { 15 | 16 | g_string_free(errors, TRUE); 17 | 18 | return 0; 19 | } 20 | 21 | static void append_error(const gchar *path, const gchar *result) { 22 | if (errors->len > 0) { 23 | g_string_append(errors, ", "); 24 | } 25 | g_string_append_printf(errors, "%s(%s)", path, result); 26 | } 27 | 28 | static void check_rules(const gchar *dirname, gchar *path) { 29 | printf("++ %s\n", dirname); 30 | 31 | gchar *cmd = g_strdup_printf("cd %s; ../run_tlf.py", path); 32 | int rc = WEXITSTATUS(system(cmd)); 33 | g_free(cmd); 34 | 35 | if (rc == 1) { 36 | append_error(dirname, "FAIL"); 37 | } else if (rc == 2) { 38 | append_error(dirname, "TIMEOUT"); 39 | } 40 | } 41 | 42 | #define TEST_RULES_DIR TOP_SRCDIR "/test/rules" 43 | 44 | void test_rules(void **state) { 45 | 46 | GError *error; 47 | const gchar *dirname; 48 | 49 | GDir *dir = g_dir_open(TEST_RULES_DIR, 0, &error); 50 | 51 | while ((dirname = g_dir_read_name(dir))) { 52 | gchar *path = g_build_filename(TEST_RULES_DIR, dirname, (gchar *)NULL); 53 | if (g_file_test(path, G_FILE_TEST_IS_DIR)) { 54 | check_rules(dirname, path); 55 | } 56 | g_free(path); 57 | } 58 | 59 | g_dir_close(dir); 60 | 61 | assert_string_equal(errors->str, ""); 62 | } 63 | 64 | -------------------------------------------------------------------------------- /test/test_zone_nr.c: -------------------------------------------------------------------------------- 1 | #include "test.h" 2 | 3 | #include "../src/zone_nr.h" 4 | 5 | // OBJECT ../src/zone_nr.o 6 | 7 | 8 | void test_ok_08(void **state) { 9 | assert_int_equal(zone_nr("08"), 8); 10 | } 11 | 12 | void test_ok__8(void **state) { 13 | assert_int_equal(zone_nr(" 8"), 8); 14 | } 15 | 16 | void test_ok_14(void **state) { 17 | assert_int_equal(zone_nr("14"), 14); 18 | } 19 | 20 | void test_bad_empty(void **state) { 21 | assert_int_equal(zone_nr(""), 0); 22 | assert_int_equal(zone_nr("\0001"), 0); 23 | } 24 | 25 | void test_bad_nan(void **state) { 26 | assert_int_equal(zone_nr("foo"), 0); 27 | } 28 | 29 | void test_bad_short(void **state) { 30 | assert_int_equal(zone_nr("7"), 0); 31 | } 32 | -------------------------------------------------------------------------------- /tools/astylerc: -------------------------------------------------------------------------------- 1 | # astylerc--custom options for Tlf 2 | 3 | # K&R style formatting/indenting with some tweaks. 4 | style=attach 5 | 6 | # Indent with a width of 4 spaces. Use 8 space tabs if possible 7 | indent=force-tab-x=8 8 | indent=force-tab=4 9 | 10 | # Pad empty lines around header blocks (e.g. 'if', 'for', 'while'...). 11 | #break-blocks 12 | 13 | # Indent 'switch' blocks so that the 'case X:' statements are indented 14 | # in the switch block. 15 | indent-switches 16 | 17 | # Remove extra space padding around parenthesis on the inside and outside. 18 | unpad-paren 19 | 20 | # Insert space padding around operators. 21 | pad-oper 22 | 23 | # Insert space padding after paren headers only (e.g. 'if', 'for', 'while'...). 24 | pad-header 25 | 26 | # Attach a pointer operator (*) to name (name) and reference operator (&) 27 | # to type (type). 28 | align-pointer=name 29 | align-reference=type 30 | 31 | # Add brackets to unbracketed one line conditional statements 32 | # (e.g. 'if', 'for', 'while'...). 33 | #add-brackets 34 | 35 | # Don't break one-line blocks. 36 | keep-one-line-blocks 37 | 38 | # Don't break complex statements and multiple statements residing on a single line. 39 | keep-one-line-statements 40 | 41 | # Breaks else from immediately preceding closing braces 42 | #break-closing-braces 43 | 44 | # try to shorten long lines to 80 characters 45 | max-code-length=80 46 | 47 | # Preserve the file date and time 48 | preserve-date 49 | 50 | # Do not retain backup copies 51 | suffix=none 52 | 53 | --------------------------------------------------------------------------------