/*============================================================================ Description: See documentation for standard C library fopen ==========================================================================*/ ChEXPORT SYMBIAN_FILE* symbian_fopen( const char* in_name, const char* in_mode) { ChUINT4 i = 0; TFileName* pName = ChNEW TFileName; CleanupStack::PushL(pName); TFileName* pMode = ChNEW TFileName; CleanupStack::PushL(pMode); SYMBIAN_FILE* result = NULL; for (i = 0; i < strlen(in_name); i++) { pName->Append(in_name[i]); } pName->ZeroTerminate(); for (i = 0; i < strlen(in_mode); i++) { pMode->Append(in_mode[i]); } pMode->ZeroTerminate(); result = symbian_wfopen((wchar_t*)pName->Ptr(), (wchar_t*)pMode->Ptr()); CleanupStack::PopAndDestroy(pMode); CleanupStack::PopAndDestroy(pName); return result; }
void CBCTestPtiEngine::TestInfoL() { TBuf<16> msg; msg.Format(_L("num of lan: %d"), iEngine->NumberOfLanguages()); msg.ZeroTerminate(); AssertTrueL(iEngine->NumberOfLanguages()>0, msg); if (iEngine->InputMode() == EPtiEngineMultitapping) { AssertTrueL(ETrue, _L("input mode is Multitapping")); } else { AssertTrueL(ETrue, _L("input mode is Predictive")); } // localized language name TFileName localName; iEngine->GetLocalizedLanguageName(31, localName); //31 is chinese? localName.ZeroTerminate(); AssertTrueL(ETrue, localName); //observer MPtiObserver* obs = iEngine->Observer(); AssertTrueL(ETrue, _L("observer got")); iEngine->SetObserver(obs); AssertTrueL(ETrue, _L("observer set")); }
void CFileEngine::CreateFolder(const TDesC& aPath) { if (aPath.Length() > 0) { TFileName newFolderPath; newFolderPath.Append( *iParentFolderName ); newFolderPath.Append(aPath); newFolderPath.Append( _L("\\") ); newFolderPath.ZeroTerminate(); RFs& fs = CEikonEnv::Static()->FsSession(); TInt aError = fs.MkDir( newFolderPath ); if ( KErrNone == aError ) { if(iObserver) { iObserver->Update(0); } } else //创建失败 { iControlFactory.CreateTipDialog(iMainEngine.GetDesById(ETurkeyTextRes_CreateFolderFailed),*this,ECmdNull); } delete iParentFolderName; iParentFolderName = NULL; } else { iControlFactory.CreateInputTextDialog(*this,iMainEngine.GetDesById(ETurkeyTextRes_InputFolderName),iMainEngine.GetDesById(ETurkeyTextRes_InputNull),ECmdCreateFolder); } }
void CBCTestPtiEngine::TestSpellL() { TBuf<8> spell; TInt err=iEngine->GetSpelling(0x7684, spell, EPtiPinyin); if(err==KErrNotSupported) { AssertTrueL(ETrue, _L("get spelling not support")); } else if(err==KErrNone) { spell.ZeroTerminate(); AssertTrueL(ETrue, spell); } else { AssertTrueL(ETrue, _L("get spelling failuer")); } //phonetic iEngine->ClearCurrentWord(); SimuInput(iEngine, _L("wei")); TInt number = iEngine->PhoneticSpellingCount(); TFileName msg; msg.Format(_L("phonetic spelling count: %d"), number); msg.ZeroTerminate(); AssertTrueL(ETrue, msg); spell=iEngine->GetPhoneticSpelling(0); AssertTrueL(ETrue, _L("get phonetic spelling for 0")); TBool result = iEngine->SelectPhoneticSpelling(0); AssertTrueL(ETrue, _L("select phonetic spelling for 0")); number = iEngine->SelectedPhoneticSpelling(); msg.Format(_L("selected phonetic spelling: %d"), number); msg.ZeroTerminate(); AssertTrueL(ETrue, msg); CDesCArray* array = new (ELeave) CDesCArrayFlat(16); CleanupStack::PushL(array); iEngine->GetPhoneticSpellingsL(*array); AssertTrueL(ETrue, _L("phonetic spellings got")); CleanupStack::PopAndDestroy(); //array }
// ----------------------------------------------------------------------------- // CMccFileSourceImpl::OpenFileL(TFileName aFileName) // // Opens a 3gp file for streaming and reads media descriptions into // member variables // ----------------------------------------------------------------------------- // void CMccFileSourceImpl::OpenFileL( TFileName aFileName, TBool aFileChangeMode ) { __FILESOURCE_CONTROLL( "CMccFileSourceImpl::OpenFileL" ) TCurrentState oldState = iCurrentState; // Close old file (if exists) CloseFileL( aFileChangeMode ); aFileName.ZeroTerminate(); TRAPD( err, OpenFileForStreamingL( aFileName ) ); if ( err ) { if ( aFileChangeMode ) { // Have to stop timers etc, since old file was closed // and the new file is unusable DoCleanupL( EFalse ); } User::Leave( err ); } this->SetFileName( aFileName ); if ( oldState == EPlaying ) { // Continue playing with new file iCurrentState = EPrimed; SourcePlayL( ETrue, aFileChangeMode ); } else { // Keep old state iCurrentState = oldState; } __FILESOURCE_CONTROLL( "CMccFileSourceImpl::OpenFile, exit" ) }
void CBCTestPtiEngine::TestChineseInputL() { TeardownL(); if((iEngine = CreateEngineL(ELangPrcChinese, EPtiEngineStroke))!=NULL) { AssertNotNullL(iEngine, _L("Chinese Pinyin activated")); SimuInput(iEngine, _L("wei")); int page=0; iEngine->SetCandidatePageLength(20); AssertTrueL(ETrue, _L("page length set to 20")); for(TPtrC str=iEngine->CandidatePage(); iEngine->MoreCandidatePages(); iEngine->NextCandidatePage()) { TFileName res; res.Format(_L("page[%d]: "), page++); for(int j=0; j<str.Length(); ++j) { res.Append(_L("<")); res.AppendNumUC(str[j], EHex); res.Append(_L(">")); } res.ZeroTerminate(); AssertTrueL(ETrue, res); if(page>10) { break; } }//end of for //predict iEngine->PreviousCandidatePage(); TPtrC aChar=iEngine->CandidatePage(); iEngine->SetPredictiveChineseChar(aChar); AssertTrueL(ETrue, _L("next chinese char predicted")); //test next candidate list iEngine->CommitCurrentWord(); CDesCArray* cands = new (ELeave) CDesCArrayFlat(16); CleanupStack::PushL(cands); TRAPD(err, iEngine->GetNextWordCandidateListL(*cands)); if(err == KErrNotSupported) { AssertTrueL(ETrue, _L("predict next candidate not supported")); } else{ TFileName msg=_L("candidates: "); for (int i = 0; i < cands->Count(); ++i) { msg.Append(cands->MdcaPoint(i)); msg.Append(_L(", ")); } msg.ZeroTerminate(); AssertTrueL(ETrue, msg); } CleanupStack::PopAndDestroy(); // cands //test conversion TInt convCap=iEngine->AvailableCharConversions(); if((convCap & EPtiSimplifiedToComplex)!=0) { AssertTrueL(ETrue, _L("can convert from simplified chinese to traditional")); } else { AssertIntL(0, convCap, _L("conv capability:")); } char inbuf[]={0x76, 0x84}; char outbuf[]={0,0}; iEngine->CharConversion(EPtiSimplifiedToComplex, inbuf, 2, outbuf); AssertTrueL(ETrue, _L("tried char conversion")); //Chinese Varient RArray<TInt> modes; iEngine->GetModeNameIndexL(EPtiChineseVariantPrc, modes); AssertTrueL(ETrue, _L("Chinese varient index table got")); modes.Close(); //phrase list iEngine->ClearCurrentWord(); SimuInput(iEngine, _L("wei")); cands = new (ELeave) CDesCArrayFlat(16); CleanupStack::PushL(cands); iEngine->GetChinesePhraseCandidatesL(*cands); AssertTrueL(ETrue, _L("Chinese phrase candidate list got")); CleanupStack::PopAndDestroy(); //cands TestSpellL(); TestDictL();// test Pinyin dict. } else { AssertTrueL(ETrue, _L("unable to activate Chinese Pinyin")); if ( iEngine == NULL ) { SetupL(); } iEngine->ActivateLanguageL(ELangEnglish, EPtiEnginePredictive); } }
void CBCTestPtiEngine::TestDictL() { CDesCArrayFlat* words = new (ELeave) CDesCArrayFlat(5); CleanupStack::PushL( words ); words->AppendL(_L("lorem")); words->AppendL(_L("ipsum")); words->AppendL(_L("dolor")); words->AppendL(_L("sit")); words->AppendL(_L("amet")); TBuf<50> filename(_L("C:\\BCTestLog\\TestUserDict.txt")); AssertIntL(KErrNotSupported, iEngine->CreateUserDictionaryL(filename, words, EPtiEngineWordCompletion), _L("user dict created isn't supported")); CleanupStack::PopAndDestroy(); //words TInt err; //attach MPtiUserDictionary* dict = iEngine->AttachUserDictionaryL(filename); if(dict) { AssertTrueL(ETrue, _L("user dict attached")); } else { AssertTrueL(ETrue, _L("user dict attached failure")); } //detach if(iEngine->DetachUserDictionary(filename) == KErrNone) { AssertTrueL(ETrue, _L("user dict detach")); } else { AssertTrueL(ETrue, _L("User dict detach failure")); } if(iEngine->DetachUserDictionary(0) == KErrNone) { AssertTrueL(ETrue, _L("user dict detach by ID")); } else { AssertTrueL(ETrue, _L("User dict detach by ID failure")); } //entry TFileName msg; TPtiUserDictionaryEntry entry(_L("foobar")); TInt number = iEngine->NumberOfEntriesInUserDictionary(); if(number == KErrNotSupported) { AssertTrueL(ETrue, _L("user dict doesn't support entry")); } else { msg.Format(_L("total %d entries"), number); AssertTrueL(ETrue, msg); } err=iEngine->AddUserDictionaryEntry(entry); msg.Format(_L("add entry returns: %d"), err); msg.ZeroTerminate(); AssertTrueL(ETrue, msg); err=iEngine->AddUserDictionaryEntry(entry, 0); msg.Format(_L("add entry with ID 0 returns: %d"), err); msg.ZeroTerminate(); AssertTrueL(ETrue, msg); err=iEngine->RemoveEntryFromUserDictionary(entry); msg.Format(_L("remove entry returns: %d"), err); msg.ZeroTerminate(); AssertTrueL(ETrue, msg); err=iEngine->RemoveEntryFromUserDictionary(entry, 0); msg.Format(_L("remove entry with ID 0 returns: %d"), err); msg.ZeroTerminate(); AssertTrueL(ETrue, msg); err = iEngine->GetUserDictionaryEntry(0, entry); msg.Format(_L("get first entry returns: %d"), err); msg.ZeroTerminate(); AssertTrueL(ETrue, msg); dict = iEngine->DefaultUserDictionary(EPtiEnginePinyin); if(dict) { AssertNotNullL(dict, _L("dict for Pinyin found")); } else { AssertTrueL(ETrue, _L("dict for Pinyin not found")); } }
void CFileExecuter::OpenFileByDefault(TFileName aFileName) { if (::FileIsExist(aFileName)==1) { iFileName.Zero (); iFileName.Append(aFileName); TInt i = aFileName.LocateReverseF('.'); if(i<0) { iMainEngine.ControlFactory().CreateTipDialog(iMainEngine.GetDesById(ETurkeyTextRes_FileTypeNotSupport),*this,0); return; } TFileName nFileExt = aFileName.Right( aFileName.Length() - i - 1 ); nFileExt.ZeroTerminate(); iMainEngine.WriteLog16(nFileExt); TFileName nAssociatedApp; TBool nIsFindApp = GetAssociatedApp( nFileExt, nAssociatedApp ); if ( nIsFindApp == true) { if (nAssociatedApp.Find(KDefaultAppPath)!=KErrNotFound) { OpenFileBySystemDefaultL(aFileName); } else if ( nAssociatedApp.FindF( KCoCoAppPath )!=KErrNotFound) { //使用内部模块打开 OpenFileByInternal(aFileName); } else { OpenFileByApp(nAssociatedApp,aFileName); } } else { //如果没有默认的打开方式 TInt nType=ParseExPathNum(aFileName); #ifdef __SERIES60_3X__ if(nType==0 || nType==1 || nType==2 || nType==3) #else if(nType==0 || nType==1 || nType==2 || nType==3 || nType==4) #endif { //使用内部模块打开 OpenFileByInternal(aFileName); } else { //采用系统默认方式打开 OpenFileBySystemDefaultL(aFileName); } } } else { //提示用户文件不存在 iMainEngine.ControlFactory().CreateTipDialog(iMainEngine.GetDesById(ETurkeyTextRes_FileNotExist),*this,0); } }