Esempio n. 1
0
        private void UpdateAlbumListView(string theID)
        {
            LastAlbumId = theID;

            MusicFolder FolderContents = Subsonic.GetMusicDirectory(theID);

            lbAlbums.BeginUpdate();
            lbAlbums.Items.Clear();

            if (AlbumListHistory.Peek() != "Root")
            {
                lbAlbums.Items.Add(new MusicFolder("..", AlbumListHistory.Peek()));
            }

            foreach (MusicFolder mf in FolderContents.Folders)
            {
                lbAlbums.Items.Add(mf);
            }

            foreach (Song sg in FolderContents.Songs)
            {
                lbAlbums.Items.Add(sg);
            }

            lbAlbums.EndUpdate();
        }
    private static void ReadAndLoadMusicFolderAsync(object obj)
    {
        MusicFolder mf = obj as MusicFolder;

        Debug.Log("Start loading " + mf.Name);
        foreach (MusicData md in mf.musicdata)
        {
            //string musicfilepath = cLocalPath + md.music;
            FileStream fileStream = new FileStream(md.music, FileMode.Open, FileAccess.Read);
            fileStream.Seek(0, SeekOrigin.Begin);
            //创建文件长度缓冲区
            byte[] bytes = new byte[fileStream.Length];
            //读取文件
            fileStream.Read(bytes, 0, (int)fileStream.Length);
            //释放文件读取流
            fileStream.Close();
            fileStream.Dispose();
            fileStream = null;

            //Convert Music to AudioClip Can only be deployed in the main thread.
            //So audioWavDic act as buffer

            lock (audioWavDic_lock)
            {
                //audioDic.Add(md.title, clip);
                audioWavDic.Add(md.title, bytes);
                Debug.Log("Add Music:" + md.title);
            }
        }
        return;
    }
Esempio n. 3
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (ExcelFile != null ? ExcelFile.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (MusicFolder != null ? MusicFolder.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (OutputFolder != null ? OutputFolder.GetHashCode() : 0);
         return(hashCode);
     }
 }
    public static List <MusicFolder> LoadSongDataFromDisk()
    {
        MUSICPATH = FileManager.GetMusicDataPath() + "/";
        debugtext.Add("MyDebug", "MUSICPATH " + MUSICPATH);
        Debug.Log("MUSICPATH " + MUSICPATH);
        List <MusicFolder> mf = new List <MusicFolder>();
        MusicFolder        temp_musicfolder;
        MusicData          temp_music = new MusicData();

        //load music files
        if (Directory.Exists(MUSICPATH))
        {
            musicdir = new DirectoryInfo(MUSICPATH);
            DirectoryInfo[] musicsets = musicdir.GetDirectories();

            for (int i = 0; i < musicsets.Length; i++)
            {
                if (File.Exists(MUSICPATH + musicsets[i].Name + "/data.csv"))
                {
                    // good pack?
                    Debug.Log("Found pack csv:" + musicsets[i].Name);
                    //temp_musicfolder.musicdata.Clear();
                    try
                    {
                        csvController.GetInstance().loadFile(MUSICPATH + musicsets[i].Name, "data.csv");
                        List <string[]> musiclist = csvController.GetInstance().getData();
                        musiclist.RemoveAt(0);
                        temp_musicfolder      = new MusicFolder();
                        temp_musicfolder.Name = musicsets[i].Name;
                        temp_musicfolder.musicdata.Clear();
                        foreach (string[] info in musiclist)
                        {
                            //temp_music.SetMusicData(info);
                            info[6] = MUSICPATH + musicsets[i].Name + "/" + info[6];
                            info[7] = MUSICPATH + musicsets[i].Name + "/" + info[7];
                            MusicData md = new MusicData(info);
                            md.packname = musicsets[i].Name;
                            temp_musicfolder.musicdata.Add(md);
                        }
                        Debug.Log("Loaded pack csv:" + musicsets[i].Name);
                        mf.Add(temp_musicfolder);
                    }
                    catch
                    {
                        Debug.Log(musicsets[i].Name + "load failed!");
                    }
                }
            }
        }
        return(mf);
    }
    private static void ReadAndLoadMusicFolder(object obj)
    {
        //deprecated
        MusicFolder mf = obj as MusicFolder;

        Debug.Log("Start loading " + mf.Name);
        AudioClip clip;

        foreach (MusicData md in mf.musicdata)
        {
            //string musicfilepath = cLocalPath + md.music;
            FileStream fileStream = new FileStream(md.music, FileMode.Open, FileAccess.Read);
            fileStream.Seek(0, SeekOrigin.Begin);
            //创建文件长度缓冲区
            byte[] bytes = new byte[fileStream.Length];
            //读取文件
            fileStream.Read(bytes, 0, (int)fileStream.Length);
            //释放文件读取流
            fileStream.Close();
            fileStream.Dispose();
            fileStream = null;
            if (bytes.Length != 0)
            {
                //WWW www = new WWW(musicfilepath);
                clip = NAudioPlayer.FromMp3Data(bytes);
            }
            else
            {
                clip = null;
            }
            Debug.Log("Load " + md.music);
            //Read musicbytes Here:
            //TODO:

            //Convert Music to AudioClip Can only be deployed in the main thread.
            //So audioWavDic act as buffer

            lock (audioWavDic_lock)
            {
                audioDic.Add(md.title, clip);
                //audioWavDic.Add(md.title, musicbytes);
                Debug.Log("Add Music:" + md.title);
            }
        }
        return;
    }
