mmmw_plat/telephony_multimedia_service_api/inc/tmsdtmf.h
changeset 12 5a06f39ad45b
child 20 b67dd1fc57c5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmmw_plat/telephony_multimedia_service_api/inc/tmsdtmf.h	Fri Apr 16 15:29:42 2010 +0300
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Telephony Multimedia Service
+ *
+ */
+
+#ifndef TMS_DTMF_H
+#define TMS_DTMF_H
+
+#include <glib.h>
+
+namespace TMS {
+
+// FORWARD DECLARATIONS
+class TMSDTMFBody;
+class TMSDTMFObserver;
+
+/**
+ * TMSDTMFclass
+*
+* This class provides DTMF playback capability to the TMS clients. Each
+* DTMF player session is associated either with an uplink or downlink stream.
+*
+* @lib tmsapi.lib
+*
+*/
+class TMSDTMF
+    {
+public:
+    /**
+     * Destructor
+     */
+    IMPORT_C virtual ~TMSDTMF();
+
+    /**
+     * Add client as an observer to TMSDTMF events.
+     *
+     * @param  obsrvr
+     *      Observer object to TMSDTMF events.
+     *
+     * @param  user_data
+     *      Any user data passed to the function.
+     *
+     * @return
+     *      TMS_RESULT_SUCCESS if the operation was successful.
+     *      TMS_RESULT_ALREADY_EXIST if the obsrvr is already in the list.
+     *
+     */
+    IMPORT_C gint AddObserver(TMSDTMFObserver& obsrvr, gpointer user_data);
+
+    /**
+     * Remove client as an observer to TMSDTMF events.
+     *
+     * @param  obsrvr
+     *      Observer object to TMSDTMF events.
+     *
+     * @return
+     *      TMS_RESULT_SUCCESS if the obsrvr is removed successfully from list.
+     *      TMS_RESULT_DOES_NOT_EXIST if obsrvr is not already in the list.
+     *
+     */
+    IMPORT_C gint RemoveObserver(TMSDTMFObserver& obsrvr);
+
+    /**
+     * Starts DTMF playback. In the case of downlink, the tone will be played
+     * locally. In case of uplink, the network will play tones.
+     *
+     * Common for CS and VOIP (uplink and downlink)
+     *
+     * @return
+     *      TMS_RESULT_SUCCESS if the operation was successful.
+     *
+     */
+    IMPORT_C gint Start();
+
+    /**
+     * Stops DTMF playback.
+     * Common for CS and VOIP (Uplink and Downlink).
+     *
+     * @return
+     *      TMS_RESULT_SUCCESS if the operation was successful.
+     *
+     */
+    IMPORT_C gint Stop();
+
+    /**
+     * Supply DTMF player with a string of tones to be played on local
+     * playback device or sent via the uplink.
+     *
+     * @param  string
+     *      String containing one or more DTMF digits.
+     *
+     * @return
+     *      TMS_RESULT_SUCCESS if the operation was successful.
+     *
+     */
+    IMPORT_C gint SetTone(GString* string);
+
+    /**
+     *  Allows a client to continue or cancel the sending of a DTMF string
+     *  when it was stopped by the use of ‘w’ char in the string.
+     *  The client will set sending param to true if it wishes to continue
+     *  the DTMF string sending and will set sending param to false if it
+     *  wishes to discard the rest of the DTMF string.
+     *  Reference: Multimode ETel API Design Document
+     *
+     *  For CS calltype
+     *
+     *  @param  sending
+     *      Boolean to continue sending DTMF string.
+     *
+     * @return
+     *      TMS_RESULT_SUCCESS if the operation was successful.
+     *
+     */
+    IMPORT_C gint ContinueDTMFStringSending(gboolean sending);
+
+protected:
+
+    /**
+     * Constructor
+     */
+    IMPORT_C TMSDTMF();
+
+protected:
+    TMSDTMFBody* iBody;
+    };
+
+} //namespace TMS
+
+#endif //__TMS_DTMF_H__
+
+// End of file