diff -r 000000000000 -r 72b543305e3a mobilemessaging/audiomsg/inc/audiomessageinsertoperation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobilemessaging/audiomsg/inc/audiomessageinsertoperation.h Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,159 @@ +/* +* Copyright (c) 2005-2006 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: Class that handles insert operations +* +*/ + + + + +#ifndef __AUDIOMESSAGEINSERTOPERATION_H +#define __AUDIOMESSAGEINSERTOPERATION_H + +#include +#include + +#include +#include "audiomessageoperation.h" + +class CMsgMediaInfo; +class CAudioMessageRecorder; + +// ========== CLASS DECLARATION ============================ + +/** + * insert class + * + * @lib AudioMessage.exe + * @since S60 v3.1 + */ +class CAudioMessageInsertOperation : public CAudioMessageOperation + { + protected: + enum TAmsInsertState + { + EAmsInit, + EAmsCheckAttas, + EAmsSetAudio, + EAmsSetDuration, + EAmsInsertSmil, + EAmsCommit, + EAmsRemoveAudio, + EAmsRemoveSmil, + EAmsInsertReady + }; + + public: // new operations + + /** + * Factory method that creates this object. + * @param aOperationObserver + * @param aDocument + * @param aView + */ + static CAudioMessageInsertOperation* NewL( + MAmsOperationObserver& aOperationObserver, + CAudioMessageDocument& aDocument, + CMsgEditorView& aView ); + + /** + * Initializes the iState,then completes + * @param aInfo Media type to be checked + * @param aVal, delete/insert + */ + void Insert( CMsgMediaInfo* aInfo, TBool aVal, TBool aNew = ETrue ); + + /** + * Destructor + */ + ~CAudioMessageInsertOperation(); + + /** + * Removes old audio. + */ + void DoRemoveAudioL( ); + + /** + * Removes old audio. + */ + void DoRemoveSmilL(); + + // From CActive + protected: + void RunL(); + void DoCancel(); + + private: // new operations + /** + * Constructor. + */ + CAudioMessageInsertOperation( MAmsOperationObserver& aOperationObserver, + CAudioMessageDocument& aDocument, + CMsgEditorView& aView ); + + + /** + * Called in RunL to do the actual state transition + */ + void DoInsertStepL(); + + /** + * Removes possible old audio. + * Starts creating new attachment + */ + void DoCreateNewAudioAttaL(); + + /** + * size limit check. + * @return ETrue if size is ok + */ + TBool CheckSizeForInsert(); + + /* + * Set the duration of the clip to the SMIL + */ + void DoSetDurationL( ); + + private: // data + + CMsgEditorView& iView; + + /** + * media info + * Own. + */ + CMsgMediaInfo* iInfo; + + /** + * current insertion/deletion state + */ + TInt iState; + + /** + * Pointer to the created file + * Not own. + */ + RFile* iEditFile; + + //TFileName iFileName; + //TFileName iContentLocationFileName; + + /** + * remove bit + */ + TBool iRemove; + TBool iNew; + }; + +#endif // __AUDIOMESSAGEINSERTOPERATION_H \ No newline at end of file