summaryrefslogtreecommitdiffstats
path: root/win/CS/HandBrake.ApplicationServices/Parsing/Audio.cs
diff options
context:
space:
mode:
Diffstat (limited to 'win/CS/HandBrake.ApplicationServices/Parsing/Audio.cs')
-rw-r--r--win/CS/HandBrake.ApplicationServices/Parsing/Audio.cs78
1 files changed, 3 insertions, 75 deletions
diff --git a/win/CS/HandBrake.ApplicationServices/Parsing/Audio.cs b/win/CS/HandBrake.ApplicationServices/Parsing/Audio.cs
index 14f807c6c..a9273241c 100644
--- a/win/CS/HandBrake.ApplicationServices/Parsing/Audio.cs
+++ b/win/CS/HandBrake.ApplicationServices/Parsing/Audio.cs
@@ -5,6 +5,7 @@
namespace HandBrake.ApplicationServices.Parsing
{
+ using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;
@@ -12,6 +13,7 @@ namespace HandBrake.ApplicationServices.Parsing
/// <summary>
/// An object represending an AudioTrack associated with a Title, in a DVD
/// </summary>
+ [Serializable]
public class Audio
{
/// <summary>
@@ -57,17 +59,6 @@ namespace HandBrake.ApplicationServices.Parsing
}
/// <summary>
- /// Gets A Dummy Not Found Track
- /// </summary>
- public static Audio NoneFound
- {
- get
- {
- return new Audio { Description = "None Found" };
- }
- }
-
- /// <summary>
/// Gets or sets The track number of this Audio Track
/// </summary>
public int TrackNumber { get; set; }
@@ -103,75 +94,12 @@ namespace HandBrake.ApplicationServices.Parsing
public int Bitrate { get; set; }
/// <summary>
- /// Parse the CLI input to an Audio Track object
- /// </summary>
- /// <param name="output">
- /// The output.
- /// </param>
- /// <returns>
- /// An Audio Track obkect
- /// </returns>
- public static Audio Parse(StringReader output)
- {
- string audioTrack = output.ReadLine();
- Match m = Regex.Match(audioTrack, @"^ \+ ([0-9]*), ([A-Za-z0-9,\s]*) \((.*)\) \((.*)\)");
- Match track = Regex.Match(audioTrack, @"^ \+ ([0-9]*), ([A-Za-z0-9,\s]*) \((.*)\)"); // ID and Language
- Match iso639_2 = Regex.Match(audioTrack, @"iso639-2: ([a-zA-Z]*)\)");
- Match samplerate = Regex.Match(audioTrack, @"([0-9]*)Hz");
- Match bitrate = Regex.Match(audioTrack, @"([0-9]*)bps");
-
- string subformat = m.Groups[4].Value.Trim().Contains("iso639") ? null : m.Groups[4].Value;
- string samplerateVal = samplerate.Success ? samplerate.Groups[0].Value.Replace("Hz", string.Empty).Trim() : "0";
- string bitrateVal = bitrate.Success ? bitrate.Groups[0].Value.Replace("bps", string.Empty).Trim() : "0";
-
- if (track.Success)
- {
- var thisTrack = new Audio
- {
- TrackNumber = int.Parse(track.Groups[1].Value.Trim()),
- Language = track.Groups[2].Value,
- Format = m.Groups[3].Value,
- Description = subformat,
- SampleRate = int.Parse(samplerateVal),
- Bitrate = int.Parse(bitrateVal),
- LanguageCode = iso639_2.Value.Replace("iso639-2: ", string.Empty).Replace(")", string.Empty)
- };
- return thisTrack;
- }
-
- return null;
- }
-
- /// <summary>
- /// Pase a list of audio tracks
- /// </summary>
- /// <param name="output">
- /// The output.
- /// </param>
- /// <returns>
- /// An array of audio tracks
- /// </returns>
- public static Audio[] ParseList(StringReader output)
- {
- var tracks = new List<Audio>();
- while (true)
- {
- Audio thisTrack = Parse(output);
- if (thisTrack != null)
- tracks.Add(thisTrack);
- else
- break;
- }
- return tracks.ToArray();
- }
-
- /// <summary>
/// Override of the ToString method to make this object easier to use in the UI
/// </summary>
/// <returns>A string formatted as: {track #} {language} ({format}) ({sub-format})</returns>
public override string ToString()
{
- if (this.Description == NoneFound.Description)
+ if (this.Description == "None Found")
{
return this.Description;
}