Skip to content

Commit

Permalink
Program + Sample Files
Browse files Browse the repository at this point in the history
  • Loading branch information
pinguupinguu authored May 25, 2020
1 parent 639c44d commit 4521ebb
Show file tree
Hide file tree
Showing 6 changed files with 234 additions and 0 deletions.
6 changes: 6 additions & 0 deletions LooneyTunesVac/App.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
</configuration>
53 changes: 53 additions & 0 deletions LooneyTunesVac/LooneyTunesVac.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{9CA695F0-C22E-4CD7-94C0-D1122A79DA56}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>LooneyTunesVac</RootNamespace>
<AssemblyName>LooneyTunesVac</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
114 changes: 114 additions & 0 deletions LooneyTunesVac/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace LooneyTunesVac
{


class Program
{
static void Main(string[] args)
{

if (args[0] == null) throw new Exception("No valid arguments.");
if (!args[0].Substring(args[0].LastIndexOf('.') + 1).Equals("TLB")) throw new Exception("Not a vali TLB file!");


using (StreamReader tlb = new StreamReader(new FileStream(args[0], FileMode.Open)))
{
tlb.ReadLine(); //~ToneLibrary
tlb.ReadLine(); //{

int tlbVersion = int.Parse(tlb.ReadLine().Trim().Split(' ')[1]);
int tones = int.Parse(tlb.ReadLine().Trim().Split(' ')[1]);
string dataFile = tlb.ReadLine().Trim();
dataFile = dataFile.Substring(dataFile.IndexOf("\"") + 1).Replace("\"", "").ToUpper();
if (!File.Exists(dataFile)) Console.Out.WriteLine("No corresponding VAC existent!");
else
{
//Populate files from TonesLibrary
Tone[] tonesList = new Tone[tones];

for (int i = 0; i < tones; i++)
{
tlb.ReadLine(); //~Tone
tlb.ReadLine(); //{

int version = int.Parse(tlb.ReadLine().Trim().Split(' ')[1]);
string name = tlb.ReadLine().Trim();
name = name.Substring(name.IndexOf("\"") + 1).Replace("\"", "") + ".pingusamp";
int offset = int.Parse(tlb.ReadLine().Trim().Split(' ')[1]);
int frequency = int.Parse(tlb.ReadLine().Trim().Split(' ')[1]);
bool loopFlag = Boolean.Parse(tlb.ReadLine().Trim().Split(' ')[1]);
tlb.ReadLine(); //empty line
tlb.ReadLine(); // } // Tone

tonesList[i] = new Tone(name, offset, frequency, loopFlag);

}
int channels = 1;
//Grab info, write tones





using (BinaryReader vac = new BinaryReader(new FileStream(dataFile, FileMode.Open)))
{
for (int i = 0; i < tones; i++)
{
using (BinaryWriter outSmp = new BinaryWriter(new FileStream(tonesList[i].name, FileMode.Create)))
{

int size = 0;
//Last file check
if (i == (tones - 1)) size = (int)vac.BaseStream.Length - tonesList[i].offset;
else size = tonesList[i + 1].offset - tonesList[i].offset;
//Console.Out.WriteLine("Name: " + tonesList[i].name + " Size: " + size);
outSmp.Write(channels);
outSmp.Write(tonesList[i].frequency);
byte[] data = vac.ReadBytes(size);
outSmp.Write(data);

}

}



}




}
}


//Console.ReadKey();
}


}
}

public class Tone
{
public string name { get; set; }
public int offset { get; set; }
public int frequency { get; set; }
public bool loopFlag { get; set; }

public Tone(string name, int offset, int frequency, bool loopFlag)
{
this.name = name;
this.offset = offset;
this.frequency = frequency;
this.loopFlag = loopFlag;
}

}
36 changes: 36 additions & 0 deletions LooneyTunesVac/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("LooneyTunesVac")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("LooneyTunesVac")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("9ca695f0-c22e-4cd7-94c0-d1122a79da56")]

// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Binary file added Sample Files + TXTH.7z
Binary file not shown.
25 changes: 25 additions & 0 deletions vacTlb.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30114.105
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LooneyTunesVac", "LooneyTunesVac\LooneyTunesVac.csproj", "{9CA695F0-C22E-4CD7-94C0-D1122A79DA56}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9CA695F0-C22E-4CD7-94C0-D1122A79DA56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9CA695F0-C22E-4CD7-94C0-D1122A79DA56}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9CA695F0-C22E-4CD7-94C0-D1122A79DA56}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9CA695F0-C22E-4CD7-94C0-D1122A79DA56}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D85725EE-89B5-4086-B21A-536B4D1C3D60}
EndGlobalSection
EndGlobal

0 comments on commit 4521ebb

Please sign in to comment.