//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ // \\ // Centre for Speech Technology Research \\ // University of Edinburgh, UK \\ // Copyright (c) 1996,1997 \\ // All Rights Reserved. \\ // Permission is hereby granted, free of charge, to use and distribute \\ // this software and its documentation without restriction, including \\ // without limitation the rights to use, copy, modify, merge, publish, \\ // distribute, sublicense, and/or sell copies of this work, and to \\ // permit persons to whom this work is furnished to do so, subject to \\ // the following conditions: \\ // 1. The code must retain the above copyright notice, this list of \\ // conditions and the following disclaimer. \\ // 2. Any modifications must be clearly marked as such. \\ // 3. Original authors' names are not deleted. \\ // 4. The authors' names are not used to endorse or promote products \\ // derived from this software without specific prior written \\ // permission. \\ // THE UNIVERSITY OF EDINBURGH AND THE CONTRIBUTORS TO THIS WORK \\ // DISCLAIM ALL WARRANTIES With REGARD TO THIS SOFTWARE, INCLUDING \\ // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT \\ // SHALL THE UNIVERSITY OF EDINBURGH NOR THE CONTRIBUTORS BE LIABLE \\ // FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES \\ // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN \\ // AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, \\ // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF \\ // THIS SOFTWARE. \\ // \\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ // \\ // Author: Richard Caley (rjc@cstr.ed.ac.uk) \\ // Date: Mon Sep 22 1997 \\ // -------------------------------------------------------------------- \\ // A class which implements the image producer interface using a Wave \\ // as the source of the image. \\ // \\ //\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\ package cstr.est.awt; import java.util.*; import java.lang.*; import java.awt.*; import java.awt.image.*; import cstr.est.*; public class WaveImageSource implements ImageProducer { static ColorModel cmodel; static { cmodel = new IndexColorModel(24, 5, new byte[] { -1, -1, -1, -32, 110, 70, -64, 100, 60, -96, 90, 50, -127, 80, 40 }, 0, false); } Wave wave; int channel; int x; int chunk; int width; int height; int amplitude; Vector consumers; public WaveImageSource(Wave w, int c, int xoff, int xlen, int hsize, int vsize) { wave = w; channel=c; x = xoff; chunk = xlen; width = hsize; height = vsize; amplitude = w.amplitude(channel) + 100; consumers = new Vector(1); } public WaveImageSource(Wave w, int vsize) { this(w, 0, 0, w.num_samples(), w.num_samples(), vsize); } public WaveImageSource(Wave w) { this(w, 0, 0, w.num_samples(), w.num_samples(), 150); } public void addConsumer(ImageConsumer ic) { if (!consumers.contains(ic)) consumers.addElement(ic); } public boolean isConsumer(ImageConsumer ic) { return consumers.contains(ic); } public void removeConsumer(ImageConsumer ic) { consumers.removeElement(ic); } public void startProduction(ImageConsumer ic) { addConsumer(ic); produce(); } public void requestTopDownLeftRightResend(ImageConsumer ic) { produce(); } private void sendHints(int hints) { int i; for(i=0; inlines?nlines:height-l; System.out.println("g"); wave.cpp_getScanlines(channel, line, l, n, x, chunk, width, height, amplitude); System.out.println("s"); sendLine(line, l, n); } System.out.println("end send"); sendComplete(ImageConsumer.STATICIMAGEDONE); System.out.println("end prod"); } }