public MusicEntity getMusic(string name)
        {
            MusicEntity me = Entities.Find(e => e.Name == name);

            Currently = Entities.IndexOf(me);
            return(me);
        }
Exemple #2
0
 private void MusicPerpeared(MusicEntity Music, Track mTrack)
 {
     Dispatcher.Invoke(() =>
     {
         ControlPanel.MaxValue = mTrack.Duration.TotalSeconds;
         ControlPanel.Value    = 0;
     });
 }
 public void DeleteMusic(MusicEntity entity, bool complete)
 {
     if (complete)
     {
         File.Delete(entity.Path);
     }
     OnMusicDeleted?.Invoke(entity.Name);
     AllMusic.DeleteMusic(entity);
 }
 private void initializeSoundSource(MusicEntity music)
 {
     iws?.Dispose();
     iws = GetCodec(music.Extension, music.Path);
     iws = lfw.Initialize(iws.ToSampleSource()
                          .ChangeSampleRate(32000)
                          .AppendSource(Equalizer.Create10BandEqualizer, out mEqualizer));
     wasapiOut.Initialize(iws);
     Volume           = 0.7f;
     wasapiOut.Volume = Volume;
 }
 public bool AddMusic(MusicEntity ME)
 {
     foreach (MusicEntity me in Entities)
     {
         if (me.Name.Equals(ME.Name))
         {
             return(false);
         }
     }
     Entities.Add(ME);
     return(true);
 }
        public BitmapSource GetCatalogueCover()
        {
            Random       r        = new Random();
            int          failTime = 0;
            MusicEntity  randomed = Entities[r.Next(0, Entities.Count)];
            BitmapSource bs;

            while ((bs = MediaMetaDataReader.GetPicture(randomed.Path)) == null && failTime < 3)
            {
                failTime++;
            }
            return(bs);
        }
Exemple #7
0
        private void PlayFinished()
        {
            MusicEntity MEnt = null;

            if (intp.LBSLoaded)
            {
                MEnt = intp.Stepping();
            }
            else
            {
                Next(true);
            }
        }
 public bool AcquireLyric(MusicEntity Music)
 {
     if (Tokenizer == null)
     {
         return(false);
     }
     tokens = Tokenizer.CreateTokensFromFile(GetLyricFile(Music.Path, Music.Name));
     if (tokens == null)
     {
         return(false);
     }
     return(true);
 }
 private void DipMusic_ItemSelectionChanged(MusicEntity selected)
 {
     if (laudio.Playing)
     {
         laudio.Stop();
     }
     laudio.Load(selected);
     laudio.Play();
     if (dia == null)
     {
         dia = new Dialogue(new _3DVisualize(), "3D");
         dia.Show();
     }
 }
        public MusicEntity CreateEntity(string path)
        {
            TL.File     media = TL.File.Create(path);
            MusicEntity me    = new MusicEntity()
            {
                Album     = media.Tag.Album,
                Artist    = media.Tag.Performers,
                Extension = Path.GetExtension(path),
                Name      = Path.GetFileNameWithoutExtension(path),
                Year      = media.Tag.Year.ToString(),
                Path      = path,
            };

            media.Dispose();
            return(me);
        }
Exemple #11
0
        private void DipMusic_ItemSelectionChanged(MusicEntity selected, object tag)
        {
            if (laudio.Playing)
            {
                laudio.Stop();
            }
            BitmapSource source;

            ControlPanel.AlbumProfile = (source = MediaMetaDataReader.GetPicture(selected.Path)) == null ? null : new ImageBrush(source);
            laudio.Load(selected);
            ControlPanel.StartPlaying();
            laudio.Play();
            //if (dia == null)
            //{
            //    dia = new Dialogue(new _3DVisualize(), "3D");
            //    dia.Show();
            //}
        }
