mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
Pregap can now be read from log/freedb or set from interface
This commit is contained in:
@@ -635,39 +635,6 @@ namespace CUETools.Processor
|
||||
{
|
||||
List<object> Releases = new List<object>();
|
||||
|
||||
ReleaseQueryParameters p = new ReleaseQueryParameters();
|
||||
p.DiscId = _toc.MusicBrainzId;
|
||||
Query<Release> results = Release.Query(p);
|
||||
MusicBrainzService.XmlRequest += new EventHandler<XmlRequestEventArgs>(MusicBrainz_LookupProgress);
|
||||
_progress.percentDisk = 0;
|
||||
try
|
||||
{
|
||||
foreach (MusicBrainz.Release release in results)
|
||||
{
|
||||
release.GetEvents();
|
||||
release.GetTracks();
|
||||
try
|
||||
{
|
||||
foreach (MusicBrainz.Track track in release.GetTracks())
|
||||
;
|
||||
} catch { }
|
||||
try
|
||||
{
|
||||
foreach (MusicBrainz.Event ev in release.GetEvents())
|
||||
;
|
||||
} catch { }
|
||||
Releases.Add(release);
|
||||
}
|
||||
} catch { }
|
||||
MusicBrainzService.XmlRequest -= new EventHandler<XmlRequestEventArgs>(MusicBrainz_LookupProgress);
|
||||
//if (release != null)
|
||||
//{
|
||||
// FillFromMusicBrainz(release);
|
||||
// return;
|
||||
//}
|
||||
//if (cdEntry != null)
|
||||
// FillFromFreedb(cdEntry);
|
||||
|
||||
FreedbHelper m_freedb = new FreedbHelper();
|
||||
|
||||
m_freedb.UserName = "gchudov";
|
||||
@@ -679,9 +646,9 @@ namespace CUETools.Processor
|
||||
QueryResult queryResult;
|
||||
QueryResultCollection coll;
|
||||
string code = string.Empty;
|
||||
CDEntry cdEntry = null;
|
||||
try
|
||||
{
|
||||
CDEntry cdEntry = null;
|
||||
code = m_freedb.Query(AccurateRipVerify.CalculateCDDBQuery(_toc), out queryResult, out coll);
|
||||
if (code == FreedbHelper.ResponseCodes.CODE_200)
|
||||
{
|
||||
@@ -704,9 +671,141 @@ namespace CUETools.Processor
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
|
||||
StringCollection DiscIds = new StringCollection();
|
||||
DiscIds.Add(_toc.MusicBrainzId);
|
||||
//if (_tocFromLog != null && !DiscIds.Contains(_tocFromLog.MusicBrainzId))
|
||||
// DiscIds.Add(_tocFromLog.MusicBrainzId);
|
||||
foreach (CDEntry cdEntry in Releases)
|
||||
{
|
||||
CDImageLayout toc = TocFromCDEntry(cdEntry);
|
||||
if (!DiscIds.Contains(toc.MusicBrainzId))
|
||||
DiscIds.Add(toc.MusicBrainzId);
|
||||
}
|
||||
|
||||
MusicBrainzService.XmlRequest += new EventHandler<XmlRequestEventArgs>(MusicBrainz_LookupProgress);
|
||||
_progress.percentDisk = 0;
|
||||
foreach (string DiscId in DiscIds)
|
||||
{
|
||||
ReleaseQueryParameters p = new ReleaseQueryParameters();
|
||||
p.DiscId = DiscId;
|
||||
Query<Release> results = Release.Query(p);
|
||||
try
|
||||
{
|
||||
foreach (MusicBrainz.Release release in results)
|
||||
{
|
||||
release.GetEvents();
|
||||
release.GetTracks();
|
||||
try
|
||||
{
|
||||
foreach (MusicBrainz.Track track in release.GetTracks())
|
||||
;
|
||||
}
|
||||
catch { }
|
||||
try
|
||||
{
|
||||
foreach (MusicBrainz.Event ev in release.GetEvents())
|
||||
;
|
||||
}
|
||||
catch { }
|
||||
Releases.Add(release);
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
MusicBrainzService.XmlRequest -= new EventHandler<XmlRequestEventArgs>(MusicBrainz_LookupProgress);
|
||||
//if (release != null)
|
||||
//{
|
||||
// FillFromMusicBrainz(release);
|
||||
// return;
|
||||
//}
|
||||
//if (cdEntry != null)
|
||||
// FillFromFreedb(cdEntry);
|
||||
return Releases;
|
||||
}
|
||||
|
||||
public CDImageLayout TocFromCDEntry(CDEntry cdEntry)
|
||||
{
|
||||
CDImageLayout tocFromCDEntry = new CDImageLayout();
|
||||
for (int i = 0; i < cdEntry.Tracks.Count; i++)
|
||||
{
|
||||
if (i >= _toc.TrackCount)
|
||||
break;
|
||||
tocFromCDEntry.AddTrack(new CDTrack((uint)i + 1,
|
||||
(uint) cdEntry.Tracks[i].FrameOffset - 150,
|
||||
(i + 1 < cdEntry.Tracks.Count) ? (uint) (cdEntry.Tracks[i + 1].FrameOffset - cdEntry.Tracks[i].FrameOffset) : _toc[i + 1].Length,
|
||||
_toc[i + 1].IsAudio,
|
||||
false/*preEmphasis*/));
|
||||
}
|
||||
if (tocFromCDEntry.TrackCount > 0 && tocFromCDEntry[1].IsAudio)
|
||||
tocFromCDEntry[1][0].Start = 0;
|
||||
return tocFromCDEntry;
|
||||
}
|
||||
|
||||
public CDImageLayout TocFromLog(string eacLog)
|
||||
{
|
||||
CDImageLayout tocFromLog = new CDImageLayout();
|
||||
using (StringReader sr = new StringReader(eacLog))
|
||||
{
|
||||
bool isEACLog = false;
|
||||
bool iscdda2wavlog = false;
|
||||
string lineStr;
|
||||
int prevTrNo = 1, prevTrStart = 0;
|
||||
while ((lineStr = sr.ReadLine()) != null)
|
||||
{
|
||||
if (isEACLog)
|
||||
{
|
||||
string[] n = lineStr.Split('|');
|
||||
uint trNo, trStart, trEnd;
|
||||
if (n.Length == 5 && uint.TryParse(n[0], out trNo) && uint.TryParse(n[3], out trStart) && uint.TryParse(n[4], out trEnd) && trNo == tocFromLog.TrackCount + 1)
|
||||
{
|
||||
bool isAudio = true;
|
||||
if (tocFromLog.TrackCount >= _toc.TrackCount &&
|
||||
trStart == tocFromLog[tocFromLog.TrackCount].End + 1U + 152U * 75U
|
||||
)
|
||||
isAudio = false;
|
||||
if (tocFromLog.TrackCount < _toc.TrackCount &&
|
||||
!_toc[tocFromLog.TrackCount + 1].IsAudio
|
||||
)
|
||||
isAudio = false;
|
||||
tocFromLog.AddTrack(new CDTrack(trNo, trStart, trEnd + 1 - trStart, isAudio, false));
|
||||
}
|
||||
}
|
||||
else if (iscdda2wavlog)
|
||||
{
|
||||
foreach (string entry in lineStr.Split(','))
|
||||
{
|
||||
string[] n = entry.Split('(');
|
||||
if (n.Length < 2) continue;
|
||||
// assert n.Length == 2;
|
||||
string key = n[0].Trim(' ', '.');
|
||||
int trStart = int.Parse(n[1].Trim(' ', ')'));
|
||||
bool isAudio = true; // !!!
|
||||
if (key != "1")
|
||||
tocFromLog.AddTrack(new CDTrack((uint)prevTrNo, (uint)prevTrStart, (uint)(trStart - prevTrStart), isAudio, false));
|
||||
if (key == "lead-out")
|
||||
{
|
||||
iscdda2wavlog = false;
|
||||
break;
|
||||
}
|
||||
prevTrNo = int.Parse(key);
|
||||
prevTrStart = trStart;
|
||||
}
|
||||
}
|
||||
else if (lineStr.StartsWith("TOC of the extracted CD")
|
||||
|| lineStr.StartsWith("Exact Audio Copy")
|
||||
|| lineStr.StartsWith("EAC extraction logfile")
|
||||
|| lineStr.StartsWith("CUERipper"))
|
||||
isEACLog = true;
|
||||
else if (lineStr.StartsWith("Table of Contents: starting sectors"))
|
||||
iscdda2wavlog = true;
|
||||
}
|
||||
}
|
||||
if (tocFromLog.TrackCount > 0 && tocFromLog[1].IsAudio)
|
||||
tocFromLog[1][0].Start = 0;
|
||||
return tocFromLog;
|
||||
}
|
||||
|
||||
public void Open(string pathIn)
|
||||
{
|
||||
string cueDir = Path.GetDirectoryName(pathIn) ?? pathIn;
|
||||
@@ -858,6 +957,8 @@ namespace CUETools.Processor
|
||||
_hasEmbeddedCUESheet = true;
|
||||
}
|
||||
|
||||
string dataTrackLength = null;
|
||||
|
||||
using (sr) {
|
||||
while ((lineStr = sr.ReadLine()) != null) {
|
||||
line = new CUELine(lineStr);
|
||||
@@ -987,7 +1088,7 @@ namespace CUETools.Processor
|
||||
(line.Params.Count == 3) &&
|
||||
(line.Params[1].ToUpper() == "DATATRACKLENGTH"))
|
||||
{
|
||||
_dataTrackLength = (uint)CDImageLayout.TimeFromString(line.Params[2]);
|
||||
dataTrackLength = line.Params[2];
|
||||
}
|
||||
else if ((command == "REM") &&
|
||||
(line.Params.Count == 3) &&
|
||||
@@ -1149,50 +1250,24 @@ namespace CUETools.Processor
|
||||
if (_accurateRipId == null)
|
||||
_accurateRipId = GetCommonMiscTag("ACCURATERIPID");
|
||||
|
||||
CDImageLayout tocFromLog = _eacLog == null ? null : TocFromLog(_eacLog);
|
||||
|
||||
if (tocFromLog != null && tocFromLog.Pregap > _toc.Pregap)
|
||||
PreGapLength = tocFromLog.Pregap;
|
||||
|
||||
if (_accurateRipId == null)
|
||||
{
|
||||
if (_dataTrackLength != null)
|
||||
{
|
||||
// TODO: check if we have a data track of unknown length already, and just change it's length!
|
||||
CDImageLayout toc2 = new CDImageLayout(_toc);
|
||||
toc2.AddTrack(new CDTrack((uint)_toc.TrackCount, _toc.Length + 152U * 75U, _dataTrackLength.Value, false, false));
|
||||
_accurateRipId = AccurateRipVerify.CalculateAccurateRipId(toc2);
|
||||
}
|
||||
if (dataTrackLength != null)
|
||||
DataTrackLength = dataTrackLength;
|
||||
else
|
||||
{
|
||||
bool dtlFound = false;
|
||||
if (_eacLog != null)
|
||||
if (tocFromLog != null)
|
||||
{
|
||||
sr = new StringReader(_eacLog);
|
||||
bool isEACLog = false;
|
||||
CDImageLayout tocFromLog = new CDImageLayout();
|
||||
while ((lineStr = sr.ReadLine()) != null)
|
||||
{
|
||||
if (isEACLog)
|
||||
{
|
||||
string[] n = lineStr.Split('|');
|
||||
uint trNo, trStart, trEnd;
|
||||
if (n.Length == 5 && uint.TryParse(n[0], out trNo) && uint.TryParse(n[3], out trStart) && uint.TryParse(n[4], out trEnd) && trNo == tocFromLog.TrackCount + 1)
|
||||
{
|
||||
bool isAudio = true;
|
||||
if (tocFromLog.TrackCount >= _toc.TrackCount &&
|
||||
trStart == tocFromLog[tocFromLog.TrackCount].End + 1U + 152U * 75U
|
||||
)
|
||||
isAudio = false;
|
||||
if (tocFromLog.TrackCount < _toc.TrackCount &&
|
||||
!_toc[tocFromLog.TrackCount + 1].IsAudio
|
||||
)
|
||||
isAudio = false;
|
||||
tocFromLog.AddTrack(new CDTrack(trNo, trStart, trEnd + 1 - trStart, isAudio, false));
|
||||
}
|
||||
}
|
||||
else
|
||||
if (lineStr.StartsWith("TOC of the extracted CD")
|
||||
|| lineStr.StartsWith("Exact Audio Copy")
|
||||
|| lineStr.StartsWith("EAC extraction logfile")
|
||||
|| lineStr.StartsWith("CUERipper"))
|
||||
isEACLog = true;
|
||||
}
|
||||
// TODO: can just use smth like
|
||||
// DataTrackLength = tocFromLog.DataTrackLengthMSF;
|
||||
// The only proplem is DataTrackLength property doesn't set last track's offset.
|
||||
|
||||
if (tocFromLog.TrackCount == _toc.TrackCount + 1 && !tocFromLog[tocFromLog.TrackCount].IsAudio)
|
||||
{
|
||||
//_accurateRipId = AccurateRipVerify.CalculateAccurateRipId(tocFromLog);
|
||||
@@ -1815,6 +1890,8 @@ namespace CUETools.Processor
|
||||
{
|
||||
sw.WriteLine("[Verification date: {0}]", DateTime.Now);
|
||||
sw.WriteLine("[Disc ID: {0}]", _accurateRipId);
|
||||
if (PreGapLength != 0)
|
||||
sw.WriteLine("Pregap length {0}.", PreGapLengthMSF);
|
||||
if (_dataTrackLength.HasValue)
|
||||
sw.WriteLine("Assuming a data track was present, length {0}.", CDImageLayout.TimeToString(_dataTrackLength.Value));
|
||||
else
|
||||
@@ -3009,14 +3086,76 @@ namespace CUETools.Processor
|
||||
uint dtl = (uint)CDImageLayout.TimeFromString(value);
|
||||
if (dtl != 0)
|
||||
{
|
||||
if (!_toc[1].IsAudio)
|
||||
{
|
||||
for (int i = 2; i <= _toc.TrackCount; i++)
|
||||
{
|
||||
_toc[i].Start += dtl - _toc[1].Length;
|
||||
for (int j = 0; j <= _toc[i].LastIndex; j++)
|
||||
_toc[i][j].Start += dtl - _toc[1].Length;
|
||||
}
|
||||
_toc[1].Length = dtl;
|
||||
}
|
||||
else if (!_toc[_toc.TrackCount].IsAudio)
|
||||
{
|
||||
//_toc[_toc.TrackCount].Start = tocFromLog[_toc.TrackCount].Start;
|
||||
_toc[_toc.TrackCount].Length = dtl;
|
||||
//_toc[_toc.TrackCount][0].Start = tocFromLog[_toc.TrackCount].Start;
|
||||
//_toc[_toc.TrackCount][1].Start = tocFromLog[_toc.TrackCount].Start;
|
||||
}
|
||||
else
|
||||
_toc.AddTrack(new CDTrack((uint)_toc.TrackCount, _toc.Length + 152U * 75U, dtl, false, false));
|
||||
_dataTrackLength = dtl;
|
||||
CDImageLayout toc2 = new CDImageLayout(_toc);
|
||||
toc2.AddTrack(new CDTrack((uint)_toc.TrackCount, _toc.Length + 152 * 75, dtl, false, false));
|
||||
_accurateRipIdActual = _accurateRipId = AccurateRipVerify.CalculateAccurateRipId(toc2);
|
||||
_accurateRipIdActual = _accurateRipId = AccurateRipVerify.CalculateAccurateRipId(_toc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string PreGapLengthMSF
|
||||
{
|
||||
get
|
||||
{
|
||||
return CDImageLayout.TimeToString(_toc.Pregap);
|
||||
}
|
||||
set
|
||||
{
|
||||
PreGapLength = (uint) CDImageLayout.TimeFromString(value);
|
||||
}
|
||||
}
|
||||
|
||||
public uint PreGapLength
|
||||
{
|
||||
get
|
||||
{
|
||||
return _toc.Pregap;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (value == _toc.Pregap || value == 0)
|
||||
return;
|
||||
if (!_toc[1].IsAudio)
|
||||
throw new Exception("can't set pregap to a data track");
|
||||
if (value < _toc.Pregap)
|
||||
throw new Exception("can't set negative pregap");
|
||||
uint offs = value - _toc.Pregap;
|
||||
for (int i = 1; i <= _toc.TrackCount; i++)
|
||||
{
|
||||
_toc[i].Start += offs;
|
||||
for (int j = 0; j <= _toc[i].LastIndex; j++)
|
||||
_toc[i][j].Start += offs;
|
||||
}
|
||||
_toc[1][0].Start = 0;
|
||||
|
||||
SourceInfo sourceInfo;
|
||||
sourceInfo.Path = null;
|
||||
sourceInfo.Offset = 0;
|
||||
sourceInfo.Length = offs * 588;
|
||||
_sources.Insert(0, sourceInfo);
|
||||
|
||||
_accurateRipIdActual = _accurateRipId = AccurateRipVerify.CalculateAccurateRipId(_toc);
|
||||
}
|
||||
}
|
||||
|
||||
public bool UsePregapForFirstTrackInSingleFile {
|
||||
get {
|
||||
return _usePregapForFirstTrackInSingleFile;
|
||||
|
||||
29
CUETools/frmCUETools.Designer.cs
generated
29
CUETools/frmCUETools.Designer.cs
generated
@@ -62,6 +62,8 @@ namespace JDP {
|
||||
this.btnFilenameCorrector = new System.Windows.Forms.Button();
|
||||
this.btnSettings = new System.Windows.Forms.Button();
|
||||
this.grpAccurateRip = new System.Windows.Forms.GroupBox();
|
||||
this.txtPreGapLength = new System.Windows.Forms.MaskedTextBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.rbArPlusCRC = new System.Windows.Forms.RadioButton();
|
||||
this.rbArAndEncode = new System.Windows.Forms.RadioButton();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
@@ -561,6 +563,8 @@ namespace JDP {
|
||||
this.grpAccurateRip.AccessibleName = null;
|
||||
resources.ApplyResources(this.grpAccurateRip, "grpAccurateRip");
|
||||
this.grpAccurateRip.BackgroundImage = null;
|
||||
this.grpAccurateRip.Controls.Add(this.txtPreGapLength);
|
||||
this.grpAccurateRip.Controls.Add(this.label2);
|
||||
this.grpAccurateRip.Controls.Add(this.rbArPlusCRC);
|
||||
this.grpAccurateRip.Controls.Add(this.rbArAndEncode);
|
||||
this.grpAccurateRip.Controls.Add(this.label1);
|
||||
@@ -573,6 +577,29 @@ namespace JDP {
|
||||
this.grpAccurateRip.TabStop = false;
|
||||
this.toolTip1.SetToolTip(this.grpAccurateRip, resources.GetString("grpAccurateRip.ToolTip"));
|
||||
//
|
||||
// txtPreGapLength
|
||||
//
|
||||
this.txtPreGapLength.AccessibleDescription = null;
|
||||
this.txtPreGapLength.AccessibleName = null;
|
||||
resources.ApplyResources(this.txtPreGapLength, "txtPreGapLength");
|
||||
this.txtPreGapLength.BackgroundImage = null;
|
||||
this.txtPreGapLength.Culture = new System.Globalization.CultureInfo("");
|
||||
this.txtPreGapLength.CutCopyMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
|
||||
this.txtPreGapLength.Font = null;
|
||||
this.txtPreGapLength.InsertKeyMode = System.Windows.Forms.InsertKeyMode.Overwrite;
|
||||
this.txtPreGapLength.Name = "txtPreGapLength";
|
||||
this.txtPreGapLength.TextMaskFormat = System.Windows.Forms.MaskFormat.IncludePromptAndLiterals;
|
||||
this.toolTip1.SetToolTip(this.txtPreGapLength, resources.GetString("txtPreGapLength.ToolTip"));
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AccessibleDescription = null;
|
||||
this.label2.AccessibleName = null;
|
||||
resources.ApplyResources(this.label2, "label2");
|
||||
this.label2.Font = null;
|
||||
this.label2.Name = "label2";
|
||||
this.toolTip1.SetToolTip(this.label2, resources.GetString("label2.ToolTip"));
|
||||
//
|
||||
// rbArPlusCRC
|
||||
//
|
||||
this.rbArPlusCRC.AccessibleDescription = null;
|
||||
@@ -999,6 +1026,8 @@ namespace JDP {
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
|
||||
private System.Windows.Forms.RadioButton rbArPlusCRC;
|
||||
private System.Windows.Forms.MaskedTextBox txtPreGapLength;
|
||||
private System.Windows.Forms.Label label2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -401,6 +401,7 @@ namespace JDP {
|
||||
cueSheet.AccurateRip = accurateRip;
|
||||
if (accurateRip != AccurateRipMode.None)
|
||||
cueSheet.DataTrackLength = txtDataTrackLength.Text;
|
||||
cueSheet.PreGapLengthMSF = txtPreGapLength.Text;
|
||||
|
||||
cueSheet.WriteAudioFiles(outDir, cueStyle);
|
||||
}
|
||||
@@ -490,6 +491,7 @@ namespace JDP {
|
||||
grpOutputStyle.Enabled = !running && !rbArVerify.Checked && !rbArPlusCRC.Checked;
|
||||
groupBox1.Enabled = !running && !rbArVerify.Checked && !rbArPlusCRC.Checked;
|
||||
txtDataTrackLength.Enabled = !running && !rbArNone.Checked;
|
||||
txtPreGapLength.Enabled = !running;
|
||||
btnAbout.Enabled = !running;
|
||||
btnSettings.Enabled = !running;
|
||||
btnFilenameCorrector.Enabled = !running;
|
||||
|
||||
@@ -379,6 +379,9 @@
|
||||
<data name="btnSettings.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="label2.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="rbArPlusCRC.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 88</value>
|
||||
</data>
|
||||
|
||||
@@ -128,8 +128,8 @@
|
||||
<value />
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="txtDataTrackLength.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>54, 21</value>
|
||||
<data name="rbDontGenerate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>59, 17</value>
|
||||
</data>
|
||||
<data name=">>toolStripSeparator1.Name" xml:space="preserve">
|
||||
<value>toolStripSeparator1</value>
|
||||
@@ -155,8 +155,11 @@
|
||||
<data name="rbFreedbAlways.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>59, 17</value>
|
||||
</data>
|
||||
<data name="lblOutput.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 52</value>
|
||||
<data name="rbDontGenerate.Text" xml:space="preserve">
|
||||
<value>&Manual</value>
|
||||
</data>
|
||||
<data name="grpAccurateRip.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>rbGapsLeftOut.Name" xml:space="preserve">
|
||||
<value>rbGapsLeftOut</value>
|
||||
@@ -173,6 +176,9 @@
|
||||
<data name="btnResume.Text" xml:space="preserve">
|
||||
<value>&Resume</value>
|
||||
</data>
|
||||
<data name=">>btnAbout.ZOrder" xml:space="preserve">
|
||||
<value>13</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="btnCUECreator.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
@@ -198,9 +204,15 @@
|
||||
<data name=">>btnBatch.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name=">>label2.Parent" xml:space="preserve">
|
||||
<value>grpAccurateRip</value>
|
||||
</data>
|
||||
<data name="contextMenuStripUDC.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>120, 142</value>
|
||||
</data>
|
||||
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="btnStop.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>66, 23</value>
|
||||
</data>
|
||||
@@ -210,12 +222,21 @@
|
||||
<data name=">>rbArApplyOffset.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>17</value>
|
||||
</data>
|
||||
<data name=">>rbEmbedCUE.Parent" xml:space="preserve">
|
||||
<value>grpOutputStyle</value>
|
||||
</data>
|
||||
<data name="txtCustomFormat.Text" xml:space="preserve">
|
||||
<value>%1:-2\New\%-1\%F.cue</value>
|
||||
</data>
|
||||
<data name="rbArNone.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>label2.Name" xml:space="preserve">
|
||||
<value>label2</value>
|
||||
</data>
|
||||
<data name=">>btnCodec.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -243,6 +264,9 @@
|
||||
<data name=">>contextMenuStripUDC.Name" xml:space="preserve">
|
||||
<value>contextMenuStripUDC</value>
|
||||
</data>
|
||||
<data name="txtPreGapLength.Mask" xml:space="preserve">
|
||||
<value>00:00:00</value>
|
||||
</data>
|
||||
<data name="txtDataTrackLength.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>77, 138</value>
|
||||
</data>
|
||||
@@ -258,9 +282,6 @@
|
||||
<data name="grpOutputPathGeneration.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>398, 115</value>
|
||||
</data>
|
||||
<data name=">>rbArVerify.Parent" xml:space="preserve">
|
||||
<value>grpAccurateRip</value>
|
||||
</data>
|
||||
<data name="toolStripMenuItem3.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
@@ -291,8 +312,8 @@
|
||||
<data name=">>rbEmbedCUE.Name" xml:space="preserve">
|
||||
<value>rbEmbedCUE</value>
|
||||
</data>
|
||||
<data name="grpOutputPathGeneration.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
<data name="btnCUECreator.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>131, 23</value>
|
||||
</data>
|
||||
<data name=">>rbGapsLeftOut.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -303,9 +324,6 @@
|
||||
<data name=">>btnResume.Name" xml:space="preserve">
|
||||
<value>btnResume</value>
|
||||
</data>
|
||||
<data name="grpOutputPathGeneration.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="rbAppendFilename.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
@@ -364,14 +382,17 @@
|
||||
<value>Create a pair of files - .lossy.wav(flac,etc) and .lwcdf.wav(flac,etc). Lossy file contains (lossy) compressed music, but together with the lwcdf (correction) file the original audio can be reconstructed.</value>
|
||||
</data>
|
||||
<data name=">>rbArAndEncode.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name=">>btnFilenameCorrector.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name=">>btnConvert.Name" xml:space="preserve">
|
||||
<value>btnConvert</value>
|
||||
</data>
|
||||
<data name="btnBrowseOutput.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>452, 49</value>
|
||||
</data>
|
||||
<data name="grpOutputPathGeneration.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name=">>txtCreateSubdirectory.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -426,6 +447,9 @@
|
||||
<data name=">>rbSingleFile.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>grpOutputPathGeneration.ZOrder" xml:space="preserve">
|
||||
<value>12</value>
|
||||
</data>
|
||||
@@ -465,8 +489,11 @@
|
||||
<data name=">>groupBox1.Name" xml:space="preserve">
|
||||
<value>groupBox1</value>
|
||||
</data>
|
||||
<data name=">>txtPreGapLength.Parent" xml:space="preserve">
|
||||
<value>grpAccurateRip</value>
|
||||
</data>
|
||||
<data name=">>txtDataTrackLength.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="statusStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>552, 22</value>
|
||||
@@ -474,8 +501,8 @@
|
||||
<data name="rbEmbedCUE.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="rbArAndEncode.Text" xml:space="preserve">
|
||||
<value>Encode and verify</value>
|
||||
<data name=">>toolStripMenuItem2.Name" xml:space="preserve">
|
||||
<value>toolStripMenuItem2</value>
|
||||
</data>
|
||||
<data name=">>rbGapsPrepended.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -529,7 +556,7 @@
|
||||
<value>Verify AR + CRCs</value>
|
||||
</data>
|
||||
<data name=">>rbArVerify.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="rbDontGenerate.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>6</value>
|
||||
@@ -549,8 +576,8 @@
|
||||
<data name=">>rbTTA.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="rbArNone.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
<data name=">>rbWAV.Parent" xml:space="preserve">
|
||||
<value>grpAudioOutput</value>
|
||||
</data>
|
||||
<data name="$this.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
@@ -591,8 +618,11 @@
|
||||
<data name="btnBrowseOutput.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>71, 23</value>
|
||||
</data>
|
||||
<data name="rbArPlusCRC.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 88</value>
|
||||
<data name="grpCUEPaths.Text" xml:space="preserve">
|
||||
<value>CUE Paths</value>
|
||||
</data>
|
||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>45, 13</value>
|
||||
</data>
|
||||
<data name="btnCodec.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>66, 117</value>
|
||||
@@ -606,6 +636,9 @@
|
||||
<data name=">>btnBatch.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 120</value>
|
||||
</data>
|
||||
<data name="grpAudioOutput.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
@@ -708,6 +741,9 @@
|
||||
<data name="rbWAV.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>txtPreGapLength.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="btnCUECreator.Text" xml:space="preserve">
|
||||
<value>CUE Sheet Creator...</value>
|
||||
</data>
|
||||
@@ -738,8 +774,8 @@
|
||||
<data name="rbAPE.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="rbDontGenerate.Text" xml:space="preserve">
|
||||
<value>&Manual</value>
|
||||
<data name="rbGapsAppended.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="grpCUEPaths.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 4</value>
|
||||
@@ -768,17 +804,17 @@
|
||||
<data name=">>statusStrip1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.StatusStrip, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="rbGapsAppended.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||
<value>Tahoma, 8.25pt</value>
|
||||
</data>
|
||||
<data name=">>txtPreGapLength.Name" xml:space="preserve">
|
||||
<value>txtPreGapLength</value>
|
||||
</data>
|
||||
<data name="lblOutput.Text" xml:space="preserve">
|
||||
<value>&Output:</value>
|
||||
</data>
|
||||
<data name="lblInput.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
<data name="lblOutput.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 52</value>
|
||||
</data>
|
||||
<data name=">>rbArNone.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -798,9 +834,6 @@
|
||||
<data name=">>rbAppendFilename.Parent" xml:space="preserve">
|
||||
<value>grpOutputPathGeneration</value>
|
||||
</data>
|
||||
<data name="rbCustomFormat.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 66</value>
|
||||
</data>
|
||||
<data name=">>rbNoAudio.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
@@ -822,6 +855,9 @@
|
||||
<data name=">>toolStripMenuItem2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="rbArAndEncode.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 37</value>
|
||||
</data>
|
||||
<data name=">>btnCodec.Parent" xml:space="preserve">
|
||||
<value>grpAudioOutput</value>
|
||||
</data>
|
||||
@@ -829,7 +865,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>rbArNone.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="rbAPE.Text" xml:space="preserve">
|
||||
<value>APE</value>
|
||||
@@ -855,8 +891,8 @@
|
||||
<data name="rbFLAC.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>btnConvert.Name" xml:space="preserve">
|
||||
<value>btnConvert</value>
|
||||
<data name="grpAccurateRip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>162, 164</value>
|
||||
</data>
|
||||
<data name="rbArApplyOffset.ToolTip" xml:space="preserve">
|
||||
<value>On the first pass, verify and try to find an offset correction which makes the rip accurate according to the AccurateRip database. On the second pass, convert, possibly applying offset correction.</value>
|
||||
@@ -876,12 +912,12 @@
|
||||
<data name="lblInput.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>label2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="toolStripMenuItem3.Text" xml:space="preserve">
|
||||
<value>Lossy:</value>
|
||||
</data>
|
||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>txtAppendFilename.Parent" xml:space="preserve">
|
||||
<value>grpOutputPathGeneration</value>
|
||||
</data>
|
||||
@@ -918,9 +954,6 @@
|
||||
<data name=">>txtInputPath.Name" xml:space="preserve">
|
||||
<value>txtInputPath</value>
|
||||
</data>
|
||||
<data name="grpAccurateRip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>162, 164</value>
|
||||
</data>
|
||||
<data name="rbTTA.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 17</value>
|
||||
</data>
|
||||
@@ -954,8 +987,8 @@
|
||||
<data name=">>btnResume.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>btnCodec.Name" xml:space="preserve">
|
||||
<value>btnCodec</value>
|
||||
<data name="grpAccurateRip.Text" xml:space="preserve">
|
||||
<value>AccurateRip</value>
|
||||
</data>
|
||||
<data name="btnSettings.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>412, 215</value>
|
||||
@@ -966,6 +999,9 @@
|
||||
<data name=">>btnCUECreator.Name" xml:space="preserve">
|
||||
<value>btnCUECreator</value>
|
||||
</data>
|
||||
<data name="txtPreGapLength.ToolTip" xml:space="preserve">
|
||||
<value>Pregap is a certain amount of silence or hidden audio before track one. Normally it is known from the CUE sheet, but if converting/verifying a set of separate tracks without a CUE sheet you might want to set this.</value>
|
||||
</data>
|
||||
<data name=">>rbArPlusCRC.Parent" xml:space="preserve">
|
||||
<value>grpAccurateRip</value>
|
||||
</data>
|
||||
@@ -1050,9 +1086,6 @@
|
||||
<data name="rbCreateSubdirectory.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>125, 17</value>
|
||||
</data>
|
||||
<data name=">>rbWAV.Parent" xml:space="preserve">
|
||||
<value>grpAudioOutput</value>
|
||||
</data>
|
||||
<data name=">>txtCustomFormat.Name" xml:space="preserve">
|
||||
<value>txtCustomFormat</value>
|
||||
</data>
|
||||
@@ -1080,8 +1113,8 @@
|
||||
<data name=">>rbCreateSubdirectory.Parent" xml:space="preserve">
|
||||
<value>grpOutputPathGeneration</value>
|
||||
</data>
|
||||
<data name="grpAccurateRip.Text" xml:space="preserve">
|
||||
<value>AccurateRip</value>
|
||||
<data name="statusStrip1.Text" xml:space="preserve">
|
||||
<value>statusStrip1</value>
|
||||
</data>
|
||||
<data name="groupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>412, 92</value>
|
||||
@@ -1107,8 +1140,8 @@
|
||||
<data name="rbSingleFile.ToolTip" xml:space="preserve">
|
||||
<value>Create single file + CUE sheet</value>
|
||||
</data>
|
||||
<data name="rbWavPack.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
<data name="txtAppendFilename.Text" xml:space="preserve">
|
||||
<value>-New</value>
|
||||
</data>
|
||||
<data name="rbArApplyOffset.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 20</value>
|
||||
@@ -1122,11 +1155,8 @@
|
||||
<data name="rbSingleFile.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="btnCUECreator.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>131, 23</value>
|
||||
</data>
|
||||
<data name="grpOutputPathGeneration.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 92</value>
|
||||
<data name="rbArApplyOffset.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="toolStripProgressBar2.ToolTipText" xml:space="preserve">
|
||||
<value>Disk progress</value>
|
||||
@@ -1143,6 +1173,9 @@
|
||||
<data name=">>rbArAndEncode.Parent" xml:space="preserve">
|
||||
<value>grpAccurateRip</value>
|
||||
</data>
|
||||
<data name="rbWavPack.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="rbFreedbAlways.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
@@ -1249,6 +1282,12 @@
|
||||
<data name="rbArAndEncode.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="rbFreedbNever.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 19</value>
|
||||
</data>
|
||||
<data name="lblInput.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="rbFreedbNever.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>54, 17</value>
|
||||
</data>
|
||||
@@ -1258,9 +1297,6 @@
|
||||
<data name="rbCreateSubdirectory.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="grpAccurateRip.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>grpAudioOutput.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
@@ -1291,8 +1327,8 @@
|
||||
<data name="btnPause.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>477, 339</value>
|
||||
</data>
|
||||
<data name="rbArVerify.ToolTip" xml:space="preserve">
|
||||
<value>Contact the AccurateRip databse for validation and compare the image against database</value>
|
||||
<data name="grpOutputPathGeneration.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 92</value>
|
||||
</data>
|
||||
<data name="rbGapsLeftOut.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>11, 87</value>
|
||||
@@ -1318,6 +1354,9 @@
|
||||
<data name="rbFreedbAlways.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 53</value>
|
||||
</data>
|
||||
<data name=">>rbGapsAppended.Parent" xml:space="preserve">
|
||||
<value>grpOutputStyle</value>
|
||||
</data>
|
||||
<data name="rbArNone.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
@@ -1330,8 +1369,8 @@
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="rbArApplyOffset.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
<data name=">>rbArVerify.Parent" xml:space="preserve">
|
||||
<value>grpAccurateRip</value>
|
||||
</data>
|
||||
<data name="rbTTA.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 68</value>
|
||||
@@ -1354,8 +1393,8 @@
|
||||
<data name="lblInput.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="txtAppendFilename.Text" xml:space="preserve">
|
||||
<value>-New</value>
|
||||
<data name=">>txtPreGapLength.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.MaskedTextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="rbFreedbNever.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
@@ -1420,6 +1459,9 @@
|
||||
<data name="btnBrowseInput.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="txtDataTrackLength.PromptChar" type="System.Char, mscorlib" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>grpOutputStyle.ZOrder" xml:space="preserve">
|
||||
<value>14</value>
|
||||
</data>
|
||||
@@ -1444,9 +1486,6 @@
|
||||
<data name="grpAudioOutput.Text" xml:space="preserve">
|
||||
<value>Audio Output</value>
|
||||
</data>
|
||||
<data name=">>rbFreedbNever.Name" xml:space="preserve">
|
||||
<value>rbFreedbNever</value>
|
||||
</data>
|
||||
<data name="grpOutputStyle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>128, 164</value>
|
||||
</data>
|
||||
@@ -1489,6 +1528,12 @@
|
||||
<data name="rbUDC1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>47, 17</value>
|
||||
</data>
|
||||
<data name=">>btnFilenameCorrector.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="label2.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="grpAccurateRip.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
@@ -1510,8 +1555,11 @@
|
||||
<data name="txtCustomFormat.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>166, 60</value>
|
||||
</data>
|
||||
<data name=">>rbGapsAppended.Parent" xml:space="preserve">
|
||||
<value>grpOutputStyle</value>
|
||||
<data name=">>btnCodec.Name" xml:space="preserve">
|
||||
<value>btnCodec</value>
|
||||
</data>
|
||||
<data name="rbArAndEncode.Text" xml:space="preserve">
|
||||
<value>Encode and verify</value>
|
||||
</data>
|
||||
<data name="grpOutputStyle.Text" xml:space="preserve">
|
||||
<value>CUE Style</value>
|
||||
@@ -1543,11 +1591,11 @@
|
||||
<data name="rbGapsAppended.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>101, 17</value>
|
||||
</data>
|
||||
<data name="rbArAndEncode.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 37</value>
|
||||
<data name="rbArPlusCRC.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 88</value>
|
||||
</data>
|
||||
<data name=">>rbArPlusCRC.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>chkLossyWAV.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
@@ -1573,6 +1621,9 @@
|
||||
<data name=">>grpCUEPaths.Name" xml:space="preserve">
|
||||
<value>grpCUEPaths</value>
|
||||
</data>
|
||||
<data name="txtPreGapLength.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>54, 21</value>
|
||||
</data>
|
||||
<data name="grpOutputStyle.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
@@ -1588,6 +1639,9 @@
|
||||
<data name=">>btnResume.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="rbArVerify.ToolTip" xml:space="preserve">
|
||||
<value>Contact the AccurateRip databse for validation and compare the image against database</value>
|
||||
</data>
|
||||
<data name=">>btnFilenameCorrector.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
@@ -1603,8 +1657,8 @@
|
||||
<data name="btnConvert.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="grpCUEPaths.Text" xml:space="preserve">
|
||||
<value>CUE Paths</value>
|
||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="txtInputPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>385, 21</value>
|
||||
@@ -1612,9 +1666,6 @@
|
||||
<data name=">>chkLossyWAV.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="statusStrip1.Text" xml:space="preserve">
|
||||
<value>statusStrip1</value>
|
||||
</data>
|
||||
<data name="rbEmbedCUE.Text" xml:space="preserve">
|
||||
<value>&Embedded</value>
|
||||
</data>
|
||||
@@ -1627,6 +1678,9 @@
|
||||
<data name="rbFLAC.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 17</value>
|
||||
</data>
|
||||
<data name="txtPreGapLength.PromptChar" type="System.Char, mscorlib" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>rbCreateSubdirectory.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
@@ -1663,8 +1717,8 @@
|
||||
<data name="rbEmbedCUE.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 17</value>
|
||||
</data>
|
||||
<data name="txtDataTrackLength.PromptChar" type="System.Char, mscorlib" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<data name="rbCustomFormat.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 66</value>
|
||||
</data>
|
||||
<data name=">>rbNoAudio.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
@@ -1693,11 +1747,14 @@
|
||||
<data name="rbGapsPrepended.Text" xml:space="preserve">
|
||||
<value>Gaps Prepended</value>
|
||||
</data>
|
||||
<data name="txtPreGapLength.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>16</value>
|
||||
</data>
|
||||
<data name="lblInput.Text" xml:space="preserve">
|
||||
<value>&Input:</value>
|
||||
</data>
|
||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>toolStripStatusLabel1.Name" xml:space="preserve">
|
||||
<value>toolStripStatusLabel1</value>
|
||||
@@ -1711,6 +1768,9 @@
|
||||
<data name=">>grpOutputStyle.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="label2.Text" xml:space="preserve">
|
||||
<value>Pregap:</value>
|
||||
</data>
|
||||
<data name=">>grpAudioOutput.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
</data>
|
||||
@@ -1753,9 +1813,6 @@
|
||||
<data name="rbCustomFormat.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>toolStripMenuItem2.Name" xml:space="preserve">
|
||||
<value>toolStripMenuItem2</value>
|
||||
</data>
|
||||
<data name="rbGapsAppended.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
@@ -1786,11 +1843,14 @@
|
||||
<data name=">>rbFreedbIf.Parent" xml:space="preserve">
|
||||
<value>groupBox1</value>
|
||||
</data>
|
||||
<data name="txtDataTrackLength.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>54, 21</value>
|
||||
</data>
|
||||
<data name=">>groupBox1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="rbFreedbNever.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 19</value>
|
||||
<data name=">>rbFreedbNever.Name" xml:space="preserve">
|
||||
<value>rbFreedbNever</value>
|
||||
</data>
|
||||
<data name=">>grpCUEPaths.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.GroupBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -1798,8 +1858,8 @@
|
||||
<data name="groupBox1.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name=">>btnAbout.ZOrder" xml:space="preserve">
|
||||
<value>13</value>
|
||||
<data name="grpOutputPathGeneration.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="btnStop.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
@@ -1823,7 +1883,7 @@
|
||||
<value>108, 211</value>
|
||||
</data>
|
||||
<data name=">>rbArApplyOffset.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name=">>rbArVerify.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@@ -1831,9 +1891,6 @@
|
||||
<data name=">>rbArAndEncode.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="rbDontGenerate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>59, 17</value>
|
||||
</data>
|
||||
<data name=">>txtDataTrackLength.Name" xml:space="preserve">
|
||||
<value>txtDataTrackLength</value>
|
||||
</data>
|
||||
@@ -1855,6 +1912,9 @@
|
||||
<data name=">>btnConvert.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="txtPreGapLength.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>77, 117</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
|
||||
11
CUETools/frmChoice.Designer.cs
generated
11
CUETools/frmChoice.Designer.cs
generated
@@ -40,6 +40,7 @@ namespace JDP
|
||||
this.TrackNo = new System.Windows.Forms.ColumnHeader();
|
||||
this.Length = new System.Windows.Forms.ColumnHeader();
|
||||
this.btnEdit = new System.Windows.Forms.Button();
|
||||
this.Start = new System.Windows.Forms.ColumnHeader();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// button1
|
||||
@@ -91,6 +92,7 @@ namespace JDP
|
||||
this.listTracks.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.Title,
|
||||
this.TrackNo,
|
||||
this.Start,
|
||||
this.Length});
|
||||
this.listTracks.FullRowSelect = true;
|
||||
this.listTracks.GridLines = true;
|
||||
@@ -123,6 +125,10 @@ namespace JDP
|
||||
this.btnEdit.UseVisualStyleBackColor = true;
|
||||
this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click);
|
||||
//
|
||||
// Start
|
||||
//
|
||||
resources.ApplyResources(this.Start, "Start");
|
||||
//
|
||||
// frmChoice
|
||||
//
|
||||
this.AcceptButton = this.button1;
|
||||
@@ -133,8 +139,10 @@ namespace JDP
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.listChoices);
|
||||
this.Controls.Add(this.button1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "frmChoice";
|
||||
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
|
||||
this.Load += new System.EventHandler(this.frmChoice_Load);
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmChoice_FormClosing);
|
||||
this.ResumeLayout(false);
|
||||
@@ -154,5 +162,6 @@ namespace JDP
|
||||
private System.Windows.Forms.ColumnHeader TrackNo;
|
||||
private System.Windows.Forms.ColumnHeader Length;
|
||||
private System.Windows.Forms.Button btnEdit;
|
||||
private System.Windows.Forms.ColumnHeader Start;
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using CUETools.CDImage;
|
||||
using CUETools.Processor;
|
||||
using MusicBrainz;
|
||||
using Freedb;
|
||||
@@ -112,11 +113,23 @@ namespace JDP
|
||||
CUE.FillFromFreedb((CDEntry)item);
|
||||
}
|
||||
|
||||
private void AutoResizeTracks()
|
||||
{
|
||||
listTracks.Columns[1].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
|
||||
listTracks.Columns[2].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
|
||||
listTracks.Columns[3].AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);
|
||||
int widthAvailable = listTracks.Width - listTracks.Columns[1].Width - listTracks.Columns[2].Width - listTracks.Columns[3].Width - listTracks.Padding.Horizontal - 24;
|
||||
if (listTracks.Columns[0].Width < widthAvailable)
|
||||
listTracks.Columns[0].Width = widthAvailable;
|
||||
}
|
||||
|
||||
private void listChoices_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
object item = ChosenObject;
|
||||
if (item != null && item is CUEToolsSourceFile)
|
||||
textBox1.Text = (item as CUEToolsSourceFile).contents;
|
||||
{
|
||||
textBox1.Text = (item as CUEToolsSourceFile).contents.Replace("\r\n", "\r").Replace("\r", "\r\n");
|
||||
}
|
||||
else if (item != null && item is MusicBrainz.Release)
|
||||
{
|
||||
MusicBrainz.Release release = item as MusicBrainz.Release;
|
||||
@@ -126,22 +139,27 @@ namespace JDP
|
||||
listTracks.Items.Add(new ListViewItem(new string[] {
|
||||
track.GetTitle(),
|
||||
(listTracks.Items.Count + 1).ToString(),
|
||||
CUE == null ? "" : CUE.TOC[listTracks.Items.Count + 1].StartMSF,
|
||||
CUE == null ? "" : CUE.TOC[listTracks.Items.Count + 1].LengthMSF
|
||||
}));
|
||||
}
|
||||
AutoResizeTracks();
|
||||
}
|
||||
else if (item != null && item is CDEntry)
|
||||
{
|
||||
CDEntry cdEntry = item as CDEntry;
|
||||
|
||||
listTracks.Items.Clear();
|
||||
foreach (Freedb.Track track in cdEntry.Tracks)
|
||||
{
|
||||
listTracks.Items.Add(new ListViewItem(new string[] {
|
||||
track.Title,
|
||||
(listTracks.Items.Count + 1).ToString(),
|
||||
CDImageLayout.TimeToString((uint)track.FrameOffset - 150),
|
||||
CUE == null ? "" : CUE.TOC[listTracks.Items.Count + 1].LengthMSF
|
||||
}));
|
||||
}
|
||||
AutoResizeTracks();
|
||||
}
|
||||
else if (item != null && item is CUESheet)
|
||||
{
|
||||
@@ -152,9 +170,11 @@ namespace JDP
|
||||
listTracks.Items.Add(new ListViewItem(new string[] {
|
||||
track.Title,
|
||||
(listTracks.Items.Count + 1).ToString(),
|
||||
CUE == null ? "" : CUE.TOC[listTracks.Items.Count + 1].StartMSF,
|
||||
CUE == null ? "" : CUE.TOC[listTracks.Items.Count + 1].LengthMSF
|
||||
}));
|
||||
}
|
||||
AutoResizeTracks();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -259,6 +259,36 @@
|
||||
<data name="listTracks.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="Title.DisplayIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="Title.Text" xml:space="preserve">
|
||||
<value>Title</value>
|
||||
</data>
|
||||
<data name="Title.Width" type="System.Int32, mscorlib">
|
||||
<value>360</value>
|
||||
</data>
|
||||
<data name="TrackNo.DisplayIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="TrackNo.Text" xml:space="preserve">
|
||||
<value>#</value>
|
||||
</data>
|
||||
<data name="TrackNo.Width" type="System.Int32, mscorlib">
|
||||
<value>30</value>
|
||||
</data>
|
||||
<data name="Start.Text" xml:space="preserve">
|
||||
<value>Start</value>
|
||||
</data>
|
||||
<data name="Start.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
|
||||
<value>Right</value>
|
||||
</data>
|
||||
<data name="Length.Text" xml:space="preserve">
|
||||
<value>Length</value>
|
||||
</data>
|
||||
<data name="Length.TextAlign" type="System.Windows.Forms.HorizontalAlignment, System.Windows.Forms">
|
||||
<value>Right</value>
|
||||
</data>
|
||||
<data name="listTracks.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 90</value>
|
||||
</data>
|
||||
@@ -283,30 +313,6 @@
|
||||
<data name=">>listTracks.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="Title.DisplayIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="Title.Text" xml:space="preserve">
|
||||
<value>Title</value>
|
||||
</data>
|
||||
<data name="Title.Width" type="System.Int32, mscorlib">
|
||||
<value>455</value>
|
||||
</data>
|
||||
<data name="TrackNo.DisplayIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="TrackNo.Text" xml:space="preserve">
|
||||
<value>#</value>
|
||||
</data>
|
||||
<data name="TrackNo.Width" type="System.Int32, mscorlib">
|
||||
<value>30</value>
|
||||
</data>
|
||||
<data name="Length.Text" xml:space="preserve">
|
||||
<value>Length</value>
|
||||
</data>
|
||||
<data name="Length.Width" type="System.Int32, mscorlib">
|
||||
<value>62</value>
|
||||
</data>
|
||||
<data name="btnEdit.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>407, 293</value>
|
||||
</data>
|
||||
@@ -379,6 +385,12 @@
|
||||
<data name=">>Length.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>Start.Name" xml:space="preserve">
|
||||
<value>Start</value>
|
||||
</data>
|
||||
<data name=">>Start.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>frmChoice</value>
|
||||
</data>
|
||||
|
||||
@@ -199,13 +199,41 @@ namespace Freedb
|
||||
|
||||
private bool Parse(StringCollection data)
|
||||
{
|
||||
int offsetNumber = -1;
|
||||
foreach (string line in data)
|
||||
{
|
||||
|
||||
// check for comment
|
||||
|
||||
if (line[0] == '#')
|
||||
{
|
||||
if (offsetNumber == -2)
|
||||
continue;
|
||||
if (offsetNumber == -1)
|
||||
{
|
||||
if (line.Substring(1).Trim() != "Track frame offsets:")
|
||||
continue;
|
||||
offsetNumber = 0;
|
||||
continue;
|
||||
}
|
||||
if (line.Substring(1).Trim() == "" || line.Substring(1).Trim()[0] == 'D')
|
||||
{
|
||||
offsetNumber = -2;
|
||||
continue;
|
||||
}
|
||||
int offset;
|
||||
if (!int.TryParse(line.Substring(1).Trim(), out offset))
|
||||
{
|
||||
Debug.WriteLine("Failed to parse track FrameOffset: " + line);
|
||||
continue;
|
||||
}
|
||||
//may need to concatenate track info
|
||||
while (offsetNumber >= m_Tracks.Count)
|
||||
this.m_Tracks.Add(new Track(""));
|
||||
m_Tracks[offsetNumber].FrameOffset = offset;
|
||||
offsetNumber++;
|
||||
continue;
|
||||
}
|
||||
|
||||
int index = line.IndexOf('=');
|
||||
if (index == -1) // couldn't find equal sign have no clue what the data is
|
||||
|
||||
@@ -28,6 +28,7 @@ namespace Freedb
|
||||
|
||||
private string m_Title;
|
||||
private string m_ExtendedData;
|
||||
private int m_FrameOffset;
|
||||
|
||||
#region Public Properties
|
||||
/// <summary>
|
||||
@@ -59,6 +60,21 @@ namespace Freedb
|
||||
this.m_Title = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Property FrameOffset (int)
|
||||
/// </summary>
|
||||
public int FrameOffset
|
||||
{
|
||||
get
|
||||
{
|
||||
return this.m_FrameOffset;
|
||||
}
|
||||
set
|
||||
{
|
||||
this.m_FrameOffset = value;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user