qtmobileextensions/src/systemtoneservice/xqsystemtoneservice.h
changeset 8 71781823f776
child 19 46686fb6258c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qtmobileextensions/src/systemtoneservice/xqsystemtoneservice.h	Thu May 27 13:42:11 2010 +0300
@@ -0,0 +1,190 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License as published by
+* the Free Software Foundation, version 2.1 of the License.
+* 
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public License
+* along with this program.  If not, 
+* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
+*
+* Description:
+*       QT wrapper API for  for System Tone Service 
+*
+*/
+
+#ifndef XQSYSTEMTONESERVICE_H
+#define XQSYSTEMTONESERVICE_H
+
+#include <QObject>
+
+#include <systemtoneservice.h>
+
+#ifdef __STS_QT_LIB_BUILD__ 
+#  define STS_EXPORT Q_DECL_EXPORT
+#else
+#  define STS_EXPORT Q_DECL_IMPORT
+#endif
+
+class XQSystemToneServicePrivate;
+
+/**
+ * The System Tone Service (STS) is a component of the Multimedia Services (mmserv) 
+ * collection of the Multimedia Middleware (mmmw) package. STS provides multimedia APIs 
+ * specific to playing system tones (calendar, message alerts, warnings, etc).
+ * 
+ * Here you can find Qt wrapper for this component.
+ * 
+ * Main concepts behind this API:
+ *   * tone - short sound used in the manner "fire and forget" therefore there are no signals when tone ends.
+ *   * alarm - these are kind of looped/longer sounds that may be interrupted by calling app; also there are notifications (signals) when alarm ends playing.
+ *    
+ */
+class XQSystemToneService : public QObject
+{
+  Q_OBJECT
+
+public:
+
+/**
+ * Supported tone types.
+*/
+  Q_DECL_IMPORT enum ToneType {
+	   // Capture Tones
+	   BurstModeTone = CSystemToneService::EBurstMode,
+	   CaptureTone = CSystemToneService::ECapture,
+	   CallRecordingTone = CSystemToneService::ECallRecording,
+	   RecordingStartTone = CSystemToneService::ERecordingStart,
+	   RecordingStopTone = CSystemToneService::ERecordingStop,
+	   SelfTimerTone = CSystemToneService::ESelfTimer,
+	   
+	   // General Tones
+	   ConfirmationBeepTone = CSystemToneService::EConfirmationBeep,
+	   DefaultBeepTone = CSystemToneService::EDefaultBeep,
+	   ErrorBeepTone = CSystemToneService::EErrorBeep,
+	   InformationBeepTone = CSystemToneService::EInformationBeep,
+	   WarningBeepTone = CSystemToneService::EWarningBeep,
+	   IntegratedHandsFreeActivatedTone = CSystemToneService::EIntegratedHandsFreeActivated,
+	   
+	   // Key Tones
+	   TouchScreenTone = CSystemToneService::ETouchScreen,
+	   
+	   // Location Tones
+	   LocationRequestTone = CSystemToneService::ELocationRequest,
+	   
+	   // Messaging Tones
+	   ChatAlertTone = CSystemToneService::EChatAlert,
+	   EmailAlertTone = CSystemToneService::EEmailAlert,
+	   MmsAlertTone = CSystemToneService::EMmsAlert,
+	   SmsAlertTone = CSystemToneService::ESmsAlert,
+	   DeliveryReportTone = CSystemToneService::EDeliveryReport,
+	   MessageSendFailureTone = CSystemToneService::EMessageSendFailure,
+	   
+	   // Power Tones
+	   BatteryLowTone = CSystemToneService::EBatteryLow,
+	   BatteryRechargedTone = CSystemToneService::EBatteryRecharged,
+	   PowerOnTone = CSystemToneService::EPowerOn,
+	   PowerOffTone = CSystemToneService::EPowerOff,
+	   WakeUpTone = CSystemToneService::EWakeUp,
+	   WrongChargerTone = CSystemToneService::EWrongCharger,
+	   
+	   // Telephony Tones
+	   AutomaticRedialCompleteTone = CSystemToneService::EAutomaticRedialComplete,
+	   
+	   // Voice Recognition Tones
+	   VoiceStartTone = CSystemToneService::EVoiceStart,
+	   VoiceErrorTone = CSystemToneService::EVoiceError,
+	   VoiceAbortTone = CSystemToneService::EVoiceAbort
+  };
+  
+Q_DECL_IMPORT enum AlarmType {
+       // Calendar Tones
+       CalendarAlarmTone = CSystemToneService::ECalendarAlarm,
+       ClockAlarmTone = CSystemToneService::EClockAlarm,
+       ToDoAlarmTone = CSystemToneService::EToDoAlarm,
+
+       // Telephony Alarms
+       IncomingCallTone = CSystemToneService::EIncomingCall,
+       IncomingCallLine2Tone = CSystemToneService::EIncomingCallLine2,
+       IncomingDataCallTone = CSystemToneService::EIncomingDataCall,
+  };
+
+  
+public:
+/**
+* XQSystemToneService object constructor. 
+*/
+  STS_EXPORT XQSystemToneService(QObject *parent = 0);
+
+/**
+* Simple destructor.
+*/
+  STS_EXPORT ~XQSystemToneService();
+
+/**
+* Play selected tone.
+*
+* @param  toneType  selected tone type.
+* @see  XQSystemToneService::error()
+*/
+  STS_EXPORT void playTone(ToneType toneType);
+
+/**
+* Play selected alarm. 
+*
+* @param  toneType  selected tone type.
+* @param  contextId  unique playback id for current playback event. May be used for matching playback signals and/or to later stop playing.
+* @see  XQSystemToneService::stopAlarm(unsigned int contextId)
+* @see  XQSystemToneService::error()
+*/
+  STS_EXPORT void playAlarm(AlarmType alarmType, unsigned int& contextId);
+  
+  
+/**
+* Cancel tone being played currently.
+*
+* @param contextId id, must be same as given by playTone method.
+* @see  XQSystemToneService::playAlarm(ToneType toneType, unsigned int& contextId)
+*/
+  STS_EXPORT void stopAlarm(unsigned int contextId);
+
+signals:
+
+/**
+* Playback of given tone has been started.
+* 
+*/
+  STS_EXPORT void toneStarted();
+
+/**
+* Playback of given alarm has been started.
+*
+* @param contextId id, the same as given by playTone method.
+* 
+*/
+  STS_EXPORT void alarmStarted(unsigned int contextId);
+  
+/**
+* Playback of given alarm has been finished.
+*
+* @param contextId id, the same as given by playTone method.
+* 
+*/
+  STS_EXPORT void alarmFinished(unsigned int contextId);
+
+private:
+
+  XQSystemToneServicePrivate *d_p;
+
+  friend class XQSystemToneServicePrivate;
+  
+};
+
+#endif /*SYSTEMTONESERVICE_QT_H*/