📄 cwaveloader.cpp
字号:
#include "CWaveLoader.h"
#include <e32svr.h>
#include <f32file.h>
#include <aknutils.h>
// Construct and Destruct
/// NewL()
CWavLoader* CWavLoader::NewL()
{
CWavLoader* self = NewLC();
CleanupStack::Pop(self);
return self;
}
// NewLC()
CWavLoader* CWavLoader::NewLC()
{
CWavLoader* self = new (ELeave) CWavLoader;
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
/// ~
CWavLoader::~CWavLoader()
{}
/// CWavLoader()
CWavLoader::CWavLoader()
{}
/// ConstructL()
void CWavLoader::ConstructL()
{}
/// LoadL()
TSample CWavLoader::LoadL(const TFileName& aFileName)
{
TFileName name(aFileName);
CompleteWithAppPath(name);
RFs fs;
RFile file;
fs.Connect();
CleanupClosePushL(fs);
CleanupClosePushL(file);
User::LeaveIfError(file.Open(fs, name, EFileStream | EFileRead));
// get the file size
TInt size;
User::LeaveIfError(file.Size(size));
TUint8* tbuf = new (ELeave) TUint8[size];
TPtr8 ptr( (TUint8*)tbuf, size );
User::LeaveIfError(file.Read(ptr));
CleanupStack::PopAndDestroy( 2 ); // fs, file
// convert to 16-bit
TInt16* buf = new( ELeave )TInt16[size];
TInt i;
for(i = 0; i < size; i++)
{
TInt v = tbuf[i];
v -= 128;
buf[i] = ( TInt16 )( v << 8 );
}
delete tbuf;
TSample sample;
sample.iData = buf;
sample.iLength = size;
sample.iRepStart = 0;
sample.iRepEnd = 0;
return sample;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -