2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
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
9 // http://www.apache.org/licenses/LICENSE-2.0
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.
19 * @file FMediaAudioRouteInfo.h
20 * @brief This is the header file for the common types of audio route information.
22 * This header files contains all the commons things required for audio route information and associated classes
25 #ifndef _FMEDIA_AUDIO_ROUTE_INFO_H_
26 #define _FMEDIA_AUDIO_ROUTE_INFO_H_
28 #include <FMediaAudioManagerTypes.h>
30 namespace Tizen { namespace Media
34 * @class AudioRouteInfo
35 * @brief This class contains audio route information
39 * @final This class is not intended for extension.
43 * @remarks Audio routing can be done using this class instances as input/output audio devices
46 class _OSP_EXPORT_ AudioRouteInfo
47 :public Tizen::Base::Object
52 * Initializes this instance of %AudioRouteInfo with the specified audio devices.
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
65 AudioRouteInfo(InputAudioDevice in, OutputAudioDevice out);
69 * This destructor overrides Tizen::Base::Object::~Object().
76 virtual ~AudioRouteInfo(void);
80 * Sets the input audio device
86 * @param[in] in The input audio device
89 void SetInputAudioDevice(InputAudioDevice in);
93 * Sets the output audio device
99 * @param[in] out The output audio device
102 void SetOutputAudioDevice(OutputAudioDevice out);
106 * Gets the input audio device
110 * @visibility partner
112 * @return Input audio device
115 InputAudioDevice GetInputAudioDevice(void) const;
119 * Gets the output audio device
123 * @visibility partner
125 * @return Output audio device
128 OutputAudioDevice GetOutputAudioDevice(void) const;
132 * Copying of objects using this copy constructor is allowed.
136 * @visibility partner
138 * @return The copy of this instance
139 * @param[in] rhs An instance of %AudioRouteInfo
142 AudioRouteInfo(const AudioRouteInfo& rhs);
146 * Copying of objects using this copy assignment operator is allowed.
150 * @visibility partner
152 * @return The instance of AudioRouteInfo
153 * @param[in] rhs AudioRouteInfo instance
156 AudioRouteInfo& operator =(const AudioRouteInfo& rhs);
160 * Compares the specified instance of %AudioRouteInfo with the calling instance.
164 * @visibility partner
166 * @return @c true if the object is the same,@n
168 * @param[in] obj The object
171 virtual bool Equals(const Object& obj) const;
175 * Gets the hash code for %AudioRouteInfo instance
179 * @visibility partner
184 virtual int GetHashCode(void) const;
187 class _AudioRouteInfoImpl* __pAudioRouteInfoImpl;