diff --git a/WinPlaza/MainWindow.xaml b/WinPlaza/MainWindow.xaml
index e157e9a..f1745bc 100644
--- a/WinPlaza/MainWindow.xaml
+++ b/WinPlaza/MainWindow.xaml
@@ -6,73 +6,74 @@
xmlns:local="clr-namespace:WinPlaza"
mc:Ignorable="d"
Title="Nightwave.Net" Height="206" Width="480" Background="#FFF0F0F0" ResizeMode="CanMinimize" Deactivated="Window_Deactivated" Activated="Window_Activated" UseLayoutRounding="True" Closing="Window_Closing">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WinPlaza/MainWindow.xaml.cs b/WinPlaza/MainWindow.xaml.cs
index eb265b4..b154293 100644
--- a/WinPlaza/MainWindow.xaml.cs
+++ b/WinPlaza/MainWindow.xaml.cs
@@ -23,6 +23,7 @@ namespace WinPlaza {
private Timer tGfx;
private Timer tLogon;
private bool AudioInit=false;
+ private bool LikedCTrack=false;
#endregion
#region Delegates
private delegate void dgtNoParam();
@@ -40,7 +41,7 @@ namespace WinPlaza {
Dispatcher.BeginInvoke(new dgtStr(_Status), msg);
private void SetTitle(string msg) =>
Dispatcher.BeginInvoke(new dgtStr(_Title), msg);
- private async void dgtFirstLogin() {
+ private async void DgtStartupLogon() {
Credential c=CredentialManager.ReadCredential("Nightwave.NET");
if(c is null)
return;
@@ -52,16 +53,14 @@ namespace WinPlaza {
imLogin.Visibility = Visibility.Hidden;
SetStatus($"Logged in as {await plaza.GetUser()}");
}
- private async void dgtRefresh(bool Force = false) {
+ private async void DgtRefresh(bool Force = false) {
Nightwave.Status s=await plaza.Broadcast(Force);
slDuration.Value = s.CalculatedElapsed;
sbListeners.Text = $"{s.Listeners} listeners";
lbLikeCt.Content = s.Likes;
lbDislikeCt.Content = s.Dislikes;
lbElapsed.Content = $"{(s.CalculatedElapsed / 60).ToString("D")}:{(s.CalculatedElapsed % 60).ToString("D2")}";
- if(LastArtwork != s.ArtworkUri||Force) {
- if(tGfx.Enabled)
- SetStatus("Playing");
+ if(LastArtwork != s.ArtworkUri || Force) {
lbArtist.Content = s.Artist;
lbTitle.Content = s.Title;
lbAlbum.Content = s.Album;
@@ -69,17 +68,20 @@ namespace WinPlaza {
SetTitle($"{s.Title} - {s.Artist}");
slDuration.Maximum = s.Duration;
lbTime.Content = $"{(s.Duration / 60).ToString("D")}:{(s.Duration % 60).ToString("D2")}";
- if(LastArtwork != s.ArtworkUri)
+ if(LastArtwork != s.ArtworkUri) {
+ if(tGfx.Enabled)
+ SetStatus("Playing");
+ LikedCTrack = false;
art.Source = new BitmapImage(new Uri(s.ArtworkUri));
- LastArtwork = s.ArtworkUri;
+ LastArtwork = s.ArtworkUri;
+ }
}
}
- private void dgtAud() {
+ private void DgtAudio() {
long progress = Bass.StreamGetFilePosition(BuffCh, FileStreamPosition.Buffer)
* 100 / Bass.StreamGetFilePosition(BuffCh, FileStreamPosition.End);
if(progress > 75 || Bass.StreamGetFilePosition(BuffCh, FileStreamPosition.Connected) == 0) {
tAudio.Stop();
- //tbPlayPause.ImageSource = (BitmapImage)FindResource("tbPlaying");
SetStatus("Playing");
SetTitle($"{lbTitle.Content} - {lbArtist.Content}");
tGfx.Start();
@@ -132,17 +134,17 @@ namespace WinPlaza {
SetTitle("Nightwave.Net");
}
private void MetaSync(int hdl, int ch, int dat, IntPtr usr) =>
- Dispatcher.BeginInvoke(new dgtBool(dgtRefresh), true);
+ Dispatcher.BeginInvoke(new dgtBool(DgtRefresh), true);
private void StatusProc(IntPtr buf, int len, IntPtr usr) {
if(buf != IntPtr.Zero && len == 0 && usr.ToInt32() == BufferReqs)
SetStatus(Marshal.PtrToStringAnsi(buf));
}
private void EvtRefresh(object sender, ElapsedEventArgs e) =>
- Dispatcher.BeginInvoke(new dgtBool(dgtRefresh), false);
+ Dispatcher.BeginInvoke(new dgtBool(DgtRefresh), false);
private async void EvtLogon(object sender, ElapsedEventArgs e) =>
- await Dispatcher.BeginInvoke(new dgtNoParam(dgtFirstLogin));
+ await Dispatcher.BeginInvoke(new dgtNoParam(DgtStartupLogon));
private void EvtAudio(object sender, ElapsedEventArgs e) =>
- _ = Dispatcher.BeginInvoke(new dgtNoParam(dgtAud));
+ _ = Dispatcher.BeginInvoke(new dgtNoParam(DgtAudio));
private async void EvtRender(object sender, ElapsedEventArgs e) =>
await Dispatcher.BeginInvoke(new dgtNoParam(Leveller));
private void BtPlayPause_Click(object sender, RoutedEventArgs e) {
@@ -194,18 +196,23 @@ namespace WinPlaza {
imLogin.Visibility = Visibility.Hidden;
}
private async void BtLike_Click(object sender, RoutedEventArgs e) {
- if(await plaza.CastVote(Nightwave.Vote.Like))
- SetStatus("Song liked!");
- else
- SetStatus("Something went weird while liking");
- _ = Dispatcher.BeginInvoke(new dgtBool(dgtRefresh), true);
+ Nightwave.Vote v = Nightwave.Vote.Like;
+ if(LikedCTrack)
+ v = Nightwave.Vote.Favourite;
+ if(await plaza.CastVote(v)) {
+ SetStatus($"Submitted {v}!");
+ LikedCTrack = true;
+ } else
+ SetStatus($"Something went weird while casting {v}");
+ _ = Dispatcher.BeginInvoke(new dgtBool(DgtRefresh), true);
}
private async void BtDislike_Click(object sender, RoutedEventArgs e) {
if(await plaza.CastVote(Nightwave.Vote.Dislike))
SetStatus("Song disliked!");
else
SetStatus("Something went weird while disliking");
- _ = Dispatcher.BeginInvoke(new dgtBool(dgtRefresh), true);
+ LikedCTrack = false;
+ _ = Dispatcher.BeginInvoke(new dgtBool(DgtRefresh), true);
}
private void SbOnTop_Click(object sender, RoutedEventArgs e) {
Topmost = sbOnTop.IsChecked == true;
@@ -263,6 +270,5 @@ namespace WinPlaza {
private void _Status(string s) => sbStatus.Text = s;
private void _Title(string s) => Title = s;
#endregion
-
}
}
diff --git a/WinPlaza/WinPlaza.csproj b/WinPlaza/WinPlaza.csproj
index 01471ab..b4cb3ef 100644
--- a/WinPlaza/WinPlaza.csproj
+++ b/WinPlaza/WinPlaza.csproj
@@ -31,8 +31,8 @@
true
index.html
false
- 2
- 1.4.0.%2a
+ 1
+ 1.5.0.%2a
false
true
true