/** TestHalt1.java Wait three seconds after launching a parallel collection and call halt() * @author Phil Burk and Nick Didkovsky */ /* * (C) 1997 Phil Burk and Nick Didkovsky, All Rights Reserved * JMSL is based upon HMSL (C) Phil Burk, Larry Polansky and David Rosenboom. */ package jmsltestsuite; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import com.softsynth.jmsl.JMSL; import com.softsynth.jmsl.MessagePrinter; import com.softsynth.jmsl.MusicJob; import com.softsynth.jmsl.ParallelCollection; public class TestHalt1 { /** Stuff some jobs into a parallel collection and watch 'em go */ public static void main(String args[]) { Frame f = new Frame("TestHalt1"); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); f.setSize(500, 100); f.setVisible(true); MusicJob mj1 = new MusicJob(); mj1.setRepeatPause(1.0); mj1.setRepeats(8); mj1.addStartPlayable(new MessagePrinter("Starts")); mj1.addRepeatPlayable(new MessagePrinter("Repeats")); mj1.addStopPlayable(new MessagePrinter("Stops")); MusicJob mj2 = new MusicJob(); mj2.setRepeatPause(2.0); mj2.setRepeats(5); mj2.addStartPlayable(new MessagePrinter("Starts")); mj2.addRepeatPlayable(new MessagePrinter("Repeats")); mj2.addStopPlayable(new MessagePrinter("Stops")); ParallelCollection parCol = new ParallelCollection(mj1, mj2); parCol.setRepeats(4); parCol.setRepeatPause(1.0); parCol.addStartPlayable(new MessagePrinter("Starts")); parCol.addRepeatPlayable(new MessagePrinter("Repeats")); parCol.addStopPlayable(new MessagePrinter("Stops")); parCol.print(); parCol.printHierarchy(); parCol.launch(JMSL.now()); try { Thread.sleep(3000); } catch (InterruptedException e) { } System.out.println("Try to stop parCol NOW"); parCol.halt(); } }