From 9fee0ec4ca0c5b7a334cc29dbb58e76c7a4c736e Mon Sep 17 00:00:00 2001 From: Michiel Van Der Kolk Date: Mon, 11 Jul 2005 15:42:37 +0000 Subject: Songdb java version, source. only 1.5 compatible git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7101 a1c6a512-1295-4272-9138-f99709370657 --- .../util/audio/FadeableAudioInputStream.java | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 songdbj/de/jarnbjo/util/audio/FadeableAudioInputStream.java (limited to 'songdbj/de/jarnbjo/util/audio') diff --git a/songdbj/de/jarnbjo/util/audio/FadeableAudioInputStream.java b/songdbj/de/jarnbjo/util/audio/FadeableAudioInputStream.java new file mode 100644 index 0000000000..4916102d4b --- /dev/null +++ b/songdbj/de/jarnbjo/util/audio/FadeableAudioInputStream.java @@ -0,0 +1,62 @@ +package de.jarnbjo.util.audio; + +import java.io.*; +import javax.sound.sampled.*; + +public class FadeableAudioInputStream extends AudioInputStream { + + private AudioInputStream stream; + private boolean fading=false; + private double phi=0.0; + + public FadeableAudioInputStream(AudioInputStream stream) throws IOException { + super(stream, stream.getFormat(), -1L); + } + + public void fadeOut() { + fading=true; + phi=0.0; + } + + public int read(byte[] b) throws IOException { + return read(b, 0, b.length); + } + + public int read(byte[] b, int offset, int length) throws IOException { + int read=super.read(b, offset, length); + + //System.out.println("read "+read); + + if(fading) { + int j=0, l=0, r=0; + double gain=0.0; + + for(int i=offset; i>8)&0xff); + b[j++]=(byte)(r&0xff); + b[j++]=(byte)((r>>8)&0xff); + } + } + + return read; + } + +} \ No newline at end of file -- cgit v1.2.3