📄 audio3eng.h
字号:
/* Copyright (c) 2004, Symbian Software Ltd. All rights reserved */
#ifndef __Audio3ENG_H__
#define __Audio3ENG_H__
#include <aknapp.h>
#include <MdaAudioSamplePlayer.h>
#include <mdaaudiooutputstream.h>
#include <eikmenup.h>
#define KNumBuf 10
#define KBufferSize 2048
class CAudio3Engine;
class CSynchronousExampleStream : public CBase, public MMdaAudioOutputStreamCallback
{
public:
//from MMdaAudioOutputStreamCallback
virtual void MaoscOpenComplete(TInt aError);
virtual void MaoscBufferCopied(TInt aError, const TDesC8& aBuffer);
virtual void MaoscPlayComplete(TInt aError);
void ConstructL(CAudio3Engine* aEngine);
virtual ~CSynchronousExampleStream();
void StartPlayL();
void Stop();
private:
void OpenFileL();
void CloseFile();
void NextBuffer();
void PlayEnded(TInt aError);
TInt FillBuffer();
private:
CMdaAudioOutputStream* iStream;
RFile iFile;
RFs iSession;
//HBufC8* iBuffer;
TBuf8<KBufferSize> iBuffer;
TInt iFileError;
CAudio3Engine* iEngine;
};
#define KNumBuf 10
#define KBufferSize 2048
class CAsynchronousExampleStream : public CActive, public MMdaAudioOutputStreamCallback
{
public:
//from MMdaAudioOutputStreamCallback
virtual void MaoscOpenComplete(TInt aError);
virtual void MaoscBufferCopied(TInt aError, const TDesC8& aBuffer);
virtual void MaoscPlayComplete(TInt aError);
CAsynchronousExampleStream();
void ConstructL(CAudio3Engine* aEngine);
virtual ~CAsynchronousExampleStream();
void StartPlayL();
void Stop();
private:
void DoCancel();
void RunL();
void OpenFileL();
void CloseFile();
void NextBuffer(const TDesC8& aBuffer); //called from CExampleStream
void PlayEnded(TInt aError);
TInt FillBuffer();
void RandomDelay();
private:
TInt iStart;
TInt iEnd;
CMdaAudioOutputStream* iStream;
enum {ETimer, EReading};
TInt iState;
TInt iReturned;
TBuf8<KBufferSize> iBufList[KNumBuf];
RTimer iTimer;
RFile iFile;
RFs iSession;
TInt64 iSeed;
TBool iFinished;
CAudio3Engine* iEngine;
};
class CAudio3Ui;
class CAudio3Engine : public CBase
{
public:
static CAudio3Engine* NewL( CAudio3Ui& aAppUi);
static CAudio3Engine* NewLC(CAudio3Ui& aAppUi);
~CAudio3Engine();
void CreateSynchronousExample();
void CreateAsynchronousExample();
public:
void SetFileL(const TDesC& aFileName);
void PlayL();
void StopL();
void UpdateMenu(CEikMenuPane* aMenuPane);
private:
enum TState
{
ENotReady,
EReadySynchronous,
EReadyAsynchronous,
EPlaying
};
public:
void SetState(TState aState) {iState=aState;}
private:
CAudio3Engine(CAudio3Ui& aAppUi);
void ConstructL();
TState iState;
CSynchronousExampleStream* iSynchronousExampleStream;
CAsynchronousExampleStream* iAsynchronousExampleStream;
CAudio3Ui& iAppUi;
friend class CSynchronousExampleStream;
friend class CAsynchronousExampleStream;
};
#endif // __Audio3ENG_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -