Skip to content

Commit 2a5b073

Browse files
committed
Code optimization and minor changes
1 parent 209cea2 commit 2a5b073

File tree

2 files changed

+38
-38
lines changed

2 files changed

+38
-38
lines changed

ImaAdpcm-Encoder-Decoder/Frm_Main.cs

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -32,51 +32,51 @@ private void Button_Encode_Click(object sender, EventArgs e)
3232
//Ensure that the file still exists
3333
if (File.Exists(Textbox_EncodeFilePath.Text))
3434
{
35-
using (WaveFileReader fileReader = new WaveFileReader(Textbox_EncodeFilePath.Text))
35+
using (WaveFileReader fileReader = new WaveFileReader(Textbox_EncodeFilePath.Text))
36+
{
37+
if (fileReader.WaveFormat.BitsPerSample == 16 && fileReader.WaveFormat.Encoding == WaveFormatEncoding.Pcm)
3638
{
37-
if (fileReader.WaveFormat.BitsPerSample == 16 && fileReader.WaveFormat.Encoding == WaveFormatEncoding.Pcm)
39+
//Get PCM Data (in bytes)
40+
byte[] pcmData = new byte[fileReader.Length];
41+
fileReader.Read(pcmData, 0, (int)fileReader.Length);
42+
43+
//Parse PCM Data to a short array
44+
short[] samplesShort = new short[pcmData.Length / 2];
45+
WaveBuffer sourceWaveBuffer = new WaveBuffer(pcmData);
46+
for (int i = 0; i < samplesShort.Length; i++)
3847
{
39-
//Get PCM Data (in bytes)
40-
byte[] pcmData = new byte[fileReader.Length];
41-
fileReader.Read(pcmData, 0, (int)fileReader.Length);
48+
samplesShort[i] = sourceWaveBuffer.ShortBuffer[i];
49+
}
4250

43-
//Parse PCM Data to a short array
44-
short[] samplesShort = new short[pcmData.Length / 2];
45-
WaveBuffer sourceWaveBuffer = new WaveBuffer(pcmData);
46-
for (int i = 0; i < samplesShort.Length; i++)
51+
//Save File
52+
SaveFileDialog.Filter = "Interactive Multimedia Association ADPCM File(*.ima)| *.ima";
53+
SaveFileDialog.FileName = string.Join("", Path.GetFileNameWithoutExtension(Textbox_EncodeFilePath.Text), "_Encoded");
54+
DialogResult saveFileDialog = SaveFileDialog.ShowDialog();
55+
if (saveFileDialog == DialogResult.OK)
56+
{
57+
//Encode stereo
58+
byte[] encodedData;
59+
if (fileReader.WaveFormat.Channels == 2)
4760
{
48-
samplesShort[i] = sourceWaveBuffer.ShortBuffer[i];
49-
}
61+
short[][] splittedData = WavFunctions.SplitChannels(samplesShort, 2);
62+
byte[] encodedDataLeftChannel = ImaADPCM.EncodeIMA_ADPCM(splittedData[0]);
63+
byte[] encodedDataRightChannel = ImaADPCM.EncodeIMA_ADPCM(splittedData[1]);
5064

51-
//Save File
52-
SaveFileDialog.Filter = "Interactive Multimedia Association ADPCM File(*.ima)| *.ima";
53-
SaveFileDialog.FileName = string.Join("", Path.GetFileNameWithoutExtension(Textbox_EncodeFilePath.Text), "_Encoded");
54-
DialogResult saveFileDialog = SaveFileDialog.ShowDialog();
55-
if (saveFileDialog == DialogResult.OK)
65+
encodedData = ImaADPCM.CombineChannelsIMA(encodedDataLeftChannel, encodedDataRightChannel, 1);
66+
}
67+
//Encode mono
68+
else
5669
{
57-
//Encode stereo
58-
byte[] encodedData;
59-
if (fileReader.WaveFormat.Channels == 2)
60-
{
61-
short[][] splittedData = WavFunctions.SplitChannels(samplesShort, 2);
62-
byte[] encodedDataLeftChannel = ImaADPCM.EncodeIMA_ADPCM(splittedData[0]);
63-
byte[] encodedDataRightChannel = ImaADPCM.EncodeIMA_ADPCM(splittedData[1]);
64-
65-
encodedData = ImaADPCM.CombineChannelsIMA(encodedDataLeftChannel, encodedDataRightChannel, 1);
66-
}
67-
//Encode mono
68-
else
69-
{
70-
encodedData = ImaADPCM.EncodeIMA_ADPCM(samplesShort);
71-
}
72-
File.WriteAllBytes(SaveFileDialog.FileName, encodedData);
70+
encodedData = ImaADPCM.EncodeIMA_ADPCM(samplesShort);
7371
}
72+
File.WriteAllBytes(SaveFileDialog.FileName, encodedData);
7473
}
75-
else
76-
{
77-
MessageBox.Show("Format not supported", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
78-
}
7974
}
75+
else
76+
{
77+
MessageBox.Show("Format not supported", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
78+
}
79+
}
8080
}
8181
}
8282

ImaAdpcm-Encoder-Decoder/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@
3131
// Puede especificar todos los valores o usar los valores predeterminados de número de compilación y de revisión
3232
// utilizando el carácter "*", como se muestra a continuación:
3333
// [assembly: AssemblyVersion("1.0.*")]
34-
[assembly: AssemblyVersion("1.0.0.0")]
35-
[assembly: AssemblyFileVersion("1.0.0.0")]
34+
[assembly: AssemblyVersion("2.0.0.0")]
35+
[assembly: AssemblyFileVersion("2.0.0.0")]

0 commit comments

Comments
 (0)