mmmw_plat/system_tone_service_api/inc/systemtoneservice.h
author hgs
Fri, 23 Jul 2010 17:29:03 -0500
changeset 36 73253677b50a
parent 20 b67dd1fc57c5
child 43 9894ed580e4a
permissions -rw-r--r--
201029
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description:
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 * This file defines the API for System Tone Service which is
20
hgs
parents: 19
diff changeset
    16
 * implemented in the systemtoneservice.dll.
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
 */
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
19
hgs
parents: 14
diff changeset
    19
#ifndef SYSTEMTONESERVICE_H_
hgs
parents: 14
diff changeset
    20
#define SYSTEMTONESERVICE_H_
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
// System includes
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <e32base.h>
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
// Forward declarations
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
NONSHARABLE_CLASS( CStsImplementation);
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
19
hgs
parents: 14
diff changeset
    28
//Observer declaration
hgs
parents: 14
diff changeset
    29
/**
hgs
parents: 14
diff changeset
    30
 *  Play Alarm Observer API definition.
20
hgs
parents: 19
diff changeset
    31
 *  This defines the interface that must be implemented by clients using
hgs
parents: 19
diff changeset
    32
 *  the PlayAlarm method.  This API allows the clients to observe  when
hgs
parents: 19
diff changeset
    33
 *  the Play Alarm completes.  The same observer can be used for different
hgs
parents: 19
diff changeset
    34
 *  PlayAlarm calls, even ones that are playing at the same time.
19
hgs
parents: 14
diff changeset
    35
 */
hgs
parents: 14
diff changeset
    36
class MStsPlayAlarmObserver
hgs
parents: 14
diff changeset
    37
    {
hgs
parents: 14
diff changeset
    38
public:
hgs
parents: 14
diff changeset
    39
    /**
hgs
parents: 14
diff changeset
    40
     * Informs the observer when the play alarm as indicated by the alarm
20
hgs
parents: 19
diff changeset
    41
     * context is complete.  This method is guaranteed to be called unless
hgs
parents: 19
diff changeset
    42
     * the alarm context has been stopped with the StopAlarm method, in
hgs
parents: 19
diff changeset
    43
     * which case the callback is guaranteed not to be called.
hgs
parents: 19
diff changeset
    44
     * 
hgs
parents: 19
diff changeset
    45
     * Implementations of this interface cannot make any assumptions about
hgs
parents: 19
diff changeset
    46
     * which thread this method is called on, it may or may not be the same
hgs
parents: 19
diff changeset
    47
     * thread from which the PlayAlarm was called.  It is up to the clients
hgs
parents: 19
diff changeset
    48
     * to provide what ever mutual exclusion protection that is needed for
hgs
parents: 19
diff changeset
    49
     * data accessed in this method.
hgs
parents: 19
diff changeset
    50
     * 
hgs
parents: 19
diff changeset
    51
     * In some cases and especially on SMP systems there is a chance that
hgs
parents: 19
diff changeset
    52
     * this method may be called before the PlayAlarm method returns.  It is
hgs
parents: 19
diff changeset
    53
     * up to the client to correctly handle this potential race condition.
hgs
parents: 19
diff changeset
    54
     * 
hgs
parents: 19
diff changeset
    55
     * Clients cannot assume properties about the thread that the callback
hgs
parents: 19
diff changeset
    56
     * is running on, for instance the thread may or may not have Active
hgs
parents: 19
diff changeset
    57
     * Scheduler.
hgs
parents: 19
diff changeset
    58
     * 
hgs
parents: 19
diff changeset
    59
     * It is strongly recommended that clients do as little as possible
hgs
parents: 19
diff changeset
    60
     * processing in this method and to complete this method as quickly as
hgs
parents: 19
diff changeset
    61
     * possible.
19
hgs
parents: 14
diff changeset
    62
     *
hgs
parents: 14
diff changeset
    63
     * @param aAlarmContext The context of the alarm that has completed.
hgs
parents: 14
diff changeset
    64
     */
hgs
parents: 14
diff changeset
    65
    virtual void PlayAlarmComplete(unsigned int aAlarmContext) = 0;
hgs
parents: 14
diff changeset
    66
    };
