diff -r 000000000000 -r 96612d01cf9f videofeeds/utils/inc/CIptvRtpTo3gpConverter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videofeeds/utils/inc/CIptvRtpTo3gpConverter.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,145 @@ +/* +* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: .rtp to .3gp file converter* +*/ + + + + +#ifndef CIPTVRTPTO3GPCONVERTER_H +#define CIPTVRTPTO3GPCONVERTER_H + +#include + +class RFs; +class MIptvRtpTo3gpObserver; + +/** + * .rtp to .3gp file converter + * + * @lib IptvUtil.lib + * @since Video Center 1.0 + */ +class CIptvRtpTo3gpConverter : public CBase + { +public: // Public constructors and destructors + + /** + * Two-phased constructor + * + * @param aFs + * @param aObserver Observer to receive conversion notifications + * @param aPriority + */ + static CIptvRtpTo3gpConverter* NewL( RFs& aFs, MIptvRtpTo3gpObserver& aObserver, TInt aPriority ); + + /** + * C++ destructor + */ + virtual ~CIptvRtpTo3gpConverter(); + +private: // private constructors + + /** + * C++ default constructor + * + * @param aFs + * @param aObserver + */ + CIptvRtpTo3gpConverter( RFs& aFs, MIptvRtpTo3gpObserver& aObserver ); + + /** + * 2nd phase constructor + * + * @param aPriority + */ + void ConstructL( TInt aPriority ); + +public: // public user API + + /** + * Requests conversion generation + * + * Conversion completation and failures are notified by the registered observer + * + * @param aSrcRtpFilename Filename for source .rtp clip + * @param aDst3gpFilename Filename for destination .3gp clip + */ + void ConvertL( const TDesC& aSrcRtpFilename, const TDesC& aDst3gpFilename ); + + /** + * Cancels ongoing file conversion + */ + void CancelConverstion(); + +private: // implementation, own methods + + /** + * Actual cleanup for internal data/state + * + * @param aStatus status for conversion operation. If different than KErrNone, output + * file is removed + */ + void DoCleanup( TInt aStatus ); + + /** + * Launches idle cleanup and notification + * + * @param aStatus convertion status, passed to DoCleanup + */ + void DoIdleCleanupAndNotify( TInt aStatus ); + + /** + * Callback to cleanup up and notify + * + * @param aSelf wrapped 'this' pointer + */ + static TInt CleanupAndNotifyCallback( TAny* aSelf ); + +private: // implementation, own data + + /** + * Reference to file system server. + */ + RFs& iFs; + + /** + * Conversion observer + */ + MIptvRtpTo3gpObserver& iObserver; + + /** + * Cache for 3gp file name + * Own. + */ + HBufC* i3gpFilename; + + /** + * Idle callback cleanup and notify + * Own. + */ + CIdle* iIdle; + + /** + * Status for converstion, passed through idle cleanup + */ + TInt iIdleStatus; + + /** + * Signals that a first keyframe has been written to file + */ + TBool iKeyframeWritten; + }; + +#endif // CIPTVRTPTO3GPCONVERTER_H