Esempio n. 6
0
        public void Write(Android.Content.Context context)
        {
            var prefs  = Android.Preferences.PreferenceManager.GetDefaultSharedPreferences(context);
            var editor = prefs.Edit();

            editor.PutInt("version", Version);
            editor.PutInt("messageFilterLevel", MessageFilterLevel);
            editor.PutString("musicFolder", MusicFolder.Serialize());
            editor.PutString("soundFolder", SoundFolder.Serialize());
            editor.PutString("projectFolder", ProjectFolder.Serialize());
            editor.PutInt("overallVolume", GlobalVolume);
            editor.PutInt("musicVolume", MusicVolume);
            editor.PutInt("soundVolume", SoundVolume);
            editor.PutInt("udpPort", UdpPort);
            editor.PutInt("tcpPort", TcpPort);
            editor.PutString("lastProject", RecentFiles.GetFiles().Count > 0 ? RecentFiles.GetFiles()[0].FilePath : String.Empty);
            editor.PutInt("tagMusicFadeTime", TagMusicFadeTime);
            editor.PutBoolean("tagMusicFadeOnlyOnChange", TagMusicFadeOnlyOnChange);
            editor.PutInt("buttonMusicFadeMode", ButtonMusicFadeMode);
            editor.PutInt("buttonMusicFadeTime", ButtonMusicFadeTime);
            editor.PutString("playerName", PlayerName);
            editor.Apply();
        }
Esempio n. 7
0
 public void GivenIHaveAMusicFolder()
 {
     _folder = new MusicFolder();
 }
Esempio n. 8
0
        /// <summary>
        /// Parse the contents of the iTunes Music Library.xml file into our data structure.
        /// </summary>
        /// <param name="fileLocation"></param>
        private void ParseLibrary(string fileLocation)
        {
            // Open the XML library, first as a general stream.
            using (StreamReader stream = new StreamReader(fileLocation, Encoding.GetEncoding("utf-8")))
            {
                // Then interpret it as an XML file.
                using (XmlTextReader xmlReader = new XmlTextReader(stream)
                {
                    XmlResolver = null
                })
                {
                    XPathDocument     xPathDocument  = new XPathDocument(xmlReader);
                    XPathNavigator    xPathNavigator = xPathDocument.CreateNavigator();
                    XPathNodeIterator nodeIterator   = xPathNavigator.Select("/plist/dict");
                    nodeIterator.MoveNext();
                    nodeIterator = nodeIterator.Current.SelectChildren(XPathNodeType.All);

                    while (nodeIterator.MoveNext())
                    {
                        if (nodeIterator.Current.Value.Equals("Music Folder"))
                        {
                            if (nodeIterator.MoveNext())
                            {
                                // Parse out the location of the music folder used by the active library.
                                _originalMusicFolder = nodeIterator.Current.Value;
                                MusicFolder          = _originalMusicFolder.Replace("file://localhost/", string.Empty);

                                // Strip away UNC path if it's in that format.
                                if (MusicFolder.StartsWith("/"))
                                {
                                    MusicFolder = $"/{MusicFolder}";
                                }

                                // Decode back from XML into a usable path.
                                MusicFolder = HttpUtility.UrlDecode(MusicFolder);

                                // Change forward slashes to PC backslashes.
                                MusicFolder = MusicFolder?.Replace('/', Path.DirectorySeparatorChar);
                            }
                        }
                        else if (nodeIterator.Current.Value.Equals("Library Persistent ID"))
                        {
                            if (nodeIterator.MoveNext())
                            {
                                LibraryPersistentId = nodeIterator.Current.Value;
                            }
                        }
                    }

                    // Can't move on if we don't know where the music is stored.
                    if (MusicFolder == null)
                    {
                        throw new Exception("Unable to parse Music Library element from iTunes Music Library.");
                    }

                    // This query gets us down to the point in the library that contains individual track details.
                    nodeIterator = xPathNavigator.Select("/plist/dict/dict/dict");

                    while (nodeIterator.MoveNext())
                    {
                        ParseTrack(nodeIterator.Current.SelectChildren(XPathNodeType.All));
                    }

                    // After tracks, we're looking at the playlists that are listed in the library.
                    nodeIterator = xPathNavigator.Select("/plist/dict/array/dict");

                    while (nodeIterator.MoveNext())
                    {
                        ParsePlaylist(nodeIterator.Current.SelectChildren(XPathNodeType.All));
                    }

                    xmlReader.Close();
                }
            }
        }
Esempio n. 9
0
 public void GivenIHaveAMusicFolder()
 {
     _folder = new MusicFolder();
 }
 public void GivenIHaveAMusicFolder()
 {
     _folder = _fixture.Create<MusicFolder>();
 }
Esempio n. 11
0
        private static IEnumerable <Song> GetSongIds(string albumKey)
        {
            MusicFolder albumContens = Subsonic.GetMusicDirectory(albumKey);

            return(albumContens.Songs);
        }
 public void GivenIHaveAMusicFolder()
 {
     _folder = _fixture.Create <MusicFolder>();
 }