From 4521ebb019ac0d325559fccc77288e60d2037645 Mon Sep 17 00:00:00 2001
From: PinguuPinguu <65916635+PinguuPinguu@users.noreply.github.com>
Date: Mon, 25 May 2020 13:38:00 -0400
Subject: [PATCH] Program + Sample Files
---
LooneyTunesVac/App.config | 6 ++
LooneyTunesVac/LooneyTunesVac.csproj | 53 ++++++++++
LooneyTunesVac/Program.cs | 114 ++++++++++++++++++++++
LooneyTunesVac/Properties/AssemblyInfo.cs | 36 +++++++
Sample Files + TXTH.7z | Bin 0 -> 275 bytes
vacTlb.sln | 25 +++++
6 files changed, 234 insertions(+)
create mode 100644 LooneyTunesVac/App.config
create mode 100644 LooneyTunesVac/LooneyTunesVac.csproj
create mode 100644 LooneyTunesVac/Program.cs
create mode 100644 LooneyTunesVac/Properties/AssemblyInfo.cs
create mode 100644 Sample Files + TXTH.7z
create mode 100644 vacTlb.sln
diff --git a/LooneyTunesVac/App.config b/LooneyTunesVac/App.config
new file mode 100644
index 0000000..5754728
--- /dev/null
+++ b/LooneyTunesVac/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LooneyTunesVac/LooneyTunesVac.csproj b/LooneyTunesVac/LooneyTunesVac.csproj
new file mode 100644
index 0000000..db65d1d
--- /dev/null
+++ b/LooneyTunesVac/LooneyTunesVac.csproj
@@ -0,0 +1,53 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {9CA695F0-C22E-4CD7-94C0-D1122A79DA56}
+ Exe
+ LooneyTunesVac
+ LooneyTunesVac
+ v4.7.2
+ 512
+ true
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LooneyTunesVac/Program.cs b/LooneyTunesVac/Program.cs
new file mode 100644
index 0000000..4bc2d8c
--- /dev/null
+++ b/LooneyTunesVac/Program.cs
@@ -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;
+ }
+
+}
diff --git a/LooneyTunesVac/Properties/AssemblyInfo.cs b/LooneyTunesVac/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..6cd9158
--- /dev/null
+++ b/LooneyTunesVac/Properties/AssemblyInfo.cs
@@ -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")]
diff --git a/Sample Files + TXTH.7z b/Sample Files + TXTH.7z
new file mode 100644
index 0000000000000000000000000000000000000000..aac066e0db1ecd477ad6f0581b3006b587ef3f5f
GIT binary patch
literal 275
zcmXr7+Ou9=hJnTQAM2S*3=p6Qr4Q}Te(-=Hi6JMf7o}rb8)nD
z!pzernj?2l+B@xN+!3!o%`LaRRLW1W@~Zkim}`If?EKU_3mjh-s;2yB>t0^;lPAT|7$aSJO426l59Vjb1k74I^`Y_CPfF|34_3LX|B`%cMJsQ8iOA!9Z#<`diH&QENh?o1_v&`_
z$Jm=w_~tjU3!AS`;WGBynY6ONVa~&ttc%wklxkTYSW)~hfGR
literal 0
HcmV?d00001
diff --git a/vacTlb.sln b/vacTlb.sln
new file mode 100644
index 0000000..b9ac0ef
--- /dev/null
+++ b/vacTlb.sln
@@ -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