mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
93 lines
3.7 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|