public DGJWindow(DGJMain dGJMain) { DataContext = this; PluginMain = dGJMain; Songs = new ObservableCollection <SongItem>(); Playlist = new ObservableCollection <SongInfo>(); Blacklist = new ObservableCollection <BlackListItem>(); Player = new Player(Songs, Playlist); Downloader = new Downloader(Songs); SearchModules = new SearchModules(); DanmuHandler = new DanmuHandler(Songs, Player, Downloader, SearchModules, Blacklist); Writer = new Writer(Songs, Playlist, Player, DanmuHandler); Player.LogEvent += (sender, e) => { PluginMain.Log("播放 " + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; Downloader.LogEvent += (sender, e) => { PluginMain.Log("下载 " + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; Writer.LogEvent += (sender, e) => { PluginMain.Log("文本输出 " + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; SearchModules.LogEvent += (sender, e) => { PluginMain.Log("搜索模块 " + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; DanmuHandler.LogEvent += (sender, e) => { PluginMain.Log("弹幕 " + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; RemoveSongCommmand = new UniversalCommand((songobj) => { if (songobj != null && songobj is SongItem songItem) { songItem.Remove(Songs, Downloader, Player); } }); RemoveAndBlacklistSongCommand = new UniversalCommand((songobj) => { if (songobj != null && songobj is SongItem songItem) { songItem.Remove(Songs, Downloader, Player); Blacklist.Add(new BlackListItem(BlackListType.Id, songItem.SongId)); } }); RemovePlaylistInfoCommmand = new UniversalCommand((songobj) => { if (songobj != null && songobj is SongInfo songInfo) { Playlist.Remove(songInfo); } }); ClearPlaylistCommand = new UniversalCommand((e) => { Playlist.Clear(); }); RemoveBlacklistInfoCommmand = new UniversalCommand((blackobj) => { if (blackobj != null && blackobj is BlackListItem blackListItem) { Blacklist.Remove(blackListItem); } }); ClearBlacklistCommand = new UniversalCommand((x) => { Blacklist.Clear(); }); InitializeComponent(); ApplyConfig(Config.Load()); PluginMain.ReceivedDanmaku += (sender, e) => { DanmuHandler.ProcessDanmu(e.Danmaku); }; #region PackIcon 问题 workaround PackIconPause.Kind = PackIconKind.Pause; PackIconPlay.Kind = PackIconKind.Play; PackIconVolumeHigh.Kind = PackIconKind.VolumeHigh; PackIconSkipNext.Kind = PackIconKind.SkipNext; PackIconSettings.Kind = PackIconKind.Settings; PackIconFilterRemove.Kind = PackIconKind.FilterRemove; PackIconFileDocument.Kind = PackIconKind.FileDocument; #endregion }
public DGJWindow(DGJMain dGJMain) { void addResource(string uri) { Application.Current.Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri(uri) }); } addResource("pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml"); addResource("pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.Blue.xaml"); addResource("pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.DeepOrange.xaml"); addResource("pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ProgressBar.xaml"); DataContext = this; PluginMain = dGJMain; Songs = new ObservableCollection <SongItem>(); Playlist = new ObservableCollection <SongInfo>(); Blacklist = new ObservableCollection <BlackListItem>(); Player = new Player(Songs, Playlist); Downloader = new Downloader(Songs); SearchModules = new SearchModules(); DanmuHandler = new DanmuHandler(Songs, Player, Downloader, SearchModules, Blacklist); Writer = new Writer(Songs, Playlist, Player, DanmuHandler); Player.LogEvent += (sender, e) => { Log("播放:" + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; Downloader.LogEvent += (sender, e) => { Log("下载:" + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; Writer.LogEvent += (sender, e) => { Log("文本:" + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; SearchModules.LogEvent += (sender, e) => { Log("搜索:" + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; DanmuHandler.LogEvent += (sender, e) => { Log("" + e.Message + (e.Exception == null ? string.Empty : e.Exception.Message)); }; RemoveSongCommmand = new UniversalCommand((songobj) => { if (songobj != null && songobj is SongItem songItem) { songItem.Remove(Songs, Downloader, Player); } }); RemoveAndBlacklistSongCommand = new UniversalCommand((songobj) => { if (songobj != null && songobj is SongItem songItem) { songItem.Remove(Songs, Downloader, Player); Blacklist.Add(new BlackListItem(BlackListType.Id, songItem.SongId)); } }); RemovePlaylistInfoCommmand = new UniversalCommand((songobj) => { if (songobj != null && songobj is SongInfo songInfo) { Playlist.Remove(songInfo); } }); ClearPlaylistCommand = new UniversalCommand((e) => { Playlist.Clear(); }); RemoveBlacklistInfoCommmand = new UniversalCommand((blackobj) => { if (blackobj != null && blackobj is BlackListItem blackListItem) { Blacklist.Remove(blackListItem); } }); ClearBlacklistCommand = new UniversalCommand((x) => { Blacklist.Clear(); }); InitializeComponent(); ApplyConfig(Config.Load()); PluginMain.ReceivedDanmaku += (sender, e) => { DanmuHandler.ProcessDanmu(e.Danmaku); }; PluginMain.Connected += (sender, e) => { LwlApiBaseModule.RoomId = e.roomid; }; PluginMain.Disconnected += (sender, e) => { LwlApiBaseModule.RoomId = 0; }; }