!7 static JButton btn; static Flag flag; // stop flag static AudioFormat format; p { format = javaSound_monoCDQuality°; swing { showControls(jcenteredline(btn = jbutton("Start", f btn))); } } svoid btn { if (flag == null || flag.isUp()) start(); else stop(); } svoid start ctex { setText(btn, "Stop"); flag = new Flag; final File wavFile = countTillNewFile(prepareProgramFile("recorded-"), ".wav"); TSeekableDataOutputStream dataOut = new(wavFile); final AudioOutputStream audioOut = new WaveAudioOutputStream( format, AudioSystem.NOT_SPECIFIED, dataOut); final OutputStream out = audioOutputStreamAsOutputStream(audioOut); thread { captureAudioFromLine3(format, out, flag); print(wavFile); print("Actually done. " + l(wavFile) + " bytes"); } } svoid stop { setText(btn, "Start"); flag.raise(); }