diff -r 000000000000 -r 951a5db380a0 videoeditorengine/vedengine/videoprocessor/src/dataprocessor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoeditorengine/vedengine/videoprocessor/src/dataprocessor.cpp Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,190 @@ +/* +* Copyright (c) 2010 Ixonos Plc. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the "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: +* Ixonos Plc +* +* Description: +* Base class for data processor objects. +* +*/ + + + +// EXTERNAL RESOURCES + + +// Include Files + +#include "dataprocessor.h" + + + + +// MEMBER FUNCTIONS + + +//============================================================================= + + +/* +----------------------------------------------------------------------------- + + CDataProcessor + + CDataProcessor() + + Standard C++ constructor + +----------------------------------------------------------------------------- +*/ + +CDataProcessor::CDataProcessor(TInt aPriority) + : CActive(aPriority) +{ +} + + + +/* +----------------------------------------------------------------------------- + + CDataProcessor + + ~CDataProcessor() + + Standard C++ destructor + +----------------------------------------------------------------------------- +*/ + +CDataProcessor::~CDataProcessor() +{ + Cancel(); +} + + + +/* +----------------------------------------------------------------------------- + + CDataProcessor + + ConstructL() + + Standard Symbian OS second-phase constructor + +----------------------------------------------------------------------------- +*/ + +void CDataProcessor::ConstructL() +{ + // Add to active scheduler and activate + CActiveScheduler::Add(this); + SetActive(); + iStatus = KRequestPending; +} + + + +/* +----------------------------------------------------------------------------- + + CDataProcessor + + InputDataAvailable() + + Called by CActiveQueue when input data is available, simply signals the + object + +----------------------------------------------------------------------------- +*/ + +void CDataProcessor::InputDataAvailable(TAny* /*aUserPointer*/) +{ + if ( iStatus == KRequestPending ) + { + TRequestStatus *status = &iStatus; + User::RequestComplete(status, KErrNone); + } +} + + + +/* +----------------------------------------------------------------------------- + + CDataProcessor + + OutputSpaceAvailable() + + Called by CActiveQueue when output space is available, simply signals the + object + +----------------------------------------------------------------------------- +*/ + +void CDataProcessor::OutputSpaceAvailable(TAny* /*aUserPointer*/) +{ + + if ( iStatus == KRequestPending ) + { + TRequestStatus *status = &iStatus; + User::RequestComplete(status, KErrNone); + } + + +} + + + +/* +----------------------------------------------------------------------------- + + CDataProcessor + + StreamEndReached() + + Called by CActiveQeueue after all data has been read from a queue where + stream end has been signaled. Does nothing in this base class. + +----------------------------------------------------------------------------- +*/ + +void CDataProcessor::StreamEndReached(TAny* /*aUserPointer*/) +{ +} + + + +/* +----------------------------------------------------------------------------- + + CDataProcessor + + DoCancel() + + Cancels the internal request. + +----------------------------------------------------------------------------- +*/ + +void CDataProcessor::DoCancel() +{ + if ( iStatus == KRequestPending ) + { + TRequestStatus *status = &iStatus; + User::RequestComplete(status, KErrCancel); + } +} + + +// End of File