Exemplo n.º 1
0
        /// <summary>
        /// Get the Album Art
        /// </summary>
        /// <param name="mv"></param>
        /// <returns></returns>
        public bool GetAlbumArt(DBAlbumInfo mvAlbumObject)
        {
            Logger.Debug("In Method : GetAlbumArt(DBAlbumInfo mv)");

              if (mvAlbumObject == null)
            return false;

              List<string> albumImageList = mvAlbumObject.ArtUrls;
              // Reload existing Artwork - Why springs to mind??
              if (albumImageList.Count > 0)
              {
            // grab album art loading settings
            int maxAlbumArt = mvCentralCore.Settings.MaxAlbumArts;

            int albumartAdded = 0;
            int count = 0;
            foreach (string albumImage in albumImageList)
            {
              if (mvAlbumObject.AlternateArts.Count >= maxAlbumArt)
            break;

              if (mvAlbumObject.AddArtFromURL(albumImage) == ImageLoadResults.SUCCESS)
            albumartAdded++;

              count++;
            }
            // We added some artwork so commit
            if (count > 0)
              mvAlbumObject.Commit();
              }

              // Now add any new art from this provider
              string strAlbumHTML;
              DBArtistInfo artist = null;
              List<DBTrackInfo> tracksOnAlbum = DBTrackInfo.GetEntriesByAlbum(mvAlbumObject);

              if (tracksOnAlbum.Count > 0)
              {
            artist = DBArtistInfo.Get(tracksOnAlbum[0]);

            if (GetAlbumHTML(artist.Artist, mvAlbumObject.Album, out strAlbumHTML))
            {
              var albumInfo = new MusicAlbumInfo();

              if (albumInfo.Parse(strAlbumHTML))
              {
            ImageLoadResults imageLoadResults = mvAlbumObject.AddArtFromURL(albumInfo.ImageURL);

            if (imageLoadResults == ImageLoadResults.SUCCESS || imageLoadResults == ImageLoadResults.SUCCESS_REDUCED_SIZE)
              mvAlbumObject.Commit();
              }
            }
              }
              // We always return sucess...
              return true;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Add Track to a user selected album
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void createAlbumToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DBBasicInfo selectedTrack = null;
              switch (tcMusicVideo.SelectedTab.Name)
              {
            case "tpTrack":
              selectedTrack = CurrentTrack;
              break;
            default:
              return;
              }

              if (mvLibraryTreeView.SelectedNode.Level == 2)
              {
            MessageBox.Show("Please move track to Artist level before creating an album", "Unable to Create Album", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
            return;
              }

              var activeTrack = DBTrackInfo.Get((int)selectedTrack.ID);
              var activeAtrist = DBArtistInfo.Get(CurrentTrack);

              var createAlbum = new CreateAlbumForTrack(activeTrack);
              createAlbum.ShowDialog();

              if (!createAlbum.exitStatus) return;
              var albumCheck = DBAlbumInfo.Get(createAlbum.Album);

              if (albumCheck == null)
              {
            // No existing album - create, lookup details and add to track
            var sourceProviders = mvCentralCore.DataProviderManager.AlbumDetailSources.ToList();

            var albumToAdd = new DBAlbumInfo
              {
            Album = createAlbum.Album,
            MdID = createAlbum.AlbumMBID,
            PrimarySource = sourceProviders[0]
              };
            albumToAdd.Commit();
            activeTrack.AlbumInfo.Add(albumToAdd);
            activeTrack.Commit();
            albumToAdd.PrimarySource = sourceProviders[0];
            albumToAdd.PrimarySource.Provider.GetAlbumDetails((DBBasicInfo) albumToAdd, createAlbum.Album,
                                                          createAlbum.AlbumMBID);
            albumToAdd.Commit();
              }
              else
              {
            // Album already exists - add to track
            activeTrack.AlbumInfo.Add(albumCheck);
            activeTrack.Commit();
              }
              // Reload and display the library
              ReloadList();

              // Select and expand the artist
              foreach (TreeNode tn in mvLibraryTreeView.Nodes.Cast<TreeNode>().Where(tn => tn.Text == activeAtrist.Artist))
              {
            mvLibraryTreeView.SelectedNode = tn;
            tn.Expand();
              }
              mvLibraryTreeView.Refresh();
              // Do we already have this album....
        }