!7 // Original source: AudioLoop from jsresources.org static int DEFAULT_INTERNAL_BUFSIZ = 40960, DEFAULT_EXTERNAL_BUFSIZ = 40960; static S mixerName; p { new AudioLoop(javaSound_cdQuality°, DEFAULT_INTERNAL_BUFSIZ, DEFAULT_EXTERNAL_BUFSIZ, mixerName).start°; } sclass AudioLoop extends Thread { TargetDataLine in; SourceDataLine out; new Flag stopFlag; int externalBufferSize; *(AudioFormat format, int internalBufferSize, int *externalBufferSize, S mixerName) { Pair p = javaSound_bothLines(mixerName, format, internalBufferSize); in = p.a; out = p.b; } public void start { in.start°; out.start°; super.start°; } void stopRecording { in.stop°; out.close°; stopFlag.raise°; } // "stop()" was taken public void run° { javaSound_streamFromLineToLine(in, out, externalBufferSize, stopFlag); } }