diff -r 6369bfd1b60d -r 08b5eae9f9ff upnpmpxplugins/upnpplaybackplugins/inc/upnpaudiopolicy.h --- a/upnpmpxplugins/upnpplaybackplugins/inc/upnpaudiopolicy.h Mon Nov 01 13:44:24 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -/* -* Copyright (c) 2008 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: Audio policy implementation for upnp remote plugin -* -*/ - - - - - - -#ifndef C_UPNPAUDIOPOLICY_H -#define C_UPNPAUDIOPOLICY_H - - -#include // for MDevSoundObserver - -// FORWARD DECLARATIONS -class MUPnPAudioPolicyObserver; -class CMMFBuffer; -class CMMFDevSound; - -/** - * A class that implements audio policy for upnp playback plugin. - * It registers for DevSound for a vrtual playback handle and is - * able to receive notifications from MMF. The purpose for this - * is to pause upnp playback when
- * - local playback begins
- * - there is an incoming call
- * - * @lib upnpmusicplugins.lib - * @since S60 v3.1 - */ -class CUPnPAudioPolicy - : public CBase, - public MDevSoundObserver - { - -private: - - /** - * State of audiopolicy - * - * @since Series 60 3.1 - */ - enum TAudioPolicyState - { - EStateUninitialised, // waiting initialise devSound, can not be used - EStatePlaying, // audiopolicy initialized and playback started - EStateStopped, // playback stopped - }; - -public: // public services - - /** - * constructor - * @param aPlaybackMachine the playback states engine - */ - static CUPnPAudioPolicy* NewL( - MUPnPAudioPolicyObserver& aObserver ); - - /** - * destructor - */ - CUPnPAudioPolicy::~CUPnPAudioPolicy(); - - /** - * request for start playback - */ - void PlayL(); - - /** - * indicate playback stops - */ - void Stop(); - -protected: // MDevSoundObserver - - /** - * see MDevSoundObserver - */ - void InitializeComplete( TInt aError ); - - /** - * see MDevSoundObserver - */ - void ToneFinished( TInt aError ); - - /** - * see MDevSoundObserver - */ - void BufferToBeFilled( CMMFBuffer* aBuffer ); - - /** - * see MDevSoundObserver - */ - void PlayError( TInt aError ); - - /** - * see MDevSoundObserver - */ - void BufferToBeEmptied( CMMFBuffer* aBuffer ); - - /** - * see MDevSoundObserver - */ - void RecordError( TInt aError ); - - /** - * see MDevSoundObserver - */ - void ConvertError( TInt aError ); - - /** - * see MDevSoundObserver - */ - void DeviceMessage( TUid aMessageType, const TDesC8& aMsg ); - - /** - * see MDevSoundObserver - */ - void SendEventToClient( const TMMFEvent& aEvent ); - -private: // private methods - - /** - * default constructor - * @param aPlaybackMachine the playback states engine - */ - CUPnPAudioPolicy( - MUPnPAudioPolicyObserver& aObserver ); - - /** - * 2nd phase constructor - */ - void ConstructL(); - -private: // data - - /** - * the playback states engine - */ - MUPnPAudioPolicyObserver& iObserver; - - /** - * DevSound component for MMF access - */ - CMMFDevSound* iDevSound; - - /** - * Current AudioPolicy state - */ - TAudioPolicyState iAudioPolicyState; - - }; - -/** - * Callback interface for audio policy class - */ -class MUPnPAudioPolicyObserver - { - -public: - - /** - * A conflict was found between simultaneously playing audio - * resources. This means that this instance is active and - * meanwhile another party starts using audio resources in - * a way that has been defined to be illegal. The observer - * is expected to take apropriate actions after receiving - * this event - notifying the playback framework, which will - * then clear all resources and inform user. - * - * @param aError error to be issued to playback framework - */ - virtual void AudioConflict( TInt aError ) = 0; - - }; - -#endif // C_UPNPAUDIOPOLICY_H