?? phoneobserver.cpp
字號:
/*
* ============================================================================
* Name : Phoneobserver.cpp
* Part of : RecorderExample
* Created : 20.03.2005 by Forum Nokia
* Version : 1.0.0
* Copyright: Nokia Corporation
* ============================================================================
*/
//INCLUDES
#include <e32base.h>
#include <e32std.h>
#include <etel.h>
#include "phoneobserver.h"
#include "recorderview.h"
#include "recorder.hrh"
// ---------------------------------------------------------
// CPhoneObserver::CPhoneObserver()
// C++ default constructor
// ---------------------------------------------------------
CPhoneObserver::CPhoneObserver(): CActive(EPriorityStandard)
{
}
// ---------------------------------------------------------
// CPhoneObserver::~CPhoneObserver()
// C++ destructor
// ---------------------------------------------------------
CPhoneObserver::~CPhoneObserver()
{
Cancel();
}
// ---------------------------------------------------------
// CPhoneObserver::NewL()
// Two phase constructor
// ---------------------------------------------------------
CPhoneObserver* CPhoneObserver::NewL(CRecorderView* aRecView, RLine* aLine)
{
CPhoneObserver* self = NewLC(aRecView, aLine);
CleanupStack::Pop(self);
return self;
}
// ---------------------------------------------------------
// CPhoneObserver::NewLC()
// ---------------------------------------------------------
CPhoneObserver* CPhoneObserver::NewLC(CRecorderView* aRecView, RLine* aLine)
{
CPhoneObserver* self = new (ELeave) CPhoneObserver();
CleanupStack::PushL(self);
self->ConstructL(aRecView, aLine);
return self;
}
// ---------------------------------------------------------
// CPhoneObserver::RunL()
// Called by active object framework when line event occurs
// ---------------------------------------------------------
void CPhoneObserver::RunL()
{
if (iStatus.Int() == KErrNone)
{
if (iLineStatus == RCall::EStatusConnected)
{
//If line is connected, recording may start.
iRecView -> HandleCommandL(EProgCmdRecord);
}
else if (iLineStatus == RCall::EStatusHangingUp)
{
//If line is hanging up, recorder must stop.
iRecView -> HandleCommandL(EProgCmdStop);
}
Start();
}
else
{
Cancel();
}
}
// ---------------------------------------------------------
// CPhoneObserver::RunError()
// Called by active object framework when error occurs
// ---------------------------------------------------------
TInt CPhoneObserver::RunError(TInt Error)
{
return Error;
}
// ---------------------------------------------------------
// CPhoneObserver::DoCancel()
// Cancels active objects callback request
// ---------------------------------------------------------
void CPhoneObserver::DoCancel()
{
iLine -> NotifyStatusChangeCancel();
}
// ---------------------------------------------------------
// CPhoneObserver::ConstructL()
//
// ---------------------------------------------------------
void CPhoneObserver::ConstructL(CRecorderView* aRecView, RLine* aLine)
{
iRecView = aRecView;
iLine = aLine;
CActiveScheduler::Add(this);
}
// ---------------------------------------------------------
// CPhoneObserver::Start()
// Active object is activated
// ---------------------------------------------------------
void CPhoneObserver::Start()
{
Cancel();
iLine -> NotifyStatusChange(iStatus, iLineStatus);
SetActive();
}
// ---------------------------------------------------------
// CPhoneObserver::Deactivate()
// Active object is canceled outside of this class.
// ---------------------------------------------------------
void CPhoneObserver::Deactivate()
{
DoCancel();
}
// End of File
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -