diff -r 885c2596c964 -r 5d007b20cfd0 qtmobileextensions/src/systemtoneservice/xqsystemtoneservice.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtmobileextensions/src/systemtoneservice/xqsystemtoneservice.h Tue Aug 31 16:02:37 2010 +0300 @@ -0,0 +1,200 @@ +/* +* 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 + +#include + +#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 alarmType 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); + +/** +* Play selected tone. +* +* @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(ToneType toneType, 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*/