williamr@2: /* williamr@2: * Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Client side application interface. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef __ATAUDIOEVENTAPI_H__ williamr@2: #define __ATAUDIOEVENTAPI_H__ williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: #include "ataudioeventconstants.hrh" // TAudioThemeEvent, TATError williamr@2: williamr@2: class RATSoundServerSession; williamr@2: class MATEventCompleteObserver; williamr@2: class CATMessageHelper; williamr@2: williamr@2: /** williamr@2: * Implements client side API for Audio Theme sound server. williamr@2: * williamr@2: * @lib ATSoundServerClient.lib williamr@2: * @since Series 60 release 3.0 williamr@2: */ williamr@2: class CATAudioEventAPI : public CBase williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Two-phased constructor. williamr@2: * @since 3.0 williamr@2: * @param aClient reference to client object williamr@2: * @return A pointer to the created object williamr@2: */ williamr@2: IMPORT_C static CATAudioEventAPI* NewL(MATEventCompleteObserver& aClient); williamr@2: williamr@2: /** williamr@2: * Two-phased constructor. Leaves pointer to object to cleanup stack. williamr@2: * @since 3.0 williamr@2: * @param aClient reference to client object williamr@2: * @return A pointer to the created object williamr@2: */ williamr@2: IMPORT_C static CATAudioEventAPI* NewLC(MATEventCompleteObserver& aClient); williamr@2: williamr@2: /** williamr@2: * Destructor williamr@2: */ williamr@2: ~CATAudioEventAPI(); williamr@2: williamr@2: /** williamr@2: * Send event to the server. UI Settings uses demoplay as true, so williamr@2: * that server will play "profile" events as well. williamr@2: * @since 3.0 williamr@2: * @param aEvent event number williamr@2: * aDemoPlay ETrue if called from UI settings application, EFalse from observer williamr@2: * and keysoundserver williamr@2: */ williamr@2: virtual void SendAudioEventL(TAudioThemeEvent aEvent, TBool aDemoPlay); williamr@2: williamr@2: /** williamr@2: * Stop playing of earlier sent playing request. williamr@2: * @since 3.0 williamr@2: * @param aEvent event number williamr@2: */ williamr@2: virtual void StopAudio(TAudioThemeEvent aEvent); williamr@2: williamr@2: /** williamr@2: * This methods is called by message helper when sent messages completes. williamr@2: * Client will be called for completion in this method as well. williamr@2: * @since 3.0 williamr@2: * @param aError error code williamr@2: * @param aHelper messagehelper that received completion from the server. williamr@2: */ williamr@2: void MessageComplete(TInt aError, CATMessageHelper* aHelper); williamr@2: williamr@2: private: williamr@2: williamr@2: /** williamr@2: * C++ default constructor. williamr@2: * @since 3.0 williamr@2: * @param aClient reference to client object williamr@2: */ williamr@2: CATAudioEventAPI(MATEventCompleteObserver& aClient); williamr@2: williamr@2: /** williamr@2: * Symbian 2nd phase constructor. williamr@2: */ williamr@2: void ConstructL(); williamr@2: williamr@2: private: // Data williamr@2: williamr@2: // Session to AT sound server williamr@2: RATSoundServerSession* iSession; // Owned williamr@2: williamr@2: // Reference to client williamr@2: MATEventCompleteObserver& iClient; williamr@2: williamr@2: // Array for message helpers williamr@2: RPointerArray iMessageHelperArray; williamr@2: williamr@2: }; williamr@2: williamr@2: williamr@2: #endif // __ATAUDIOEVENTAPI_H__ williamr@2: williamr@2: // End of File