async Task libLoad(KnownFolderId library) { IsReady = false; try { var max = 200; var sfs = await IsoStorePoc.LoadFromLibFolder(library); MediaInfos.Clear(); sfs.Take(max).ToList().ForEach(sf => MediaInfos.Add(new MediaInfo(sf))); ApplicationView.GetForCurrentView().Title = Info = $@"Ttl {sfs.Count} in {library}, taking first {max}"; } finally { IsReady = true; } }
/// <summary> /// Affiche une information des fichiers sélectionnés. /// </summary> /// <param name="info">L'information à afficher.</param> private void DisplayInfo(MediaInfos info) { switch (info) { case MediaInfos.Format: if (Infos[0].Count == 0) { FormatTB.Text = string.Empty; } else if (Infos[0].Count == 1) { FormatTB.Text = Infos[0].Keys.First().ToString(); } else { FormatTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.Encoding: if (Infos[1].Count == 0) { EncodingTB.Text = string.Empty; } else if (Infos[1].Count == 1) { EncodingTB.Text = Infos[1].Keys.First().ToString(); } else { EncodingTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.Channels: if (Infos[2].Count == 0) { ChannelsTB.Text = string.Empty; } else if (Infos[2].Count == 1) { ChannelsTB.Text = Infos[2].Keys.First().ToString(); } else { ChannelsTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.SampleRate: if (Infos[3].Count == 0) { SampleRateTB.Text = string.Empty; } else if (Infos[3].Count == 1) { SampleRateTB.Text = Infos[3].Keys.First().ToString(); } else { SampleRateTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.TotalSamples: if (Infos[4].Count == 0) { TotalsamplesTB.Text = string.Empty; } else if (Infos[4].Count == 1) { TotalsamplesTB.Text = Infos[4].Keys.First().ToString(); } else { TotalsamplesTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.LoopFlag: if (Infos[5].Count == 0) { if (LoopHeaderSP.Children[0].GetType() == typeof(Viewbox)) { LoopHeaderSP.Children.RemoveAt(0); } } else if (Infos[5].Count == 1) { if (LoopHeaderSP.Children[0].GetType() == typeof(Viewbox)) { LoopHeaderSP.Children.RemoveAt(0); } LoopHeaderSP.Children.Insert(0, BoolToImage((bool)Infos[5].Keys.First())); } else { if (LoopHeaderSP.Children[0].GetType() == typeof(Viewbox)) { LoopHeaderSP.Children.RemoveAt(0); } LoopHeaderSP.Children.Insert(0, Application.Current.Resources["Circle"] as Viewbox); } break; case MediaInfos.LoopStartString: if (Infos[6].Count == 0) { LoopStartTB.Text = string.Empty; } else if (Infos[6].Count == 1) { LoopStartTB.Text = Infos[6].Keys.First().ToString(); } else { LoopStartTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.LoopEndString: if (Infos[7].Count == 0) { LoopEndTB.Text = string.Empty; } else if (Infos[7].Count == 1) { LoopEndTB.Text = Infos[7].Keys.First().ToString(); } else { LoopEndTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.LoopCount: if (Infos[8].Count == 0) { LoopCountBox.Empty = true; } else if (Infos[8].Count == 1) { LoopCountBox.Text = Infos[8].Keys.First().ToString(); } else { LoopCountBox.Text = App.Str("MW_Multiple"); } break; case MediaInfos.StartEndLoop: if (Infos[9].Count == 0) { StartEndLoopCheckBox.IsChecked = false; } else if (Infos[9].Count == 1) { StartEndLoopCheckBox.IsChecked = (bool)Infos[9].Keys.First(); } else { StartEndLoopCheckBox.IsChecked = null; } break; case MediaInfos.FadeDelay: if (Infos[10].Count == 0) { FadeDelayBox.Empty = true; } else if (Infos[10].Count == 1) { FadeDelayBox.Text = Infos[10].Keys.First().ToString(); } else { FadeDelayBox.Text = App.Str("MW_Multiple"); } break; case MediaInfos.FadeTime: if (Infos[11].Count == 0) { FadeTimeBox.Empty = true; } else if (Infos[11].Count == 1) { FadeTimeBox.Text = Infos[11].Keys.First().ToString(); } else { FadeTimeBox.Text = App.Str("MW_Multiple"); } break; case MediaInfos.Destination: if (Infos[12].Count == 0) { DestCB.Text = string.Empty; } else if (Infos[12].Count == 1) { if (Directory.Exists((string)Infos[12].Keys.First())) { DestCB.Items.FindCollectionItem <ComboBoxItem>("SelectedTasksCustom").Content = Infos[12].Keys.First(); DestCB.SelectedItem = DestCB.Items.FindCollectionItem <ComboBoxItem>("SelectedTasksCustom"); } else { DestCB.Text = (string)Infos[12].Keys.First(); } } else { DestCB.SelectedItem = DestCB.Items.FindCollectionItem <ComboBoxItem>("MultipleCBI"); } break; case MediaInfos.FadeOut: if (Infos[13].Count == 0) { FadeOutCheckBox.IsChecked = false; } else if (Infos[13].Count == 1) { FadeOutCheckBox.IsChecked = (bool)Infos[13].Keys.First(); } else { FadeOutCheckBox.IsChecked = null; } break; case MediaInfos.Layout: if (Infos[14].Count == 0) { LayoutTB.Text = string.Empty; } else if (Infos[14].Count == 1) { LayoutTB.Text = Infos[14].Keys.First().ToString(); } else { LayoutTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.Interleave: if (Infos[15].Count == 0) { InterleaveTB.Text = string.Empty; } else if (Infos[15].Count == 1) { InterleaveTB.Text = Infos[15].Keys.First().ToString(); } else { InterleaveTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.Bitrate: if (Infos[16].Count == 0) { BitrateTB.Text = string.Empty; } else if (Infos[16].Count == 1) { BitrateTB.Text = Infos[16].Keys.First().ToString(); } else { BitrateTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.SamplesToPlay: if (Infos[17].Count == 0) { SamplesToPlayTB.Text = string.Empty; } else if (Infos[17].Count == 1) { SamplesToPlayTB.Text = Infos[17].Keys.First().ToString(); } else { SamplesToPlayTB.Text = App.Str("MW_Multiple"); } break; case MediaInfos.All: { //Format===================================================================== if (Infos[0].Count == 0) { FormatTB.Text = string.Empty; } else if (Infos[0].Count == 1) { FormatTB.Text = Infos[0].Keys.First().ToString(); } else { FormatTB.Text = App.Str("MW_Multiple"); } //Encoding===================================================================== if (Infos[1].Count == 0) { EncodingTB.Text = string.Empty; } else if (Infos[1].Count == 1) { EncodingTB.Text = Infos[1].Keys.First().ToString(); } else { EncodingTB.Text = App.Str("MW_Multiple"); } //Channels===================================================================== if (Infos[2].Count == 0) { ChannelsTB.Text = string.Empty; } else if (Infos[2].Count == 1) { ChannelsTB.Text = Infos[2].Keys.First().ToString(); } else { ChannelsTB.Text = App.Str("MW_Multiple"); } //SampleRate===================================================================== if (Infos[3].Count == 0) { SampleRateTB.Text = string.Empty; } else if (Infos[3].Count == 1) { SampleRateTB.Text = Infos[3].Keys.First().ToString(); } else { SampleRateTB.Text = App.Str("MW_Multiple"); } //TotalSamples===================================================================== if (Infos[4].Count == 0) { TotalsamplesTB.Text = string.Empty; } else if (Infos[4].Count == 1) { TotalsamplesTB.Text = Infos[4].Keys.First().ToString(); } else { TotalsamplesTB.Text = App.Str("MW_Multiple"); } //LoopFlag===================================================================== if (Infos[5].Count == 0) { if (LoopHeaderSP.Children[0].GetType() == typeof(Viewbox)) { LoopHeaderSP.Children.RemoveAt(0); } } else if (Infos[5].Count == 1) { if (LoopHeaderSP.Children[0].GetType() == typeof(Viewbox)) { LoopHeaderSP.Children.RemoveAt(0); } LoopHeaderSP.Children.Insert(0, BoolToImage((bool)Infos[5].Keys.First())); } else { if (LoopHeaderSP.Children[0].GetType() == typeof(Viewbox)) { LoopHeaderSP.Children.RemoveAt(0); } LoopHeaderSP.Children.Insert(0, Application.Current.Resources["Circle"] as Viewbox); } //LoopStartString===================================================================== if (Infos[6].Count == 0) { LoopStartTB.Text = string.Empty; } else if (Infos[6].Count == 1) { LoopStartTB.Text = Infos[6].Keys.First().ToString(); } else { LoopStartTB.Text = App.Str("MW_Multiple"); } //LoopEndString===================================================================== if (Infos[7].Count == 0) { LoopEndTB.Text = string.Empty; } else if (Infos[7].Count == 1) { LoopEndTB.Text = Infos[7].Keys.First().ToString(); } else { LoopEndTB.Text = App.Str("MW_Multiple"); } //LoopCount===================================================================== if (Infos[8].Count == 0) { LoopCountBox.Empty = true; } else if (Infos[8].Count == 1) { LoopCountBox.Text = Infos[8].Keys.First().ToString(); } else { LoopCountBox.Text = App.Str("MW_Multiple"); } //StartEndLoop===================================================================== if (Infos[9].Count == 0) { StartEndLoopCheckBox.IsChecked = false; } else if (Infos[9].Count == 1) { StartEndLoopCheckBox.IsChecked = (bool)Infos[9].Keys.First(); } else { StartEndLoopCheckBox.IsChecked = null; } //FadeDelay===================================================================== if (Infos[10].Count == 0) { FadeDelayBox.Empty = true; } else if (Infos[10].Count == 1) { FadeDelayBox.Text = Infos[10].Keys.First().ToString(); } else { FadeDelayBox.Text = App.Str("MW_Multiple"); } //FadeTime===================================================================== if (Infos[11].Count == 0) { FadeTimeBox.Empty = true; } else if (Infos[11].Count == 1) { FadeTimeBox.Text = Infos[11].Keys.First().ToString(); } else { FadeTimeBox.Text = App.Str("MW_Multiple"); } //Destination===================================================================== if (Infos[12].Count == 0) { DestCB.Text = string.Empty; } else if (Infos[12].Count == 1) { if (Directory.Exists((string)Infos[12].Keys.First())) { DestCB.Items.FindCollectionItem <ComboBoxItem>("SelectedTasksCustom").Content = Infos[12].Keys.First(); DestCB.SelectedItem = DestCB.Items.FindCollectionItem <ComboBoxItem>("SelectedTasksCustom"); } else { DestCB.Text = (string)Infos[12].Keys.First(); } } else { DestCB.SelectedItem = DestCB.Items.FindCollectionItem <ComboBoxItem>("MultipleCBI"); } //FadeOut===================================================================== if (Infos[13].Count == 0) { FadeOutCheckBox.IsChecked = false; } else if (Infos[13].Count == 1) { FadeOutCheckBox.IsChecked = (bool)Infos[13].Keys.First(); } else { FadeOutCheckBox.IsChecked = null; } //Layout===================================================================== if (Infos[14].Count == 0) { LayoutTB.Text = string.Empty; } else if (Infos[14].Count == 1) { LayoutTB.Text = Infos[14].Keys.First().ToString(); } else { LayoutTB.Text = App.Str("MW_Multiple"); } //Interleave===================================================================== if (Infos[15].Count == 0) { InterleaveTB.Text = string.Empty; } else if (Infos[15].Count == 1) { InterleaveTB.Text = Infos[15].Keys.First().ToString(); } else { InterleaveTB.Text = App.Str("MW_Multiple"); } //Bitrate===================================================================== if (Infos[16].Count == 0) { BitrateTB.Text = string.Empty; } else if (Infos[16].Count == 1) { BitrateTB.Text = Infos[16].Keys.First().ToString(); } else { BitrateTB.Text = App.Str("MW_Multiple"); } //SamplesToPlay===================================================================== if (Infos[17].Count == 0) { SamplesToPlayTB.Text = string.Empty; } else if (Infos[17].Count == 1) { SamplesToPlayTB.Text = Infos[17].Keys.First().ToString(); } else { SamplesToPlayTB.Text = App.Str("MW_Multiple"); } //===================================================================== } break; } bool valid = true; for (int i = 8; i <= 13; i++) { if (Infos[i].Count > 1) { valid = false; } } if (valid) { CopyButton.IsEnabled = SetAsDefaultButton.IsEnabled = true; } else { CopyButton.IsEnabled = SetAsDefaultButton.IsEnabled = false; } }
/// <summary> /// Inscrit une information dans les fichiers sélectionnés. /// </summary> /// <param name="info">L'information à inscrire.</param> private void WriteInfo(MediaInfos info) { object value; bool overflow = false; switch (info) { case MediaInfos.LoopCount: if ((value = LoopCountBox.Text.ToInt()) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { int oldValue = fichier.LoopCount; fichier.LoopCount = (int)value; if (fichier.SamplesToPlay == -1) { fichier.LoopCount = oldValue; overflow = true; } } } break; case MediaInfos.StartEndLoop: if ((value = StartEndLoopCheckBox.IsChecked) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { bool oldValue = fichier.StartEndLoop; fichier.StartEndLoop = (bool)value; if (fichier.SamplesToPlay == -1) { fichier.StartEndLoop = oldValue; overflow = true; } } } break; case MediaInfos.FadeOut: if ((value = FadeOutCheckBox.IsChecked) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { bool oldValue = fichier.FadeOut; fichier.FadeOut = (bool)value; if (fichier.SamplesToPlay == -1) { fichier.FadeOut = oldValue; overflow = true; } } } break; case MediaInfos.FadeDelay: if ((value = FadeDelayBox.Text.ToDouble()) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { double oldValue = fichier.FadeDelay; fichier.FadeDelay = (double)value; if (fichier.SamplesToPlay == -1) { fichier.FadeDelay = oldValue; overflow = true; } } } break; case MediaInfos.FadeTime: if ((value = FadeTimeBox.Text.ToDouble()) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { double oldValue = fichier.FadeTime; fichier.FadeTime = (double)value; if (fichier.SamplesToPlay == -1) { fichier.FadeTime = oldValue; overflow = true; } } } break; case MediaInfos.Destination: value = null; if ((DestCB.SelectedItem as ComboBoxItem)?.Content is string sitxt) { value = (sitxt != App.Str("MW_Multiple")) ? App.Res(sitxt, indice: "DEST_") ?? sitxt : null; } else if (!DestCB.Text.IsNullOrEmpty()) { value = (DestCB.Text != App.Str("MW_Multiple")) ? App.Res(DestCB.Text, indice: "DEST_") ?? DestCB.Text : null; } if (value != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { fichier.OriginalDestination = (string)value; } } break; case MediaInfos.All: //LoopCount===================================================================== if ((value = LoopCountBox.Text.ToInt()) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { int oldValue = fichier.LoopCount; fichier.LoopCount = (int)value; if (fichier.SamplesToPlay == -1) { fichier.LoopCount = oldValue; overflow = true; } } } //StartEndLoop===================================================================== if ((value = StartEndLoopCheckBox.IsChecked) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { bool oldValue = fichier.StartEndLoop; fichier.StartEndLoop = (bool)value; if (fichier.SamplesToPlay == -1) { fichier.StartEndLoop = oldValue; overflow = true; } } } //FadeOut===================================================================== if ((value = FadeOutCheckBox.IsChecked) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { bool oldValue = fichier.FadeOut; fichier.FadeOut = (bool)value; if (fichier.SamplesToPlay == -1) { fichier.FadeOut = oldValue; overflow = true; } } } //FadeDelay===================================================================== if ((value = FadeDelayBox.Text.ToDouble()) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { double oldValue = fichier.FadeDelay; fichier.FadeDelay = (double)value; if (fichier.SamplesToPlay == -1) { fichier.FadeDelay = oldValue; overflow = true; } } } //FadeTime===================================================================== if ((value = FadeTimeBox.Text.ToDouble()) != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { double oldValue = fichier.FadeTime; fichier.FadeTime = (double)value; if (fichier.SamplesToPlay == -1) { fichier.FadeTime = oldValue; overflow = true; } } } //Destination===================================================================== value = null; if ((DestCB.SelectedItem as ComboBoxItem)?.Content is string allsitxt) { value = (allsitxt != App.Str("MW_Multiple")) ? App.Res(allsitxt, indice: "DEST_") ?? allsitxt : null; } else if (!DestCB.Text.IsNullOrEmpty()) { value = (DestCB.Text != App.Str("MW_Multiple")) ? App.Res(DestCB.Text, indice: "DEST_") ?? DestCB.Text : null; } if (value != null) { foreach (Fichier fichier in tasklist.FILEList.SelectedItems) { fichier.OriginalDestination = (string)value; } } break; } if (overflow) { MessageBox.Show(App.Str("ERR_Overflow"), App.Str("TT_Warning"), MessageBoxButton.OK, MessageBoxImage.Warning); } }