summaryrefslogtreecommitdiffstats
path: root/songdbj/org/tritonus/share/sampled/mixer/TClip.java
diff options
context:
space:
mode:
Diffstat (limited to 'songdbj/org/tritonus/share/sampled/mixer/TClip.java')
-rw-r--r--songdbj/org/tritonus/share/sampled/mixer/TClip.java340
1 files changed, 0 insertions, 340 deletions
diff --git a/songdbj/org/tritonus/share/sampled/mixer/TClip.java b/songdbj/org/tritonus/share/sampled/mixer/TClip.java
deleted file mode 100644
index e0a8140c37..0000000000
--- a/songdbj/org/tritonus/share/sampled/mixer/TClip.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * TClip.java
- *
- * This file is part of Tritonus: http://www.tritonus.org/
- */
-
-/*
- * Copyright (c) 1999 - 2004 by Matthias Pfisterer
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Library General Public License as published
- * by the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-/*
-|<--- this code is formatted to fit into 80 columns --->|
-*/
-
-package org.tritonus.share.sampled.mixer;
-
-import java.io.IOException;
-import java.io.ByteArrayInputStream;
-import java.util.Collection;
-
-import javax.sound.sampled.AudioFormat;
-import javax.sound.sampled.AudioSystem;
-import javax.sound.sampled.Clip;
-import javax.sound.sampled.Control;
-import javax.sound.sampled.DataLine;
-import javax.sound.sampled.SourceDataLine;
-import javax.sound.sampled.AudioInputStream;
-import javax.sound.sampled.LineUnavailableException;
-import javax.sound.sampled.Mixer;
-
-import org.tritonus.share.TDebug;
-import org.tritonus.share.sampled.mixer.TDataLine;
-
-
-
-public class TClip
-extends TDataLine
-implements Clip
-{
- private static final Class[] CONTROL_CLASSES = {/*GainControl.class*/};
- private static final int BUFFER_FRAMES = 16384;
-
-
- public TClip(DataLine.Info info)
- {
- super(null, // TMixer
- info);
- }
-
-
-
- public TClip(DataLine.Info info,
- Collection<Control> controls)
- {
- super(null, // TMixer
- info,
- controls);
- }
-
-
-
- public void open(AudioFormat audioFormat,
- byte[] abData,
- int nOffset,
- int nLength)
- throws LineUnavailableException
- {
- // int nBufferLength = nNumFrames * audioFormat.getFrameSize();
- // TODO: check if nOffset + nBufferLength <= abData.length
- // perhaps truncate automatically
- ByteArrayInputStream bais = new ByteArrayInputStream(abData, nOffset, nLength);
- AudioInputStream audioInputStream = new AudioInputStream(bais, audioFormat, AudioSystem.NOT_SPECIFIED);
- try
- {
- open(audioInputStream);
- }
- catch (IOException e)
- {
- if (TDebug.TraceAllExceptions)
- {
- TDebug.out(e);
- }
- throw new LineUnavailableException("IOException occured");
- }
- }
-
-
-
- public void open(AudioInputStream audioInputStream)
- throws LineUnavailableException, IOException
- {
- AudioFormat audioFormat = audioInputStream.getFormat();
- // TOOD:
- DataLine.Info info = new DataLine.Info(Clip.class,
- audioFormat, -1/*nBufferSize*/);
-/*
- setLineInfo(info);
- int nFrameSize = audioFormat.getFrameSize();
- long lTotalLength = audioInputStream.getFrameLength() * nFrameSize;
- int nFormat = Esd.ESD_STREAM | Esd.ESD_PLAY | EsdUtils.getEsdFormat(audioFormat);
- if (TDebug.TraceClip)
- {
- TDebug.out("format: " + nFormat);
- TDebug.out("sample rate: " + audioFormat.getSampleRate());
- }
- // m_esdSample.open(nFormat, (int) audioFormat.getSampleRate(), (int) lTotalLength);
- if (TDebug.TraceClip)
- {
- TDebug.out("size in esd: " + audioInputStream.getFrameLength() * nFrameSize);
- }
- int nBufferLength = BUFFER_FRAMES * nFrameSize;
- byte[] abData = new byte[nBufferLength];
- int nBytesRead = 0;
- int nTotalBytes = 0;
- while (nBytesRead != -1)
- {
- try
- {
- nBytesRead = audioInputStream.read(abData, 0, abData.length);
- }
- catch (IOException e)
- {
- if (TDebug.TraceClip || TDebug.TraceAllExceptions)
- {
- TDebug.out(e);
- }
- }
- if (nBytesRead >= 0)
- {
- nTotalBytes += nBytesRead;
- if (TDebug.TraceClip)
- {
- TDebug.out("TClip.open(): total bytes: " + nTotalBytes);
- TDebug.out("TClip.open(): Trying to write: " + nBytesRead);
- }
- int nBytesWritten = 0; //m_esdSample.write(abData, 0, nBytesRead);
- if (TDebug.TraceClip)
- {
- TDebug.out("TClip.open(): Written: " + nBytesWritten);
- }
- }
- }
- // to trigger the events
- // open();
- */
- }
-
-
-
- public int getFrameLength()
- {
- // TODO:
- return -1;
- }
-
-
-
- public long getMicrosecondLength()
- {
- // TODO:
- return -1;
- }
-
-
-
- public void setFramePosition(int nPosition)
- {
- // TOOD:
- }
-
-
-
- public void setMicrosecondPosition(long lPosition)
- {
- // TOOD:
- }
-
-
-
- public int getFramePosition()
- {
- // TOOD:
- return -1;
- }
-
-
-
- public long getMicrosecondPosition()
- {
- // TOOD:
- return -1;
- }
-
-
-
- public void setLoopPoints(int nStart, int nEnd)
- {
- // TOOD:
- }
-
-
-
- public void loop(int nCount)
- {
- if (TDebug.TraceClip)
- {
- TDebug.out("TClip.loop(int): called; count = " + nCount);
- }
- if (false/*isStarted()*/)
- {
- /*
- * only allow zero count to stop the looping
- * at the end of an iteration.
- */
- if (nCount == 0)
- {
- if (TDebug.TraceClip)
- {
- TDebug.out("TClip.loop(int): stopping sample");
- }
- // m_esdSample.stop();
- }
- }
- else
- {
- if (nCount == 0)
- {
- if (TDebug.TraceClip)
- {
- TDebug.out("TClip.loop(int): starting sample (once)");
- }
- // m_esdSample.play();
- }
- else
- {
- /*
- * we're ignoring the count, because esd
- * cannot loop for a fixed number of
- * times.
- */
- // TDebug.out("hallo");
- if (TDebug.TraceClip)
- {
- TDebug.out("TClip.loop(int): starting sample (forever)");
- }
- // m_esdSample.loop();
- }
- }
- // TOOD:
- }
-
-
-
- public void flush()
- {
- // TOOD:
- }
-
-
-
- public void drain()
- {
- // TOOD:
- }
-
-
-
- public void close()
- {
- // m_esdSample.free();
- // m_esdSample.close();
- // TOOD:
- }
-
-
-
-
- public void open()
- {
- // TODO:
- }
-
-
-
- public void start()
- {
- if (TDebug.TraceClip)
- {
- TDebug.out("TClip.start(): called");
- }
- /*
- * This is a hack. What start() really should do is
- * start playing at the position playback was stopped.
- */
- if (TDebug.TraceClip)
- {
- TDebug.out("TClip.start(): calling 'loop(0)' [hack]");
- }
- loop(0);
- }
-
-
-
- public void stop()
- {
- // TODO:
- // m_esdSample.kill();
- }
-
-
-
- /*
- * This method is enforced by DataLine, but doesn't make any
- * sense for Clips.
- */
- public int available()
- {
- return -1;
- }
-}
-
-
-
-/*** TClip.java ***/
-