Skip to content

Commit

Permalink
Merge pull request #102 from henrikfroehling/improvement/develop/GH-98
Browse files Browse the repository at this point in the history
Resolves GH-98
  • Loading branch information
henrikfroehling authored Apr 1, 2019
2 parents 293e45b + 0f16470 commit de768d1
Show file tree
Hide file tree
Showing 26 changed files with 515 additions and 55 deletions.
6 changes: 6 additions & 0 deletions Source/Lib/Trakt.NET/Enums/TraktMediaAudio.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@ public sealed class TraktMediaAudio : TraktEnumeration
/// <summary>The collection item has Dolby Atmos audio.</summary>
public static TraktMediaAudio DolbyAtmos { get; } = new TraktMediaAudio(4096, "dolby_atmos", "dolby_atmos", "Dolby Atmos");

/// <summary>The collection item has DTS HR audio.</summary>
public static TraktMediaAudio DTS_HR { get; } = new TraktMediaAudio(8192, "dts_hr", "dts_hr", "DTS HR");

/// <summary>The collection item has AURO 3D audio.</summary>
public static TraktMediaAudio AURO_3D { get; } = new TraktMediaAudio(16384, "auro_3d", "auro_3d", "AURO 3D");

/// <summary>
/// Initializes a new instance of the <see cref="TraktMediaAudio" /> class.<para />
/// The initialized <see cref="TraktMediaAudio" /> is invalid.
Expand Down
18 changes: 18 additions & 0 deletions Source/Lib/Trakt.NET/Enums/TraktMediaAudioChannel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,24 @@ public sealed class TraktMediaAudioChannel : TraktEnumeration
/// <summary>The collection item has 7.1 audio channels.</summary>
public static TraktMediaAudioChannel Channels_7_1 { get; } = new TraktMediaAudioChannel(1024, "7.1", "7.1", "Channels 7.1");

/// <summary>The collection item has 5.1.2 audio channels.</summary>
public static TraktMediaAudioChannel Channels_5_1_2 { get; } = new TraktMediaAudioChannel(2048, "5.1.2", "5.1.2", "Channels 5.1.2");

/// <summary>The collection item has 5.1.4 audio channels.</summary>
public static TraktMediaAudioChannel Channels_5_1_4 { get; } = new TraktMediaAudioChannel(4096, "5.1.4", "5.1.4", "Channels 5.1.4");

/// <summary>The collection item has 7.1.2 audio channels.</summary>
public static TraktMediaAudioChannel Channels_7_1_2 { get; } = new TraktMediaAudioChannel(8192, "7.1.2", "7.1.2", "Channels 7.1.2");

/// <summary>The collection item has 7.1.4 audio channels.</summary>
public static TraktMediaAudioChannel Channels_7_1_4 { get; } = new TraktMediaAudioChannel(16384, "7.1.4", "7.1.4", "Channels 7.1.4");

/// <summary>The collection item has 9.1 audio channels.</summary>
public static TraktMediaAudioChannel Channels_9_1 { get; } = new TraktMediaAudioChannel(32768, "9.1", "9.1", "Channels 9.1");

/// <summary>The collection item has 10.1 audio channels.</summary>
public static TraktMediaAudioChannel Channels_10_1 { get; } = new TraktMediaAudioChannel(65536, "10.1", "10.1", "Channels 10.1");

