/*
* CddaMidLevelTest.java
*/
/*
* Copyright (c) 2001 - 2002 by Matthias Pfisterer <Matthias.Pfisterer@web.de>
*
* 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.
*/
/*
programs related to cdda:
command-line extractor
cd player
extractor/mp3 encoder
*/
import java.io.InputStream;
import java.io.IOException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.Line;
import javax.sound.sampled.LineUnavailableException;
import org.tritonus.lowlevel.cdda.CddaMidLevel;
import org.tritonus.lowlevel.cdda.CddaUtils;
public class CddaMidLevelTest
{
public static void main(String[] args)
{
boolean bTocOnly = true;
int nTrack = 0;
if (args.length < 1)
{
bTocOnly = true;
}
else if (args.length == 1)
{
nTrack = Integer.parseInt(args[0]);
bTocOnly = false;
}
CddaMidLevel cddaMidLevel = CddaUtils.getCddaMidLevel();
InputStream tocInputStream = null;
try
{
tocInputStream = cddaMidLevel.getTocAsXml("TODO:");
}
catch (IOException e)
{
e.printStackTrace();
}
byte[] abData = new byte[4096];
int nRead;
try
{
while ((tocInputStream.read(abData)) >= 0)
{
System.out.print(new String(abData));
}
}
catch (IOException e)
{
e.printStackTrace();
}
System.out.print("\n");
if (! bTocOnly)
{
AudioInputStream track = null;
SourceDataLine line = null;
AudioFormat audioFormat = new AudioFormat(
AudioFormat.Encoding.PCM_SIGNED,
44100.0F, 16, 2, 4, 44100.0F, false);
Line.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
abData = new byte[2352 * 8];
try
{
track = cddaMidLevel.getTrack("TODO:", nTrack);
}
catch (IOException e)
{
e.printStackTrace();
}
try
{
line = (SourceDataLine) AudioSystem.getLine(info);
line.open();
line.start();
}
catch (LineUnavailableException e)
{
e.printStackTrace();
}
try
{
while ((nRead = track.read(abData)) >= 0)
{
line.write(abData, 0, nRead);
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
// cdda.close();
}
}
/*** CddaMidLevelTest.java ****/