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

📄 neofile.cpp

📁 symbian下的FLV播放视频源码 可以快速便捷的播放FLV格式的视频
💻 CPP
字号:
#include "NeoFile.h"

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

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

CNeoFILE::CNeoFILE()
{
}

CNeoFILE::~CNeoFILE()
{
	FClose();
}

void CNeoFILE::ConstructL()
{
	iFileOpened = EFalse;
}

void CNeoFILE::FReplace(char* aFileName, TInt aMode)
{
	FClose();
	TPtr8 tFileName8((unsigned char*)aFileName, strlen(aFileName), strlen(aFileName));
	HBufC* tFileName = CnvUtfConverter::ConvertToUnicodeFromUtf8L(tFileName8);
	RFile file;
	file.Replace(CCoeEnv::Static()->FsSession(), tFileName->Des(), EFileWrite);
	file.Close();
	iFileRead.Open(CCoeEnv::Static()->FsSession(), tFileName->Des(), EFileRead | EFileStream | EFileShareAny);
	iFileOpened = ETrue;
	iFileWrite.Open(CCoeEnv::Static()->FsSession(), tFileName->Des(), EFileWrite | EFileStream | EFileShareAny);	
	delete tFileName;
}

void CNeoFILE::FOpen(char* aFileName, TInt aMode)
{
	FClose();
	TPtr8 tFileName8((unsigned char*)aFileName, strlen(aFileName), strlen(aFileName));
	HBufC* tFileName = CnvUtfConverter::ConvertToUnicodeFromUtf8L(tFileName8);
	iFileRead.Open(CCoeEnv::Static()->FsSession(), tFileName->Des(), EFileRead | EFileStream | EFileShareAny);
	iFileOpened = ETrue;
	iFileWrite.Open(CCoeEnv::Static()->FsSession(), tFileName->Des(), EFileWrite | EFileStream | EFileShareAny);	
	iFileWrite.Sink()->SeekL(MStreamBuf::EWrite, EStreamEnd, 0);
	delete tFileName;
}

void CNeoFILE::FWrite(char* aData, int aSize)
{
	if (!iFileOpened)
		return;
	iFileWrite.Sink()->WriteL(aData, aSize);
}

int CNeoFILE::FRead(char* aData, int aSize)
{
	if (!iFileOpened)
		return 0;
	if (aSize == 0)
		return 0;
	int retVal = KErrNone;
	TRAPD(err, retVal = iFileRead.Source()->ReadL(aData, aSize));
	if (err == KErrNone)
		return retVal;
	else
		return 0;
}

int CNeoFILE::FTell()
{
	if (!iFileOpened)
		return 0;
	int retVal = KErrNone;
	TRAPD(err, retVal = iFileRead.Source()->TellL(MStreamBuf::ERead).Offset());
	if (err == KErrNone)
		return retVal;
	else
		return 0;
}

void CNeoFILE::FSeek(int aPos, int aType)
{
	if (!iFileOpened)
		return;
	if (aType == SEEK_END)
		iFileRead.Source()->SeekL(MStreamBuf::ERead, EStreamEnd, aPos);
	else if (aType == SEEK_SET)
		iFileRead.Source()->SeekL(MStreamBuf::ERead, EStreamBeginning, aPos);
	else
		iFileRead.Source()->SeekL(MStreamBuf::ERead, EStreamMark, aPos);	
}

int CNeoFILE::FSize()
{
	if (!iFileOpened)
		return 0;
	return iFileRead.Source()->SizeL();
}

bool CNeoFILE::FEof()
{
	return FTell() == FSize();
}

void CNeoFILE::FClose()
{
	if (iFileOpened)
	{
		iFileRead.Close();
		iFileWrite.Close();
	}
	iFileOpened = EFalse;
}

⌨️ 快捷键说明

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