public async Task Play(DeezerTrack track) { if (_isPlaying) { await StopAsync(); } _isPlaying = true; var path = track?.album?.cover_medium; if (path == null) { path = "ms-appx:///Assets/nodisc.png"; } try { Player.Source = new Uri(track.preview, UriKind.Absolute); } catch (Exception ex) { Debug.WriteLine($"Deezer: Player failed : {ex.Message}"); } Title.Text = track.title; ArtworkImg.ImageSource = new BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute)); }
// When a track is selected in dedicated listView private void Tracklist_listView_SelectionChanged(object sender, SelectionChangedEventArgs e) { // Loading UI element with correct information according to what has been selected by user if (tracklist_listView.SelectedIndex == -1) { BitmapImage bmpImg = new BitmapImage(); bmpImg.UriSource = new Uri("ms-appx:///Assets/default-track.png"); selectedTrack_Image.Source = bmpImg; selectedTrack_title_label.Text = "Select track first!"; selectedTrack_album_label.Text = "Select track first!"; selectedTrack_artist_label.Text = "Select track first!"; } else { selected_track = selected_game.tracklist[tracklist_listView.SelectedIndex]; BitmapImage bmpImg = new BitmapImage(); bmpImg.UriSource = new Uri(selected_track.album.cover_medium); selectedTrack_Image.Source = bmpImg; selectedTrack_title_label.Text = selected_track.title; selectedTrack_album_label.Text = selected_track.album.title; selectedTrack_artist_label.Text = selected_track.artist.name; } }
// When a result has been selected in comboBox, loading information in UI private void Results_comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (results_comboBox.SelectedIndex != -1) { selected_result_track = blindtest.getTrack(results_comboBox.SelectedIndex); if (selected_result_track.Equals(default(DeezerTrack))) { title_label.Text = "Error"; artist_label.Text = "Error"; album_label.Text = "Error"; BitmapImage bmpImg = new BitmapImage(); bmpImg.UriSource = new Uri("ms-appx:///Assets/default-track.png"); track_Image.Source = bmpImg; } else { title_label.Text = selected_result_track.title; artist_label.Text = selected_result_track.artist.name; album_label.Text = selected_result_track.album.title; BitmapImage bmpImg = new BitmapImage(); bmpImg.UriSource = new Uri(selected_result_track.album.cover_medium); track_Image.Source = bmpImg; } } }
private DiscoveryTrack ToDiscoveryTrack(DeezerTrack track) { var discoveryTrack = new DiscoveryTrack(); discoveryTrack.Id = track.Id; discoveryTrack.Title = track.Title; discoveryTrack.Artist = track.Artist?.Name; discoveryTrack.Duration = TimeSpan.FromSeconds(track.Duration); return(discoveryTrack); }
// Getting BlindtestClass Object from MainPage, then loading list of users protected override void OnNavigatedTo(NavigationEventArgs e) { // If a parameter is given, and if it's a BlindtestClass element if (e.Parameter is BlindtestClass) { // Get main element var bt = e.Parameter; blindtest = (BlindtestClass)bt; // Loading UI elements and filling scoreboard listView connected_user = blindtest.getConnectedUser(); selected_game = blindtest.getSelectedGame(); correctAnswers_label.Text = "Correct Answers - " + selected_game.game_title; gameStatus_label.Text = "Game in progress..."; foreach (BTGameHistory history in selected_game.scores.history) { BTScoreboard score = new BTScoreboard(); score.username = "******"; score.profile_picture = "ms-appx:///Assets/Users/unselected-user.png"; foreach (BTUser user in blindtest.getAllUsers()) { if (user.user_id == history.user_id) { score.username = user.nickname; score.profile_picture = user.profile_picture; } } score.date = history.date; score.score = history.score.ToString(); scoreboard.Add(score); } ObservableCollection <BTScoreboard> listItems2 = new ObservableCollection <BTScoreboard>(); foreach (BTScoreboard score in scoreboard) { listItems2.Add(score); } scoreboard_listView.ItemsSource = listItems2; // Launching the game is_album_correct = false; is_artist_correct = false; is_duration_correct = false; is_title_correct = false; score = 0; // Loading tracklist foreach (DeezerTrack track in selected_game.tracklist) { tracklist_src.Add(track); } nbr_track = tracklist_src.Count; total_tracks = tracklist_src.Count; current_track_int = 1; songStatus_label.Text = "Track " + current_track_int.ToString() + " of " + total_tracks.ToString(); Random random = new Random(); int random_int = random.Next(0, nbr_track - 1); current_track = tracklist_src[random_int]; tracklist_src.Remove(current_track); gameStatus_label.Text = "Game in progress... - score : " + score.ToString() + " points"; blindtest.readPreview(current_track); total_correct_answer = 0; } }
// Next song button private void NextSong_button_Click(object sender, RoutedEventArgs e) { // stop previous track preview blindtest.pausePreview(); // Resetting ui elements and local info total_correct_answer = 0; title_label.Text = "not found yet!"; artist_label.Text = "not found yet!"; album_label.Text = "not found yet!"; duration_label.Text = "not found yet!"; BitmapImage bmpImg = new BitmapImage(); bmpImg.UriSource = new Uri("ms-appx:///Assets/default-track.png"); selectedTrack_Image.Source = bmpImg; current_track_int++; is_album_correct = false; is_artist_correct = false; is_duration_correct = false; is_title_correct = false; // If there is still tracks to play if (current_track_int <= total_tracks) { // Editing status label songStatus_label.Text = "Track " + current_track_int.ToString() + " of " + total_tracks.ToString(); nbr_track--; // Selecting random track in the list Random random = new Random(); int random_int = random.Next(0, nbr_track - 1); current_track = tracklist_src[random_int]; tracklist_src.Remove(current_track); // Reading preview gameStatus_label.Text = "Game in progress... - score : " + score.ToString() + " points"; blindtest.readPreview(current_track); total_correct_answer = 0; } // When all tracks have been played else { // Showing final score to user gameStatus_label.Text = "Game finished! - Final score : " + score.ToString() + " points"; // Creating history entry BTGameHistory history_entry = new BTGameHistory(); history_entry.user_id = connected_user.user_id; history_entry.score = score; DateTime time = DateTime.Now; history_entry.date = time.ToString(); // Adding score entry to database blindtest.addScore(selected_game, history_entry); // Locking UI elements answer_button.IsEnabled = false; answer_textBox.IsEnabled = false; nextSong_button.IsEnabled = false; downloadStatusTimer.Stop(); playPreview_button.IsEnabled = false; stopPreview_button.IsEnabled = false; // Clear scoreboard listview ObservableCollection <BTScoreboard> listItems2 = new ObservableCollection <BTScoreboard>(); scoreboard_listView.ItemsSource = listItems2; // Reloading scoreboard in listView BTScoreboard scoreboard_entry = new BTScoreboard(); scoreboard_entry.date = history_entry.date; scoreboard_entry.profile_picture = connected_user.profile_picture; scoreboard_entry.score = history_entry.score.ToString(); scoreboard_entry.username = connected_user.nickname; scoreboard.Add(scoreboard_entry); foreach (BTScoreboard score in scoreboard) { listItems2.Add(score); } scoreboard_listView.ItemsSource = listItems2; } }