Tizen 2.0 Release
[framework/osp/media.git] / src / FMediaAudioRouteManager.cpp
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 #include <FBaseSysLog.h>
19 #include <FSec_AccessController.h>
20 #include <FMediaAudioRouteInfo.h>
21 #include <FMediaAudioManagerTypes.h>
22 #include <FMediaAudioRouteManager.h>
23 #include <FMediaIAudioRouteEventListener.h>
24 #include "FMedia_AudioRouteManagerImpl.h"
25
26 using namespace Tizen::Base;
27 using namespace Tizen::Base::Collection;
28 using namespace Tizen::Security;
29
30 namespace Tizen { namespace Media
31 {
32
33 AudioRouteManager::AudioRouteManager()
34 {
35         __pAudioRouteManagerImpl = _AudioRouteManagerImpl::GetInstance();
36 }
37
38 AudioRouteManager::~AudioRouteManager()
39 {
40         if (__pAudioRouteManagerImpl != null)
41         {
42                 __pAudioRouteManagerImpl = null;
43         }
44 }
45
46 AudioRouteManager*
47 AudioRouteManager::GetInstance(void)
48 {
49         result r = E_SUCCESS;
50
51         r = _AccessController::CheckUserPrivilege(_PRV_AUDIOMANAGER_ROUTE);
52         SysTryCatch(NID_MEDIA,  r == E_SUCCESS, , E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] This application does not have the privilege to call this method.");
53
54         static AudioRouteManager routeManager;
55         return (&routeManager);
56
57 CATCH:
58         return null;
59 }
60
61 result
62 AudioRouteManager::SetAudioRouteEventListener(IAudioRouteEventListener* pListener)
63 {
64         result r = E_SUCCESS;
65
66         r = _AccessController::CheckUserPrivilege(_PRV_AUDIOMANAGER_ROUTE);
67         SysTryReturn(NID_MEDIA,  r == E_SUCCESS, E_PRIVILEGE_DENIED, E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] This application does not have the privilege to call this method.");
68
69         return __pAudioRouteManagerImpl->SetAudioRouteEventListener(pListener);
70 }
71
72
73
74 Tizen::Base::String
75 AudioRouteManager::GetActiveBluetoothA2dpName(void) const
76 {
77         result r = E_SUCCESS;
78
79         r = _AccessController::CheckUserPrivilege(_PRV_AUDIOMANAGER_ROUTE);
80         SysTryCatch(NID_MEDIA,  r == E_SUCCESS, , E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] This application does not have the privilege to call this method.");
81
82         return __pAudioRouteManagerImpl->GetActiveBluetoothA2dpName();
83
84 CATCH:
85         return null;
86 }
87
88 AudioStreamType
89 AudioRouteManager::GetActiveAudioStreamType(void) const
90 {
91         result r = E_SUCCESS;
92
93         r = _AccessController::CheckUserPrivilege(_PRV_AUDIOMANAGER_ROUTE);
94         SysTryCatch(NID_MEDIA,  r == E_SUCCESS, , E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] This application does not have the privilege to call this method.");
95
96         return __pAudioRouteManagerImpl->GetActiveAudioStreamType();
97
98 CATCH:
99         return (AudioStreamType) -1;
100 }
101
102 Tizen::Base::Collection::IList*
103 AudioRouteManager::GetAvailableAudioRouteListN(void) const
104 {
105         result r = E_SUCCESS;
106
107         r = _AccessController::CheckUserPrivilege(_PRV_AUDIOMANAGER_ROUTE);
108         SysTryCatch(NID_MEDIA,  r == E_SUCCESS, , E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] This application does not have the privilege to call this method.");
109
110         return __pAudioRouteManagerImpl->GetAvailableAudioRouteListN();
111
112 CATCH:
113         return null;
114 }
115
116 bool
117 AudioRouteManager::IsAudioRouteAvailable(const AudioRouteInfo& route) const
118 {
119         result r = E_SUCCESS;
120
121         r = _AccessController::CheckUserPrivilege(_PRV_AUDIOMANAGER_ROUTE);
122         SysTryCatch(NID_MEDIA,  r == E_SUCCESS, , E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] This application does not have the privilege to call this method.");
123
124         return __pAudioRouteManagerImpl->IsAudioRouteAvailable(route);
125
126 CATCH:
127         return false;
128 }
129
130 result
131 AudioRouteManager::SetActiveAudioRoute(const AudioRouteInfo& route)
132 {
133         result r = E_SUCCESS;
134
135         r = _AccessController::CheckUserPrivilege(_PRV_AUDIOMANAGER_ROUTE);
136         SysTryReturn(NID_MEDIA,  r == E_SUCCESS, E_PRIVILEGE_DENIED, E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] This application does not have the privilege to call this method.");
137
138         return __pAudioRouteManagerImpl->SetActiveAudioRoute(route);
139 }
140
141 AudioRouteInfo
142 AudioRouteManager::GetActiveAudioRoute(void) const
143 {
144         result r = E_SUCCESS;
145
146         r = _AccessController::CheckUserPrivilege(_PRV_AUDIOMANAGER_ROUTE);
147         SysTryCatch(NID_MEDIA,  r == E_SUCCESS, , E_PRIVILEGE_DENIED, "[E_PRIVILEGE_DENIED] This application does not have the privilege to call this method.");
148
149         return __pAudioRouteManagerImpl->GetActiveAudioRoute();
150
151 CATCH:
152         return AudioRouteInfo(INPUT_AUDIO_DEVICE_NONE,OUTPUT_AUDIO_DEVICE_NONE);
153 }
154
155 };
156 };