diff options
Diffstat (limited to 'win/CS/HandBrake.ApplicationServices/Parsing')
3 files changed, 95 insertions, 76 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;
}
diff --git a/win/CS/HandBrake.ApplicationServices/Parsing/AudioHelper.cs b/win/CS/HandBrake.ApplicationServices/Parsing/AudioHelper.cs new file mode 100644 index 000000000..7ed83ca69 --- /dev/null +++ b/win/CS/HandBrake.ApplicationServices/Parsing/AudioHelper.cs @@ -0,0 +1,91 @@ +/* AudioHelper.cs $
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
+
+namespace HandBrake.ApplicationServices.Parsing
+{
+ using System.Collections.Generic;
+ using System.IO;
+ using System.Text.RegularExpressions;
+
+ /// <summary>
+ /// An Audio Helper Class
+ /// </summary>
+ public class AudioHelper
+ {
+ /// <summary>
+ /// Gets A Dummy Not Found Track
+ /// </summary>
+ public static Audio NoneFound
+ {
+ get
+ {
+ return new Audio { Description = "None Found" };
+ }
+ }
+
+ /// <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)
+ {
+ Audio 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();
+ }
+ }
+}
diff --git a/win/CS/HandBrake.ApplicationServices/Parsing/Title.cs b/win/CS/HandBrake.ApplicationServices/Parsing/Title.cs index 98c2f02f2..18dd02f51 100644 --- a/win/CS/HandBrake.ApplicationServices/Parsing/Title.cs +++ b/win/CS/HandBrake.ApplicationServices/Parsing/Title.cs @@ -193,7 +193,7 @@ namespace HandBrake.ApplicationServices.Parsing thisTitle.Chapters.AddRange(Chapter.ParseList(output));
- thisTitle.AudioTracks.AddRange(Audio.ParseList(output));
+ thisTitle.AudioTracks.AddRange(AudioHelper.ParseList(output));
thisTitle.Subtitles.AddRange(Subtitle.ParseList(output));
|