phoneengine/phoneservices/src/dtmfservice.cpp
changeset 56 5bcb308bd24d
parent 37 ba76fc04e6c2
child 65 2a5d4ab426d3
--- a/phoneengine/phoneservices/src/dtmfservice.cpp	Tue Jul 06 14:15:47 2010 +0300
+++ b/phoneengine/phoneservices/src/dtmfservice.cpp	Wed Aug 18 09:48:26 2010 +0300
@@ -26,7 +26,7 @@
     QObject* parent) 
     : 
     XQServiceProvider(
-        QLatin1String("com.nokia.symbian.IDtmfPlay"), parent), 
+        QLatin1String("phoneui.com.nokia.symbian.IDtmfPlay"), parent), 
     m_call(call), 
     m_parameters(parameters)
 {
@@ -37,15 +37,34 @@
 {
 }
 
-void DTMFService::playDTMFTone(const QChar& keyToPlay)
+int DTMFService::playDTMFTone(const QChar& keyToPlay)
 {
-    PHONE_DEBUG2("DTMFService::playDTMFTone keyToPlay:", keyToPlay);
+    PHONE_TRACE2("keyToPlay:", keyToPlay);
+    if (!hasCapability()) {
+        return;
+    }
     m_parameters.SetKeyCode(keyToPlay.unicode());
-    TRAP_IGNORE( m_call.HandlePlayDTMFL() );
+    TRAPD(ret, m_call.HandlePlayDTMFL() );
+    return ret;
 }
 
-void DTMFService::stopDTMFPlay()
+int DTMFService::stopDTMFPlay()
 {
-    PHONE_DEBUG("DTMFService::stopDTMFPlay");
-    m_call.HandleEndDTMF(); 
+    PHONE_TRACE;
+    if (!hasCapability()) {
+        return;
+    }
+    return m_call.HandleEndDTMF(); 
 }
+
+bool DTMFService::hasCapability()
+{
+    XQRequestInfo req = requestInfo();
+    QSet<int> caps = req.clientCapabilities();
+    if (!caps.contains(ECapabilityNetworkServices)) {
+        PHONE_TRACE1("NetworkServices capability missing");
+        return false;
+	}
+	return true;
+}
+