📄 helloworldbasicappui.cpp
字号:
/*
* ==============================================================================
* Name : helloworldbasicappui.cpp
* Part of : Helloworldbasic
* Interface :
* Description :
* Version :
*
* Copyright (c) 2005-2006 Nokia Corporation.
* This material, including documentation and any related
* computer programs, is protected by copyright controlled by
* Nokia Corporation.
* ==============================================================================
*/
// INCLUDE FILES
#include <avkon.hrh>
#include <aknnotewrappers.h>
#include <stringloader.h>
#include <HelloWorldBasic.rsg>
#include "HelloWorldBasic.pan"
#include "HelloWorldBasicAppUi.h"
#include "HelloWorldBasicAppView.h"
#include "HelloWorldBasic.hrh"
#include "HelloWorldBasicQueryDialog.h"
// ============================ MEMBER FUNCTIONS ===============================
// -----------------------------------------------------------------------------
// CHelloWorldBasicAppUi::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CHelloWorldBasicAppUi::ConstructL()
{
iAudioRecorder = CAudioRecorder::NewL(*this);
iCallMonitor = CCallMonitor::NewL(*this);
// Initialise app UI with standard value.
BaseConstructL(CAknAppUi::EAknEnableSkin);
// Create view object
iAppView = CHelloWorldBasicAppView::NewL( ClientRect() );
}
// -----------------------------------------------------------------------------
// CHelloWorldBasicAppUi::CHelloWorldBasicAppUi()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
//
CHelloWorldBasicAppUi::CHelloWorldBasicAppUi():iCallRecrong(EFalse)
{
// No implementation required
}
// -----------------------------------------------------------------------------
// CHelloWorldBasicAppUi::~CHelloWorldBasicAppUi()
// Destructor.
// -----------------------------------------------------------------------------
//
CHelloWorldBasicAppUi::~CHelloWorldBasicAppUi()
{
if ( iAudioRecorder )
{
delete iAudioRecorder;
iAudioRecorder = NULL;
}
if ( iCallMonitor )
{
delete iCallMonitor;
iCallMonitor = NULL;
}
if ( iAppView )
{
delete iAppView;
iAppView = NULL;
}
}
// -----------------------------------------------------------------------------
// CHelloWorldBasicAppUi::HandleCommandL()
// Takes care of command handling.
// -----------------------------------------------------------------------------
//
void CHelloWorldBasicAppUi::CallStatusChangedL(CTelephony::TCallStatus& aStatus, TInt aError)
{
if(aError != KErrNone)
{
return;
}
switch(aStatus)
{
case CTelephony::EStatusConnected:
{
HandleCommandL(EProgCmdRecord);
}
break;
case CTelephony::EStatusDisconnecting:
case CTelephony::EStatusHold:
{
HandleCommandL(EProgCmdStop);
}
break;
default:
break;
}
}
void CHelloWorldBasicAppUi::HandleCommandL( TInt aCommand )
{
// clear possible old user-given text
iAppView->GetText().Zero();
switch( aCommand )
{
case EEikCmdExit:
case EAknSoftkeyExit:
Exit();
break;
case EProgCmdRecord:
{
iCallRecrong = ETrue;
RFs& fsSession = CCoeEnv::Static()->FsSession();
User::LeaveIfError(fsSession.CreatePrivatePath( EDriveC ) );
TFileName File;
User::LeaveIfError(fsSession.PrivatePath(File));
_LIT(KFile, "data.wav");
File += KFile;
if(iAudioRecorder)
{
TInt vol = 10;
iAudioRecorder->SetVolume(vol);
iAudioRecorder->RecordL(File);
}
}
break;
case EProgCmdStop:
{
iCallRecrong = EFalse;
if(iAudioRecorder)
{
iAudioRecorder->StopL();
}
}
break;
default:
Panic( EHelloWorldBasicUi );
break;
}
}
// -----------------------------------------------------------------------------
// Called by the framework when the application status pane
// size is changed. Passes the new client rectangle to the
// AppView
// -----------------------------------------------------------------------------
//
void CHelloWorldBasicAppUi::HandleStatusPaneSizeChange()
{
iAppView->SetRect( ClientRect() );
}
void CHelloWorldBasicAppUi::StateUpdate(CMdaAudioClipUtility::TState aState, TInt aPosition, TInt aDuration)
{
}
void CHelloWorldBasicAppUi::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane *aMenuPane)
{
if(R_HELLOWORLDBASIC_MENU == aResourceId)
{
if(iCallRecrong)
{
aMenuPane->SetItemDimmed(EProgCmdStop, EFalse);
aMenuPane->SetItemDimmed(EProgCmdRecord, ETrue);
}
else
{
aMenuPane->SetItemDimmed(EProgCmdStop, ETrue);
aMenuPane->SetItemDimmed(EProgCmdRecord, EFalse);
}
}
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -