/// <summary>Initializes a new instance of the <see cref="Track"/> class from a ChromeDevTools RemoteObject.</summary> /// <param name="trackObject">The RemoteObject instance to deserialize.</param> /// <param name="session">The <see cref="MediaMonkeySession"/> instance hosting the track.</param> public Track(RemoteObject trackObject, MediaMonkeySession session) : this(session) { if (trackObject.Value is null) { return; } var serializerSettings = new JsonSerializerSettings { MetadataPropertyHandling = MetadataPropertyHandling.Ignore, NullValueHandling = NullValueHandling.Ignore, DateParseHandling = DateParseHandling.None, Converters = { new IsoDateTimeConverter { DateTimeStyles = System.Globalization.DateTimeStyles.AssumeUniversal } }, }; JsonConvert.PopulateObject(trackObject.Value.ToString(), this, serializerSettings); var asJsonObj = JsonConvert.DeserializeObject <AsJson>(asJSON, serializerSettings); DateAdded = asJsonObj.DateAdded; LastTimePlayed = asJsonObj.LastTimePlayed; FileModified = asJsonObj.FileModified; TrackModified = asJsonObj.TrackModified; ArtworkModifiedUTC = asJsonObj.ArtworkModifiedUTC; DateAddedUTC = asJsonObj.DateAddedUTC; LastTimePlayedUTC = asJsonObj.DateAddedUTC; FileModifiedUTC = asJsonObj.FileModifiedUTC; TrackModifiedUTC = asJsonObj.TrackModifiedUTC; }
/// <summary>Initializes a new instance of the <see cref="Track"/> class.</summary> /// <param name="session">The <see cref="MediaMonkeySession"/> instance hosting the track.</param> public Track(MediaMonkeySession session) { Session = session; }
/// <summary>Initializes a new instance of the <see cref="Player"/> class.</summary> /// <param name="session">The <see cref="MediaMonkeySession"/> instance hosting the player.</param> public Player(MediaMonkeySession session) { Session = session; }