WFDB SWIG 1.0.0

File: <base>/examples/rdann.java (1,624 bytes)
// File: rdann.java       I. Henry    February 18 2005
//
// Minimal WFDB annotator reader written in Java, based on rdann.c
//
// Copyright (C) 2005 Isaac C. Henry (ihenry@physionet.org)

import wfdb.*;

public class rdann {
    
    public static void main(String argv[]) {
	int stat;
	String record = null, annotator = null;
	
	if ( argv.length < 4 ) {
	    usage();
	    System.exit(2);
	}
		
	for (int i = 0; i < argv.length; i++) {
	    if (argv[i].equals("-r")) {
		record = argv[++i];
	    } else if (argv[i].equals("-a")) {
		annotator = argv[++i];
	    } else {
		usage();
	    }
	}
	
	if (record == null || annotator == null) {
	    usage();
	    System.exit(2);
	}
	
	WFDB_AnninfoArray aiarray = new WFDB_AnninfoArray(1);
	WFDB_Annotation annot = new WFDB_Annotation();

	WFDB_Anninfo ai = aiarray.getitem(0);
	ai.setName(annotator);
	ai.setStat(wfdb.WFDB_READ);
	aiarray.setitem(0, ai);
	
	stat = wfdb.annopen(record, aiarray.cast(), 1);
	if (stat < 0) {
	    usage();
	    System.exit(1);
	}
	
	while (wfdb.getann(0, annot) == 0) {	    
	    System.out.println(wfdb.mstimstr(-annot.getTime()) + "\t" +
			       annot.getTime() + "\t" + 
			       wfdb.annstr(annot.getAnntyp()) + "\t" + 
			       annot.getSubtyp() + "\t" + 
			       annot.getChan() + "\t" + 
			       annot.getNum() + "\t" +
			       // print the aux string, excluding the first
			       // char, which is the length of the string
			       (annot.getAux() == null ? "" :
				annot.getAux().substring(1)));
	}
	wfdb.wfdbquit();
    }

    public static void usage() {
	System.out.println("Usage: rdann -r record -a annotator");
    }
}