delete % before the URI of the privilege
[platform/framework/native/media.git] / inc / FMediaIAudioRouteEventListener.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         FMediaIAudioRouteEventListener.h
20 * @brief                This is the header file for the %IAudioRouteEventListener interface.
21 *
22 * This header files contains the declarations of the %IAudioRouteEventListener interface and its associated classes.
23 *
24 */
25 #ifndef _FMEDIA_IAUDIO_ROUTE_EVENT_LISTENER_H_
26 #define _FMEDIA_IAUDIO_ROUTE_EVENT_LISTENER_H_
27
28 #include <FMediaAudioRouteInfo.h>
29 #include "FBaseRtIEventListener.h"
30
31 namespace Tizen { namespace Media
32 {
33 /**
34  * @interface   IAudioRouteEventListener
35  * @brief This interface provides a listener that receives events associated with the active audio device or available audio devices.
36  *
37  * @since               2.0
38  *
39  * The %IAudioRouteEventListener interface specifies the methods used to notify the changes in active audio device or in available audio devices.
40  *  There are many audio devices in the device. Thus If the application wants to know the currently active audio device or available audio devices,
41  *  it has to listen to this interface.
42  */
43 class _OSP_EXPORT_ IAudioRouteEventListener
44         : virtual public Tizen::Base::Runtime::IEventListener
45 {
46 public:
47         /**
48         * This polymorphic destructor should be overridden if required. This way, the destructors of the derived classes are called when the destructor of this interface is called.
49         *
50         * @since                2.0
51         */
52         virtual ~IAudioRouteEventListener(void) { }
53
54         /**
55         *       Called when active audio route changes.
56         *
57         *       @since          2.0
58         *       @param[in]                      route                                   An instance of AudioRouteInfo that is active currently
59         */
60         virtual void OnActiveAudioRouteChanged(const AudioRouteInfo& route) = 0;
61
62         /**
63         *       Called when an available audio route is added.
64         *
65         *       @since          2.0
66         *       @param[in]                      route                                   An instance of AudioRouteInfo for which the routing status is changed
67         */
68         virtual void OnAudioRouteAdded(const AudioRouteInfo& route) = 0;
69
70         /**
71         *       Called when an audio route is removed.
72         *
73         *       @since          2.0
74         *       @param[in]                      route                                   An instance of AudioRouteInfo for which the routing status is changed
75         */
76         virtual void OnAudioRouteRemoved(const AudioRouteInfo& route) = 0;
77 protected:
78         //
79         // This method is for internal use only. Using this method can cause behavioral, security-related,
80         // and consistency-related issues in the application.
81         //
82         // This method is reserved and may change its name at any time without
83         // prior notice.
84         //
85         // @since               2.0
86         //
87         virtual void IAudioRouteEventListener_Reserved1(void) {}
88
89         //
90         // This method is for internal use only. Using this method can cause behavioral, security-related,
91         // and consistency-related issues in the application.
92         //
93         // This method is reserved and may change its name at any time without
94         // prior notice.
95         //
96         // @since               2.0
97         //
98         virtual void IAudioRouteEventListener_Reserved2(void) {}
99
100         //
101         // This method is for internal use only. Using this method can cause behavioral, security-related,
102         // and consistency-related issues in the application.
103         //
104         // This method is reserved and may change its name at any time without
105         // prior notice.
106         //
107         // @since               2.0
108         //
109         virtual void IAudioRouteEventListener_Reserved3(void) {}
110
111 };
112 }}      //Tizen::Media
113 #endif