{
MusicPlayerStateChanged += listener;
}
+
+ /// <summary>
+ /// A method adds EventHandler to SetCurrentMusicProgressListener
+ /// </summary>
+ /// <param name="listener">The EventHandler for adding</param>
+ public void SetMusicPlayCompletedListener(EventHandler<EventArgs> listener)
+ {
+ playerInstance.PlaybackCompleted += listener;
+ }
}
}
public ObservableCollection<GroupItem> MusicList { get; set; }
/// <summary>
+ /// Gets or sets the list of music items
+ /// </summary>
+ public List<MediaInformationEx> MusicPlayList { get; set; }
+
+ /// <summary>
/// Gets or sets the SourceList
/// </summary>
public IEnumerable<string> SourceList { get; set; }
public MediaInformationEx CurrentMusic { get; set; }
/// <summary>
+ /// The index of the current music
+ /// </summary>
+ public int CurrentMusicIndex { get; set; }
+
+ /// <summary>
/// The sort option to display items of the music tab
/// </summary>
private SortOption option = SortOption.Title;
public MusicTabViewModel()
{
MusicList = new ObservableCollection<GroupItem>();
+ MusicPlayList = new List<MediaInformationEx>();
+
sourcePairList = new Dictionary<string, string>();
InitializeFooterItemsSource();
InitializeCommands();
{
AddSourceListItem();
});
+
+ MusicPlayerModel.Instance.SetMusicPlayCompletedListener((e, v) =>
+ {
+ if(CurrentMusicIndex < MusicPlayList.Count - 1)
+ {
+ CurrentMusic = MusicPlayerModel.Instance.CurrentMusic = MusicPlayList[++CurrentMusicIndex];
+ OnPropertyChanged("CurrentMusic");
+ }
+ });
}
/// <summary>
foreach (var group in templist)
{
MusicList.Add(group);
+ foreach(var item in group.Contents)
+ {
+ MusicPlayList.Add(item.Information);
+ }
}
}
public void SetCurrentMusic(MediaInformationEx musicContent)
{
CurrentMusic = MusicPlayerModel.Instance.CurrentMusic = musicContent;
+ CurrentMusicIndex = MusicPlayList.IndexOf(musicContent);
OnPropertyChanged("CurrentMusic");
}
}