mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
162 lines
5.8 KiB
C#
162 lines
5.8 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: ZuneUI.VideoDetails
|
|
// 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.Service;
|
|
using Microsoft.Zune.Shell;
|
|
using MicrosoftZuneLibrary;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
namespace ZuneUI
|
|
{
|
|
public class VideoDetails
|
|
{
|
|
private static int[] ColumnIndexes = new int[15]
|
|
{
|
|
344,
|
|
151,
|
|
32,
|
|
177,
|
|
181,
|
|
317,
|
|
138,
|
|
443,
|
|
442,
|
|
175,
|
|
176,
|
|
68,
|
|
49,
|
|
149,
|
|
451
|
|
};
|
|
private static string[] DataProperties = new string[15]
|
|
{
|
|
"Title",
|
|
"Duration",
|
|
"Bitrate",
|
|
"FileType",
|
|
"FolderName",
|
|
"FilePath",
|
|
"ArtistName",
|
|
"Width",
|
|
"Height",
|
|
"FileName",
|
|
"FileSize",
|
|
"Copyright",
|
|
"CategoryId",
|
|
"DrmState",
|
|
"ZuneMediaId"
|
|
};
|
|
private static string _actorFormat = Shell.LoadString(StringId.IDS_ACTORS_SEPARATION_FORMAT);
|
|
private static string _directorFormat = Shell.LoadString(StringId.IDS_DIRECTORS_SEPARATION_FORMAT);
|
|
private static string _daysExpirationFormat = Shell.LoadString(StringId.IDS_VIDEO_EXPIRATION_DAYS);
|
|
private static string _hoursExpirationFormat = Shell.LoadString(StringId.IDS_VIDEO_EXPIRATION_HOURS);
|
|
private static string _deviceRentalFormat = Shell.LoadString(StringId.IDS_VIDEO_DEVICE_RENTAL_FORMAT);
|
|
|
|
public static string ActorListToString(IList artists) => ContributingArtistListToString(artists, _actorFormat);
|
|
|
|
public static string DirectorListToString(IList directors) => ContributingArtistListToString(directors, _directorFormat);
|
|
|
|
private static string ContributingArtistListToString(IList artists, string format)
|
|
{
|
|
string str = "";
|
|
if (artists != null)
|
|
{
|
|
foreach (string artist in artists)
|
|
str = str.Length != 0 ? string.Format(format, str, artist) : artist;
|
|
}
|
|
return str;
|
|
}
|
|
|
|
public static IList DeviceRentalStatusList(Guid zuneMediaId)
|
|
{
|
|
IList list = new List<string>();
|
|
foreach (UIDevice uiDevice in SingletonModelItem<UIDeviceList>.Instance)
|
|
{
|
|
if (ZuneApplication.Service2.InCompleteCollection(zuneMediaId, EContentType.Video, uiDevice.EndpointId))
|
|
list.Add(string.Format(_deviceRentalFormat, uiDevice.Name.ToUpper()));
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public static string PCExpirationToString(
|
|
int drmState,
|
|
string fileName,
|
|
int fileType,
|
|
Guid zuneMediaId)
|
|
{
|
|
string str = "";
|
|
switch (drmState)
|
|
{
|
|
case 20:
|
|
str = Shell.LoadString(StringId.IDS_VIDEO_EXPIRED);
|
|
break;
|
|
case 26:
|
|
if (!string.IsNullOrEmpty(fileName))
|
|
{
|
|
DRMInfo drmInfo = fileType != 43 ? ZuneApplication.Service2.GetFileDRMInfo(fileName) : ZuneApplication.Service2.GetMediaDRMInfo(zuneMediaId, EContentType.Video);
|
|
if (drmInfo != null)
|
|
{
|
|
if (drmInfo.ValidLicense && drmInfo.HasExpiryDate)
|
|
{
|
|
DateTime localTime = DateTime.UtcNow.ToLocalTime();
|
|
if (drmInfo.ExpiryDate.CompareTo(localTime) > 0)
|
|
{
|
|
TimeSpan timeSpan = drmInfo.ExpiryDate.Subtract(localTime);
|
|
str = timeSpan.TotalHours < 49.0 ? (timeSpan.TotalHours < 2.0 ? (timeSpan.TotalHours < 1.0 ? Shell.LoadString(StringId.IDS_VIDEO_EXPIRATION_MINUTES) : Shell.LoadString(StringId.IDS_VIDEO_EXPIRATION_ONEHOUR)) : string.Format(_hoursExpirationFormat, (int)timeSpan.TotalHours)) : string.Format(_daysExpirationFormat, timeSpan.Days);
|
|
break;
|
|
}
|
|
str = Shell.LoadString(StringId.IDS_VIDEO_EXPIRED);
|
|
break;
|
|
}
|
|
if (drmInfo.LicenseExpired)
|
|
{
|
|
str = Shell.LoadString(StringId.IDS_VIDEO_EXPIRED);
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
return str;
|
|
}
|
|
|
|
public static void Populate(object dataContainer, int libraryId)
|
|
{
|
|
DataProviderObject dataProviderObject = (DataProviderObject)dataContainer;
|
|
object[] fieldValues = new object[15]
|
|
{
|
|
string.Empty,
|
|
TimeSpan.Zero,
|
|
0,
|
|
0,
|
|
string.Empty,
|
|
string.Empty,
|
|
string.Empty,
|
|
0,
|
|
0,
|
|
string.Empty,
|
|
0L,
|
|
string.Empty,
|
|
0,
|
|
0,
|
|
Guid.Empty
|
|
};
|
|
ZuneLibrary.GetFieldValues(libraryId, EListType.eVideoList, ColumnIndexes.Length, ColumnIndexes, fieldValues, PlaylistManager.Instance.QueryContext);
|
|
for (int index = 0; index < ColumnIndexes.Length; ++index)
|
|
{
|
|
if (ColumnIndexes[index] == 177)
|
|
dataProviderObject.SetProperty("MediaType", MediaDescriptions.Map((MediaType)fieldValues[index]));
|
|
dataProviderObject.SetProperty(DataProperties[index], fieldValues[index]);
|
|
}
|
|
}
|
|
}
|
|
}
|