⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 helloworldbasicappui.cpp

📁 电话录音
💻 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 + -