コード例 #1
0
ファイル: SongMetaManager.cs プロジェクト: stjordanis/Play
    private void ScanFilesSynchronously()
    {
        lock (scanLock)
        {
            SongsFound   = 0;
            SongsSuccess = 0;
            SongsFailed  = 0;
            FolderScanner scannerTxt = new FolderScanner("*.txt");

            // Find all txt files in the song directories
            List <string> txtFiles = new List <string>();
            List <string> songDirs = SettingsManager.Instance.Settings.GameSettings.songDirs;
            foreach (string songDir in songDirs)
            {
                List <string> txtFilesInSongDir = scannerTxt.GetFiles(songDir);
                txtFiles.AddRange(txtFilesInSongDir);
            }
            SongsFound = txtFiles.Count;
            Debug.Log($"Found {SongsFound} songs in {songDirs.Count} configured song directories");

            txtFiles.ForEach(delegate(string path)
            {
                try
                {
                    Add(SongMetaBuilder.ParseFile(path));
                    SongsSuccess++;
                }
                catch (SongMetaBuilderException e)
                {
                    Debug.LogWarning(path + "\n" + e.Message);
                    SongsFailed++;
                }
                catch (Exception ex)
                {
                    Debug.LogException(ex);
                    Debug.LogError(path);
                    SongsFailed++;
                }
            });
        }
    }
コード例 #2
0
    private List <string> ScanForTxtFiles(FolderScanner scannerTxt)
    {
        List <string> txtFiles = new List <string>();
        List <string> songDirs = SettingsManager.Instance.Settings.GameSettings.songDirs;

        foreach (string songDir in songDirs)
        {
            try
            {
                List <string> txtFilesInSongDir = scannerTxt.GetFiles(songDir);
                txtFiles.AddRange(txtFilesInSongDir);
            }
            catch (Exception ex)
            {
                Debug.LogException(ex);
            }
        }
        SongsFound = txtFiles.Count;
        Debug.Log($"Found {SongsFound} songs in {songDirs.Count} configured song directories");
        return(txtFiles);
    }
コード例 #3
0
    private void ScanPlaylistFolder()
    {
        playlists             = new List <UltraStarPlaylist>();
        playlistToFilePathMap = new Dictionary <UltraStarPlaylist, string>();

        FolderScanner scanner           = new FolderScanner("*" + playlistFileExtension);
        List <string> playlistFilePaths = scanner.GetFiles(playlistFolder);

        foreach (string filePath in playlistFilePaths)
        {
            UltraStarPlaylist playlist = UltraStarPlaylistParser.ParseFile(filePath);
            playlists.Add(playlist);
            playlistToFilePathMap.Add(playlist, filePath);

            // This is the special playlist for the favorite songs.
            if (Path.GetFullPath(favoritesPlaylistFile) == Path.GetFullPath(filePath))
            {
                favoritesPlaylist = playlist;
            }
        }
    }