예제 #1
0
        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;
            }
        }
예제 #2
0
        /// <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;
            }
        }
예제 #3
0
        /// <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);
            }
        }