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/core/utils/memory/stl/AWSVector.h>
9 #include <aws/medialive/model/InputChannelLevel.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace MediaLive
23 {
24 namespace Model
25 {
26 
27   /**
28    * Audio Channel Mapping<p><h3>See Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/medialive-2017-10-14/AudioChannelMapping">AWS
30    * API Reference</a></p>
31    */
32   class AWS_MEDIALIVE_API AudioChannelMapping
33   {
34   public:
35     AudioChannelMapping();
36     AudioChannelMapping(Aws::Utils::Json::JsonView jsonValue);
37     AudioChannelMapping& operator=(Aws::Utils::Json::JsonView jsonValue);
38     Aws::Utils::Json::JsonValue Jsonize() const;
39 
40 
41     /**
42      * Indices and gain values for each input channel that should be remixed into this
43      * output channel.
44      */
GetInputChannelLevels()45     inline const Aws::Vector<InputChannelLevel>& GetInputChannelLevels() const{ return m_inputChannelLevels; }
46 
47     /**
48      * Indices and gain values for each input channel that should be remixed into this
49      * output channel.
50      */
InputChannelLevelsHasBeenSet()51     inline bool InputChannelLevelsHasBeenSet() const { return m_inputChannelLevelsHasBeenSet; }
52 
53     /**
54      * Indices and gain values for each input channel that should be remixed into this
55      * output channel.
56      */
SetInputChannelLevels(const Aws::Vector<InputChannelLevel> & value)57     inline void SetInputChannelLevels(const Aws::Vector<InputChannelLevel>& value) { m_inputChannelLevelsHasBeenSet = true; m_inputChannelLevels = value; }
58 
59     /**
60      * Indices and gain values for each input channel that should be remixed into this
61      * output channel.
62      */
SetInputChannelLevels(Aws::Vector<InputChannelLevel> && value)63     inline void SetInputChannelLevels(Aws::Vector<InputChannelLevel>&& value) { m_inputChannelLevelsHasBeenSet = true; m_inputChannelLevels = std::move(value); }
64 
65     /**
66      * Indices and gain values for each input channel that should be remixed into this
67      * output channel.
68      */
WithInputChannelLevels(const Aws::Vector<InputChannelLevel> & value)69     inline AudioChannelMapping& WithInputChannelLevels(const Aws::Vector<InputChannelLevel>& value) { SetInputChannelLevels(value); return *this;}
70 
71     /**
72      * Indices and gain values for each input channel that should be remixed into this
73      * output channel.
74      */
WithInputChannelLevels(Aws::Vector<InputChannelLevel> && value)75     inline AudioChannelMapping& WithInputChannelLevels(Aws::Vector<InputChannelLevel>&& value) { SetInputChannelLevels(std::move(value)); return *this;}
76 
77     /**
78      * Indices and gain values for each input channel that should be remixed into this
79      * output channel.
80      */
AddInputChannelLevels(const InputChannelLevel & value)81     inline AudioChannelMapping& AddInputChannelLevels(const InputChannelLevel& value) { m_inputChannelLevelsHasBeenSet = true; m_inputChannelLevels.push_back(value); return *this; }
82 
83     /**
84      * Indices and gain values for each input channel that should be remixed into this
85      * output channel.
86      */
AddInputChannelLevels(InputChannelLevel && value)87     inline AudioChannelMapping& AddInputChannelLevels(InputChannelLevel&& value) { m_inputChannelLevelsHasBeenSet = true; m_inputChannelLevels.push_back(std::move(value)); return *this; }
88 
89 
90     /**
91      * The index of the output channel being produced.
92      */
GetOutputChannel()93     inline int GetOutputChannel() const{ return m_outputChannel; }
94 
95     /**
96      * The index of the output channel being produced.
97      */
OutputChannelHasBeenSet()98     inline bool OutputChannelHasBeenSet() const { return m_outputChannelHasBeenSet; }
99 
100     /**
101      * The index of the output channel being produced.
102      */
SetOutputChannel(int value)103     inline void SetOutputChannel(int value) { m_outputChannelHasBeenSet = true; m_outputChannel = value; }
104 
105     /**
106      * The index of the output channel being produced.
107      */
WithOutputChannel(int value)108     inline AudioChannelMapping& WithOutputChannel(int value) { SetOutputChannel(value); return *this;}
109 
110   private:
111 
112     Aws::Vector<InputChannelLevel> m_inputChannelLevels;
113     bool m_inputChannelLevelsHasBeenSet;
114 
115     int m_outputChannel;
116     bool m_outputChannelHasBeenSet;
117   };
118 
119 } // namespace Model
120 } // namespace MediaLive
121 } // namespace Aws
122