mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
107 lines
3.6 KiB
C#
107 lines
3.6 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: ZuneUI.VideoPlaybackTrack
|
|
// 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.Zune.Service;
|
|
using Microsoft.Zune.Shell;
|
|
using System;
|
|
using ZuneXml;
|
|
|
|
namespace ZuneUI
|
|
{
|
|
[Serializable]
|
|
public class VideoPlaybackTrack : PlaybackTrack
|
|
{
|
|
private Guid _zuneMediaId;
|
|
private Guid _zuneMediaInstanceId;
|
|
private string _title;
|
|
private string _artist;
|
|
private string _uri;
|
|
private bool _isDownloading;
|
|
private bool _fallbackToPreview;
|
|
private bool _forcePreview;
|
|
private bool _ignoreCollection;
|
|
private bool _isStreaming;
|
|
private VideoDefinitionEnum _videoDefinition;
|
|
|
|
public VideoPlaybackTrack(
|
|
Guid zuneMediaId,
|
|
string title,
|
|
string artist,
|
|
string uri,
|
|
bool isDownloading,
|
|
bool isStreaming,
|
|
bool ignoreCollection,
|
|
bool fallbackToPreview,
|
|
bool forcePreview,
|
|
VideoDefinitionEnum videoDefinition)
|
|
{
|
|
this._title = title;
|
|
this._zuneMediaId = zuneMediaId;
|
|
this._artist = artist;
|
|
this._uri = uri;
|
|
this._isDownloading = isDownloading;
|
|
this._isStreaming = isStreaming;
|
|
this._ignoreCollection = ignoreCollection;
|
|
this._fallbackToPreview = fallbackToPreview;
|
|
this._forcePreview = forcePreview;
|
|
this._videoDefinition = videoDefinition;
|
|
}
|
|
|
|
public override Guid ZuneMediaId => this._zuneMediaId;
|
|
|
|
public override HRESULT GetURI(out string uri)
|
|
{
|
|
HRESULT hresult = HRESULT._S_OK;
|
|
string uriOut = null;
|
|
if (!ZuneApplication.Service2.InCompleteCollection(this._zuneMediaId, EContentType.Video) && !string.IsNullOrEmpty(this._uri))
|
|
{
|
|
uriOut = this._uri;
|
|
}
|
|
else
|
|
{
|
|
EContentUriFlags eContentUriFlags = EContentUriFlags.None;
|
|
if (this.IgnoreCollection)
|
|
eContentUriFlags |= EContentUriFlags.IgnoreCollection;
|
|
if (this.FallbackToPreview)
|
|
eContentUriFlags |= EContentUriFlags.FallbackToPreview;
|
|
if (this.ForcePreview)
|
|
eContentUriFlags |= EContentUriFlags.ForcePreview;
|
|
hresult = ZuneApplication.Service2.GetContentUri(this._zuneMediaId, EContentType.Video, eContentUriFlags, out uriOut, out this._zuneMediaInstanceId);
|
|
}
|
|
if (!string.IsNullOrEmpty(uriOut) && uriOut.Contains(".ism/manifest"))
|
|
this._isStreaming = true;
|
|
uri = uriOut;
|
|
return hresult;
|
|
}
|
|
|
|
public Guid Id => this._zuneMediaId;
|
|
|
|
public override Guid ZuneMediaInstanceId => this._zuneMediaInstanceId;
|
|
|
|
public override string Title => this._title;
|
|
|
|
public string Artist => this._artist;
|
|
|
|
public override TimeSpan Duration => TimeSpan.Zero;
|
|
|
|
public override bool IsVideo => true;
|
|
|
|
public override MediaType MediaType => MediaType.Video;
|
|
|
|
public bool IsDownloading => this._isDownloading;
|
|
|
|
public bool FallbackToPreview => this._fallbackToPreview;
|
|
|
|
public bool ForcePreview => this._forcePreview;
|
|
|
|
public bool IgnoreCollection => this._ignoreCollection;
|
|
|
|
public override bool IsStreaming => this._isStreaming;
|
|
|
|
public override bool IsHD => this._videoDefinition == VideoDefinitionEnum.HD;
|
|
}
|
|
}
|