📄 camengine.cpp
字号:
/*
============================================================================
Name : CamEngine.cpp
Author : Augusta
Version :
Copyright : All Right Reserved
Description : CCamEngine implementation
============================================================================
*/
#include "CamEngine.h"
#include <ECam.h>
#include <fbs.h>
#include <aknnotewrappers.h>
CCamEngine::CCamEngine(CCamDecodeContainer& aContainer)//:iContainer(aContainer)
{
// No implementation required
iContainer=&aContainer;
//CAknWarningNote* warningNote = new ( ELeave ) CAknWarningNote;
//warningNote->ExecuteLD(_L("in engine construct"));
}
CCamEngine::~CCamEngine()
{
delete iCamera;
}
CCamEngine* CCamEngine::NewLC(CCamDecodeContainer& aContainer)
{
CCamEngine* self = new (ELeave)CCamEngine(aContainer);
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CCamEngine* CCamEngine::NewL(CCamDecodeContainer& aContainer)
{
//iContainer=&aContainer;
CCamEngine* self=CCamEngine::NewLC(aContainer);
CleanupStack::Pop(); // self;
return self;
}
void CCamEngine::ConstructL()
{
if(!CCamera::CamerasAvailable())
{
HandleError(KErrHardwareNotAvailable);
return;
}
iCamera=CCamera::NewL(*this,0);
iCamera->CameraInfo(iInfo);
}
void CCamEngine::Reserve()
{
iCamera->Reserve();
// iWidth=176;
// iHeight=176;
//CAknWarningNote* warningNote = new ( ELeave ) CAknWarningNote;
//warningNote->ExecuteLD(_L("in camera start view"));
}
void CCamEngine::ReserveComplete(TInt aError)
{
if (aError)
{
HandleError(aError);
}
else
{
iCamera->PowerOn();
}
}
void CCamEngine::PowerOnComplete(TInt aError)
{
if(aError)
{
HandleError(aError);
}
else
{
iSize=TSize(176,208); //TSize不可静态生成
iCamera->StartViewFinderBitmapsL(iSize);
}
}
void CCamEngine::HandleError(TInt aError)
{
}
void CCamEngine::Exit()
{
iCamera->StopViewFinder();
iCamera->PowerOff();
iCamera->Release();
}
void CCamEngine::ViewFinderFrameReady(CFbsBitmap& aFrame)
{
iContainer->iCamStart=ETrue;
iContainer->DrawImageNow(&aFrame);
}
void CCamEngine::ImageReady(CFbsBitmap* aBitmap,HBufC8* aData,TInt aError)
{
}
void CCamEngine::FrameBufferReady(MFrameBuffer* aFrameBuffer,TInt aError)
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -