diff -r 000000000000 -r 1bce908db942 multimediacommsengine/mmcesrv/mmcemediamanager/inc/mceofferingmedia.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommsengine/mmcesrv/mmcemediamanager/inc/mceofferingmedia.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,147 @@ +/* +* Copyright (c) 2005 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: +* +*/ + + + + + +#ifndef TMCEOFFERINGMEDIA_H +#define TMCEOFFERINGMEDIA_H + +#include "mcemediastate.h" +#include "mcesdpsession.h" + +class CMCCCodecInformationFactory; + +const TBool KFromSubstate = ETrue; + +/** +* Represents MM offering state +* +*/ +class TMceOfferingMedia : public TMceMediaState + { + +public: // substates + + /** + * Represents MM offering sub state where media is ready for offer + * + */ + class TMceMediaReady : public TMceMediaState + { + public: + + static void SetAsCurrentStateL( + CMceComSession& aSession ); + + + inline TMceMMState Id() + { + return KMceOfferingMedia; + } + + void Callback(); + + CSdpDocument* EncodeL(); + + protected: + + TMceMediaReady( CMceComSession& aSession ); + + }; + + /** + * Represents MM offering sub state where media update is ready for offer + * + */ + class TMceMediaUpdateReady : public TMceMediaReady + { + public: + + static void SetAsCurrentStateL( CMceComSession& aSession ); + + CSdpDocument* EncodeL(); + + TBool NeedToNegotiate( CSdpDocument* aSdpDocument = NULL ); + protected: + + TMceMediaUpdateReady( CMceComSession& aSession ); + + }; + + + /** + * Represents MM offering sub state where media waiting answer + * + */ + class TMceWaitingAnswer : public TMceMediaState + { + public: + + static void SetAsCurrentStateL( CMceComSession& aSession ); + + inline TMceMMState Id() + { + return KMceOfferingMedia; + } + + TMceMediaState* CloneL( CMceComSession& aSession ) const; + + TMceSipWarningCode DecodeL( CSdpDocument& aSdpDocument ); + + TBool NeedToNegotiate( CSdpDocument* aSdpDocument = NULL ); + protected: + + TMceWaitingAnswer( CMceComSession& aSession ); + + }; + + +public: // Constructors + + + static void SetAsCurrentStateL( CMceComSession& aSession, TBool aFromSubstate = EFalse ); + + +public: // from TMceMediaState + + inline TMceMMState Id() + { + return KMceOfferingMedia; + } + + +public: // from TMceMediaState + + void UpdateL(); + +protected: + + void SetAsCurrentStateL( TMceOfferingMedia::TMceWaitingAnswer& aSubState ); + + /** + * Consructor + */ + TMceOfferingMedia( CMceComSession& aSession ); + + + }; + +#endif//TMCEOFFERINGMEDIA_H + +// End of File