/// <summary>
/// Initializes a new instance of the <see cref="TraktMediaAudioChannel" /> class.<para />
/// The initialized <see cref="TraktMediaAudioChannel" /> is invalid.
Expand Down
33 changes: 33 additions & 0 deletions Source/Lib/Trakt.NET/Enums/TraktMediaHDR.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
namespace TraktNet.Enums
{
/// <summary>Determines the HDR type in a collection item's metadata.</summary>
public sealed class TraktMediaHDR : TraktEnumeration
{
/// <summary>An invalid HDR type.</summary>
public static TraktMediaHDR Unspecified { get; } = new TraktMediaHDR();

/// <summary>The collection item supports DolbyVision.</summary>
public static TraktMediaHDR DolbyVision { get; } = new TraktMediaHDR(1, "dolby_vision", "dolby_vision", "Dolby Vision");

/// <summary>The collection item supports HDR10.</summary>
public static TraktMediaHDR HDR_10 { get; } = new TraktMediaHDR(2, "hdr10", "hdr10", "HDR10");

/// <summary>The collection item supports HDR10 Plus.</summary>
public static TraktMediaHDR HDR_10_Plus { get; } = new TraktMediaHDR(4, "hdr10_plus", "hdr10_plus", "HDR10 Plus");

/// <summary>The collection item supports HLG.</summary>
public static TraktMediaHDR HLG { get; } = new TraktMediaHDR(8, "hlg", "hlg", "HLG");

/// <summary>
/// Initializes a new instance of the <see cref="TraktMediaHDR" /> class.<para />
/// The initialized <see cref="TraktMediaHDR" /> is invalid.
/// </summary>
public TraktMediaHDR()
{
}

private TraktMediaHDR(int value, string objectName, string uriName, string displayName) : base(value, objectName, uriName, displayName)
{
}
}
}
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 @@ -14,13 +14,16 @@ public void Test_TraktMediaAudioChannel_GetAll()
{
var allValues = TraktEnumeration.GetAll<TraktMediaAudioChannel>();

allValues.Should().NotBeNull().And.HaveCount(12);
allValues.Should().NotBeNull().And.HaveCount(18);
allValues.Should().Contain(new List<TraktMediaAudioChannel>() { TraktMediaAudioChannel.Unspecified, TraktMediaAudioChannel.Channels_1_0,
TraktMediaAudioChannel.Channels_2_0, TraktMediaAudioChannel.Channels_2_1,
TraktMediaAudioChannel.Channels_3_0, TraktMediaAudioChannel.Channels_3_1,
TraktMediaAudioChannel.Channels_4_0, TraktMediaAudioChannel.Channels_4_1,
TraktMediaAudioChannel.Channels_5_0, TraktMediaAudioChannel.Channels_5_1,
TraktMediaAudioChannel.Channels_6_1, TraktMediaAudioChannel.Channels_7_1 });
TraktMediaAudioChannel.Channels_6_1, TraktMediaAudioChannel.Channels_7_1,
TraktMediaAudioChannel.Channels_5_1_2, TraktMediaAudioChannel.Channels_5_1_4,
TraktMediaAudioChannel.Channels_7_1_2, TraktMediaAudioChannel.Channels_7_1_4,
TraktMediaAudioChannel.Channels_9_1, TraktMediaAudioChannel.Channels_10_1 });
}
}
}
5 changes: 3 additions & 2 deletions Source/Tests/Trakt.NET.Tests/Enums/TraktMediaAudio_Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,15 @@ public void Test_TraktMediaAudio_GetAll()
{
var allValues = TraktEnumeration.GetAll<TraktMediaAudio>();

allValues.Should().NotBeNull().And.HaveCount(14);
allValues.Should().NotBeNull().And.HaveCount(16);
allValues.Should().Contain(new List<TraktMediaAudio>() { TraktMediaAudio.Unspecified, TraktMediaAudio.LPCM,
TraktMediaAudio.MP3, TraktMediaAudio.AAC,
TraktMediaAudio.OGG, TraktMediaAudio.WMA,
TraktMediaAudio.DTS, TraktMediaAudio.DTS_MA,
TraktMediaAudio.DTS_X, TraktMediaAudio.DolbyPrologic,
TraktMediaAudio.DolbyDigital, TraktMediaAudio.DolbyDigitalPlus,
TraktMediaAudio.DolbyTrueHD, TraktMediaAudio.DolbyAtmos });
TraktMediaAudio.DolbyTrueHD, TraktMediaAudio.DolbyAtmos,
TraktMediaAudio.DTS_HR, TraktMediaAudio.AURO_3D });
}
}
}
23 changes: 23 additions & 0 deletions Source/Tests/Trakt.NET.Tests/Enums/TraktMediaHDR_Tests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
namespace TraktNet.Tests.Enums
{
using FluentAssertions;
using System.Collections.Generic;
using Traits;
using TraktNet.Enums;
using Xunit;

[Category("Enums")]
public class TraktMediaHDR_Tests
{
[Fact]
public void Test_TraktMediaHDR_GetAll()
{
var allValues = TraktEnumeration.GetAll<TraktMediaHDR>();

allValues.Should().NotBeNull().And.HaveCount(5);
allValues.Should().Contain(new List<TraktMediaHDR>() { TraktMediaHDR.Unspecified, TraktMediaHDR.DolbyVision,
TraktMediaHDR.HDR_10, TraktMediaHDR.HDR_10_Plus,
TraktMediaHDR.HLG });
}
}
}
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
Loading

0 comments on commit de768d1

Please sign in to comment.