Files
ZuneShell.dll/ZuneUI/MergeHelper.cs
T

93 lines
3.7 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneUI.MergeHelper
// Assembly: ZuneShell, Version=4.7.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: FC8028F3-A47B-4FB4-B35B-11D1752D8264
// Assembly location: C:\Program Files\Zune\ZuneShell.dll
using Microsoft.Iris;
using Microsoft.Zune.Shell;
using MicrosoftZuneLibrary;
using System.Collections;
namespace ZuneUI
{
public class MergeHelper
{
public static void MergeArtistsToArtist(string targetArtist, IList sourceArtists)
{
IList artistIds = new ArrayList(sourceArtists.Count);
foreach (LibraryDataProviderListItem sourceArtist in sourceArtists)
artistIds.Add((int)sourceArtist.GetProperty("LibraryId"));
ZuneQueryList albumsByArtists = ZuneApplication.ZuneLibrary.GetAlbumsByArtists(artistIds, null);
int num1 = (int)albumsByArtists.AddRef();
uint count = (uint)albumsByArtists.Count;
for (uint index = 0; index < count; ++index)
albumsByArtists.SetFieldValue(index, 380U, targetArtist);
int num2 = (int)albumsByArtists.Release();
albumsByArtists.Dispose();
}
public static void MergeAlbumsToArtist(string targetArtist, IList sourceAlbums)
{
foreach (DataProviderObject sourceAlbum in sourceAlbums)
sourceAlbum.SetProperty("ArtistName", targetArtist);
}
public static void MergeTracksToArtist(string targetArtist, IList sourceTracks)
{
foreach (DataProviderObject sourceTrack in sourceTracks)
sourceTrack.SetProperty("AlbumArtistName", targetArtist);
}
public static void MergeAlbumsToAlbum(
string targetAlbumTitle,
string targetAlbumArtistName,
IList sourceAlbums)
{
foreach (LibraryDataProviderListItem sourceAlbum in sourceAlbums)
{
sourceAlbum.SetProperty("ArtistName", targetAlbumArtistName);
sourceAlbum.SetProperty("Title", targetAlbumTitle);
}
}
public static void MergeTracksToAlbum(
string targetAlbumTitle,
string targetAlbumArtistName,
IList sourceTracks)
{
foreach (LibraryDataProviderListItem sourceTrack in sourceTracks)
{
sourceTrack.SetProperty("AlbumArtistName", targetAlbumArtistName);
sourceTrack.SetProperty("AlbumName", targetAlbumTitle);
}
}
public static void MergeTracksToGenre(string targetGenre, IList sourceTracks)
{
foreach (DataProviderObject sourceTrack in sourceTracks)
sourceTrack.SetProperty("Genre", targetGenre);
}
public static void MergeAlbumsToGenre(string targetGenre, IList sourceAlbums)
{
IList albumIds = new ArrayList(sourceAlbums.Count);
foreach (LibraryDataProviderListItem sourceAlbum in sourceAlbums)
albumIds.Add((int)sourceAlbum.GetProperty("LibraryId"));
ZuneQueryList tracksByAlbums = ZuneApplication.ZuneLibrary.GetTracksByAlbums(albumIds, null);
int num1 = (int)tracksByAlbums.AddRef();
uint count = (uint)tracksByAlbums.Count;
for (uint index = 0; index < count; ++index)
tracksByAlbums.SetFieldValue(index, 398U, targetGenre);
int num2 = (int)tracksByAlbums.Release();
tracksByAlbums.Dispose();
}
public static void MergeGenresToGenre(string targetGenre, IList sourceGenres)
{
foreach (DataProviderObject sourceGenre in sourceGenres)
sourceGenre.SetProperty("Title", targetGenre);
}
}
}