private void RemoveTag(ref MusicList musicList, MusicTag tag) { foreach (Music m in tag) { bool overlapped = false; foreach (Music temp in musicList) { if (temp.Path == m.Path) { overlapped = true; } } if (overlapped) { musicList.Remove(m); } } }
private void btnTagApply_Click(object sender, RoutedEventArgs e) { MusicList tempList = new MusicList(); foreach (MusicTag tag in _addingTags) { AddTag(ref tempList, tag); } foreach (MusicTag tag in _removingTags) { RemoveTag(ref tempList, tag); } playingMusicList.Clear(); foreach (Music m in tempList) { playingMusicList.Add(m); } Open(playingMusicList[0].Path); _soundOut.Play(); }
// 생성자 public MainWindow() { InitializeComponent(); // list들을 xaml과 연동 allMusicList = new MusicList(); allMusicList = (MusicList)FindResource("rscAllMusicList"); playingMusicList = new MusicList(); playingMusicList = (MusicList)FindResource("rscPlayingMusicList"); allTagList = new MusicTagList(); allTagList = (MusicTagList)FindResource("rscAllTagList"); // cscore Device 설정 _device = new MMDeviceEnumerator().EnumAudioEndpoints(DataFlow.Render, DeviceState.Active)[0]; Debug.Print(allMusicList.Count.ToString()); // 파일이 없을 시 한개 불러오기 if (allMusicList.Count < 1) { Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog(); Nullable <bool> result = dlg.ShowDialog(); allMusicList.Add(new Music(dlg.FileName)); } // 플레이리스트의 첫번쨰 음악을 오픈 Open(allMusicList[0].Path); // 현재 열고있는 탭을 PlayingTab으로 _nowGrid = PlayingTab; Update(); // TEST AREA _soundOut.Volume = 0.5f; }