hostile-takeover/wavcrunch/Class1.cs
2014-07-06 17:47:28 -07:00

93 lines
2.0 KiB
C#

using System;
using System.IO;
using System.Collections;
using SpiffLib;
namespace wavcrunch
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
if (args[0] == "-g") {
GenTables();
return;
}
// Get source
ArrayList alsFiles = new ArrayList();
for (int n = 0; n < args.Length; n++) {
string strFileT = Path.GetFileName(args[n]);
string strDirT = Path.GetDirectoryName(args[n]);
if (strDirT == "")
strDirT = ".";
string[] astrFiles = Directory.GetFiles(strDirT, strFileT);
alsFiles.AddRange(astrFiles);
}
foreach (string strFileWav in alsFiles) {
// Read in wav
Pcm pcm = new Pcm(strFileWav);
// Write out .snd file
string strFileSnd = Path.ChangeExtension(strFileWav, ".snd");
Console.WriteLine(Path.GetFileName(strFileWav) + " -> " + Path.GetFileName(strFileSnd));
BinaryWriter bwtr = new BinaryWriter(new FileStream(strFileSnd, FileMode.Create, FileAccess.Write, FileShare.None));
bwtr.Write(pcm.GetSndEncoding());
bwtr.Close();
}
}
static void GenTables() {
Console.WriteLine("gmp2SumAverage:");
for (int n = 0; n < 512; n++) {
if (n % 16 == 0)
Console.Write(".byte ");
int m = (int)((float)n / 2.0 + 0.5);
if (m > 255)
m = 255;
if (n % 16 == 15) {
Console.WriteLine(m);
} else {
Console.Write(m + ", ");
}
}
Console.WriteLine("");
Console.WriteLine("gmp3SumAverage:");
for (int n = 0; n < 768; n++) {
if (n % 16 == 0)
Console.Write(".byte ");
int m = (int)((float)n / 3.0 + 0.5);
if (m > 255)
m = 255;
if (n % 16 == 15) {
Console.WriteLine(m);
} else {
Console.Write(m + ", ");
}
}
Console.WriteLine("");
Console.WriteLine("gmp4SumAverage:");
for (int n = 0; n < 1024; n++) {
if (n % 16 == 0)
Console.Write(".byte ");
int m = (int)((float)n / 4.0 + 0.5);
if (m > 255)
m = 255;
if (n % 16 == 15) {
Console.WriteLine(m);
} else {
Console.Write(m + ", ");
}
}
}
}
}