Beispiel #1
0
        private bool AddMusic(string musicName, MusicFile musicFile, bool forceReplace)
        {
            var musicNameLower = musicName.ToLowerInvariant();

            if (MusicFiles.ContainsKey(musicNameLower))
            {
                if (forceReplace && MusicFiles[musicNameLower].IsStandard)
                {
                    MusicFiles.Remove(musicNameLower);
                }
                else
                {
                    return(true);
                }
            }
            MusicFiles.Add(musicNameLower, new MusicClip(musicFile));

            // TODO: Loading every music increases uned memory size duh
            //if (!musicFile.ForceLoad())
            //{
            //    Logger.Log(Logger.LogTypes.Warning, $"MusicTrack.cs: File at \"{musicFile.LocalPath}\" is not a valid music file!");
            //    return false;
            //}
            return(true);
        }
Beispiel #2
0
 private void MusicFileServiceOnMusicFileLoaded(object sender, MusicFileLoadedEventArgs eventArgs)
 {
     Device.BeginInvokeOnMainThread(() =>
     {
         MusicFiles.Add(eventArgs.MusicFile);
     });
 }
Beispiel #3
0
 public void ScanFileLocations(BackgroundWorker worker, DoWorkEventArgs e)
 {
     if (worker.CancellationPending)
     {
         e.Cancel = true;
     }
     else
     {
         try
         {
             int highestPercentageReached = 0;
             foreach (var file in FileLocations)
             {
                 int percentComplete = (int)((float)Array.IndexOf(FileLocations, file) / (float)Array.LastIndexOf(FileLocations, file) * 100);
                 if (percentComplete > highestPercentageReached)
                 {
                     highestPercentageReached = percentComplete;
                     worker.ReportProgress(percentComplete);
                 }
                 foreach (var ext in MusicExt)
                 {
                     string[] filePaths = Directory.GetFiles(file, ext, SearchOption.AllDirectories);
                     foreach (var files in filePaths)
                     {
                         MusicFiles.Add(new Music(files));
                     }
                 }
                 foreach (var ext in VideoExt)
                 {
                     string[] filePaths = Directory.GetFiles(file, ext, SearchOption.AllDirectories);
                     foreach (var files in filePaths)
                     {
                         VideoFiles.Add(new Video(files));
                     }
                 }
                 foreach (var ext in OtherExt)
                 {
                     string[] filePaths = Directory.GetFiles(file, ext, SearchOption.AllDirectories);
                     foreach (var files in filePaths)
                     {
                         MediaFiles.Add(new MediaFiles(files));
                     }
                 }
             }
         }
         catch (Exception exc)
         {
             throw new ArgumentException(exc.ToString());
         }
     }
 }
Beispiel #4
0
        public async void ImportFromMidiAsync()
        {
            var filePicker = new FileOpenPicker {
                ViewMode = PickerViewMode.List
            };


            filePicker.FileTypeFilter.Add(".mid");
            filePicker.FileTypeFilter.Add(".midi");
            filePicker.FileTypeFilter.Add(".smf");

            filePicker.CommitButtonText = "Import";

            StorageFile file = await filePicker.PickSingleFileAsync();

            if (file == null)
            {
                return;
            }

            if (file.ContentType != "audio/mid" &&
                file.ContentType != "audio/midi")
            {
                await
                new MessageDialog("Please select a valid standard midi file.", "Selected file is not a midi file!").ShowAsync();
                return;
            }


            IStorageItem rootDir = await ApplicationData.Current.RoamingFolder.TryGetItemAsync("Music");

            if (rootDir == null)
            {
                await new MessageDialog("Please restart this app!", "Music Folder is not found!").ShowAsync();
                return;
            }
            if ((await ImportAsync(file)) is StorageFile f)
            {
                MusicFiles.Add(f);
            }
        }