Skip to content

Commit

Permalink
GH-98: Add HDR property in ITraktMetadata
Browse files Browse the repository at this point in the history
  • Loading branch information
henrikfroehling committed Apr 1, 2019
1 parent 45855a7 commit 0f16470
Show file tree
Hide file tree
Showing 20 changed files with 427 additions and 51 deletions.
2 changes: 2 additions & 0 deletions Source/Lib/Trakt.NET/Objects/Basic/ITraktMetadata.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ public interface ITraktMetadata

TraktMediaAudioChannel AudioChannels { get; set; }

TraktMediaHDR HDR { get; set; }

bool? ThreeDimensional { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ public class TraktMetadata : ITraktMetadata
/// <summary>Gets or sets the media audio channels. See also <seealso cref="TraktMediaAudioChannel" />.<para>Nullable</para></summary>
public TraktMediaAudioChannel AudioChannels { get; set; }

/// <summary>Gets or sets the media HDR support. See also <seealso cref="TraktMediaHDR" />.<para>Nullable</para></summary>
public TraktMediaHDR HDR { get; set; }

/// <summary>Gets or sets, whether the media is in 3D.</summary>
public bool? ThreeDimensional { get; set; }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ public override async Task<ITraktMetadata> ReadObjectAsync(JsonTextReader jsonRe
case JsonProperties.METADATA_PROPERTY_NAME_AUDIO_CHANNELS:
traktMetadata.AudioChannels = await JsonReaderHelper.ReadEnumerationValueAsync<TraktMediaAudioChannel>(jsonReader, cancellationToken);
break;
case JsonProperties.METADATA_PROPERTY_NAME_HDR:
traktMetadata.HDR = await JsonReaderHelper.ReadEnumerationValueAsync<TraktMediaHDR>(jsonReader, cancellationToken);
break;
case JsonProperties.METADATA_PROPERTY_NAME_3D:
traktMetadata.ThreeDimensional = await jsonReader.ReadAsBooleanAsync(cancellationToken);
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ protected virtual async Task WriteMetadataObjectAsync(JsonTextWriter jsonWriter,
await jsonWriter.WritePropertyNameAsync(JsonProperties.METADATA_PROPERTY_NAME_3D, cancellationToken).ConfigureAwait(false);
await jsonWriter.WriteValueAsync(obj.ThreeDimensional, cancellationToken).ConfigureAwait(false);
}

if (obj.HDR != null && obj.HDR != TraktMediaHDR.Unspecified)
{
await jsonWriter.WritePropertyNameAsync(JsonProperties.METADATA_PROPERTY_NAME_HDR, cancellationToken).ConfigureAwait(false);
await jsonWriter.WriteValueAsync(obj.HDR.ObjectName, cancellationToken).ConfigureAwait(false);
}
}
}
}
1 change: 1 addition & 0 deletions Source/Lib/Trakt.NET/Objects/Json/JsonProperties.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ internal static class JsonProperties
internal const string METADATA_PROPERTY_NAME_AUDIO = "audio";
internal const string METADATA_PROPERTY_NAME_AUDIO_CHANNELS = "audio_channels";
internal const string METADATA_PROPERTY_NAME_3D = "3d";
internal const string METADATA_PROPERTY_NAME_HDR = "hdr";

internal const string NETWORK_PROPERTY_NAME_NAME = "name";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public void Test_TraktMetadata_Default_Constructor()
traktMetadata.MediaResolution.Should().BeNull();
traktMetadata.Audio.Should().BeNull();
traktMetadata.AudioChannels.Should().BeNull();
traktMetadata.HDR.Should().BeNull();
traktMetadata.ThreeDimensional.Should().BeNull();
}

Expand All @@ -34,6 +35,7 @@ public async Task Test_TraktMetadata_From_Json()
traktMetadata.MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
traktMetadata.Audio.Should().Be(TraktMediaAudio.AAC);
traktMetadata.AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
traktMetadata.HDR.Should().Be(TraktMediaHDR.DolbyVision);
traktMetadata.ThreeDimensional.Should().BeTrue();
}

Expand All @@ -43,6 +45,7 @@ public async Task Test_TraktMetadata_From_Json()
""resolution"": ""hd_720p"",
""audio"": ""aac"",
""audio_channels"": ""5.1"",
""hdr"": ""dolby_vision"",
""3d"": true
}";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_Json_String_Comple
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().Be(TraktMediaType.Digital);
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}

Expand All @@ -59,13 +61,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_Json_String_Incomp
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().BeNull();
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}

Expand All @@ -83,13 +87,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_Json_String_Incomp
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().Be(TraktMediaType.Digital);
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}

Expand All @@ -107,13 +113,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_Json_String_Not_Va
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().Be(TraktMediaType.Digital);
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}

Expand All @@ -131,13 +139,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_Json_String_Not_Va
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().BeNull();
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}

Expand All @@ -155,13 +165,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_Json_String_Not_Va
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().BeNull();
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_JsonReader_Complet
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().Be(TraktMediaType.Digital);
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}
}
Expand All @@ -75,13 +77,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_JsonReader_Incompl
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().BeNull();
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}
}
Expand All @@ -104,13 +108,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_JsonReader_Incompl
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().Be(TraktMediaType.Digital);
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}
}
Expand All @@ -133,13 +139,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_JsonReader_Not_Val
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().Be(TraktMediaType.Digital);
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}
}
Expand All @@ -162,13 +170,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_JsonReader_Not_Val
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().BeNull();
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}
}
Expand All @@ -191,13 +201,15 @@ public async Task Test_MetadataArrayJsonReader_ReadArray_From_JsonReader_Not_Val
metadatas[0].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[0].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[0].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[0].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[0].ThreeDimensional.Should().BeTrue();

metadatas[1].Should().NotBeNull();
metadatas[1].MediaType.Should().BeNull();
metadatas[1].MediaResolution.Should().Be(TraktMediaResolution.HD_720p);
metadatas[1].Audio.Should().Be(TraktMediaAudio.AAC);
metadatas[1].AudioChannels.Should().Be(TraktMediaAudioChannel.Channels_5_1);
metadatas[1].HDR.Should().Be(TraktMediaHDR.DolbyVision);
metadatas[1].ThreeDimensional.Should().BeTrue();
}
}
Expand Down
Loading

0 comments on commit 0f16470

Please sign in to comment.