Display total CD time and proper indexes for tracks

This commit is contained in:
deagahelio
2021-04-13 15:58:44 -03:00
parent 1e6bc4ca8b
commit 48f6f91db9
3 changed files with 38 additions and 8 deletions

View File

@@ -56,7 +56,7 @@ namespace RedBookPlayer
TrackHasEmphasis = ApplyDeEmphasis;
TotalIndexes = Image.Tracks[CurrentTrack].Indexes.Count;
TotalIndexes = Image.Tracks[CurrentTrack].Indexes.Keys.Max();
CurrentIndex = Image.Tracks[CurrentTrack].Indexes.Keys.GetEnumerator().Current;
}
}
@@ -103,6 +103,7 @@ namespace RedBookPlayer
public int TotalTracks { get; private set; } = 0;
public int TotalIndexes { get; private set; } = 0;
public ulong TimeOffset { get; private set; } = 0;
public ulong TotalTime { get; private set; } = 0;
int volume = 100;
public int Volume
{
@@ -189,17 +190,22 @@ namespace RedBookPlayer
soundOut.Stop();
}
CurrentTrack = 0;
LoadTrack(0);
if (autoPlay)
{
soundOut.Play();
}
CurrentTrack = 0;
LoadTrack(0);
else
{
TotalIndexes = 0;
}
TotalTracks = image.Tracks.Count;
TrackDataDescriptor firstTrack = toc.TrackDescriptors.First(d => d.ADR == 1 && d.POINT == 1);
TimeOffset = (ulong)(firstTrack.PMIN * 60 * 75 + firstTrack.PSEC * 75 + firstTrack.PFRAME);
TotalTime = TimeOffset + image.Tracks.Last().TrackEndSector;
Initialized = true;
@@ -318,6 +324,7 @@ namespace RedBookPlayer
}
soundOut.Play();
TotalIndexes = Image.Tracks[CurrentTrack].Indexes.Keys.Max();
}
public void Pause()

View File

@@ -57,13 +57,26 @@
<Image Name="TotalTracksDigit2" Width="42" Height="51" Source="/Assets/-.png"></Image>
</StackPanel>
</StackPanel>
<StackPanel>
<StackPanel Margin="0,0,32,0">
<TextBlock Margin="0,0,0,4">INDEXES</TextBlock>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Image Name="TotalIndexesDigit1" Width="42" Height="51" Source="/Assets/-.png"></Image>
<Image Name="TotalIndexesDigit2" Width="42" Height="51" Source="/Assets/-.png"></Image>
</StackPanel>
</StackPanel>
<StackPanel>
<TextBlock Margin="0,0,0,4">TOTAL</TextBlock>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Image Name="TotalTimeDigit1" Width="42" Height="51" Source="/Assets/-.png"></Image>
<Image Name="TotalTimeDigit2" Width="42" Height="51" Source="/Assets/-.png"></Image>
<Image Width="11" Height="51" Source="/Assets/:.png"></Image>
<Image Name="TotalTimeDigit3" Width="42" Height="51" Source="/Assets/-.png"></Image>
<Image Name="TotalTimeDigit4" Width="42" Height="51" Source="/Assets/-.png"></Image>
<Image Width="11" Height="51" Source="/Assets/:.png"></Image>
<Image Name="TotalTimeDigit5" Width="42" Height="51" Source="/Assets/-.png"></Image>
<Image Name="TotalTimeDigit6" Width="42" Height="51" Source="/Assets/-.png"></Image>
</StackPanel>
</StackPanel>
</StackPanel>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,0,0,16">
<Button Click="EnableDeEmphasisButton_Click" IsVisible="{Binding !ApplyDeEmphasis}" Width="200" Margin="0,0,16,0">Enable De-Emphasis</Button>

View File

@@ -139,11 +139,14 @@ namespace RedBookPlayer
int[] numbers = new int[]{
Player.CurrentTrack + 1,
Player.CurrentIndex,
(int)(((Player.CurrentSector + Player.TimeOffset) / (75 * 60)) % 60),
(int)((Player.CurrentSector + Player.TimeOffset) / (75 * 60)),
(int)(((Player.CurrentSector + Player.TimeOffset) / 75) % 60),
(int)((Player.CurrentSector + Player.TimeOffset) % 75),
Player.TotalTracks,
Player.TotalIndexes
Player.TotalIndexes,
(int)(Player.TotalTime / (75 * 60)),
(int)((Player.TotalTime / 75) % 60),
(int)(Player.TotalTime % 75),
};
string digitString = String.Join("", numbers.Select(i => i.ToString().PadLeft(2, '0').Substring(0, 2)));
@@ -199,7 +202,7 @@ namespace RedBookPlayer
public void Initialize()
{
digits = new Image[14];
digits = new Image[20];
digits[0] = this.FindControl<Image>("TrackDigit1");
digits[1] = this.FindControl<Image>("TrackDigit2");
@@ -220,6 +223,13 @@ namespace RedBookPlayer
digits[12] = this.FindControl<Image>("TotalIndexesDigit1");
digits[13] = this.FindControl<Image>("TotalIndexesDigit2");
digits[14] = this.FindControl<Image>("TotalTimeDigit1");
digits[15] = this.FindControl<Image>("TotalTimeDigit2");
digits[16] = this.FindControl<Image>("TotalTimeDigit3");
digits[17] = this.FindControl<Image>("TotalTimeDigit4");
digits[18] = this.FindControl<Image>("TotalTimeDigit5");
digits[19] = this.FindControl<Image>("TotalTimeDigit6");
currentTrack = this.FindControl<TextBlock>("CurrentTrack");
}