hgs
parents: 14
diff changeset
    67
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
// Class declaration
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
/**
20
hgs
parents: 19
diff changeset
    70
 * System Tone Service API definition.
hgs
parents: 19
diff changeset
    71
 * This is the native C++ API for applications and middleware components
hgs
parents: 19
diff changeset
    72
 * to play standard system tones.  This API uses the Private Implementation
hgs
parents: 19
diff changeset
    73
 * (PIMPL) pattern to help improve the BC of the API by decoupling the
hgs
parents: 19
diff changeset
    74
 * implementation from the interface.
hgs
parents: 19
diff changeset
    75
 * 
hgs
parents: 19
diff changeset
    76
 * The methods of this class are guaranteed to be thread safe and may be
hgs
parents: 19
diff changeset
    77
 * used from any thread within the same process.  An instance of this class
hgs
parents: 19
diff changeset
    78
 * may not be shared between processes, even if the processes share memory.
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
 *
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
 *  @code
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
 *   CSystemToneService* sts = CSystemToneService::Create();
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
 *   TInt calendarAlarmContext;
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
 *   ...
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
 *   if (sts)
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
 *   {
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
 *       ...
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
 *       sts->PlayTone(CSystemToneService::EWarningTone);
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
 *       ...
19
hgs
parents: 14
diff changeset
    89
 *       sts->PlayAlarm(CSystemToneService::ECalendarAlarm, &calendarAlarmContext);
hgs
parents: 14
diff changeset
    90
 *       ...
hgs
parents: 14
diff changeset
    91
 *       sts->StopAlarm(calendarAlarmContext);
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
 *       ...
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
 *   }
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
 *   ...
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
 *   CSystemToneService::Delete(sts);
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
 *  @endcode
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
 *
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
 */
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
NONSHARABLE_CLASS(CSystemToneService) : public CBase
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
    {
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
public:
20
hgs
parents: 19
diff changeset
   102
    /**
hgs
parents: 19
diff changeset
   103
     * Constructor
hgs
parents: 19
diff changeset
   104
     * Creates and initializes an instance of the System Tone Service.
hgs
parents: 19
diff changeset
   105
     * 
hgs
parents: 19
diff changeset
   106
     * @returns Either a pointer to the new CSystemToneService instance
hgs
parents: 19
diff changeset
   107
     *          or NULL if construction fails.
hgs
parents: 19
diff changeset
   108
     */
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
    IMPORT_C static CSystemToneService* Create();
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
20
hgs
parents: 19
diff changeset
   111
    /** Destructor
hgs
parents: 19
diff changeset
   112
     * Deinitializes and deletes the specified System Tone Service instance.  This method
hgs
parents: 19
diff changeset
   113
     * should not be called if an existing PlayAlarm has not yet completed or has not been
hgs
parents: 19
diff changeset
   114
     * stopped, otherwise whether or not the outstanding alarms actually plays or stops is
hgs
parents: 19
diff changeset
   115
     * not guaranteed.
hgs
parents: 19
diff changeset
   116
     * 
hgs
parents: 19
diff changeset
   117
     * @param[in] aSystemToneService A pointer to the CSystemToneService instance
hgs
parents: 19
diff changeset
   118
     *                           to be deleted.  This pointer will be invalid
hgs
parents: 19
diff changeset
   119
     *                           after this method completes.
hgs
parents: 19
diff changeset
   120
     */
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
    IMPORT_C static void Delete(CSystemToneService* aSystemToneService);
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
public:
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    // Data types
20
hgs
parents: 19
diff changeset
   125
    /** The type of system tones that are supported by this API. */
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    enum TToneType
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
        {
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
        // Capture Tones
19
hgs
parents: 14
diff changeset
   129
        EBurstMode = 0x0001,
hgs
parents: 14
diff changeset
   130
        ECapture = 0x0002,
hgs
parents: 14
diff changeset
   131
        ECallRecording = 0x0003,
hgs
parents: 14
diff changeset
   132
        ERecordingStart = 0x0004,
hgs
parents: 14
diff changeset
   133
        ERecordingStop = 0x0005,
hgs
parents: 14
diff changeset
   134
        ESelfTimer = 0x0006,
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
        // General Tones
19
hgs
parents: 14
diff changeset
   137
        EConfirmationBeep = 0x0101,
hgs
parents: 14
diff changeset
   138
        EDefaultBeep = 0x0102,
hgs
parents: 14
diff changeset
   139
        EErrorBeep = 0x0103,
hgs
parents: 14
diff changeset
   140
        EInformationBeep = 0x0104,
hgs
parents: 14
diff changeset
   141
        EWarningBeep = 0x0105,
hgs
parents: 14
diff changeset
   142
        EIntegratedHandsFreeActivated = 0x0106,
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
        // Key Tones
19
hgs
parents: 14
diff changeset
   145
        ETouchScreen = 0x0201,
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
        // Location Tones
19
hgs
parents: 14
diff changeset
   148
        ELocationRequest = 0x0301,
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
        // Messaging Tones
19
hgs
parents: 14
diff changeset
   151
        EChatAlert = 0x0401,
hgs
parents: 14
diff changeset
   152
        EEmailAlert = 0x0402,
hgs
parents: 14
diff changeset
   153
        EMmsAlert = 0x0403,
hgs
parents: 14
diff changeset
   154
        ESmsAlert = 0x0404,
hgs
parents: 14
diff changeset
   155
        EDeliveryReport = 0x0405,
hgs
parents: 14
diff changeset
   156
        EMessageSendFailure = 0x0406,
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
        // Power Tones
19
hgs
parents: 14
diff changeset
   159
        EBatteryLow = 0x0501,
hgs
parents: 14
diff changeset
   160
        EBatteryRecharged = 0x0502,
hgs
parents: 14
diff changeset
   161
        EPowerOn = 0x0503,
hgs
parents: 14
diff changeset
   162
        EPowerOff = 0x0504,
hgs
parents: 14
diff changeset
   163
        EWakeUp = 0x0505,
hgs
parents: 14
diff changeset
   164
        EWrongCharger = 0x0506,
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
        // Telephony Tones
19
hgs
parents: 14
diff changeset
   167
        EAutomaticRedialComplete = 0x0604,
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
        // Voice Recognition Tones
19
hgs
parents: 14
diff changeset
   170
        EVoiceStart = 0x0701,
hgs
parents: 14
diff changeset
   171
        EVoiceError = 0x0702,
hgs
parents: 14
diff changeset
   172
        EVoiceAbort = 0x0703
hgs
parents: 14
diff changeset
   173
        };
hgs
parents: 14
diff changeset
   174
20
hgs
parents: 19
diff changeset
   175
    /** The type of system alarms that are supported by this API. */
19
hgs
parents: 14
diff changeset
   176
    enum TAlarmType
hgs
parents: 14
diff changeset
   177
        {
hgs
parents: 14
diff changeset
   178
        // Calendar Alarms
hgs
parents: 14
diff changeset
   179
        ECalendarAlarm = 0x8001,
hgs
parents: 14
diff changeset
   180
        EClockAlarm = 0x8002,
hgs
parents: 14
diff changeset
   181
        EToDoAlarm = 0x8003,
hgs
parents: 14
diff changeset
   182
hgs
parents: 14
diff changeset
   183
        // Telephony Alarms
hgs
parents: 14
diff changeset
   184
        EIncomingCall = 0x8101,
hgs
parents: 14
diff changeset
   185
        EIncomingCallLine2 = 0x8102,
hgs
parents: 14
diff changeset
   186
        EIncomingDataCall = 0x8103
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
        };
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
    /**
20
hgs
parents: 19
diff changeset
   190
     * Plays the specified system tone.  If the tone type is not recognized, a default
hgs
parents: 19
diff changeset
   191
     * tone will be played.  Tones are short, fixed duration that always play to
hgs
parents: 19
diff changeset
   192
     * completion and cannot be stopped by the client.
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
     *
20
hgs
parents: 19
diff changeset
   194
     * @param[in] aTone The system tone type to play.
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
     */
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
    IMPORT_C void PlayTone(TToneType aTone);
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
    /**
20
hgs
parents: 19
diff changeset
   199
     * Plays the specified system alarm.  If the alarm type is not recognized, a default
hgs
parents: 19
diff changeset
   200
     * alarm will be played.  Alarms are tones that are long or not fixed duration such as a
hgs
parents: 19
diff changeset
   201
     * calendar alarm that can be manually stopped by the client.  The client is notified
hgs
parents: 19
diff changeset
   202
     * when an alarm playback completes if it is not manually stopped by the client.
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
     *
20
hgs
parents: 19
diff changeset
   204
     * @param[in]  aAlarm        The system alarm type to play.
hgs
parents: 19
diff changeset
   205
     * @param[out] aAlarmContext A guaranteed globablly unique context representing this
hgs
parents: 19
diff changeset
   206
     *                           specific alarm playback that can be used for stopping the
hgs
parents: 19
diff changeset
   207
     *                           alarm or used to indicate to the observer which alarm playback
hgs
parents: 19
diff changeset
   208
     *                           has completed.
hgs
parents: 19
diff changeset
   209
     * @param[in] aObserver      A reference to the observer that is to be notified if this alarm
hgs
parents: 19
diff changeset
   210
     *                           playback completes before StopAlarm is called.  The same observer
hgs
parents: 19
diff changeset
   211
     *                           can be used for multiple PlayAlarms, even for ones playing at the
hgs
parents: 19
diff changeset
   212
     *                           same time.  It is the responsibility of the client to manage the
hgs
parents: 19
diff changeset
   213
     *                           life cycle of the observer.  However the observer must exist until
hgs
parents: 19
diff changeset
   214
     *                           all alarms the observer is associated with are either completed
hgs
parents: 19
diff changeset
   215
     *                           or stopped.
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
     */
19
hgs
parents: 14
diff changeset
   217
    IMPORT_C void PlayAlarm(TAlarmType aAlarm, unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
    /**
20
hgs
parents: 19
diff changeset
   220
     * Stops the specified system alarm playback.  If the playback has already completed or the
19
hgs
parents: 14
diff changeset
   221
     * context is not valid, this method does nothing.
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
     *
20
hgs
parents: 19
diff changeset
   223
     * @param[in] aAlarmContext The context to the specific alarm that is to be stopped.
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
     */
19
hgs
parents: 14
diff changeset
   225
    IMPORT_C void StopAlarm(unsigned int aAlarmContext);
36
hgs
parents: 20
diff changeset
   226
    
hgs
parents: 20
diff changeset
   227
    IMPORT_C void PlayAlarm(TToneType aTone, unsigned int& aAlarmContext, MStsPlayAlarmObserver& aObserver);
14
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
protected:
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
    // Protected constructors and destructors
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
    CSystemToneService(CStsImplementation& aImplementation);
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
    ~CSystemToneService();
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
protected:
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
    // Protected data
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
    /**
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
     * A reference to the implementation class for this API.
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
     */
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
    CStsImplementation& iImplementation;
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
    };
80975da52420 Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
19
hgs
parents: 14
diff changeset
   242
#endif  // SYSTEMTONESERVICE_H_