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/WavCodingMode.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace MediaLive
22 {
23 namespace Model
24 {
25 
26   /**
27    * Wav Settings<p><h3>See Also:</h3>   <a
28    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/WavSettings">AWS
29    * API Reference</a></p>
30    */
31   class AWS_MEDIALIVE_API WavSettings
32   {
33   public:
34     WavSettings();
35     WavSettings(Aws::Utils::Json::JsonView jsonValue);
36     WavSettings& operator=(Aws::Utils::Json::JsonView jsonValue);
37     Aws::Utils::Json::JsonValue Jsonize() const;
38 
39 
40     /**
41      * Bits per sample.
42      */
GetBitDepth()43     inline double GetBitDepth() const{ return m_bitDepth; }
44 
45     /**
46      * Bits per sample.
47      */
BitDepthHasBeenSet()48     inline bool BitDepthHasBeenSet() const { return m_bitDepthHasBeenSet; }
49 
50     /**
51      * Bits per sample.
52      */
SetBitDepth(double value)53     inline void SetBitDepth(double value) { m_bitDepthHasBeenSet = true; m_bitDepth = value; }
54 
55     /**
56      * Bits per sample.
57      */
WithBitDepth(double value)58     inline WavSettings& WithBitDepth(double value) { SetBitDepth(value); return *this;}
59 
60 
61     /**
62      * The audio coding mode for the WAV audio. The mode determines the number of
63      * channels in the audio.
64      */
GetCodingMode()65     inline const WavCodingMode& GetCodingMode() const{ return m_codingMode; }
66 
67     /**
68      * The audio coding mode for the WAV audio. The mode determines the number of
69      * channels in the audio.
70      */
CodingModeHasBeenSet()71     inline bool CodingModeHasBeenSet() const { return m_codingModeHasBeenSet; }
72 
73     /**
74      * The audio coding mode for the WAV audio. The mode determines the number of
75      * channels in the audio.
76      */
SetCodingMode(const WavCodingMode & value)77     inline void SetCodingMode(const WavCodingMode& value) { m_codingModeHasBeenSet = true; m_codingMode = value; }
78 
79     /**
80      * The audio coding mode for the WAV audio. The mode determines the number of
81      * channels in the audio.
82      */
SetCodingMode(WavCodingMode && value)83     inline void SetCodingMode(WavCodingMode&& value) { m_codingModeHasBeenSet = true; m_codingMode = std::move(value); }
84 
85     /**
86      * The audio coding mode for the WAV audio. The mode determines the number of
87      * channels in the audio.
88      */
WithCodingMode(const WavCodingMode & value)89     inline WavSettings& WithCodingMode(const WavCodingMode& value) { SetCodingMode(value); return *this;}
90 
91     /**
92      * The audio coding mode for the WAV audio. The mode determines the number of
93      * channels in the audio.
94      */
WithCodingMode(WavCodingMode && value)95     inline WavSettings& WithCodingMode(WavCodingMode&& value) { SetCodingMode(std::move(value)); return *this;}
96 
97 
98     /**
99      * Sample rate in Hz.
100      */
GetSampleRate()101     inline double GetSampleRate() const{ return m_sampleRate; }
102 
103     /**
104      * Sample rate in Hz.
105      */
SampleRateHasBeenSet()106     inline bool SampleRateHasBeenSet() const { return m_sampleRateHasBeenSet; }
107 
108     /**
109      * Sample rate in Hz.
110      */
SetSampleRate(double value)111     inline void SetSampleRate(double value) { m_sampleRateHasBeenSet = true; m_sampleRate = value; }
112 
113     /**
114      * Sample rate in Hz.
115      */
WithSampleRate(double value)116     inline WavSettings& WithSampleRate(double value) { SetSampleRate(value); return *this;}
117 
118   private:
119 
120     double m_bitDepth;
121     bool m_bitDepthHasBeenSet;
122 
123     WavCodingMode m_codingMode;
124     bool m_codingModeHasBeenSet;
125 
126     double m_sampleRate;
127     bool m_sampleRateHasBeenSet;
128   };
129 
130 } // namespace Model
131 } // namespace MediaLive
132 } // namespace Aws
133