Tizen 2.0 Release
[framework/osp/media.git] / inc / FMediaAudioRouteInfo.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19 * @file                 FMediaAudioRouteInfo.h
20 * @brief                This is the header file for the common types of audio route information.
21 *
22 * This header files contains all the commons things required for audio route information and associated classes
23 *
24 */
25 #ifndef _FMEDIA_AUDIO_ROUTE_INFO_H_
26 #define _FMEDIA_AUDIO_ROUTE_INFO_H_
27
28 #include <FMediaAudioManagerTypes.h>
29
30 namespace Tizen { namespace Media
31 {
32 /**
33  * @if VISPARTNER
34  *      @class AudioRouteInfo
35  * @brief       This class contains audio route information
36  *
37  *      @since          2.0
38  *
39  * @final This class is not intended for extension.
40  *
41  * @visibility                  partner
42  *
43  *      @remarks  Audio routing can be done using this class instances as input/output audio devices
44  * @endif
45  */
46 class _OSP_EXPORT_ AudioRouteInfo
47         :public Tizen::Base::Object
48 {
49 public:
50         /**
51         * @if VISPARTNER
52         *       Initializes this instance of %AudioRouteInfo with the specified audio devices.
53         *
54         *       @since          2.0
55         *
56         *       @visibility                     partner
57         *
58         *       @param[in]                      in                                                                              The input audio device
59         *       @param[in]                      out                                                                     The output audio device
60         *       @exception                      E_SUCCESS                                               The method is successful
61         *       @exception                      E_OUT_OF_MEMORY         Not enough memory to perform the operation
62         *
63         *       @endif
64         */
65         AudioRouteInfo(InputAudioDevice in, OutputAudioDevice out);
66
67         /**
68         * @if VISPARTNER
69         *       This destructor overrides Tizen::Base::Object::~Object().
70         *
71         *       @since          2.0
72         *
73         *       @visibility                             partner
74         *       @endif
75         */
76         virtual ~AudioRouteInfo(void);
77
78         /**
79         * @if VISPARTNER
80         *       Sets the input audio device
81         *
82         *       @since          2.0
83         *
84         *       @visibility                             partner
85         *
86         *       @param[in]                      in                                                                              The input audio device
87         *       @endif
88         */
89         void SetInputAudioDevice(InputAudioDevice in);
90
91         /**
92         * @if VISPARTNER
93         *       Sets the output audio device
94         *
95         *       @since          2.0
96         *
97         *       @visibility                             partner
98         *
99         *       @param[in]                      out                                                                     The output audio device
100         *       @endif
101         */
102         void SetOutputAudioDevice(OutputAudioDevice out);
103
104         /**
105         * @if VISPARTNER
106         *       Gets the input audio device
107         *
108         *       @since          2.0
109         *
110         *       @visibility                             partner
111         *
112         *       @return                         Input audio device
113         *       @endif
114         */
115         InputAudioDevice GetInputAudioDevice(void) const;
116
117         /**
118         * @if VISPARTNER
119         *       Gets the output audio device
120         *
121         *       @since          2.0
122         *
123         *       @visibility                             partner
124         *
125         *       @return                         Output audio device
126         *       @endif
127         */
128         OutputAudioDevice GetOutputAudioDevice(void) const;
129
130         /**
131         * @if VISPARTNER
132         * Copying of objects using this copy constructor is allowed.
133         *
134         * @since                2.0
135         *
136         * @visibility                           partner
137         *
138         * @return               The copy of this instance
139         * @param[in]    rhs     An instance of %AudioRouteInfo
140         * @endif
141         */
142         AudioRouteInfo(const AudioRouteInfo& rhs);
143
144         /**
145         * @if VISPARTNER
146         *       Copying of objects using this copy assignment operator is allowed.
147         *
148         *       @since          2.0
149         *
150         *       @visibility                             partner
151         *
152         *       @return                         The instance of AudioRouteInfo
153         *       @param[in]                      rhs                                                                     AudioRouteInfo instance
154         *       @endif
155         */
156         AudioRouteInfo& operator =(const AudioRouteInfo& rhs);
157
158         /**
159         * @if VISPARTNER
160         *       Compares the specified instance of %AudioRouteInfo with the calling instance.
161         *
162         *       @since          2.0
163         *
164         *       @visibility                             partner
165         *
166         *       @return                         @c true if the object is the same,@n
167                                                                         else @c false
168         *       @param[in]                      obj                                                                     The object
169         *       @endif
170         */
171         virtual bool Equals(const Object& obj) const;
172
173         /**
174         * @if VISPARTNER
175         *       Gets the hash code for %AudioRouteInfo instance
176         *
177         *       @since          2.0
178         *
179         *       @visibility                             partner
180         *
181         *       @return                         Hash code
182         *       @endif
183         */
184         virtual int GetHashCode(void) const;
185
186 private:
187         class _AudioRouteInfoImpl* __pAudioRouteInfoImpl;
188 };
189
190 }}      //Tizen::Media
191 #endif