1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/medialive/MediaLive_EXPORTS.h>
8 #include <aws/medialive/model/ColorSpacePassthroughSettings.h>
9 #include <aws/medialive/model/Rec601Settings.h>
10 #include <aws/medialive/model/Rec709Settings.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace MediaLive
24 {
25 namespace Model
26 {
27 
28   /**
29    * H264 Color Space Settings<p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/H264ColorSpaceSettings">AWS
31    * API Reference</a></p>
32    */
33   class AWS_MEDIALIVE_API H264ColorSpaceSettings
34   {
35   public:
36     H264ColorSpaceSettings();
37     H264ColorSpaceSettings(Aws::Utils::Json::JsonView jsonValue);
38     H264ColorSpaceSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42 
GetColorSpacePassthroughSettings()43     inline const ColorSpacePassthroughSettings& GetColorSpacePassthroughSettings() const{ return m_colorSpacePassthroughSettings; }
44 
45 
ColorSpacePassthroughSettingsHasBeenSet()46     inline bool ColorSpacePassthroughSettingsHasBeenSet() const { return m_colorSpacePassthroughSettingsHasBeenSet; }
47 
48 
SetColorSpacePassthroughSettings(const ColorSpacePassthroughSettings & value)49     inline void SetColorSpacePassthroughSettings(const ColorSpacePassthroughSettings& value) { m_colorSpacePassthroughSettingsHasBeenSet = true; m_colorSpacePassthroughSettings = value; }
50 
51 
SetColorSpacePassthroughSettings(ColorSpacePassthroughSettings && value)52     inline void SetColorSpacePassthroughSettings(ColorSpacePassthroughSettings&& value) { m_colorSpacePassthroughSettingsHasBeenSet = true; m_colorSpacePassthroughSettings = std::move(value); }
53 
54 
WithColorSpacePassthroughSettings(const ColorSpacePassthroughSettings & value)55     inline H264ColorSpaceSettings& WithColorSpacePassthroughSettings(const ColorSpacePassthroughSettings& value) { SetColorSpacePassthroughSettings(value); return *this;}
56 
57 
WithColorSpacePassthroughSettings(ColorSpacePassthroughSettings && value)58     inline H264ColorSpaceSettings& WithColorSpacePassthroughSettings(ColorSpacePassthroughSettings&& value) { SetColorSpacePassthroughSettings(std::move(value)); return *this;}
59 
60 
61 
GetRec601Settings()62     inline const Rec601Settings& GetRec601Settings() const{ return m_rec601Settings; }
63 
64 
Rec601SettingsHasBeenSet()65     inline bool Rec601SettingsHasBeenSet() const { return m_rec601SettingsHasBeenSet; }
66 
67 
SetRec601Settings(const Rec601Settings & value)68     inline void SetRec601Settings(const Rec601Settings& value) { m_rec601SettingsHasBeenSet = true; m_rec601Settings = value; }
69 
70 
SetRec601Settings(Rec601Settings && value)71     inline void SetRec601Settings(Rec601Settings&& value) { m_rec601SettingsHasBeenSet = true; m_rec601Settings = std::move(value); }
72 
73 
WithRec601Settings(const Rec601Settings & value)74     inline H264ColorSpaceSettings& WithRec601Settings(const Rec601Settings& value) { SetRec601Settings(value); return *this;}
75 
76 
WithRec601Settings(Rec601Settings && value)77     inline H264ColorSpaceSettings& WithRec601Settings(Rec601Settings&& value) { SetRec601Settings(std::move(value)); return *this;}
78 
79 
80 
GetRec709Settings()81     inline const Rec709Settings& GetRec709Settings() const{ return m_rec709Settings; }
82 
83 
Rec709SettingsHasBeenSet()84     inline bool Rec709SettingsHasBeenSet() const { return m_rec709SettingsHasBeenSet; }
85 
86 
SetRec709Settings(const Rec709Settings & value)87     inline void SetRec709Settings(const Rec709Settings& value) { m_rec709SettingsHasBeenSet = true; m_rec709Settings = value; }
88 
89 
SetRec709Settings(Rec709Settings && value)90     inline void SetRec709Settings(Rec709Settings&& value) { m_rec709SettingsHasBeenSet = true; m_rec709Settings = std::move(value); }
91 
92 
WithRec709Settings(const Rec709Settings & value)93     inline H264ColorSpaceSettings& WithRec709Settings(const Rec709Settings& value) { SetRec709Settings(value); return *this;}
94 
95 
WithRec709Settings(Rec709Settings && value)96     inline H264ColorSpaceSettings& WithRec709Settings(Rec709Settings&& value) { SetRec709Settings(std::move(value)); return *this;}
97 
98   private:
99 
100     ColorSpacePassthroughSettings m_colorSpacePassthroughSettings;
101     bool m_colorSpacePassthroughSettingsHasBeenSet;
102 
103     Rec601Settings m_rec601Settings;
104     bool m_rec601SettingsHasBeenSet;
105 
106     Rec709Settings m_rec709Settings;
107     bool m_rec709SettingsHasBeenSet;
108   };
109 
110 } // namespace Model
111 } // namespace MediaLive
112 } // namespace Aws
113