Exemple #12
0
        public void AddToPool(string dirpath, IMediaMetadataReader immr)
        {
            Catalogue pathCatalogue = new Catalogue(dirpath)
            {
                isLocationClassified = true
            };

            foreach (string fi in Directory.GetFiles(dirpath))
            {
                if (SupportFormat.AllQualified(Path.GetExtension(fi)))
                {
                    MusicEntity me = immr.CreateEntity(fi);
                    AllMusic.AddMusic(me);
                    pathCatalogue.AddMusic(me);
                }
            }
            CPool.AddCatalogue(pathCatalogue);
        }
        private void PlayFinished()
        {
            MusicEntity MEnt = null;

            if (intp.LBSLoaded)
            {
                MEnt = intp.Stepping();
            }
            else
            {
                Next(true);
            }
            //if (MEnt != null)
            //{
            //    laudio.Load(MEnt);
            //    laudio.Play();
            //}
            //else return;
        }
 public MusicSelectionList()
 {
     InitializeComponent();
     ITEMS.DataContext        = Items;
     Delegation.RemovingItem += dctx =>
     {
         MusicEntity removed = dctx as MusicEntity;
         if (dctx is MusicEntity)
         {
             if (!IsMotherCatalogue)
             {
                 Delegation.CatalogueUpdated(removed);
                 Items.Remove(removed);
             }
             else
             {
                 // TODO 永久从母分类中删除歌曲(本地文件永久删除),包括:提醒
             }
         }
     };
 }
Exemple #15
0
        public MusicEntity CreateEntity(string path)
        {
            TL.File     media = TL.File.Create(path);
            MusicEntity me    = new MusicEntity()
            {
                Album     = media.Tag.Album,
                Artist    = media.Tag.Performers,
                Extension = Path.GetExtension(path),
                Name      = Path.GetFileNameWithoutExtension(path),
                Year      = media.Tag.Year.ToString(),
                Path      = path,
            };

            if (me.Artist == null || me.Artist.Length == 0)
            {
                me.Artist = new string[] { Converter.ConvertTo("CORE_FUNC", "CORE_PRESENTOR_UNKNOW_ARTIST") };
            }
            if (string.IsNullOrEmpty(me.Album))
            {
                me.Album = Converter.ConvertTo("CORE_FUNC", "CORE_PRESENTOR_UNKNOW_ALBUM");
            }
            media.Dispose();
            return(me);
        }
 public void AddMusic(string uuid, MusicEntity music)
 {
     CatalogueBase.Find(x => x.UUID.Equals(uuid)).AddMusic(music);
 }
 public void RemoveMusic(string uuid, MusicEntity music)
 {
     CatalogueBase.Find(x => x.UUID.Equals(uuid)).DeleteMusic(music);
 }
 public bool DeleteMusic(MusicEntity ME)
 {
     return(Entities.Remove(ME));
 }
 public void Add(MusicEntity mie)
 {
     Items.Add(mie);
 }
Exemple #20
0
 public MusicEntity Stepping()
 {
     try
     {
         if (Pointer >= Actions.Count)
         {
             return(null);
         }
         ActionToken atoken = Actions[Pointer];
         if (singleStepCount == 1)
         {
             foreach (Delegate delg in onCExecutionRequest.GetInvocationList())
             {
                 if ((cache = ((CommandExecutor)delg).Invoke(atoken.CommandType, atoken.ct_args, CataPool, ref chosenCatalogue, ref Pointer)) != null)
                 {
                     break;
                 }
             }
             foreach (Delegate delg in onSExecutionRequest.GetInvocationList())
             {
                 if (((SuffixExecutor)delg).Invoke(atoken.SuffixType, atoken.st_args, ref singleStepCount))
                 {
                     break;
                 }
             }
             singleStepCount++;
             if (RandomPlay)
             {
                 Pointer = randomControl.Next(0, Actions.Count);
             }
             else
             {
                 Pointer++;
             }
         }
         if (cache == null)
         {
             Stepping();
         }
         else
         {
             singleStepCount = singleStepCount > 1 ? singleStepCount - 1 : singleStepCount;
             if (singleStepCount > 1)
             {
                 return(cache);
             }
             else if (singleStepCount < 1)
             {
                 singleStepCount = 1;
             }
         }
         //If no LLOOP defined and pointer comes to last.
         //Execution completed.
         if (Pointer >= Actions.Count)
         {
             LBSLoaded = false;
             Actions.Clear();
             return(null);
         }
         return(cache);
     }
     catch (StackOverflowException)
     {
         ErrorDelegation.OnErrorRaisedBSI?.Invoke("CORE_LBS_InvalidCommandExecutor", null, Pointer);
         return(null);
     }
 }
 //Interface implements
 public void Load(MusicEntity music)
 {
     AudioDelegations.LyricLoadStatus?.Invoke(lEnum.AcquireLyric(music));
     initializeSoundSource(music);
     AudioDelegations.MusicLoaded?.Invoke(music, iws.ToTrack());
 }