void TwtCamera::openCamera() { #ifdef Q_OS_SYMBIAN qDebug() << "TwtCamera::openCamera"; CDesCArray* selectedFiles = new (ELeave) CDesCArrayFlat(1); CleanupStack::PushL(selectedFiles); CNewFileServiceClient* fileClient = NewFileServiceFactory::NewClientL(); CleanupStack::PushL(fileClient); bool result = fileClient->NewFileL(KUidCamera, *selectedFiles, NULL, ENewFileServiceImage, EFalse); if(result) { TPtrC address = selectedFiles->MdcaPoint(0); QString filename = QString::fromUtf16(address.Ptr(), address.Length()); qDebug() << "TwtCamera::openCamera name = " << filename; emit imgCaptured(filename); } else { qDebug() << "TwtCamera::openCamera file capture failed"; emit imgCaptured(""); } CleanupStack::PopAndDestroy( 2 ); // selectedFiles, fileClient #else // for develop on simulator emit imgCaptured(""); #endif }
QString Camera::symbianCapture(int width, int height) { CNewFileServiceClient* fileClient = NewFileServiceFactory::NewClientL(); CleanupStack::PushL(fileClient); CDesCArray* fileNames = new (ELeave) CDesCArrayFlat(1); CleanupStack::PushL(fileNames); CAiwGenericParamList* paramList = CAiwGenericParamList::NewLC(); TSize resolution = TSize(width, height); TPckgBuf<TSize> buffer( resolution ); TAiwVariant resolutionVariant( buffer ); TAiwGenericParam param( EGenericParamResolution, resolutionVariant ); paramList->AppendL( param ); const TUid KUidCamera = { 0x101F857A }; // Camera UID for S60 5th edition TBool result = fileClient->NewFileL( KUidCamera, *fileNames, paramList, ENewFileServiceImage, EFalse ); QString ret; if (result) { TPtrC fileName=fileNames->MdcaPoint(0); ret = QString((QChar*) fileName.Ptr(), fileName.Length()); } qDebug() << ret; CleanupStack::PopAndDestroy(3); return ret; }