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

📄 soundappui.cpp

📁 该源码主要是示范了如何使用Symbian OS中的一些音频处理类
💻 CPP
字号:
// Copyright (c) 2003, Nokia Mobile Phones. All rights reserved.
#include <eikenv.h>
#include <avkon.hrh>
#include <eikbtgpc.h>
#include <Sound.rsg>

#include "sound.pan"
#include "Sound.hrh"
#include "SoundAppUi.h"
#include "SoundView.h"
#include "toneadapter.h"
#include "playeradapter.h"
#include "recorderadapter.h"

_LIT(KSoundSampleFile, "C:\\System\\Apps\\Sound\\play.wav");

CSoundAppUi::CSoundAppUi() 
    {
	// No implementation required
    }

void CSoundAppUi::ConstructL()
    {
    BaseConstructL(EAknEnableSkin);

    iToneAdapter     = CToneAdapter::NewL(*this);
    iPlayerAdapter   = CPlayerAdapter::NewL(KSoundSampleFile, *this);
    iRecorderAdapter = CRecorderAdapter::NewL(*this);
    iAudioAdapter = iToneAdapter;
    iAppView = CSoundView::NewL(ClientRect(), iAudioAdapter->Identify());

    AddToStackL(iAppView);
    }


CSoundAppUi::~CSoundAppUi()
    {
    iEikonEnv->RemoveFromStack(iAppView);
    delete iAppView;
    iAppView = NULL;

    delete iToneAdapter;
    iToneAdapter =  NULL;
     
    delete iPlayerAdapter;    
    iPlayerAdapter =  NULL;

    delete iRecorderAdapter;    
    iRecorderAdapter = NULL;

    iAudioAdapter = NULL;
    }


void CSoundAppUi::HandleCommandL(TInt aCommand)
    {
    switch (aCommand)
        {
    case ESoundCmdTone:
        SetAdapterL(iToneAdapter);
        break;
    case ESoundCmdPlayer:
        SetAdapterL(iPlayerAdapter);
        break;
    case EESoundCmdRecorder:
        SetAdapterL(iRecorderAdapter);
        break;
	case EEikCmdExit:
    case EAknSoftkeyExit:
        Exit();
        break;
    case ESoundCmdPlay:
        iAudioAdapter->PlayL();
        break;
    case ESoundCmdStop:
        iAudioAdapter->StopL();
        break;
    case ESoundCmdRecord:
        iAudioAdapter->RecordL();
        break;
    default:
        User::Panic(KSound, KSoundPanicUnexpectedCommand);
        break;
        }
    }


void CSoundAppUi::SetAdapterL(MAudioAdapter* aAudioAdapter)
    {
    iAudioAdapter = aAudioAdapter;

    UpdateViewL();
    }

void CSoundAppUi::UpdateViewL()
    {
    iAppView->NotifyStatusL(iAudioAdapter->Identify());
    
    iAppView->DrawNow();
    }


void CSoundAppUi::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
    {
    if (aResourceId == R_SOUND_MENU)
        {
        iAudioAdapter->UpdateMenuL(aMenuPane);
        }
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -