Retrieve and unpack wfdb-10.2.2.tar.gz in order to get a full set of 10.2.2 files. WARNING: If you patch your 10.2.1 tree using this file, you will not get a complete 10.2.2 tree! The full patch file for 10.2.1 -> 10.2.2 is over 20 Mb, much longer than the original files, so it is not provided here. The patches are so large because the WAVE User's Guide has been moved into the doc tree in 10.2.2 (from its own 'wave-doc' tree in 10.2.1 and earlier releases). This patch file includes only the changes outside of the doc and wave-doc trees, so that you can easily see what else has been changed. diff -Naur -x doc -x wave-doc wfdb-10.2.1/MANIFEST wfdb-10.2.2/MANIFEST --- wfdb-10.2.1/MANIFEST Fri Nov 16 16:19:55 2001 +++ wfdb-10.2.2/MANIFEST Thu Nov 29 18:32:42 2001 @@ -116,6 +116,7 @@ checkpkg/Makefile.tpl conf/ conf/cygwin.def +conf/exechmod conf/exestrip conf/generic.def conf/generic-slib.def @@ -218,6 +219,7 @@ doc/coherence.1 doc/cover.ag doc/cover.pg +doc/cover.wug doc/ctotexi.c doc/dbag.ht0 doc/dbag.tex @@ -230,6 +232,7 @@ doc/ecgeval.1 doc/epic.1 doc/eval.tex +doc/fancybox.perl doc/fft.1 doc/fir.1 doc/fixag.sed @@ -243,6 +246,7 @@ doc/icons/contents.png doc/icons/cross_ref.png doc/icons/foot.png +doc/icons/index.png doc/icons/next_gr.png doc/icons/next.png doc/icons/prev_gr.png @@ -292,7 +296,128 @@ doc/texindex.c doc/tmac.dif doc/view.1 +doc/wave/ doc/wave.1 +doc/wave/color/ +doc/wave/color/allow-edit.ps +doc/wave/color/analysis-commands.ps +doc/wave/color/analyze-window.ps +doc/wave/color/annotation-template.ps +doc/wave/color/attach-to-signals.ps +doc/wave/color/calibrate.ps +doc/wave/color/file-analyze.ps +doc/wave/color/file-load.ps +doc/wave/color/file-print.ps +doc/wave/color/file-save.ps +doc/wave/color/find-window.ps +doc/wave/color/help-intro.ps +doc/wave/color/help-topics.ps +doc/wave/color/level-window.ps +doc/wave/color/load-window.ps +doc/wave/color/log-window.ps +doc/wave/color/main-control-panel.ps +doc/wave/color/main-window.ps +doc/wave/color/main-with-hr.ps +doc/wave/color/main-with-markers.ps +doc/wave/color/netscape-new-helper.ps +doc/wave/color/print-setup-window.ps +doc/wave/color/scope-window.ps +doc/wave/color/search-template.ps +doc/wave/color/spot-help.ps +doc/wave/color/stdev.ps +doc/wave/color/title-with-parens.ps +doc/wave/color/type-menu.ps +doc/wave/color/view-window.ps +doc/wave/color/wave-icon.ps +doc/wave/color/wave-menu.ps +doc/wave/grey/ +doc/wave/grey/allow-edit.ps +doc/wave/grey/analysis-commands.ps +doc/wave/grey/analyze-window.ps +doc/wave/grey/annotation-template.ps +doc/wave/grey/attach-to-signals.ps +doc/wave/grey/calibrate.ps +doc/wave/grey/chart1.ps +doc/wave/grey/chart2.ps +doc/wave/grey/file-analyze.ps +doc/wave/grey/file-load.ps +doc/wave/grey/file-print.ps +doc/wave/grey/file-save.ps +doc/wave/grey/find-window.ps +doc/wave/grey/fulldisc.ps +doc/wave/grey/help-intro.ps +doc/wave/grey/help-topics.ps +doc/wave/grey/level-window.ps +doc/wave/grey/load-window.ps +doc/wave/grey/log-window.ps +doc/wave/grey/main-control-panel.ps +doc/wave/grey/main-window.ps +doc/wave/grey/main-with-hr.ps +doc/wave/grey/main-with-markers.ps +doc/wave/grey/netscape-new-helper.ps +doc/wave/grey/noedit.ps +doc/wave/grey/nomatch.ps +doc/wave/grey/notice-quit.ps +doc/wave/grey/print-setup-window.ps +doc/wave/grey/scope-window.ps +doc/wave/grey/search-template.ps +doc/wave/grey/spot-help.ps +doc/wave/grey/stdev.ps +doc/wave/grey/system-menu.ps +doc/wave/grey/title-with-parens.ps +doc/wave/grey/type-menu.ps +doc/wave/grey/view-window.ps +doc/wave/grey/wave-icon.ps +doc/wave/grey/wave-menu.ps +doc/wave/misc/ +doc/wave/misc/example.xws +doc/wave/misc/html.sty +doc/wave/misc/wave.inf +doc/wave/png/ +doc/wave/png/chart2.png +doc/wave/png/fulldisc.png +doc/wave/png/wave.png +doc/wave/ppm/ +doc/wave/ppm/allow-edit.ppm.gz +doc/wave/ppm/analysis-commands.ppm.gz +doc/wave/ppm/analyze-window.ppm.gz +doc/wave/ppm/annotation-template.ppm.gz +doc/wave/ppm/attach-to-signals.ppm.gz +doc/wave/ppm/calibrate.ppm.gz +doc/wave/ppm/file-analyze.ppm.gz +doc/wave/ppm/file-load.ppm.gz +doc/wave/ppm/file-print.ppm +doc/wave/ppm/file-print.ppm.gz +doc/wave/ppm/file-save.ppm.gz +doc/wave/ppm/find-window.ppm.gz +doc/wave/ppm/help-intro.ppm.gz +doc/wave/ppm/help-topics.ppm.gz +doc/wave/ppm/level-window.ppm.gz +doc/wave/ppm/load-window.pnm.gz +doc/wave/ppm/load-window.ppm.gz +doc/wave/ppm/log-window.ppm.gz +doc/wave/ppm/main-control-panel.ppm.gz +doc/wave/ppm/main-window.ppm.gz +doc/wave/ppm/main-with-hr.ppm.gz +doc/wave/ppm/main-with-markers.ppm.gz +doc/wave/ppm/netscape-new-helper.ppm.gz +doc/wave/ppm/print-setup-window.ppm.gz +doc/wave/ppm/scope-window.ppm.gz +doc/wave/ppm/search-template.ppm.gz +doc/wave/ppm/spot-help.ppm.gz +doc/wave/ppm/stdev.ppm.gz +doc/wave/ppm/title-with-parens.ppm.gz +doc/wave/ppm/type-menu.ppm.gz +doc/wave/ppm/view-window.ppm.gz +doc/wave/ppm/wave-icon.ppm.gz +doc/wave/ppm/wave-menu.ppm.gz +doc/wave/scripts/ +doc/wave/scripts/dossify-html +doc/wave/scripts/fixinfo +doc/wave/scripts/fixlinks +doc/wave/scripts/savewin +doc/wave/scripts/wave2d +doc/wave/scripts/wugfigures doc/wfdb.3 doc/wfdbcal.5 doc/wfdbcat.1 @@ -301,8 +426,10 @@ doc/wfdbwhich.1 doc/wrann.1 doc/wrsamp.1 +doc/wug.tex doc/wview.1 doc/xform.1 +doc/xview.7 examples/ examples/dblibver.c examples/example10.c @@ -325,6 +452,7 @@ examples/psamples.c examples/README examples/refhr.c +examples/stdev.c fortran/ fortran/example.f fortran/fsamples.f @@ -388,137 +516,6 @@ wave/bitmaps.h wave/buttons.hlp wave/demo.txt -wave-doc/ -wave-doc/color/ -wave-doc/color/allow-edit.ps -wave-doc/color/calibrate.ps -wave-doc/color/file-analyze.ps -wave-doc/color/file-load.ps -wave-doc/color/file-print.ps -wave-doc/color/file-save.ps -wave-doc/color/find-window.ps -wave-doc/color/help-topics.ps -wave-doc/color/level-window.ps -wave-doc/color/main-control-panel.ps -wave-doc/color/main-window.ps -wave-doc/color/main-with-hr.ps -wave-doc/color/main-with-markers.ps -wave-doc/color/Makefile -wave-doc/color/mimic.ps -wave-doc/color/netscape-new-helper.ps -wave-doc/color/print-setup-window.ps -wave-doc/color/scope-window.ps -wave-doc/color/search-template.ps -wave-doc/color/stdev.ps -wave-doc/color/titlebar.ps -wave-doc/color/title-with-parens.ps -wave-doc/color/type-menu.ps -wave-doc/color/wave-icon.ps -wave-doc/color/wave-menu.ps -wave-doc/grey/ -wave-doc/grey/allow-edit.ps -wave-doc/grey/analysis-commands.ps -wave-doc/grey/analyze-window.ps -wave-doc/grey/annotation-template.ps -wave-doc/grey/attach-to-signals.ps -wave-doc/grey/calibrate.ps -wave-doc/grey/chart1.ps -wave-doc/grey/chart2.ps -wave-doc/grey/file-analyze.ps -wave-doc/grey/file-load.ps -wave-doc/grey/file-print.ps -wave-doc/grey/file-save.ps -wave-doc/grey/find-window.ps -wave-doc/grey/fulldisc.ps -wave-doc/grey/help-intro.ps -wave-doc/grey/help-topics.ps -wave-doc/grey/level-window.ps -wave-doc/grey/load-window.ps -wave-doc/grey/log-window.ps -wave-doc/grey/main-control-panel.ps -wave-doc/grey/main-window.ps -wave-doc/grey/main-with-hr.ps -wave-doc/grey/main-with-markers.ps -wave-doc/grey/Makefile -wave-doc/grey/mimic.ps -wave-doc/grey/netscape-new-helper.ps -wave-doc/grey/noedit.ps -wave-doc/grey/nomatch.ps -wave-doc/grey/notice-quit.ps -wave-doc/grey/print-setup-window.ps -wave-doc/grey/scope-window.ps -wave-doc/grey/search-template.ps -wave-doc/grey/spot-help.ps -wave-doc/grey/stdev.ps -wave-doc/grey/system-menu.ps -wave-doc/grey/titlebar.ps -wave-doc/grey/title-with-parens.ps -wave-doc/grey/type-menu.ps -wave-doc/grey/view-window.ps -wave-doc/grey/wave-icon.ps -wave-doc/grey/wave-menu.ps -wave-doc/guide/ -wave-doc/guide/chart2.png -wave-doc/guide/cover.wug -wave-doc/guide/dossify-html -wave-doc/guide/example.xws -wave-doc/guide/fancybox.perl -wave-doc/guide/fixindex -wave-doc/guide/fixinfo -wave-doc/guide/fixlinks -wave-doc/guide/fulldisc.png -wave-doc/guide/html.sty -wave-doc/guide/icons/ -wave-doc/guide/icons/contents.png -wave-doc/guide/icons/cross_ref.png -wave-doc/guide/icons/foot.png -wave-doc/guide/icons/index.png -wave-doc/guide/icons/next_gr.png -wave-doc/guide/icons/next.png -wave-doc/guide/icons/prev_gr.png -wave-doc/guide/icons/previous.png -wave-doc/guide/icons/up_gr.png -wave-doc/guide/icons/up.png -wave-doc/guide/icons/wave.png -wave-doc/guide/.latex2html-init -wave-doc/guide/Makefile -wave-doc/guide/manhtml -wave-doc/guide/saveroot -wave-doc/guide/savewin -wave-doc/guide/stdev.c -wave-doc/guide/wave2d -wave-doc/guide/wug.tex -wave-doc/guide/xview.7 -wave-doc/guide/xwdtops -wave-doc/guide/xwdtops-grey -wave-doc/Makefile -wave-doc/ppm/ -wave-doc/ppm/allow-edit.ppm.gz -wave-doc/ppm/attach-to-signals.ppm.gz -wave-doc/ppm/calibrate.ppm.gz -wave-doc/ppm/file-analyze.ppm.gz -wave-doc/ppm/file-load.ppm.gz -wave-doc/ppm/file-print.ppm.gz -wave-doc/ppm/file-save.ppm.gz -wave-doc/ppm/find-window.ppm.gz -wave-doc/ppm/help-topics.ppm.gz -wave-doc/ppm/level-window.ppm.gz -wave-doc/ppm/log-window.ppm.gz -wave-doc/ppm/main-control-panel.ppm.gz -wave-doc/ppm/main-window.ppm.gz -wave-doc/ppm/main-with-markers.ppm.gz -wave-doc/ppm/Makefile -wave-doc/ppm/mimic.ppm.gz -wave-doc/ppm/netscape-new-helper.ppm.gz -wave-doc/ppm/print-setup-window.ppm.gz -wave-doc/ppm/scope-window.ppm.gz -wave-doc/ppm/search-template.ppm.gz -wave-doc/ppm/stdev.ppm.gz -wave-doc/ppm/titlebar.ppm.gz -wave-doc/ppm/title-with-parens.ppm.gz -wave-doc/ppm/type-menu.ppm.gz -wave-doc/ppm/wave-icon.ppm.gz -wave-doc/ppm/wave-menu.ppm.gz wave/edit.c wave/editing.hlp wave/faq.hlp @@ -533,7 +530,6 @@ wave/Makefile wave/Makefile.top wave/Makefile.tpl -wave/makewave wave/mglass_mask.xbm wave/mglass.xbm wave/modepan.c @@ -556,7 +552,6 @@ wave/wave.c wave/wave.h wave/wave.hl0 -wave/wave.inf wave/wave.info wave/wavemenu.def wave/wave.prf diff -Naur -x doc -x wave-doc wfdb-10.2.1/Makefile wfdb-10.2.2/Makefile --- wfdb-10.2.1/Makefile Fri Nov 16 16:18:44 2001 +++ wfdb-10.2.2/Makefile Thu Nov 29 19:22:57 2001 @@ -39,12 +39,12 @@ # create source archives, type `make tarballs'; or to make a binary archive, # type `make bin-tarball'. Making archives requires PGP, gzip, and GNU tar). # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables @@ -52,7 +52,7 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # _____________________________________________________________________________ -PACKAGE=wfdb-10.2.1 +PACKAGE=wfdb-10.2.2 # file: linux.def G. Moody 31 May 2000 # Last revised: 5 June 2000 # 'make' definitions for compiling the WFDB Software Package under Linux @@ -220,7 +220,6 @@ cd lib; $(MAKE) clean cd psd; $(MAKE) clean cd wave; $(MAKE) clean - cd wave-doc; $(MAKE) clean cd waverc; $(MAKE) clean cd wview; $(MAKE) -f clean rm -f *~ conf/*~ config.cache */*.exe diff -Naur -x doc -x wave-doc wfdb-10.2.1/Makefile.tpl wfdb-10.2.2/Makefile.tpl --- wfdb-10.2.1/Makefile.tpl Fri Nov 16 16:18:37 2001 +++ wfdb-10.2.2/Makefile.tpl Mon Nov 26 19:48:46 2001 @@ -52,7 +52,6 @@ cd lib; $(MAKE) clean cd psd; $(MAKE) clean cd wave; $(MAKE) clean - cd wave-doc; $(MAKE) clean cd waverc; $(MAKE) clean cd wview; $(MAKE) -f clean rm -f *~ conf/*~ config.cache */*.exe diff -Naur -x doc -x wave-doc wfdb-10.2.1/NEWS wfdb-10.2.2/NEWS --- wfdb-10.2.1/NEWS Wed Nov 7 14:37:49 2001 +++ wfdb-10.2.2/NEWS Thu Nov 29 12:38:40 2001 @@ -1,3 +1,15 @@ +10.2.2: + WAVE can now be used to view and edit annotations for records that + have no signals. + + The WAVE User's Guide has been moved to the 'doc' directory, and + the process of formatting it is now better integrated with that for + the other WFDB guides. + + In 'ihr', the use of an uninitialized variable ('lasttime') caused + some non-outlier data in the first few samples to be rejected + incorrectly. This has now been fixed. + 10.2.1: Most users will no longer need to set the WFDB path explicitly, as a result of several minor changes in the default path and in the diff -Naur -x doc -x wave-doc wfdb-10.2.1/app/Makefile wfdb-10.2.2/app/Makefile --- wfdb-10.2.1/app/Makefile Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/app/Makefile Thu Nov 29 19:22:57 2001 @@ -33,12 +33,12 @@ # type `make listing'. # _____________________________________________________________________________ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables @@ -46,7 +46,7 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # _____________________________________________________________________________ -PACKAGE=wfdb-10.2.1 +PACKAGE=wfdb-10.2.2 # file: linux.def G. Moody 31 May 2000 # Last revised: 5 June 2000 # 'make' definitions for compiling the WFDB Software Package under Linux diff -Naur -x doc -x wave-doc wfdb-10.2.1/app/ihr.c wfdb-10.2.2/app/ihr.c --- wfdb-10.2.1/app/ihr.c Sun Jan 30 04:13:16 2000 +++ wfdb-10.2.2/app/ihr.c Thu Nov 29 12:33:14 2001 @@ -1,9 +1,9 @@ /* file ihr.c G. Moody 12 November 1992 - Last revised: 9 November 1999 + Last revised: 27 November 2001 ------------------------------------------------------------------------------- ihr: Generate instantaneous heart rate data from annotation file -Copyright (C) 1999 George B. Moody +Copyright (C) 2001 George B. Moody This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -46,7 +46,7 @@ char *record = NULL, *prog_name(); double ihr, ihrlast, mhr = 70., sps, tol = 10.0, atof(), fabs(); int i, j, lastann = NOTQRS, lastint = 1, xflag = 0; - long from = 0L, to = 0L, lasttime; + long from = 0L, to = 0L, lasttime = -9999L; static WFDB_Anninfo ai; WFDB_Annotation annot; void help(); @@ -96,7 +96,7 @@ case 't': /* ending time follows */ if (++i >= argc) { (void)fprintf(stderr, "%s: end time must follow -t\n", pname); - exit(1); + exit(1); } to = i; break; diff -Naur -x doc -x wave-doc wfdb-10.2.1/app/pschart.c wfdb-10.2.2/app/pschart.c --- wfdb-10.2.1/app/pschart.c Fri Oct 12 11:42:58 2001 +++ wfdb-10.2.2/app/pschart.c Thu Nov 29 18:57:12 2001 @@ -1,5 +1,5 @@ /* file: pschart.c G. Moody 15 March 1988 - Last revised: 12 October 2001 + Last revised: 29 November 2001 ------------------------------------------------------------------------------- pschart: Produce annotated `chart recordings' on a PostScript device @@ -636,8 +636,6 @@ if (tokptr) (void)strncpy(record, tokptr, sizeof(record)-1); tstring = strtok((char *)NULL, " \t\n"); title = strtok((char *)NULL, "\n"); - for (i = 0; i < nisig; i++) - uncal[i] = 0; if (tokptr == NULL || tstring == NULL || (nisig = isigopen(record, NULL, 0)) < 0) continue; if (nisig > nimax) { @@ -664,6 +662,8 @@ } if (isigopen(record, s, nisig) != nisig) continue; + for (i = 0; i < nisig; i++) + uncal[i] = 0; (void)setpagetitle(0L); if (!sflag) { for (i = 0; i < nisig; i++) diff -Naur -x doc -x wave-doc wfdb-10.2.1/app/psfd.c wfdb-10.2.2/app/psfd.c --- wfdb-10.2.1/app/psfd.c Fri Oct 12 11:43:15 2001 +++ wfdb-10.2.2/app/psfd.c Thu Nov 29 18:56:56 2001 @@ -1,5 +1,5 @@ /* file: psfd.c G. Moody 9 August 1988 - Last revised: 12 October 2001 + Last revised: 29 November 2001 ------------------------------------------------------------------------------- psfd: Produces annotated full-disclosure ECG plots on a PostScript device @@ -561,8 +561,6 @@ if (rstring == NULL) continue; (void)strcpy(record, rstring); - for (i = 0; i < nisig; i++) - uncal[i] = 0; if ((nisig = isigopen(record, NULL, 0)) < 1) continue; if (nisig > nimax) { @@ -591,6 +589,8 @@ } if (isigopen(record, s, nisig) != nisig) continue; + for (i = 0; i < nisig; i++) + uncal[i] = 0; (void)setpagetitle(0L); if (!sflag) { for (i = 0; i < nisig; i++) diff -Naur -x doc -x wave-doc wfdb-10.2.1/checkpkg/Makefile wfdb-10.2.2/checkpkg/Makefile --- wfdb-10.2.1/checkpkg/Makefile Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/checkpkg/Makefile Thu Nov 29 19:22:57 2001 @@ -31,12 +31,12 @@ # directory). To print a set of source listings, type `make listing'. # _____________________________________________________________________________ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables @@ -44,7 +44,7 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # _____________________________________________________________________________ -PACKAGE=wfdb-10.2.1 +PACKAGE=wfdb-10.2.2 # file: linux.def G. Moody 31 May 2000 # Last revised: 5 June 2000 # 'make' definitions for compiling the WFDB Software Package under Linux diff -Naur -x doc -x wave-doc wfdb-10.2.1/conf/cygwin.def wfdb-10.2.2/conf/cygwin.def --- wfdb-10.2.1/conf/cygwin.def Tue Jun 6 23:56:44 2000 +++ wfdb-10.2.2/conf/cygwin.def Thu Nov 29 18:31:08 2001 @@ -1,4 +1,5 @@ # file: cygwin.def G. Moody 6 June 2000 +# Last revised: 29 November 2001 # # This file contains default 'make' definitions for compiling the WFDB Software # Package under MS Windows using the free Cygwin/gcc ANSI C compiler, available @@ -144,7 +145,7 @@ SETLPERMISSIONS = chmod 644 # SETXPERMISSIONS is the command needed to make the applications accessible. -SETXPERMISSIONS = chmod 755 +SETXPERMISSIONS = ../conf/exechmod 755 # STRIP is the command used to compact the compiled binaries by removing their # symbol tables. 'exestrip' is a script that appends the '.exe' suffix to the diff -Naur -x doc -x wave-doc wfdb-10.2.1/conf/exechmod wfdb-10.2.2/conf/exechmod --- wfdb-10.2.1/conf/exechmod Wed Dec 31 19:00:00 1969 +++ wfdb-10.2.2/conf/exechmod Thu Nov 29 18:30:21 2001 @@ -0,0 +1,14 @@ +#!/bin/sh + +MODE=$1 +shift + +for FILE in $* +do + if [ -s $FILE.exe ] + then + chmod $MODE $FILE.exe + else + chmod $MODE $FILE + fi +done diff -Naur -x doc -x wave-doc wfdb-10.2.1/conf/version.def wfdb-10.2.2/conf/version.def --- wfdb-10.2.1/conf/version.def Wed Nov 7 22:21:35 2001 +++ wfdb-10.2.2/conf/version.def Sat Nov 24 21:51:19 2001 @@ -1,10 +1,10 @@ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables diff -Naur -x doc -x wave-doc wfdb-10.2.1/configure wfdb-10.2.2/configure --- wfdb-10.2.1/configure Thu Oct 25 15:06:18 2001 +++ wfdb-10.2.2/configure Thu Nov 29 18:32:27 2001 @@ -222,6 +222,7 @@ echo "To compile WAVE, install XView, add the directory containing the" echo "XView textedit application to your PATH, and run ./configure again." cp -p wave/nomake wave/Makefile + cp -p wave/nomake waverc/Makefile echo "WAVE=0" >>config.cache else echo "WAVE will be compiled." diff -Naur -x doc -x wave-doc wfdb-10.2.1/convert/Makefile wfdb-10.2.2/convert/Makefile --- wfdb-10.2.1/convert/Makefile Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/convert/Makefile Thu Nov 29 19:22:57 2001 @@ -33,12 +33,12 @@ # type `make listing'. # _____________________________________________________________________________ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables @@ -46,7 +46,7 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # _____________________________________________________________________________ -PACKAGE=wfdb-10.2.1 +PACKAGE=wfdb-10.2.2 # file: linux.def G. Moody 31 May 2000 # Last revised: 5 June 2000 # 'make' definitions for compiling the WFDB Software Package under Linux diff -Naur -x doc -x wave-doc wfdb-10.2.1/data/Makefile wfdb-10.2.2/data/Makefile --- wfdb-10.2.1/data/Makefile Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/data/Makefile Thu Nov 29 19:22:57 2001 @@ -33,12 +33,12 @@ # listing'. # _____________________________________________________________________________ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables @@ -46,7 +46,7 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # _____________________________________________________________________________ -PACKAGE=wfdb-10.2.1 +PACKAGE=wfdb-10.2.2 # file: linux.def G. Moody 31 May 2000 # Last revised: 5 June 2000 # 'make' definitions for compiling the WFDB Software Package under Linux diff -Naur -x doc -x wave-doc wfdb-10.2.1/examples/Makefile wfdb-10.2.2/examples/Makefile --- wfdb-10.2.1/examples/Makefile Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/examples/Makefile Thu Nov 29 19:22:57 2001 @@ -34,12 +34,12 @@ # `make clean' to remove them. # _____________________________________________________________________________ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables @@ -47,7 +47,7 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # _____________________________________________________________________________ -PACKAGE=wfdb-10.2.1 +PACKAGE=wfdb-10.2.2 # file: linux.def G. Moody 31 May 2000 # Last revised: 5 June 2000 # 'make' definitions for compiling the WFDB Software Package under Linux diff -Naur -x doc -x wave-doc wfdb-10.2.1/examples/stdev.c wfdb-10.2.2/examples/stdev.c --- wfdb-10.2.1/examples/stdev.c Wed Dec 31 19:00:00 1969 +++ wfdb-10.2.2/examples/stdev.c Sun Nov 25 02:44:29 2001 @@ -0,0 +1,165 @@ +/* file: stdev.c G. Moody 19 August 1996 + Last revised: 25 November 2001 +------------------------------------------------------------------------------- +stdev: sample application for use with WAVE +Copyright (C) 2001 George B. Moody + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 59 Temple +Place - Suite 330, Boston, MA 02111-1307, USA. + +You may contact the author by e-mail (george@mit.edu) or postal mail +(MIT Room E25-505A, Cambridge, MA 02139 USA). For updates to this software, +please visit PhysioNet (http://www.physionet.org/). +_______________________________________________________________________________ + +This program measures ST deviations given QRS annotations and a pair of +`(' and `)' annotations around the first QRS annotation. Its output +contains two columns of numbers: the elapsed time in minutes, and the +measured ST deviation in microvolts. +*/ + +#include +#include +#include + +main(int argc, char **argv) +{ + char *from_string = "0", *record = NULL, *to_string = "e"; + WFDB_Siginfo *si; + WFDB_Anninfo ai; + WFDB_Annotation annot; + int i, s = 0; /* analyze signal 0 unless otherwise specified */ + double spm; + WFDB_Sample dv, *v0, *v1; + WFDB_Time dt = 0L, dt0 = 0L, dt1 = 0L, epoch, ms80, tfrom = 0L, tpq = 0L, + tqrs = 0L, tto = 0L; + + ai.name = NULL; ai.stat = WFDB_READ; + /* Read all of the command-line arguments. */ + for (i = 1; i < argc-1; i++) { + if (argv[i][0] == '-') switch (argv[i][1]) { + case 'a': /* annotator name follows */ + ai.name = argv[++i]; + break; + case 'f': /* start time follows */ + from_string = argv[++i]; + break; + case 'r': /* record name follows */ + record = argv[++i]; + break; + case 's': /* signal number follows */ + s = atoi(argv[++i]); + break; + case 't': /* end time follows */ + to_string = argv[++i]; + break; + default: + fprintf(stderr, "%s: unrecognized option %s\n", + argv[0], argv[i]); + } + else { + fprintf(stderr, "%s: unrecognized argument %s\n", + argv[0], argv[i]); + } + } + if (record == NULL || ai.name == NULL) { + /* complain unless both RECORD and ANNOTATOR were specified */ + fprintf(stderr, "usage: %s -r RECORD -a ANNOTATOR [ OPTIONS ]\n", + argv[0]); + fprintf(stderr, "OPTIONS may include:\n"); + fprintf(stderr, "-f START\n"); + fprintf(stderr, "-s SIGNAL\n"); + fprintf(stderr, "-t END\n"); + exit(1); + } + if (s < 0 || (i = isigopen(record, NULL, 0)) <= s) { + fprintf(stderr, "%s: invalid signal number %d\n", + argv[0], s); + exit(2); + } + if ((si = (WFDB_Siginfo *)malloc(i, sizeof(WFDB_Siginfo))) == NULL || + (v0 = (WFDB_Sample *)malloc(i, sizeof(WFDB_Sample))) == NULL || + (v1 = (WFDB_Sample *)malloc(i, sizeof(WFDB_Sample))) == NULL) { + fprintf(stderr, "%s: insufficient memory\n", argv[0]); + exit(3); + } + if (isigopen(record, si, i) <= s) + exit(2); + + if (annopen(record, &ai, 1) < 0) { + fprintf(stderr, "%s: can't read annotations\n", argv[0]); + exit(3); + } + + ms80 = strtim("0.08"); /* 80 milliseconds, in sample intervals */ + spm = strtim("1:0"); /* 1 minute, in sample intervals */ + if ((tfrom = strtim(from_string)) < 0L) /* start time */ + tfrom = -tfrom; /* convert absolute to elapsed time */ + epoch = tfrom + spm; + if ((tto = strtim(to_string)) < 0L) /* end time */ + tto = -tto; + while (getann(0, &annot) == 0) { /* read an annotation */ + if (annot.time > epoch) { + fprintf(stderr, "."); /* show progress by minutes read */ + epoch += spm; + } + if (annot.anntyp == WFON) /* found a `(', save its TOC */ + tpq = annot.time; + else if (annot.anntyp == WFOFF && tqrs > 0L) { + /* found a valid `)', update dt1 and dt */ + dt1 = ms80 + annot.time - tqrs; /* samples from QRS to J+80 */ + if (dt0 > 0L) dt = dt0 + dt1; /* samples from PQ to J+80 */ + } + else if (isqrs(annot.anntyp)) { /* found a beat label */ + tqrs = annot.time; + if (tpq > 0L) { /* previous `(' went with this beat, update dt0 */ + dt0 = tqrs - tpq; /* samples from PQ to QRS */ + tpq = 0L; + if (dt1 > 0L) dt = dt0 + dt1; + } + if (tqrs >= tfrom && dt0 > 0L && dt1 > 0L) { + if (tto > 0L && /* if tto is zero, continue to end of record */ + tqrs > tto) + break; /* nothing further to be done */ + /* tqrs, dt0, and dt1 are all valid: make a measurement */ + if (isigsettime(tqrs - dt0) < 0 || + getvec(v0) <= s) { + fprintf(stderr, + "%s: can't read signal %d at time %s\n", + argv[0], s, + mstimstr(tqrs - dt0)); + exit(4); + } + for (i = 1; i <= dt; i++) + if (getvec(v1) <= s) { + fprintf(stderr, + "%s: can't read signal %d at time %s\n", + argv[0], s, + mstimstr(tqrs - dt0 + i)); + exit(4); + } + dv = v1[s] - v0[s]; /* ST deviation, in ADC units */ + printf("%g\t%d\n", /* print a line of output */ + tqrs/spm, /* elapsed time in minutes */ + adumuv(s, dv)); /* ST deviation in microvolts */ + } + } + else /* found some other annotation: ignore it */ + continue; + } + if (dt == 0) { /* we didn't make any measurements -- complain */ + fprintf(stderr, "\n%s: no measurements made\n", argv[0]); + exit(5); + } + exit(0); +} diff -Naur -x doc -x wave-doc wfdb-10.2.1/lib/Makefile wfdb-10.2.2/lib/Makefile --- wfdb-10.2.1/lib/Makefile Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/lib/Makefile Thu Nov 29 19:22:57 2001 @@ -33,12 +33,12 @@ # type `make slib'. # _____________________________________________________________________________ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables diff -Naur -x doc -x wave-doc wfdb-10.2.1/lib/wfdb.h wfdb-10.2.2/lib/wfdb.h --- wfdb-10.2.1/lib/wfdb.h Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/lib/wfdb.h Thu Nov 29 19:22:57 2001 @@ -1,5 +1,5 @@ /* file: wfdb.h G. Moody 13 June 1983 - Last revised: 7 November 2001 wfdblib 10.2.1 + Last revised: 29 November 2001 wfdblib 10.2.2 WFDB library type, constant, structure, and function interface definitions _______________________________________________________________________________ @@ -33,7 +33,7 @@ /* WFDB library version. */ #define WFDB_MAJOR 10 #define WFDB_MINOR 2 -#define WFDB_RELEASE 1 +#define WFDB_RELEASE 2 #define WFDB_NETFILES 1 /* if 1, library includes code for HTTP, FTP clients */ /* Determine what type of compiler is being used. */ diff -Naur -x doc -x wave-doc wfdb-10.2.1/psd/Makefile wfdb-10.2.2/psd/Makefile --- wfdb-10.2.1/psd/Makefile Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/psd/Makefile Thu Nov 29 19:22:57 2001 @@ -32,12 +32,12 @@ # directory). # _____________________________________________________________________________ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables @@ -45,7 +45,7 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # _____________________________________________________________________________ -PACKAGE=wfdb-10.2.1 +PACKAGE=wfdb-10.2.2 # file: linux.def G. Moody 31 May 2000 # Last revised: 5 June 2000 # 'make' definitions for compiling the WFDB Software Package under Linux @@ -159,8 +159,8 @@ lib-post-uninstall: echo "Nothing to be done for lib-post-uninstall" # _____________________________________________________________________________ -# file: Makefile.tpl G. Moody 24 May 2000 -# Last revised: 6 June 2000 +# file: Makefile.tpl G. Moody 24 May 2000 +# Last revised: 29 November 2001 # This section of the Makefile should not need to be changed. # Programs to be compiled. @@ -186,7 +186,8 @@ sed s+/usr/local/bin+$(BINDIR)+g $(BINDIR)/hrmem sed s+/usr/local/bin+$(BINDIR)+g $(BINDIR)/hrplot cp plot2d plot3d $(BINDIR) - cd $(BINDIR); $(SETXPERMISSIONS) $(SCRIPTS) + $(SETXPERMISSIONS) $(BINDIR)/hrfft $(BINDIR)/hrlomb $(BINDIR)/hrmem \ + $(BINDIR)/hrplot $(BINDIR)/plot2d $(BINDIR)/plot3d uninstall: ../uninstall.sh $(BINDIR) $(XFILES) $(SCRIPTS) diff -Naur -x doc -x wave-doc wfdb-10.2.1/psd/Makefile.tpl wfdb-10.2.2/psd/Makefile.tpl --- wfdb-10.2.1/psd/Makefile.tpl Tue Oct 16 21:14:01 2001 +++ wfdb-10.2.2/psd/Makefile.tpl Thu Nov 29 18:29:13 2001 @@ -1,5 +1,5 @@ -# file: Makefile.tpl G. Moody 24 May 2000 -# Last revised: 6 June 2000 +# file: Makefile.tpl G. Moody 24 May 2000 +# Last revised: 29 November 2001 # This section of the Makefile should not need to be changed. # Programs to be compiled. @@ -25,7 +25,8 @@ sed s+/usr/local/bin+$(BINDIR)+g $(BINDIR)/hrmem sed s+/usr/local/bin+$(BINDIR)+g $(BINDIR)/hrplot cp plot2d plot3d $(BINDIR) - cd $(BINDIR); $(SETXPERMISSIONS) $(SCRIPTS) + $(SETXPERMISSIONS) $(BINDIR)/hrfft $(BINDIR)/hrlomb $(BINDIR)/hrmem \ + $(BINDIR)/hrplot $(BINDIR)/plot2d $(BINDIR)/plot3d uninstall: ../uninstall.sh $(BINDIR) $(XFILES) $(SCRIPTS) diff -Naur -x doc -x wave-doc wfdb-10.2.1/wave/Makefile wfdb-10.2.2/wave/Makefile --- wfdb-10.2.1/wave/Makefile Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/wave/Makefile Thu Nov 29 19:22:57 2001 @@ -45,12 +45,12 @@ # just type `make' (from within this directory). # _____________________________________________________________________________ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables @@ -58,7 +58,7 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # _____________________________________________________________________________ -PACKAGE=wfdb-10.2.1 +PACKAGE=wfdb-10.2.2 # file: linux.def G. Moody 31 May 2000 # Last revised: 5 June 2000 # 'make' definitions for compiling the WFDB Software Package under Linux diff -Naur -x doc -x wave-doc wfdb-10.2.1/wave/README wfdb-10.2.2/wave/README --- wfdb-10.2.1/wave/README Sun Jan 30 04:13:20 2000 +++ wfdb-10.2.2/wave/README Mon Nov 26 17:58:40 2001 @@ -1,9 +1,9 @@ file: README G. Moody 2 July 1991 - Last revised: 5 May 1999 + Last revised: 26 November 2001 ------------------------------------------------------------------------------- WAVE: Waveform analyzer, viewer, and editor -Copyright (C) 1999 George B. Moody +Copyright (C) 2001 George B. Moody This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -25,13 +25,19 @@ This directory contains sources for `wave', an X11/XView-based program for analyzing and viewing database records and editing annotation files. For more -information about `wave', type `make help' in this directory, and read `wave.1' -in the `doc' directory at the same level as this one. Read `Makefile' in this -directory for information about compiling and installing `wave'. +information about `wave', read the WAVE User's Guide at + http://www.physionet.org/physiotools/wug/ +Sources for the WAVE User's Guide can be found in '../doc'. Other sources of +information include on-line text help (type `make help' in this directory) and +the WAVE 'man' page (type 'man wave' once this package has been installed, +or see `wave.1' in '../doc'. Read `Makefile' in this directory for information +about compiling and installing `wave'. The following files will be found in this directory: -Makefile UNIX `make' description file +Makefile UNIX `make' description file for compiling WAVE +Makefile.top Used by ../configure to construct Makefile (comments only) +Makefile.tpl Used by ../configure to construct Makefile (portable section) README this file Wave.res default X11 resource file analysis.hlp on-line help for Analyze panel and menu files @@ -45,8 +51,6 @@ edit.c annotation-editing functions editing.hlp on-line help for editing functions faq.hlp frequently asked questions -gcc-patches patches to be applied to OpenWindows *.h files for use with - certain early versions of gcc (the GNU C compiler) grid.c grid drawing functions help.c spot help functions from XView (see included copyright notice) helppan.c functions for the help panel @@ -55,9 +59,11 @@ log.hlp on-line help for log functions logpan.c functions for the log panel mainpan.c functions for the main control panel -mglass.xbm bitmap for spot help magnifying glass icon mglass_mask.xbm bitmap mask for spot help magnifying glass icon +mglass.xbm bitmap for spot help magnifying glass icon modepan.c functions for the mode panel +nomake dummy 'Makefile' used by ../configure if XView is missing + (WAVE cannot be compiled in this case) printing.hlp on-line help for printing functions resource.hlp on-line help for setting X11 resources scope.c scope window functions @@ -67,11 +73,12 @@ wave.c main() function of `wave' wave.h constants, macros, global variables, and function prototypes wave.hl0 template for comprehensive help file -wave.inf template for XView spot help file -wave.info XView spot help file (generated by ../wave-guide/Makefile) +wave.info XView spot help file (generated by ../doc/wave/fixinfo) wave.prf template for `About WAVE ...' message -wavemenu.def default analysis menu wave.xbm bitmap for WAVE icon +wavemenu.def default analysis menu +xview-patches optional patches to be applied to XView *.h files (to avoid + warnings from gcc; read the file to see how to use it) xvwave.c XView support functions xvwave.h XView constants, macros, global variables, and function prototypes @@ -92,5 +99,3 @@ If you attempt to port WAVE to a new environment, please write to me to be sure of getting the most recent sources and to avoid duplication of effort in case your port is in progress or already finished. - -Please fill in and return the registration card to be kept informed of updates. diff -Naur -x doc -x wave-doc wfdb-10.2.1/wave/analyze.c wfdb-10.2.2/wave/analyze.c --- wfdb-10.2.1/wave/analyze.c Sun Oct 14 16:40:14 2001 +++ wfdb-10.2.2/wave/analyze.c Mon Nov 26 23:37:53 2001 @@ -1,5 +1,5 @@ /* file: analyze.c G. Moody 10 August 1990 - Last revised: 14 October 2001 + Last revised: 26 November 2001 Functions for the analysis panel of WAVE ------------------------------------------------------------------------------- @@ -306,7 +306,8 @@ PANEL_VALUE_DISPLAY_LENGTH, 3, PANEL_VALUE, signal_choice, PANEL_MIN_VALUE, 0, - PANEL_MAX_VALUE, nsig-1, + PANEL_MAX_VALUE, nsig > 0 ? nsig-1 : 0, + PANEL_INACTIVE, nsig > 0 ? FALSE : TRUE, PANEL_NOTIFY_PROC, set_signal, 0); signal_name_item = xv_create(analyze_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, "xxxxxxxxxxxxxx", 0); @@ -341,6 +342,7 @@ XV_HELP_DATA, "wave:file.analyze.signal_list", PANEL_VALUE_DISPLAY_LENGTH, 15, PANEL_VALUE_STORED_LENGTH, 1024, + PANEL_INACTIVE, nsig > 0 ? FALSE : TRUE, PANEL_NOTIFY_PROC, set_siglist, 0); reset_siglist(); @@ -814,7 +816,7 @@ maxrssiglistlen = siglistlen; } p = sigliststring; - *p = '\0'; + if (p) *p = '\0'; for (i = 0; i < siglistlen; i++) { sprintf(p, "%d ", siglist[i]); p += strlen(p); @@ -828,9 +830,11 @@ void reset_maxsig() { if (analyze_popup_active >= 0) { - xv_set(signal_item, PANEL_MAX_VALUE, nsig-1, 0); + xv_set(signal_item, PANEL_INACTIVE, nsig > 0 ? FALSE : TRUE, 0); + xv_set(signal_item, PANEL_MAX_VALUE, nsig > 0 ? nsig-1 : 0, 0); if (signal_choice >= nsig || signal_choice < 0) xv_set(signal_item, PANEL_VALUE, signal_choice = 0, 0); + xv_set(signal_name_item, PANEL_INACTIVE, nsig > 0 ? FALSE : TRUE, 0); xv_set(signal_name_item, PANEL_LABEL_STRING,signame[signal_choice], 0); } } diff -Naur -x doc -x wave-doc wfdb-10.2.1/wave/helppan.c wfdb-10.2.2/wave/helppan.c --- wfdb-10.2.1/wave/helppan.c Sun Jan 30 04:13:21 2000 +++ wfdb-10.2.2/wave/helppan.c Tue Nov 27 13:32:28 2001 @@ -1,10 +1,10 @@ /* file: helppan.c G. Moody 1 May 1990 - Last revised: 7 January 2000 + Last revised: 27 November 2001 Help panel functions for WAVE ------------------------------------------------------------------------------- WAVE: Waveform analyzer, viewer, and editor -Copyright (C) 2000 George B. Moody +Copyright (C) 2001 George B. Moody This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -84,7 +84,7 @@ } fprintf(stderr, "\nFor more information, type `more %s/wave/%s',\n", helpdir, HELPFILE); - fprintf(stderr, "or open `%s' using your web browser.\n", url); + fprintf(stderr, "or open `%s' using\nyour web browser.\n", url); exit(1); } @@ -217,7 +217,7 @@ 0); xv_create(help_panel, PANEL_MESSAGE, PANEL_LABEL_STRING, - "Copyright \251 George B. Moody 1999.", + "Copyright \251 1990-2001 George B. Moody.", 0); xv_create(help_panel, PANEL_BUTTON, diff -Naur -x doc -x wave-doc wfdb-10.2.1/wave/init.c wfdb-10.2.2/wave/init.c --- wfdb-10.2.1/wave/init.c Sun Oct 14 14:21:23 2001 +++ wfdb-10.2.2/wave/init.c Mon Nov 26 23:35:58 2001 @@ -1,5 +1,5 @@ -/* file: init.c G. Moody 1 May 1990 - Last revised: 14 October 2001 +/* file: init.c G. Moody 1 May 1990 + Last revised: 26 November 2001 Initialization functions for WAVE ------------------------------------------------------------------------------- @@ -145,10 +145,10 @@ second per signal. */ if (nsig < 0 || (freq = sampfreq(NULL)) <= 0.) freq = WFDB_DEFFREQ; - /* Quit unless at least one signal can be read. */ - if (nsig < 1) + /* Quit if isigopen failed. */ + if (nsig < 0) sprintf(ts, "Record %s is unavailable\n", record); - if (nsig < 1) { + if (nsig < 0) { #ifdef NOTICE Xv_notice notice = xv_create((Frame)frame, NOTICE, XV_SHOW, TRUE, @@ -247,7 +247,12 @@ else for (i = 0; i < siglistlen; i++) base[i] = canvas_height*(2*i+1.)/(2.*siglistlen); - abase = (nsig > 1) ? (base[i/2] + base[i/2-1])/2 : canvas_height*4/5; + if (nsig > 1) + abase = (base[i/2] + base[i/2-1])/2; + else if (nsig > 0) + abase = canvas_height*4/5; + else + abase = canvas_height/2; } /* Calibrate() sets scales for the display. Ordinate (amplitude) scaling diff -Naur -x doc -x wave-doc wfdb-10.2.1/wave/makewave wfdb-10.2.2/wave/makewave --- wfdb-10.2.1/wave/makewave Wed May 24 22:35:27 2000 +++ wfdb-10.2.2/wave/makewave Wed Dec 31 19:00:00 1969 @@ -1,288 +0,0 @@ -# file: makewave G. Moody 1 May 1990 -# Last revised: 1 April 2000 WAVE 6.3 -# `make' description file for WAVE (renamed to `Makefile' by ../configure) -# -# ----------------------------------------------------------------------------- -# WAVE: Waveform analyzer, viewer, and editor -# Copyright (C) 2000 George B. Moody -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 59 Temple -# Place - Suite 330, Boston, MA 02111-1307, USA. -# -# You may contact the author by e-mail (george@mit.edu) or postal mail -# (MIT Room E25-505A, Cambridge, MA 02139 USA). For updates to this software, -# please visit PhysioNet (http://www.physionet.org/). -# _____________________________________________________________________________ -# -# This file is used with the UNIX `make' command to compile and install WAVE. -# WAVE can be compiled and run only on UNIX systems, although any networked -# system with an X11 server can be used to view its output; suitable servers -# are available for MS-DOS, the Macintosh, and VAX VMS as well as UNIX. -# In order to compile WAVE, you must have already installed the X11 Xlib -# (libX11.a), XView (libxview.a), and WFDB (libwfdb.a) libraries, and their -# associated header files (in /usr/include/X11, /usr/include/xview, and -# /usr/include/ecg respectively). The WFDB library source is included with the -# WAVE distribution (in the `lib' directory at the same level as this one). -# Xlib and XView are freely available by anonymous FTP as parts of the X11R4 -# distribution from expo.lcs.mit.edu and other sites, or from the MIT Software -# Distribution Center, MIT Room E32-300, Cambridge, MA 02139 USA; telephone -# +1-617-253-6966. See the main help file (wave.hl0, in this directory) for -# further information. -# -# Before using this file for the first time, check that the site-specific -# variables below are appropriate for your system. To build and install WAVE, -# just type `make' (from within this directory). - -# Site-specific variables -# ----------------------- - -# WAVEVERSION is the WAVE version number. -WAVEVERSION = 6.3 - -# Choose directories in which to install WAVE and its ancillary files by -# editing the variables below. You will need write permission in all of them -# in order to install WAVE successfully, and WAVE users will need read -# permission in all of them. If the directories don't exist already, they -# will be created with appropriate permissions by the installation procedure. - -# This section of site-dependent variables specifies the locations in your -# file system where the WAVE software and data files will be installed. -# You may choose a different set of locations if you prefer, but documentation -# included in this package generally assumes that you have used the defaults -# given here. You will need write permission in all of the directories named -# in this section, and users of the software will need read permission in all -# of these directories. Generally, you will need `root' permissions in order -# to install the software in the standard places. To do so, uncomment the next -# line. -WFDBROOT = /usr -# If you do not have `root' permissions, a reasonable alternative to the -# standard installation is to put everything into directories called `include' -# and `local' within the current directory (or any other writeable directory). -# To use the current directory for this purpose, replace `xxx' below with the -# full pathname of the current directory, and uncomment the next line. -# WFDBROOT = xxx - -# BINDIR specifies the directory in which WAVE is to be installed; it should -# be a directory in the PATH of those who will use WAVE. -BINDIR = $(WFDBROOT)/local/bin - -# INCDIR should be one of the directories searched by your C compiler for -# #include <...> files. -INCDIR = $(WFDBROOT)/include - -# HELPDIR specifies the directory in which the on-line help files are kept. -# The installation procedure creates a subdirectory, `wave', in HELPDIR, and -# installs several files there. -HELPDIR = $(WFDBROOT)/local/help - -# LIBDIR should be one of the directories searched by CC's loader for -l... -# libraries. -LIBDIR = $(WFDBROOT)/local/lib - -# MENUDIR specifies the directory in which the default analysis menu file is -# kept. -MENUDIR = $(WFDBROOT)/local/lib - -# RESDIR specifies the directory in which X11 client resource files are kept. -RESDIR = $(WFDBROOT)/lib/X11/app-defaults - -# CC is the name of your C compiler. WAVE can be compiled with K&R C compilers -# (`cc' on most if not all UNIX systems) as well as with ANSI C compilers such -# as GNU C (`gcc'). -CC = cc - -# CFLAGS is the set of C compiler options. Add the following options to CFLAGS -# as appropriate (separating them by spaces if you use more than one): -# -g to save symbols for debugging -# -O if you trust your C compiler's optimizer -# Except for `gcc', most C compilers won't let you use both -g and -O. -CFLAGS = -O -I$(INCDIR) -I/usr/openwin/include - -# HELPOBJ can be set to "help.o" if you wish to recompile the XView spot help -# functions in "help.c" (recommended under Linux). -HELPOBJ = help.o -# Otherwise, use the version in libxview by uncommenting the next line: -# HELPOBJ = - -# OPENWINHOME specifies the root directory of the OpenWindows hierarchy. -# This is usually /usr/openwin. -OPENWINHOME = /usr/openwin -# Need to use /usr/local on BIH SunOS systems to generate OW 3.0-compatible -# executables. -# OPENWINHOME = /usr/local -# OPENWINHOME = /usr/i486-linuxaout - -# OWINCDIR is the directory in which the `xview' directory containing XView -# *.h files is found. -OWINCDIR = $(OPENWINHOME)/include - -# OWLIBDIR is the directory in which the XView library is found. -OWLIBDIR = $(OPENWINHOME)/lib - -# LDFLAGS is the set of loader options appended to the C compiler command line -# to specify loading the WFDB, XView, and Xlib libraries. Unless you have -# changed the value of WFDBLIB in the `makefile' for the WFDB library, `-lwfdb' -# should be correct for the WFDB library; the other library names are probably -# correct unless your X installation is non-standard. If you have installed -# XView 1.0.1 from the X11R4 distribution, uncomment the next line. -# LDFLAGS = -lwfdb -lxview -lX11 -# If you have XView 2.0 or later, you will also need the Open Look graphics -# library (libolgx); in this case, uncomment the next line. -LDFLAGS = -L$(OWLIBDIR) -L/usr/X11R6/lib -L$(LIBDIR) \ - -lwfdb -lxview -lolgx -lX11 -# Users of Red Hat Linux 5.0 or 5.1 (not later versions), use this instead: -# LDFLAGS = -L$(OWLIBDIR) -L/usr/X11R6/lib -L$(LIBDIR) \ -# -lwfdb /usr/openwin/lib/libxview.a /usr/openwin/lib/libolgx.a -lX11 -# This setting avoids incompatibilities with the shared (dynamic) libraries. -# If you use another version of Linux, or another OS, and have difficulty -# related to WAVE's Analysis commands window, try this workaround, and let -# me know if it works (or if it doesn't work). - -# PRINT is the name of the program used to produce listings (including any -# options for the desired formatting). -PRINT = lpr - -# SETXPERMISSIONS is the command needed to make installed programs accessible -# to those who will use them. The value given below makes them readable and -# executable by everyone, and writeable by the owner only. (If you perform the -# installation as `root', `root' is the owner of the installed files.) -SETXPERMISSIONS = chmod 755 - -# SETDPERMISSIONS is similarly used to make directories created during the -# installation accessible; its value is usually identical to SETXPERMISSIONS. -SETDPERMISSIONS = chmod 755 - -# SETPERMISSIONS is similarly used to make installed data files accessible. -# These files should not be marked as executable. -SETPERMISSIONS = chmod 644 - -# STRIP is the command needed to strip the symbol table from the executable. -# Uncomment the next line to strip the symbol table for compactness. -STRIP = strip -# Uncomment the next line to retain the symbol table for debugging purposes. -# STRIP = echo - -# It should not be necessary to modify anything below this line. -# ----------------------------------------------------------------------------- - -HFILES = wave.h bitmaps.h xvwave.h -CFILES = wave.c init.c mainpan.c modepan.c helppan.c logpan.c annpan.c edit.c \ - grid.c sig.c annot.c analyze.c scope.c search.c xvwave.c help.c -OFILES = wave.o init.o mainpan.o modepan.o helppan.o logpan.o annpan.o edit.o \ - grid.o sig.o annot.o analyze.o scope.o search.o xvwave.o $(HELPOBJ) -HELPFILES = analysis.hlp buttons.hlp editing.hlp faq.hlp intro.hlp log.hlp \ - printing.hlp resource.hlp -OTHERFILES = wave.hl0 wave.info wave.pro demo.txt Wave.res wavemenu.def \ - Makefile - -# `make' or `make install': compile and install WAVE and its help files -install: wave wave.hlp - test -d $(BINDIR) || \ - ( mkdir -p $(BINDIR); $(SETDPERMISSIONS) $(BINDIR) ) - test -d $(HELPDIR)/wave || \ - ( mkdir -p $(HELPDIR)/wave; $(SETDPERMISSIONS) $(HELPDIR)/wave ) - test -d $(MENUDIR) || \ - ( mkdir -p $(MENUDIR); $(SETDPERMISSIONS) $(MENUDIR) ) - test -d $(RESDIR) || \ - ( mkdir -p $(RESDIR); $(SETDPERMISSIONS) $(RESDIR) ) - sed s/WAVEVERSION/$(WAVEVERSION)/ wave.pro - $(STRIP) wave; cp wave $(BINDIR); $(SETXPERMISSIONS) $(BINDIR)/wave - cp $(HELPFILES) wave.hlp wave.info wave.pro demo.txt $(HELPDIR)/wave - -ln -s $(HELPDIR)/wave/wave.pro $(HELPDIR)/wave/news.hlp - cd $(HELPDIR)/wave; $(SETPERMISSIONS) $(HELPFILES) news.hlp wave.info \ - wave.pro demo.txt - -cp wavemenu.def $(MENUDIR) && \ - $(SETPERMISSIONS) $(MENUDIR)/wavemenu.def - -cp Wave.res $(RESDIR)/Wave && $(SETPERMISSIONS) $(RESDIR)/Wave - -# `make help': show help text -help: - @echo "*************************************************************" - @echo "To print the WAVE manual, type 'make manual'." - @echo "If you have a PostScript Printer, you may also wish to print" - @echo "the WAVE User's Guide, by typing 'make guide'." - @echo "*************************************************************" - @echo - @echo -n "Press to view the manual on-screen: " - @read x - @echo - @soelim wave.hl0 | more - @echo - @echo "*************************************************************" - @echo "To print the WAVE manual, type 'make manual'." - @echo "If you have a PostScript Printer, you may also wish to print" - @echo "the WAVE User's Guide, by typing 'make guide'." - @echo "*************************************************************" - -wave: $(OFILES) - $(CC) -o wave $(OFILES) $(LDFLAGS) - -wave-static: $(OFILES) - $(CC) -o wave-static $(OFILES) -static $(LDFLAGS) - -soelim: soelim.c - $(CC) -o soelim -O soelim.c - -wave.hlp: soelim wave.hl0 $(HELPFILES) - ./soelim wave.hl0 >wave.hlp - -wave.pro: - sed s/WAVEVERSION/$(WAVEVERSION)/ wave.pro - -# `make manual': print the on-line manual -manual: - ./soelim wave.hl0 | $(PRINT) - -# `make guide': print the WAVE User's Guide -guide: - cd ../../manuals/wavguide; make guide - -# `make TAGS': make an `emacs' TAGS file -TAGS: $(HFILES) $(CFILES) - @etags $(HFILES) $(CFILES) - -# `make clean': remove intermediate and backup files -clean: - rm -f soelim wave wave-static *.o *~ wave.hlp wave.pro - -# `make listing': print a listing of WAVE sources -listing: wave.hlp wave.pro - $(PRINT) README REGCARD $(HFILES) $(CFILES) $(HELPFILES) $(OTHERFILES) - -# Dependencies and special rules for compilation of the modules of `wave' -wave.o: wave.h wave.c - $(CC) -c $(CFLAGS) -DHELPDIR=\"$(HELPDIR)\" wave.c -init.o: wave.h xvwave.h init.c -mainpan.o: wave.h xvwave.h mainpan.c Makefile - $(CC) -c $(CFLAGS) -DWAVEVERSION=\"$(WAVEVERSION)\" mainpan.c -modepan.o: wave.h xvwave.h modepan.c -helppan.o: wave.h xvwave.h helppan.c - $(CC) -c $(CFLAGS) -DWAVEVERSION=\"$(WAVEVERSION)\" helppan.c -logpan.o: wave.h xvwave.h logpan.c -annpan.o: wave.h xvwave.h annpan.c -edit.o: wave.h xvwave.h edit.c -grid.o: wave.h xvwave.h grid.c -search.o: wave.h xvwave.h search.c -sig.o: wave.h xvwave.h sig.c -annot.o: wave.h xvwave.h annot.c - $(CC) -c $(CFLAGS) -DWAVEVERSION=\"$(WAVEVERSION)\" annot.c -analyze.o: wave.h xvwave.h analyze.c - $(CC) -c $(CFLAGS) -DMENUDIR=\"$(MENUDIR)\" analyze.c -scope.o: wave.h xvwave.h scope.c -xvwave.o: wave.h xvwave.h bitmaps.h xvwave.c - $(CC) -c $(CFLAGS) -DRESDIR=\"$(RESDIR)\" xvwave.c -help.o: help.c - $(CC) -c $(CFLAGS) -w help.c diff -Naur -x doc -x wave-doc wfdb-10.2.1/wave/wave.inf wfdb-10.2.2/wave/wave.inf --- wfdb-10.2.1/wave/wave.inf Fri Nov 16 01:25:07 2001 +++ wfdb-10.2.2/wave/wave.inf Wed Dec 31 19:00:00 1969 @@ -1,1005 +0,0 @@ -# file: wave.info G. Moody 21 August 1990 -# Last revised: 7 September 1999 WAVE 6.5 -# XView spot help file for `wave' -# -# ----------------------------------------------------------------------------- -# WAVE: Waveform analyzer, viewer, and editor -# Copyright (C) 1999 George B. Moody -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 59 Temple -# Place - Suite 330, Boston, MA 02111-1307, USA. -# -# You may contact the author by e-mail (george@mit.edu) or postal mail -# (MIT Room E25-505A, Cambridge, MA 02139 USA). For updates to this software, -# please visit PhysioNet (http://www.physionet.org/). -# _____________________________________________________________________________ - -:file:%sec:file-menu% -This button opens a pull-down menu containing -selections for loading, saving, printing, -analyzing, and logging database files. -# - -:file.load:%sec:load-window% -This selection pops up a window in which you -can enter a new record or annotator name, or -change the name of the WFDB calibration -file or the value of the WFDB path within this -window. -# - -:file.load.record -Specifies the name of the record to be viewed. -The initial value of this field is the name of the -record that you specified on the command line. -To view another record, select this field and -enter another record name. - -Your edits, if any, are saved automatically -whenever you change records. Only one level of -backup is preserved, so you will overwrite the -original annotation file if it is in the current -directory and you open the same annotator more -than once. -# - -:file.load.annotator -Specifies the name of the annotator whose -annotations are shown. If you specified an -annotator on the command line, the annotator name -is the initial value of this field; otherwise, the -field is initially empty. Fill in or change this -field to view or edit a different set of -annotations. - -Your edits, if any, are saved automatically -whenever you change records. Only one level of -backup is preserved, so you will overwrite the -original annotation file if it is in the current -directory and you open the same annotator more -than once. -# - -:file.load.calibration_file:url_view /usr/local/help/html/dbag/wfdbcal-5.htm -Specifies the name of the WFDB calibration file -(a text file containing information on the -relative scales of many types of signals). -Include path information in this field only if -the WFDB calibration file is not found in the -WFDB path. -# - -:file.load.wfdb_path -Specifies the search path for WAVE's input -files. Components are directory names, -separated by colons (`:'). An empty component -(either an initial or final colon, or two -consecutive colons) specifies the current -directory. If `%r' appears in the WFDB path, -it is replaced by the current record name. -# - -:file.save -If there are unsaved edits, this selection saves -them. The annotator name in the title bar is -marked with parentheses if there are unsaved -edits. -# - -:file.print:%fig:chart1% -This selection prints the contents of the signal -window on paper. The output is made from the -original signal files, and therefore is of better -quality than a screen dump would be. Your edits, -if any, are saved before printing, so that the -output reflects any changes you have made. -# - -:file.printsetup:%sec:print-setup-window% -This selection pops up a panel that shows the -commands WAVE uses to print PostScript and text -data from the standard input. You may change -these commands (for example, to specify use of -a different printer) by typing the desired -commands into the appropriate fields on the panel. -# - -:file.printsetup.psprint -WAVE supplies any PostScript data to be printed -(such as the chart generated when you choose -Print from the File menu) to the standard input -of this command. You may change this command -(for example, to specify use of a different -printer). -# - -:file.printsetup.textprint -WAVE supplies any text to be printed (such as -on-line help) to the standard input of this -command. You may change this command (for -example, to specify use of a different printer). -# - -:file.analyze:%sec:analyze-window% -This selection pops up a panel containing a set of -buttons, and a terminal emulator window. The -names of the buttons and their assigned actions -are read from a configuration file (by default, -`wavemenu' if it exists in the current directory, -otherwise /usr/local/lib/wavemenu.def; this may be -overridden by setting the environment variable -WAVEMENU to the name of a different file). The -buttons are usually configured to perform various -analysis functions on the current record; read -/usr/local/lib/wavemenu.def for details. -# - -:file.analyze.< -Press this button to shift the segment to be -analyzed in the direction of the beginning of the -record, without changing the duration of the -segment. The current `Start:' becomes the new -`End:', unless doing so would require shortening -the length of the segment. -# - -:file.analyze.start -This field specifies the elapsed time from the -beginning of the record to the beginning of the -segment to be analyzed. You may enter a time -directly in this field, or you may insert a `<' -marker using the standard procedure for inserting -annotations. - -To enter a time in sample or counter intervals, -enter `s' or `c' in this field, followed by the -desired number of intervals. Examples: - s123 sample number 123 - c20 counter number 20 -WAVE converts your entry to hh:mm:ss format when -you press RETURN. -# - -:file.analyze.astart -This field specifies the time of day of the -beginning of the segment to be analyzed. You may -enter the time directly in this field (in 24-hour -clock format), or you may insert a `<' marker -using the standard procedure for inserting -annotations. - -To set both date and time, change the date first, -then the time. -# - -:file.analyze.dstart -This field specifies the date of the beginning of -the segment to be analyzed. If you change this -field, the start time will change to midnight or -to the time of the beginning of the record, -whichever is later. - -To set both date and time, change the date first, -then the time. -# - -:file.analyze.end -This field specifies the elapsed time from the -beginning of the record to the end of the segment -to be analyzed. You may enter a time directly in -this field, or you may insert a `>' marker using -the standard procedure for inserting annotations. - -To specify the end of the record, enter `e' in -this field. WAVE converts your entry to hh:mm:ss -format when you press RETURN. - -To enter a time in sample or counter intervals, -enter `s' or `c' in this field, followed by the -desired number of intervals. Examples: - s123 sample number 123 - c20 counter number 20 -# - -:file.analyze.aend -This field specifies the end of the segment to be -analyzed, expressed as absolute time of day. You -may enter a time directly in this field, or you -may insert a `<' marker using the standard -procedure for inserting annotations. - -To set both date and time, change the date first, -then the time. -# - -:file.analyze.dend -This field specifies the date of the end of -the segment to be analyzed. If you change this -field, the end time will change to midnight or -to the time of the beginning of the record, -whichever is later. - -To set both date and time, change the date first, -then the time. -# - -:file.analyze.> -Press this button to shift the segment to be -analyzed in the direction of the end of the -record, without changing the duration of the -segment. The current `End:' becomes the new -`Start:', unless the current `End:' is already -at or beyond the end of the record. -# - -:file.analyze.signal -This field specifies the selected signal. You -may enter a signal number directly in this field, -or you may point to a signal, depress the -key, and click left to select the signal. -In the WAVE menu, the symbol $SIGNAL refers to -the signal number of the selected signal; this -symbol usually specifies a signal to be analyzed. -The name of the selected signal appears to the -right of its signal number. The uppermost signal -displayed by WAVE is signal 0. -# - -:file.analyze.signal_list -This field specifies the signal list (a list of -signal numbers, separated by spaces). In the -WAVE menu, the symbol $SIGNALS refers to the -signal list; this symbol usually appears where -a list of signals to be analyzed is required. -To change the signal list, either type into this -field, or point to a signal, press and hold the - (to add the signal to the list) or the - key (to delete the first occurrence of the -signal from the list), and click left. -# - -:file.analyze.show_scope_window:%sec:scope-window% -This button pops up WAVE's Scope window, -which can be used to display a signal in -`oscilloscope' mode. -# - -:file.analyze.show_command_window:%fig:analysis-commands% -This button pops up a terminal emulator window -that receives commands generated by selecting -most of the other buttons in this window, and -that displays any text output of those commands. -You may type commands directly into the window. -# - -:file.analyze.edit_menu:%fig:wave-menu% -This button allows you to edit the menu -configuration file for this panel, using the -text editor named in the EDITOR environment -variable (or `textedit' if EDITOR is not set). -After you have saved your changes, select -`Reread menu' to reconfigure this panel. -# - -:file.analyze.reread_menu:%fig:wave-menu% -Select this button to reconfigure this panel -after you have made changes to the menu -configuration file (most easily done by -using the `Edit menu' button) or after -changing records. -# - -:file.analyze.reload -Click on this button to force WAVE to reload -its input (signal and annotation) files. WAVE -waits for any foreground commands in the Analysis -Commands window to finish before reloading. -# - -:file.analyze.analysis_button -This button performs an action determined by the -WAVE analysis menu file. If the environment -variable WAVEMENU is set, it names that file; -otherwise, `wavemenu' (if it exists in the current -directory) or `/usr/local/lib/wavemenu.def' is the -analysis menu file. -# - -:file.log:%sec:log-window% -This selection pops up a window that allows you to -name a log file, and to record in that file the -current record name and start and end time entries -from the main panel, along with a one-line -comment. Log files may be used as scripts for -`pschart'. You may write to as many log files in -a single session as you choose, and you may -accumulate entries from multiple sessions in a -single log file. Your entry is not recorded -unless you press the `Add' button on the log -panel. If you press the `>>' button, WAVE will -review the log, displaying the waveforms -associated with each entry and pausing between -entries. The review can be stopped by pressing -`Pause'. -# - -:file.log.file -This field names the current log file. -# - -:file.log.load -Press this button to load (or reload) the -log if an external process (such as one started -from the Analyze panel) creates or modifies the -log file. -# - -:file.log.description -This field contains the description associated -with the current log entry. -# - -:file.log.review_delay -Adjust the slider to set the length (in seconds) -of the pause between log entries while using the -`<<' or `>>' buttons to review the log. -# - -:file.log.add -This button adds an entry containing the time, -the record name, and the description to the -log file. If an annotation or marker has been -selected (i.e., if it is shown marked with a -box), that annotation will be selected whenever -the entry is redisplayed. -# - -:file.log.replace -This button replaces the description attached -to the current log entry with the current -contents of the description field. It does -not create a new entry (use the `Add' button -for that purpose). -# - -:file.log.delete -This button deletes the current entry from -the log. This button also causes WAVE to -display the next log entry if it exists. -# - -:file.log.edit -This button is currently non-functional. -# - -:file.log.|< -This button causes WAVE to show the first -log entry. -# - -:file.log.<< -This button causes WAVE to begin reviewing -each entry in the log file in reverse order, -pausing between entries. While a review is -in progress, only the Pause button is -enabled. - -Adjust the length of the pause (in seconds) -using the `Delay' slider. -# - -:file.log.< -This button causes WAVE to show the previous -log entry. -# - -:file.log.pause -This button causes WAVE to stop the review of -the log file that was begun by the `<<' or -`>>' button. This button is disabled unless a -review is in progress. -# - -:file.log.> -This button causes WAVE to show the next -log entry. -# - -:file.log.>> -This button causes WAVE to begin reviewing -each entry in the log file, pausing between -entries. While a review is in progress, -only the Pause button is enabled. - -Adjust the length of the pause (in seconds) -using the `Delay' slider. -# - -:file.log.>| -This button causes WAVE to show the last -log entry. -# - -:view:%sec:view-window% -This button pops up the View window, which allows -you to choose (or merely examine) display scales, -grid styles, and annotation, signal, and time -display styles. Changes are not effective until -the signal window is redrawn. -# - -:view.show -Toggle these options by selecting them. Multiple -annotation fields are shown in the following -arrangement: - - annotation mnemonic - subtype - `chan' field - `num' field - `aux' field - -Signal names and baselines are defined in the -header file. Markers show the precise locations -of all annotations. Levels show the amplitudes of -each signal at the time indicated by the pointer, -whenever a mouse button is depressed. Changes are -not effective until the signal window is redrawn. -# - -:view.time_scale - -Choose the horizontal scale by selecting one of -the choices. - -You can check the calibration of the display by -enabling the 0.2 s or 0.2 s x 0.5 mV grid, and -then by measuring the spacing of the grid lines. -If the spacing is incorrect, your X server does -not know the actual display resolution. See your -X server documentation if this is the case, or use -the -dpi option when starting `wave' (start `wave' -with no arguments for instructions). -# - -:view.amplitude_scale -Choose the vertical scale by selecting one of the -choices. - -You can check the calibration of the display by -enabling the 0.5 mV or 0.2 s x 0.5 mV grid, and -then by measuring the spacing of the grid lines. -If the spacing is incorrect, your X server does -not know the actual display resolution. See your -X server documentation if this is the case, or use -the -dpi option when starting `wave' (start `wave' -with no arguments for instructions). -# - -:view.draw -Use this control to toggle WAVE's signal display -mode. By default, WAVE displays all signals in -order of signal number, with signal 0 at the top -of the signal window. If you select `listed -signals only', WAVE displays only those signals -that appear in the signal list (on the Analyze -panel). Changes are not effective until the -signal window is redrawn. -# - -:view.show_annotations -Use this menu button to choose how annotations -are to be displayed. By default, WAVE displays -annotations in the center of the signal window. -If you select `attached to signals', each -annotation appears near the signal specified by -its `chan' field. If you select `as a signal', -WAVE draws a signal derived from the `num' fields -of any annotations in the window, in place of the -standard annotation display. Changes are not -effective until the signal window is redrawn. -# - -:view.overlap -Use this menu button to control the display of -long annotation text. By default, WAVE will -truncate the display of annotation text that is -longer than 3 characters, if it would overlap -the display of another annotation. Choose -`allow overlap' if you wish to have WAVE display -as much of the text as will fit in the screen -(text may still be truncated at the right edge -of the signal window). Changes are not effective -until the signal window is redrawn. - -The full text (up to 80 characters) of the -currently selected annotation, if any, appears in -the footer of the signal window (at left). Move -the pointer just to the left (or right) of an -annotation and click right (or left) to select -it. -# - -:view.time_display -By default, WAVE displays elapsed time from the -beginning of the record in hh:mm:ss format. -Use this control to select display of absolute -time (if defined for the record), or to display -time in sample intervals. If you select absolute -time display, you may enter absolute times in -the Find and Analyze panels. Changes are not -effective until the signal window is redrawn. -# - -:view.grid -Use this menu button to select a grid style. -Changes are not effective until the signal window -is redrawn. -# - -:view.undo -This button cancels any changes you have made to -the View window settings and restores the -indicators to reflect the current settings. -# - -:view.redraw -This button causes WAVE to accept any changes -you have made in the View panel. Pressing -the `Redraw' button dismisses the View window -and refreshes the signal window. -# - -:view.save_as_new_defaults:%sec:resources% -This button causes WAVE to record the current -View panel settings in your .Xdefaults file -(at the same time erasing any comments in -that file). These settings become the new -defaults for your future WAVE sessions. - -:edit:%sec:edit-menu% -This button brings up the Edit menu, which -allows you to specify if annotation editing -is to be allowed or forbidden. By default, -editing is forbidden when WAVE starts up. -# - -:edit.allow_editing -This selection allows you to make changes to the -annotation buffer. By default, editing is -forbidden when WAVE starts up. -# - -:edit.view_only -This selection disallows annotation editing. -You may still edit `<', `:', and `>' markers. -# - -:prop:%sec:prop-menu% -This button brings up the Properties menu, -with selections for obtaining information -about the current signal and annotation files -and about this version of WAVE. -# - -:prop.signals:url_view /usr/local/help/html/dbag/wfdbdesc-1.htm -This selection pops up a window containing -information about the signals of the current -record, obtained by running `wfdbdesc'. -# - -:prop.annotations:url_view /usr/local/help/html/dbag/sumann-1.htm -This selection pops up a window containing -a summary of the contents of the annotation -buffer, obtained by running `sumann' (after -saving any edits). -# - -:prop.wave -This selection pops up a window containing -the version number and installation date of -this version of WAVE. This window may also -contain news about recent changes in WAVE. -# - -:" -buttons. -# - -:find.start_time -Specifies the time of the sample shown at the left -edge of the signal window, in the format specified -by the `Time display' item in the View window. Go -to any other part of the record by entering the -time in this field. - -Time can be entered in h:m:s format, with hours or -hours and minutes omitted, or in sNNNNN format, in -which NNNNN is a number of sample intervals from -the beginning of the record. -# - -:find.end_time -Specifies the elapsed time from the beginning of -the record to the sample shown at the right edge -of the signal window, in hours, minutes, -and seconds. Go to any other part of the record -by entering the time in this field. - -Time can be entered in h:m:s format, with hours or -hours and minutes omitted, or in sNNNNN format, in -which NNNNN is a number of sample intervals from -the beginning of the record. -# - -:find.search_for -Specifies a target for the "< Search" and "Search ->" buttons. Changing this field causes an -immediate forward search. The contents of this -field should match an annotation or marker -mnemonic, signal quality code, rhythm, comment, or -other text string, or one of the following: - - *v to match any ventricular ectopic beat - *s to match any supraventricular ectopic beat - *n to match any other beat type - * to match any annotation or marker - . to match a deletion made during this edit -# - -:find.more_options:%sec:search-template-window% -This button clears the contents of the "Search for" -field and opens the Search Template window. -# - -:> -This button scrolls the signal window towards the end -of the record, by an amount equal to half of the -width of the signal window. -# - -:>> -This button scrolls the signal window towards the end -of the record, by an amount equal to the width of -the signal window (i.e., a full screen). -# - -:search> -This button recenters the signal window on the next -occurrence of an annotation or marker that -matches the entry in the `Search for' field of the -Find window, if any. If no match is found, a -notice is posted, but the signal window is not -recentered. - -If the `Search for' field is empty, any annotation -or marker will be counted as a match. -# - -:help:%sec:help-topics-window% -This button pops up a panel containing buttons -that name several topics for which extensive -on-line help is available. Choosing a topic -allows you to browse through the associated help -file in a scrollable text window. -# - -:help.intro -Press this button for a quick introduction to -WAVE's features. -# - -:help.buttons -Press this button for a summary of the functions -of the buttons on WAVE's control panels. -# - -:help.editing -Press this button for a summary of annotation -editing procedures. -# - -:help.faq -Press this button for answers to common -questions about using WAVE. If you are having -trouble getting started, read this topic. -# - -:help.logs -Press this button for information about creating -and reviewing WAVE log files. -# - -:help.printing -Press this button for an overview of methods of -printing annotated signals from WAVE. -# - -:help.analysis -Press this button for information about using -and customizing the Analyze panel. -# - -:help.resources -Press this button for information about setting -WAVE-specific X11 resources. -# - -:help.news -Press this button for information about recent -changes in WAVE. -# - -:help.print -Press this button to print the contents of the -text window on the default printer. -# - -:help.ug -Press this button to view the WAVE User's Guide -using a web browser. - -If Netscape version 1.1 or later has not been -installed on this system, this button may not -work. To use another browser, redefine the -action associated with in WAVE's -menu file (choose Analyze from the File menu, -then `Edit Menu' in the Analyze window). Read -the notes in the menu file for details. -# - -:help.quit -Press this button to dismiss the main Help -window. -# - -:quit -`wave' exits when you press this button, after -saving your edits if any. If your input file -would be overwritten as a result of saving your -edits, it is first renamed by appending a tilde -(`~') to its annotator name. - -If you have entered annotations but have not -specified an annotator, the name by which you -invoked this program (normally, `wave') is used -for the annotator name. -# - -:main_panel -This is the main control panel of WAVE. -Move the pointer onto any of the controls -and press the HELP key for further -information. -# - -:canvas -This is the signal window, in which signals and -annotations are displayed. For information -about using the mouse in this window, press -the `Help' button and select the `Annotation -Editing' topic from the Help window. -# - -:annot.type:%fig:annotation-template% -This field specifies the type of annotation -to be inserted. It may be changed by selecting -a new value from the pull-down menu, by typing -the mnemonic while the pointer is within the -signal window, or by selecting an existing -annotation and pressing the or -keys. -# - -:annot.text -This field specifies the contents of the -optional annotation `aux' field. It may be -changed by typing into it directly or by -selecting an existing annotation and pressing -the or keys. In most cases, it -should be empty, but it must be filled in for -rhythm and certain other non-beat annotations. -When the annotation is written, WAVE prefixes -the required byte count to this field before -transferring it to the `aux' field. -# - -:annot.subtype -This field specifies the contents of the -annotation `subtyp' field. In most cases, -it should be 0; legal values range from --128 to +127. -# - -:annot.chan -This field specifies the contents of the -annotation `chan' field. In most cases, -it should be 0; legal values range from --128 to +127. -# - -:annot.num -This field specifies the contents of the -annotation `num' field. In most cases, -it should be 0; legal values range from --128 to +127. -# - -:annot.change -This button changes all annotations between -the `<' and `>' markers (the Start and End -times on the Analyze panel) to match the -annotation template. -# - -:annot.dismiss -This button makes the Annotation Template -window disappear (until the left mouse -button is pressed while the pointer is -within the signal window). -# - -:level.show -Choose how time and signal levels are -displayed in the Level window using this -menu. Physical units are seconds (time) -and units defined in the record's header -file for each signal. WFDB units are -sample intervals and analog-to-digital -converter units (adu). In relative mode, -all measurements are shown as differences -between the current location and the -reference location. -# - -:level.time -This area shows either the time of the -measurements shown in the rest of the -window (if absolute mode is selected), -or the time interval from the reference -mark (if relative mode is selected). -# - -:level.signame -The names of the signals appear in the -left column of the Level window. -# - -:level.value -The levels of the signals at the chosen -time are indicated in the center column. -# - -:level.units -The third column indicates the physical -units of each signal. If an asterisk -(*) appears next to any units, this -indicates that the signal has not been -calibrated. -# - -:level.dismiss -This button closes the Level window. -# - -:scope_panel:%sec:scope-window% -This panel contains controls for the -Scope window, which displays the signal -indicated by the Signal control in the -Analyze window. -# - -:scope_panel.speed -This slider controls the playback speed. -Click left on the slider and drag it -to the desired position -- lower to -reduce speed, higher to increase speed. -# - -:scope_panel.dt -This field specifies the interval -from the left edge of the scope window -to the annotated sample, in seconds. -Negative values may be used to shift the -left edge of the scope window past the -annotated sample. - -Drag the resize corners to change the -interval between the left and right -edges of the scope window. -# - -:scope_panel.<< -This button displays frames -continuously in reverse order. -Use the Pause button to interrupt -the display. The display stops when it -reaches the beginning of the record, -an index mark (`:'), or the `<' marker. -# - -:scope_panel.< -This button displays the previous -frame. -# - -:scope_panel.pause -This button freezes the scope display. -It also forces the signal window to be -redrawn, roughly centered on the time -shown at the bottom of the scope window. -# - -:scope_panel.> -This button displays the next frame. -# - -:scope_panel.>> -This button displays frames -continuously in normal order. -Use the Pause button to interrupt -the display. The display stops when it -reaches the end of the record, -an index mark (`:'), or the `>' marker. -# - -:scope_canvas:%sec:scope-window% -This is the scope window, which displays the -signal indicated on the Analyze panel. The -scales match those in the signal window (use -the controls in the View panel to set them). -Annotations trigger the scope. If annotations -in the signal window are attached to signals, -only those attached to the selected signal -trigger the scope. Click left or right to -single-step, middle to interrupt, ctrl+left -or ctrl+right to resume continuous display. -Change dt by ctrl+middle while pointing to -the desired location of the trigger point -within the window. The left, up, and right -arrows on the numeric keypad emulate the -mouse buttons. -# - -:bogus_keyword_to_mark_end - diff -Naur -x doc -x wave-doc wfdb-10.2.1/wave/wave.info wfdb-10.2.2/wave/wave.info --- wfdb-10.2.1/wave/wave.info Fri Nov 16 16:13:40 2001 +++ wfdb-10.2.2/wave/wave.info Tue Nov 27 18:17:31 2001 @@ -25,13 +25,13 @@ # please visit PhysioNet (http://www.physionet.org/). # _____________________________________________________________________________ -:file:url_view /usr/local/help/html/wug/node63.htm +:file:url_view /usr/help/html/wug/node63.htm This button opens a pull-down menu containing selections for loading, saving, printing, analyzing, and logging database files. # -:file.load:url_view /usr/local/help/html/wug/node64.htm +:file.load:url_view /usr/help/html/wug/node64.htm This selection pops up a window in which you can enter a new record or annotator name, or change the name of the WFDB calibration @@ -97,7 +97,7 @@ edits. # -:file.print:url_view /usr/local/help/html/wug/node14.htm +:file.print:url_view /usr/help/html/wug/node14.htm This selection prints the contents of the signal window on paper. The output is made from the original signal files, and therefore is of better @@ -106,7 +106,7 @@ output reflects any changes you have made. # -:file.printsetup:url_view /usr/local/help/html/wug/node65.htm +:file.printsetup:url_view /usr/help/html/wug/node65.htm This selection pops up a panel that shows the commands WAVE uses to print PostScript and text data from the standard input. You may change @@ -131,7 +131,7 @@ example, to specify use of a different printer). # -:file.analyze:url_view /usr/local/help/html/wug/node66.htm +:file.analyze:url_view /usr/help/html/wug/node66.htm This selection pops up a panel containing a set of buttons, and a terminal emulator window. The names of the buttons and their assigned actions @@ -269,13 +269,13 @@ signal from the list), and click left. # -:file.analyze.show_scope_window:url_view /usr/local/help/html/wug/node76.htm +:file.analyze.show_scope_window:url_view /usr/help/html/wug/node76.htm This button pops up WAVE's Scope window, which can be used to display a signal in `oscilloscope' mode. # -:file.analyze.show_command_window:url_view /usr/local/help/html/wug/node15.htm +:file.analyze.show_command_window:url_view /usr/help/html/wug/node15.htm This button pops up a terminal emulator window that receives commands generated by selecting most of the other buttons in this window, and @@ -283,7 +283,7 @@ You may type commands directly into the window. # -:file.analyze.edit_menu:url_view /usr/local/help/html/wug/node34.htm +:file.analyze.edit_menu:url_view /usr/help/html/wug/node34.htm This button allows you to edit the menu configuration file for this panel, using the text editor named in the EDITOR environment @@ -292,7 +292,7 @@ `Reread menu' to reconfigure this panel. # -:file.analyze.reread_menu:url_view /usr/local/help/html/wug/node34.htm +:file.analyze.reread_menu:url_view /usr/help/html/wug/node34.htm Select this button to reconfigure this panel after you have made changes to the menu configuration file (most easily done by @@ -316,7 +316,7 @@ analysis menu file. # -:file.log:url_view /usr/local/help/html/wug/node67.htm +:file.log:url_view /usr/help/html/wug/node67.htm This selection pops up a window that allows you to name a log file, and to record in that file the current record name and start and end time entries @@ -431,7 +431,7 @@ log entry. # -:view:url_view /usr/local/help/html/wug/node68.htm +:view:url_view /usr/help/html/wug/node68.htm This button pops up the View window, which allows you to choose (or merely examine) display scales, grid styles, and annotation, signal, and time @@ -561,14 +561,14 @@ and refreshes the signal window. # -:view.save_as_new_defaults:url_view /usr/local/help/html/wug/node60.htm +:view.save_as_new_defaults:url_view /usr/help/html/wug/node60.htm This button causes WAVE to record the current View panel settings in your .Xdefaults file (at the same time erasing any comments in that file). These settings become the new defaults for your future WAVE sessions. -:edit:url_view /usr/local/help/html/wug/node69.htm +:edit:url_view /usr/help/html/wug/node69.htm This button brings up the Edit menu, which allows you to specify if annotation editing is to be allowed or forbidden. By default, @@ -586,7 +586,7 @@ You may still edit `<', `:', and `>' markers. # -:prop:url_view /usr/local/help/html/wug/node70.htm +:prop:url_view /usr/help/html/wug/node70.htm This button brings up the Properties menu, with selections for obtaining information about the current signal and annotation files @@ -637,7 +637,7 @@ half of the width of the signal window. # -:find:url_view /usr/local/help/html/wug/node71.htm +:find:url_view /usr/help/html/wug/node71.htm This button opens a window that allows you to specify what portion of the current record should be displayed next. You may set a specific start @@ -687,7 +687,7 @@ . to match a deletion made during this edit # -:find.more_options:url_view /usr/local/help/html/wug/node74.htm +:find.more_options:url_view /usr/help/html/wug/node74.htm This button clears the contents of the "Search for" field and opens the Search Template window. # @@ -716,7 +716,7 @@ or marker will be counted as a match. # -:help:url_view /usr/local/help/html/wug/node72.htm +:help:url_view /usr/help/html/wug/node72.htm This button pops up a panel containing buttons that name several topics for which extensive on-line help is available. Choosing a topic @@ -821,7 +821,7 @@ Editing' topic from the Help window. # -:annot.type:url_view /usr/local/help/html/wug/node17.htm +:annot.type:url_view /usr/help/html/wug/node17.htm This field specifies the type of annotation to be inserted. It may be changed by selecting a new value from the pull-down menu, by typing @@ -922,7 +922,7 @@ This button closes the Level window. # -:scope_panel:url_view /usr/local/help/html/wug/node76.htm +:scope_panel:url_view /usr/help/html/wug/node76.htm This panel contains controls for the Scope window, which displays the signal indicated by the Signal control in the @@ -983,7 +983,7 @@ an index mark (`:'), or the `>' marker. # -:scope_canvas:url_view /usr/local/help/html/wug/node76.htm +:scope_canvas:url_view /usr/help/html/wug/node76.htm This is the scope window, which displays the signal indicated on the Analyze panel. The scales match those in the signal window (use diff -Naur -x doc -x wave-doc wfdb-10.2.1/wave/wavemenu.def wfdb-10.2.2/wave/wavemenu.def --- wfdb-10.2.1/wave/wavemenu.def Mon Jun 19 15:10:15 2000 +++ wfdb-10.2.2/wave/wavemenu.def Tue Nov 27 14:10:13 2001 @@ -1,9 +1,9 @@ # file: wavemenu.def G. Moody 17 August 1990 -# Last revised: 19 June 2000 +# Last revised: 27 November 2001 # WAVE analysis menu # ----------------------------------------------------------------------------- # WAVE: Waveform analyzer, viewer, and editor -# Copyright (C) 2000 George B. Moody +# Copyright (C) 2001 George B. Moody # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free Software @@ -100,7 +100,20 @@ # lpr -r -s ~/.psfd.$$ # Use the following entry to export WAVE's variables to your shell environment. -# This version is usable if your shell is `csh' or `tcsh': +# This version is usable if your shell is 'ash', `bash', `ksh', 'sh', or 'zsh': +Set variables RECORD=$RECORD; ANNOTATOR=$ANNOTATOR; START=$START; \ + END=$END; DURATION=$DURATION; LEFT=$LEFT; \ + RIGHT=$RIGHT; WIDTH=$WIDTH; SIGNAL=$SIGNAL; \ + SIGNALS="$SIGNALS"; LOG=$LOG; WFDB=$WFDB; \ + WFDBCAL=$WFDBCAL; TSCALE=$TSCALE; VSCALE=$VSCALE; \ + DISPMODE=$DISPMODE; PSPRINT="$PSPRINT"; \ + TEXTPRINT="$TEXTPRINT"; URL=$URL; \ + export RECORD ANNOTATOR START END DURATION LEFT \ + RIGHT WIDTH SIGNAL SIGNALS LOG WFDB WFDBCAL TSCALE \ + VSCALE DISPMODE PSPRINT TEXTPRINT URL + +# Here is an alternate version of the previous entry, for use with `csh' or +# `tcsh': #Set variables setenv RECORD $RECORD; setenv ANNOTATOR $ANNOTATOR; \ # setenv START $START; setenv END $END; \ # setenv DURATION $DURATION; setenv LEFT $LEFT; \ @@ -112,18 +125,6 @@ # setenv DISPMODE $DISPMODE; setenv PSPRINT "$PSPRINT";\ # setenv TEXTPRINT "$TEXTPRINT"; setenv URL $URL -# Here is an alternate version of the previous entry, for use with `sh', `ksh', -# or `bash': -Set variables RECORD=$RECORD; ANNOTATOR=$ANNOTATOR; START=$START; \ - END=$END; DURATION=$DURATION; LEFT=$LEFT; \ - RIGHT=$RIGHT; WIDTH=$WIDTH; SIGNAL=$SIGNAL; \ - SIGNALS="$SIGNALS"; LOG=$LOG; WFDB=$WFDB; \ - WFDBCAL=$WFDBCAL; TSCALE=$TSCALE; VSCALE=$VSCALE; \ - DISPMODE=$DISPMODE; PSPRINT="$PSPRINT"; \ - TEXTPRINT="$TEXTPRINT"; URL=$URL; \ - export RECORD ANNOTATOR START END DURATION LEFT \ - RIGHT WIDTH SIGNAL SIGNALS LOG WFDB WFDBCAL TSCALE \ - VSCALE DISPMODE PSPRINT TEXTPRINT URL # The label `' defines the command that is executed when the `Print' # button in the File menu is selected. If you wish to have a button with the @@ -153,6 +154,12 @@ # consult your browser's documentation). url_view $URL +# The remainder of this file contains more examples of how to create analysis +# buttons. These examples are commented out to avoid cluttering up the +# default Analyze window. To try any of them out, simply remove the '#' +# characters at the beginning of the lines that define them, then reread the +# menu within WAVE. + # The next two buttons use a file created using WAVE's Log window. Typically, # the file contains the times of interesting events selected by the user, # with optional comments about each event. The log is maintained in pschart @@ -170,12 +177,12 @@ # The current version of the annotation file (before merging) is saved as the # backup version (with a prefixed `_' in the annotator name); any existing # backup with the same name is overwritten by this process. -Mark QRSs & merge mv -f $ANNOTATOR.$RECORD _$ANNOTATOR.$RECORD; \ - sqrs -r $RECORD -f $START -t $END -s $SIGNAL; \ - mv qrs.$RECORD a$$.$RECORD; \ - mrgann -r $RECORD -i a$$ _$ANNOTATOR -o $ANNOTATOR \ - -m2 0 -m1 $START -m2 $END; \ - rm -f a$$.$RECORD +# Mark QRSs & merge mv -f $ANNOTATOR.$RECORD _$ANNOTATOR.$RECORD; \ +# sqrs -r $RECORD -f $START -t $END -s $SIGNAL; \ +# mv qrs.$RECORD a$$.$RECORD; \ +# mrgann -r $RECORD -i a$$ _$ANNOTATOR -o $ANNOTATOR \ +# -m2 0 -m1 $START -m2 $END; \ +# rm -f a$$.$RECORD # The next several entries illustrate how `wave' can be used to select data # to be plotted by `gnuplot' (in these examples, via the `plot2d' and `plot3d' @@ -183,69 +190,33 @@ # This entry derives a uniformly sampled instantaneous heart rate signal from # the open annotation file (using `tach'), and displays it on-screen. -Plot HR (tach) tach -r $RECORD -a $ANNOTATOR -f $START -t $END -Vm | \ - plot2d 0 1 -x "Time (minutes)" -y "HR (bpm)" \ - -t "Record $RECORD ($START - $END)" +# Plot HR (tach) tach -r $RECORD -a $ANNOTATOR -f $START -t $END -Vm | \ +# plot2d 0 1 -x "Time (minutes)" -y "HR (bpm)" \ +# -t "Record $RECORD ($START - $END)" # The next entry prints the same plot that the previous entry displays. Note # that PRINTER is an ordinary environment variable (not interpreted by `wave'); # set it so that `lpr -P$PRINTER' prints on the desired printer. -Print HR (tach) tach -r $RECORD -a $ANNOTATOR -f $START -t $END -Vm | \ - plot2d 0 1 -x "Time (minutes)" -y "HR (bpm)" \ - -t "Record $RECORD ($START - $END)" -T $PRINTER +# Print HR (tach) tach -r $RECORD -a $ANNOTATOR -f $START -t $END -Vm | \ +# plot2d 0 1 -x "Time (minutes)" -y "HR (bpm)" \ +# -t "Record $RECORD ($START - $END)" -T $PRINTER # The next two entries make plots resembling VCGs (vectorcardiograms), by # plotting the first signal in the signal list vs. the second one. To obtain # the proper plot titles, and for efficiency, be sure that the signal list # contains only two signals. -VCG rdsamp -r $RECORD -f $LEFT -t $RIGHT -s $SIGNALS -p | \ - plot2d 1 2 -x "Amplitude (mV)" -y "Amplitude (mV)" -t \ - "Record $RECORD, Signals: $SIGNALS ($LEFT - $RIGHT)" - -VCG (with time axis) rdsamp -r $RECORD -f $LEFT -t $RIGHT -s $SIGNALS -p | \ - plot3d 0 1 2 -x "Time (seconds)" -y "Amplitude (mV)" \ - -z "Amplitude (mV)" -rx 60 -rz 30 -t \ - "Record $RECORD, Signals: $SIGNALS ($LEFT - $RIGHT)" +# VCG rdsamp -r $RECORD -f $LEFT -t $RIGHT -s $SIGNALS -p | \ +# plot2d 1 2 -x "Amplitude (mV)" -y "Amplitude (mV)" -t \ +# "Record $RECORD, Signals: $SIGNALS ($LEFT - $RIGHT)" + +# VCG (with time axis) rdsamp -r $RECORD -f $LEFT -t $RIGHT -s $SIGNALS -p | \ +# plot3d 0 1 2 -x "Time (seconds)" -y "Amplitude (mV)" \ +# -z "Amplitude (mV)" -rx 60 -rz 30 -t \ +# "Record $RECORD, Signals: $SIGNALS ($LEFT - $RIGHT)" + # The previous entry can be modified easily to plot a 3D VCG (just change # `0 1 2' to '1 2 3', correct the x-axis label, and make sure that the signal # list contains three signals). Adjust the -rx and -rz options to obtain the # desired viewpoint. - -# The plot produced by this entry can take a long time -- try it out with a -# short data segment (ten seconds or so) the first time. The `-100' argument -# to `format3d' specifies the time offset in samples between the annotation -# marks and the left edge of the plot (at x=0); changing it to `-50' shifts the -# waveforms to the left. -`Waterfall' plot rdsamp -r $RECORD -f $START -t $END -s $SIGNAL -p | \ - format3d -100 \ - `rr -r $RECORD -a $ANNOTATOR -f $START -t $END` | \ - plot3d 1 -x "Time (samples)" -y "Beat number" \ - -z "Amplitude (mV)" -rx 60 -rz 355 \ - -t "Record $RECORD, Signal $SIGNAL ($START - $END)" - -# The next group of entries is useful with the MIMIC Database. You will need -# to install `rdtxt' (from the software/mimicmsc directory of a MIMIC CD-ROM) -# in order to use these buttons. -Plot HR from `txt' rdtxt -r $RECORD -p HR -f $START -t $END | \ - plot2d 0 2 -x "Time (minutes)" -y "HR (bpm)" \ - -t "Record $RECORD ($START - $END)" -Plot mean ABP rdtxt -r $RECORD -p ABP -f $START -t $END | \ - plot2d 0 2 -x "Time (minutes)" -y "mean ABP (mmHg)" \ - -t "Record $RECORD ($START - $END)" -ya 0 300 -Plot systolic ABP rdtxt -r $RECORD -p ABP -n 2 -f $START -t $END | \ - plot2d 0 3 -x "Time (minutes)" -ya 0 300 \ - -y "systolic ABP (mmHg)" \ - -t "Record $RECORD ($START - $END)" -Plot diastolic ABP rdtxt -r $RECORD -p ABP -n 3 -f $START -t $END | \ - plot2d 0 4 -x "Time (minutes)" -ya 0 300 \ - -y "diastolic ABP (mmHg)" \ - -t "Record $RECORD ($START - $END)" -Plot RESP rdtxt -r $RECORD -p RESP -f $START -t $END | \ - plot2d 0 2 -x "Time (minutes)" -ya 0 50 \ - -y "Respiration (breaths/min)" \ - -t "Record $RECORD ($START - $END)" -Plot SpO2 rdtxt -r $RECORD -p SpO2 -f $START -t $END | \ - plot2d 0 2 -x "Time (minutes)" -y "SpO2 (%)" \ - -ya 80 100 -t "Record $RECORD ($START - $END)" # Add additional entries below. diff -Naur -x doc -x wave-doc wfdb-10.2.1/waverc/Makefile wfdb-10.2.2/waverc/Makefile --- wfdb-10.2.1/waverc/Makefile Fri Nov 16 16:18:43 2001 +++ wfdb-10.2.2/waverc/Makefile Thu Nov 29 19:22:57 2001 @@ -25,12 +25,12 @@ # please visit PhysioNet (http://www.physionet.org/). # _____________________________________________________________________________ # file: version.def G. Moody 24 May 2000 -# Last revised: 7 November 2001 +# Last revised: 24 November 2001 # Each release of the WFDB Software Package is identified by a three-part # version number, defined here: MAJOR = 10 MINOR = 2 -RELEASE = 1 +RELEASE = 2 VERSION = $(MAJOR).$(MINOR).$(RELEASE) # VDEFS is the set of C compiler options needed to set version number variables @@ -38,7 +38,7 @@ VDEFS = -DWFDB_MAJOR=$(MAJOR) -DWFDB_MINOR=$(MINOR) -DWFDB_RELEASE=$(RELEASE) # _____________________________________________________________________________ -PACKAGE=wfdb-10.2.1 +PACKAGE=wfdb-10.2.2 # file: linux.def G. Moody 31 May 2000 # Last revised: 5 June 2000 # 'make' definitions for compiling the WFDB Software Package under Linux