mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
- Added Stasis.
- Added JLayer libraries.
This commit is contained in:
216
src/javazoom/jl/converter/jlc.java
Normal file
216
src/javazoom/jl/converter/jlc.java
Normal file
@@ -0,0 +1,216 @@
|
||||
/*
|
||||
* 11/19/04 1.0 moved to LGPL.
|
||||
*
|
||||
* 29/01/00 Initial version. mdm@techie.com
|
||||
*
|
||||
* 12/12/99 JavaLayer 0.0.7 mdm@techie.com
|
||||
*
|
||||
* 14/02/99 MPEG_Args Based Class - E.B
|
||||
* Adapted from javalayer and MPEG_Args.
|
||||
* Doc'ed and integerated with JL converter. Removed
|
||||
* Win32 specifics from original Maplay code.
|
||||
*-----------------------------------------------------------------------
|
||||
* 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.
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
package javazoom.jl.converter;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import javazoom.jl.decoder.Crc16;
|
||||
import javazoom.jl.decoder.JavaLayerException;
|
||||
import javazoom.jl.decoder.OutputChannels;
|
||||
|
||||
/**
|
||||
* The <code>jlc</code> class presents the JavaLayer
|
||||
* Conversion functionality as a command-line program.
|
||||
*
|
||||
* @since 0.0.7
|
||||
*/
|
||||
public class jlc
|
||||
{
|
||||
|
||||
static public void main(String args[])
|
||||
{
|
||||
String[] argv;
|
||||
long start = System.currentTimeMillis();
|
||||
int argc = args.length + 1;
|
||||
argv = new String[argc];
|
||||
argv[0] = "jlc";
|
||||
for(int i=0;i<args.length;i++)
|
||||
argv[i+1] = args[i];
|
||||
|
||||
jlcArgs ma = new jlcArgs();
|
||||
if (!ma.processArgs(argv))
|
||||
System.exit(1);
|
||||
|
||||
Converter conv = new Converter();
|
||||
|
||||
int detail = (ma.verbose_mode ?
|
||||
ma.verbose_level :
|
||||
Converter.PrintWriterProgressListener.NO_DETAIL);
|
||||
|
||||
Converter.ProgressListener listener =
|
||||
new Converter.PrintWriterProgressListener(
|
||||
new PrintWriter(System.out, true), detail);
|
||||
|
||||
try
|
||||
{
|
||||
conv.convert(ma.filename, ma.output_filename, listener);
|
||||
}
|
||||
catch (JavaLayerException ex)
|
||||
{
|
||||
System.err.println("Convertion failure: "+ex);
|
||||
}
|
||||
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Class to contain arguments for maplay.
|
||||
*/
|
||||
static class jlcArgs
|
||||
{
|
||||
// channel constants moved into OutputChannels class.
|
||||
//public static final int both = 0;
|
||||
//public static final int left = 1;
|
||||
//public static final int right = 2;
|
||||
//public static final int downmix = 3;
|
||||
|
||||
public int which_c;
|
||||
public int output_mode;
|
||||
public boolean use_own_scalefactor;
|
||||
public float scalefactor;
|
||||
public String output_filename;
|
||||
public String filename;
|
||||
//public boolean stdout_mode;
|
||||
public boolean verbose_mode;
|
||||
public int verbose_level = 3;
|
||||
|
||||
public jlcArgs()
|
||||
{
|
||||
which_c = OutputChannels.BOTH_CHANNELS;
|
||||
use_own_scalefactor = false;
|
||||
scalefactor = (float) 32768.0;
|
||||
//stdout_mode = false;
|
||||
verbose_mode = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process user arguments.
|
||||
*
|
||||
* Returns true if successful.
|
||||
*/
|
||||
public boolean processArgs(String[] argv)
|
||||
{
|
||||
filename = null;
|
||||
Crc16[] crc;
|
||||
crc = new Crc16[1];
|
||||
int i;
|
||||
int argc = argv.length;
|
||||
|
||||
//stdout_mode = false;
|
||||
verbose_mode = false;
|
||||
output_mode = OutputChannels.BOTH_CHANNELS;
|
||||
output_filename = "";
|
||||
if (argc < 2 || argv[1].equals("-h"))
|
||||
return Usage();
|
||||
|
||||
i = 1;
|
||||
while (i < argc)
|
||||
{
|
||||
/* System.out.println("Option = "+argv[i]);*/
|
||||
if (argv[i].charAt(0) == '-')
|
||||
{
|
||||
if (argv[i].startsWith("-v"))
|
||||
{
|
||||
verbose_mode = true;
|
||||
if (argv[i].length()>2)
|
||||
{
|
||||
try
|
||||
{
|
||||
String level = argv[i].substring(2);
|
||||
verbose_level = Integer.parseInt(level);
|
||||
}
|
||||
catch (NumberFormatException ex)
|
||||
{
|
||||
System.err.println("Invalid verbose level. Using default.");
|
||||
}
|
||||
}
|
||||
System.out.println("Verbose Activated (level "+verbose_level+")");
|
||||
}
|
||||
/* else if (argv[i].equals("-s"))
|
||||
ma.stdout_mode = true; */
|
||||
else if (argv[i].equals("-p"))
|
||||
{
|
||||
if (++i == argc)
|
||||
{
|
||||
System.out.println("Please specify an output filename after the -p option!");
|
||||
System.exit (1);
|
||||
}
|
||||
//output_mode = O_WAVEFILE;
|
||||
output_filename = argv[i];
|
||||
}
|
||||
/*else if (argv[i].equals("-f"))
|
||||
{
|
||||
if (++i == argc)
|
||||
{
|
||||
System.out.println("Please specify a new scalefactor after the -f option!");
|
||||
System.exit(1);
|
||||
}
|
||||
ma.use_own_scalefactor = true;
|
||||
// ma.scalefactor = argv[i];
|
||||
}*/
|
||||
else return Usage();
|
||||
}
|
||||
else
|
||||
{
|
||||
filename = argv[i];
|
||||
System.out.println("FileName = "+argv[i]);
|
||||
if (filename == null) return Usage();
|
||||
}
|
||||
i++;
|
||||
}
|
||||
if (filename == null)
|
||||
return Usage();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Usage of JavaLayer.
|
||||
*/
|
||||
public boolean Usage()
|
||||
{
|
||||
System.out.println("JavaLayer Converter :");
|
||||
System.out.println(" -v[x] verbose mode. ");
|
||||
System.out.println(" default = 2");
|
||||
/* System.out.println(" -s write u-law samples at 8 kHz rate to stdout");
|
||||
System.out.println(" -l decode only the left channel");
|
||||
System.out.println(" -r decode only the right channel");
|
||||
System.out.println(" -d downmix mode (layer III only)");
|
||||
System.out.println(" -s write pcm samples to stdout");
|
||||
System.out.println(" -d downmix mode (layer III only)");*/
|
||||
System.out.println(" -p name output as a PCM wave file");
|
||||
System.out.println("");
|
||||
System.out.println(" More info on http://www.javazoom.net");
|
||||
/* System.out.println(" -f ushort use this scalefactor instead of the default value 32768");*/
|
||||
return false;
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user