2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 * @author Zbigniew Kostrzewa <z.kostrzewa@samsung.com>
21 #include <Commons/Exception.h>
24 #include <telephony_network_type.h>
25 #include <telephony_network.h>
26 #include <TapiCommon.h>
28 #include <dpl/log/log.h>
30 namespace WrtDeviceApis {
32 Manager& Manager::getInstance()
34 static Manager instance;
43 bool Manager::isEnabled() const
46 switch (m_serviceType.getInt()) {
47 case VCONFKEY_TELEPHONY_SVCTYPE_NONE:
48 case VCONFKEY_TELEPHONY_SVCTYPE_NOSVC:
49 case VCONFKEY_TELEPHONY_SVCTYPE_EMERGENCY:
50 case VCONFKEY_TELEPHONY_SVCTYPE_SEARCH:
52 case VCONFKEY_TELEPHONY_SVCTYPE_2G:
53 case VCONFKEY_TELEPHONY_SVCTYPE_2_5G:
54 case VCONFKEY_TELEPHONY_SVCTYPE_2_5G_EDGE:
55 case VCONFKEY_TELEPHONY_SVCTYPE_3G:
56 case VCONFKEY_TELEPHONY_SVCTYPE_HSDPA:
62 Catch(Commons::ConversionException) {
63 ReThrow(Commons::PlatformException);
67 bool Manager::isRoaming() const
70 return (m_roam.getInt() == VCONFKEY_TELEPHONY_SVC_ROAM_ON);
72 Catch(Commons::ConversionException) {
73 ReThrow(Commons::PlatformException);
77 Api::ISource* Manager::getSource() const
82 Api::Strength Manager::getSignalStrength() const
84 if (VCONFKEY_TELEPHONY_RSSI_6 == 0) {
85 ThrowMsg(Commons::PlatformException, "Division by zero.");
88 return 100 * m_rssi.getInt() /
89 static_cast<float>(VCONFKEY_TELEPHONY_RSSI_6);
91 Catch(Commons::ConversionException) {
92 ReThrow(Commons::PlatformException);
96 std::string Manager::getMcc() const
100 if (network_info_get_mcc(&mcc) == NETWORK_INFO_ERROR_NONE) {
101 LogDebug("Mobile Country Code : " << mcc);
103 std::string strMcc(mcc);
112 std::string Manager::getMnc() const
116 if (network_info_get_mnc(&mnc) == NETWORK_INFO_ERROR_NONE) {
117 LogDebug("Mobile Network Code : " << mnc);
119 std::string strMnc(mnc);
128 bool Manager::isHardwareOn() const
132 if (tel_check_service_ready(&status) == TAPI_API_SUCCESS)
134 if(status) return true;
141 m_rssi(VCONFKEY_TELEPHONY_RSSI),
142 m_roam(VCONFKEY_TELEPHONY_SVC_ROAM),
143 m_serviceType(VCONFKEY_TELEPHONY_SVCTYPE),
144 m_source(new Source())