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

📄 s60mmflabutility.cpp

📁 symbian 3版手机程序开发与实例教程源码
💻 CPP
字号:
// Copyright (c) 2006 Nokia Corporation.

#include "S60MMFLabUtility.h"
#include "s60mmflab.hrh"
#include <MdaAudioTonePlayer.h>
#include <eikmenup.h>
#include <aknnotewrappers.h>

// TONE UTILITY

_LIT(KToneLabel, "Tone Utility...");


CS60MMFLabToneUtility::CS60MMFLabToneUtility()
    : iToneUtility(NULL)
    {
    // Do nothing
    }

CS60MMFLabToneUtility* CS60MMFLabToneUtility::NewL()
    {
    CS60MMFLabToneUtility* self = NewLC();
    CleanupStack::Pop(self);  
    return self;
    }

CS60MMFLabToneUtility* CS60MMFLabToneUtility::NewLC()
    {
    CS60MMFLabToneUtility* self = new (ELeave) CS60MMFLabToneUtility();
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
    }


void CS60MMFLabToneUtility::ConstructL()
    {
    const TInt KFrequency = 1000; // Hz
    const TTimeIntervalMicroSeconds KDuration =
        TTimeIntervalMicroSeconds(6000000); // 6 seconds
    
    iToneUtility = CMdaAudioToneUtility::NewL(*this);
	iToneUtility->PrepareToPlayTone(KFrequency, KDuration);
    }

CS60MMFLabToneUtility::~CS60MMFLabToneUtility()
    {
    delete iToneUtility;
    }

void CS60MMFLabToneUtility::MatoPrepareComplete(TInt aError)
	{	
	_LIT(KWarningNote, "The tone utility could not be configured");

    if (aError == KErrNone)
        {
        TInt vol = iToneUtility->MaxVolume()/2;
        iToneUtility->SetVolume(vol);
        }
    else
        {
        CAknWarningNote* warnNote = new (ELeave) CAknWarningNote;
        warnNote->ExecuteLD( KWarningNote );
        }
	}

void CS60MMFLabToneUtility::MatoPlayComplete(TInt aError)
	{
	_LIT(KWarningNote, "The tone could not be played");
	
	if (aError != KErrNone)
        {
        CAknWarningNote* warnNote = new (ELeave) CAknWarningNote;
        warnNote->ExecuteLD( KWarningNote );
        }
	}

const TDesC& CS60MMFLabToneUtility::GetLabel()
	{
    return KToneLabel;
	}

void CS60MMFLabToneUtility::Play()
    {
    iToneUtility->Play();
    }

void CS60MMFLabToneUtility::CancelPlay()
    {
    iToneUtility->CancelPlay();
    }

void CS60MMFLabToneUtility::SetOptionsMenuL(CEikMenuPane* aMenuPane)
    {
    TMdaAudioToneUtilityState state = iToneUtility->State();
    
    switch (state)
        {
        case EMdaAudioToneUtilityNotReady:
        	aMenuPane->SetItemDimmed(ES60MMFLabCmdAppPlay, ETrue);
        	aMenuPane->SetItemDimmed(ES60MMFLabCmdAppStop, ETrue);
        	break;
        	
	    case EMdaAudioToneUtilityPrepared:
	        aMenuPane->SetItemDimmed(ES60MMFLabCmdAppStop, ETrue);
	        break;
	        
	    case EMdaAudioToneUtilityPlaying:
	        aMenuPane->SetItemDimmed(ES60MMFLabCmdAppChange, ETrue);
	        aMenuPane->SetItemDimmed(ES60MMFLabCmdAppPlay, ETrue);
	        break;
	        
	    default:
	        break;
        }
    }


// AUDIO PLAYER UTILITY

_LIT(KPlayerLabel, "Player Utility");
_LIT(KPlayerFile, "C:\\Data\\audio_sample.amr");

CS60MMFLabPlayerUtility::CS60MMFLabPlayerUtility()
	: iPlayerUtility(NULL), iState(EPlayerNotReady)
    {
    // Do nothing
    }

CS60MMFLabPlayerUtility* CS60MMFLabPlayerUtility::NewL()
    {
    CS60MMFLabPlayerUtility* self = NewLC();
    CleanupStack::Pop(self);  
    return self;
    }

CS60MMFLabPlayerUtility* CS60MMFLabPlayerUtility::NewLC()
    {
    CS60MMFLabPlayerUtility* self = new (ELeave) CS60MMFLabPlayerUtility();
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;
    }


void CS60MMFLabPlayerUtility::ConstructL()
    {
    iPlayerUtility =
        CMdaAudioPlayerUtility::NewFilePlayerL(KPlayerFile, *this);
    }

CS60MMFLabPlayerUtility::~CS60MMFLabPlayerUtility()
    {
    delete iPlayerUtility;
    }

void CS60MMFLabPlayerUtility::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
	{
	_LIT(KWarnNote, "The audio player utility could not be initialised");

    switch(aError)
        {
        case KErrNone:
            iState = EPlayerReady;
            break;
            
        default:
	        {
	        CAknWarningNote* warnNote = new (ELeave) CAknWarningNote;
	        warnNote->ExecuteLD( KWarnNote );
	        break;
	        }
        }
	}

void CS60MMFLabPlayerUtility::MapcPlayComplete(TInt aError)
	{	
	_LIT(KWarningNote, "The audio file could not be played");
	
	if (aError == KErrNone)
        {
        CAknWarningNote* warnNote = new (ELeave) CAknWarningNote;
        warnNote->ExecuteLD( KWarningNote );
        }
        
    iState = EPlayerReady;
	}

const TDesC& CS60MMFLabPlayerUtility::GetLabel()
	{
    return KPlayerLabel;
	}

void CS60MMFLabPlayerUtility::Play()
    {
    iPlayerUtility->Play();
	iState = EPlayerPlaying;
    }

void CS60MMFLabPlayerUtility::Stop()
    {
    iPlayerUtility->Stop();
	iState = EPlayerReady;
    }

void CS60MMFLabPlayerUtility::SetOptionsMenuL(CEikMenuPane* aMenuPane)
    {
    switch (iState)
        {
	    case EPlayerNotReady:
	    	aMenuPane->SetItemDimmed(ES60MMFLabCmdAppPlay, ETrue);
        	aMenuPane->SetItemDimmed(ES60MMFLabCmdAppStop, ETrue);
	        break;
	        
	    case EPlayerReady:
	        aMenuPane->SetItemDimmed(ES60MMFLabCmdAppStop, ETrue);
	        break;
	        
	    case EPlayerPlaying:
	        aMenuPane->SetItemDimmed(ES60MMFLabCmdAppChange, ETrue);
	        aMenuPane->SetItemDimmed(ES60MMFLabCmdAppPlay, ETrue);
	        break;
	        
		default:
	        break;
        }
    }
    
// End of File

⌨️ 快捷键说明

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