diff -r 73a1feb507fb -r bc78a40cd63c tsrc/CenrepEditor/Src/cenrepeditormodel.cpp --- a/tsrc/CenrepEditor/Src/cenrepeditormodel.cpp Tue Aug 31 15:12:07 2010 +0300 +++ b/tsrc/CenrepEditor/Src/cenrepeditormodel.cpp Wed Sep 01 12:31:01 2010 +0100 @@ -40,6 +40,7 @@ CPhoneResources* CPhoneResources::NewLC() { + // create a new expense object CPhoneResources* self = new (ELeave) CPhoneResources(); CleanupStack::PushL(self); self->ConstructL(); @@ -53,79 +54,112 @@ return self; } -CPhoneResources::~CPhoneResources() - { - } - void CPhoneResources::ConstructL() { - // If a P&S key is not found, set it to KErrNotFound. - // This is why the RProperty::Get return values are not handled below. - iCameraAvailability = KErrNotFound; - RProperty::Get(NMusResourceApi::KCategoryUid, - NMusResourceApi::KCameraAvailability, - iCameraAvailability); - - iKeypadAvailability = KErrNotFound; - RProperty::Get(NMusResourceApi::KCategoryUid, - NMusResourceApi::KKeypadAvailability, - iKeypadAvailability); + iCameraAvailability = -1; + iKeypadAvailability = -1 ; + iVideoPlayerAvailability = -1; + iCameraInformation = -1; + iKodiakPhoneCall = -1; + iDummy = 1; // just a postive value , dirty idea but just works at this time + } - iVideoPlayerAvailability = KErrNotFound; - RProperty::Get(NMusResourceApi::KCategoryUid, - NMusResourceApi::KVideoPlayerAvailability, - iVideoPlayerAvailability ); - - iCameraInformation = KErrNotFound; - RProperty::Get(NMusResourceApi::KCategoryUid, - NMusResourceApi::KCameraInformation, - iCameraInformation ); - - iKodiakPhoneCall = KErrNotFound; - TInt err = RProperty::Get(KPSUidCtsyCallInformation, - KCTsyKodiakPtt, - iKodiakPhoneCall ); - if (err != KErrNone) +void CPhoneResources::ReadL() + { + TInt err = KErrNone; + // 1. camera property + err = RProperty::Get( NMusResourceApi::KCategoryUid, + NMusResourceApi::KCameraAvailability, + iCameraAvailability); + if(err)HandleError(ETrue,err,_L("CameraAvailability")); + // 2. keypad property + err = RProperty::Get( NMusResourceApi::KCategoryUid, + NMusResourceApi::KKeypadAvailability, + iKeypadAvailability ); + if(err)HandleError(ETrue , err,_L("KeypadAvailability")); + // 3. video player property + err = RProperty::Get( NMusResourceApi::KCategoryUid, + NMusResourceApi::KVideoPlayerAvailability, + iVideoPlayerAvailability ); + if(err)HandleError( ETrue, err ,_L("VideoPlayerAvailability")); + // 3. video player property + err = RProperty::Get( NMusResourceApi::KCategoryUid, + NMusResourceApi::KCameraInformation, + iCameraInformation ); + if(err)HandleError( ETrue, err ,_L("CameraInformation")); + err = RProperty::Get( KPSUidCtsyCallInformation, + KCTsyKodiakPtt, + iKodiakPhoneCall ); + if(err) { iKodiakPhoneCall = EPSCTsyKodiakPttNotActive; RProperty::Define(KPSUidCtsyCallInformation,KCTsyKodiakPtt,EPSCTsyKodiakPttNotActive); - } + } + } + + +CPhoneResources::~CPhoneResources() + { } void CPhoneResources::SaveL() { - SetValueL(NMusResourceApi::KCategoryUid, - NMusResourceApi::KCameraAvailability, - iCameraAvailability); - - SetValueL(NMusResourceApi::KCategoryUid, - NMusResourceApi::KKeypadAvailability, - iKeypadAvailability); + //TInt err = KErrNone; - SetValueL(NMusResourceApi::KCategoryUid, - NMusResourceApi::KVideoPlayerAvailability, - iVideoPlayerAvailability); - - SetValueL(NMusResourceApi::KCategoryUid, - NMusResourceApi::KCameraInformation, - iCameraInformation); - - SetValueL(KPSUidCtsyCallInformation, - KCTsyKodiakPtt, - iKodiakPhoneCall); + User::LeaveIfError(SetValueL( NMusResourceApi::KCategoryUid, + NMusResourceApi::KCameraAvailability, + iCameraAvailability)); + //if(err)HandleError( EFalse, err ,_L("CameraAvailability")); + // 2. keypad property + User::LeaveIfError(SetValueL( NMusResourceApi::KCategoryUid, + NMusResourceApi::KKeypadAvailability, + iKeypadAvailability )); + //if(err)HandleError(EFalse, err,_L("KeypadAvailability")); + // 3. video player property + User::LeaveIfError(SetValueL( NMusResourceApi::KCategoryUid, + NMusResourceApi::KVideoPlayerAvailability, + iVideoPlayerAvailability )); + //if(err)HandleError(EFalse, err,_L("VideoPlayerAvailability")); + // 3. video player property + User::LeaveIfError(SetValueL( NMusResourceApi::KCategoryUid, + NMusResourceApi::KCameraInformation, + iCameraInformation )); + //if(err)HandleError(EFalse, err,_L("CameraInformation")); + // 4. Kodiak PS Key + User::LeaveIfError(SetValueL( KPSUidCtsyCallInformation, + KCTsyKodiakPtt, + iKodiakPhoneCall )); + //if(err)HandleError( EFalse, err ,_L("KodiakPSKeyInformation")); } -void CPhoneResources::SetValueL(TUid aCategory, TUint aKey, TInt aValue) +TInt CPhoneResources::SetValueL(TUid aCategory, TUint aKey, TInt aValue) + { + if(aValue<0)return KErrNone; // dont care if the key is not read intially + return RProperty::Set( aCategory, aKey, aValue ); + } + + +void CPhoneResources::HandleError(TBool aType ,TInt aError , TPtrC aKeyName ) { - // Don't care if the key is not found initially - if (aValue >= 0) + CAknErrorNote *dlg = new CAknErrorNote(ETrue); + TBuf<100> buf; + if(aType) { - User::LeaveIfError(RProperty::Set(aCategory, aKey, aValue)); + buf.Append(_L("Unable to Read Key ")); } + else + { + buf.Append(_L("Unable to Save ")); + } + buf.Append(aKeyName); + buf.Append(_L(" Error ")); + buf.AppendNum(aError); + dlg->ExecuteLD(buf); } COtherResources* COtherResources::NewLC() { + // create a new expense object COtherResources* self = new (ELeave) COtherResources(); CleanupStack::PushL(self); self->ConstructL(); @@ -141,157 +175,185 @@ void COtherResources::ConstructL() { - iRepository = CRepository::NewL(MusSettingsKeys::KRepositoryUid); - - // If a CenRep key is not found, set it to KErrNotFound. - // This is why the CRepository::Get return values are not handled below. - iActivation = KErrNotFound; - iRepository->Get(MusSettingsKeys::KActivation, iActivation); - - iOperatorVariant = KErrNotFound; - iRepository->Get(MusSettingsKeys::KOperatorVariant,iOperatorVariant); - - iAuditoryNotification = KErrNotFound; - iRepository->Get(MusSettingsKeys::KAuditoryNotification, iAuditoryNotification); - - iPopupNotification = KErrNotFound; - iRepository->Get(MusSettingsKeys::KPopupNotification, iPopupNotification); - - iPopupNotificationType = KErrNotFound; - iRepository->Get(MusSettingsKeys::KPopupNotificationType, iPopupNotificationType); - - iEdgeDtmSupport = KErrNotFound; - iRepository->Get(MusSettingsKeys::KEdgeDtmSupport, iEdgeDtmSupport); - - iSessionSetupMethod = KErrNotFound; - iRepository->Get(MusSettingsKeys::KForceInternetSignaling, iSessionSetupMethod); - - iAutoRecord = KErrNotFound; - iRepository->Get(MusSettingsKeys::KAutoRecord, iAutoRecord); - - iVideoLocation = KErrNotFound; - iRepository->Get(MusSettingsKeys::KVideoLocation, iVideoLocation); - - iSipProfileId = KErrNotFound; - iRepository->Get(MusSettingsKeys::KSipProfileId, iSipProfileId); - - iUiOrientation = KErrNotFound; - iRepository->Get(MusSettingsKeys::KUiOrientation, iUiOrientation); - - iCapabilityQuery = KErrNotFound; - iRepository->Get(MusSettingsKeys::KCapabilityQuery, iCapabilityQuery); - - iProductModeVariation = KErrNotFound; - iRepository->Get(MusSettingsKeys::KProductModeVariation, iProductModeVariation); - - iRepository->Get(MusSettingsKeys::KEncoderConfigurationInfo, iEncoderInfo ); - - iEncodingDevice = KErrNotFound; - iRepository->Get(MusSettingsKeys::KEncodingDevice, iEncodingDevice ); - iEncodingDeviceStr.Zero(); - if ( iEncodingDevice >= 0 ) - { - iEncodingDeviceStr.AppendNum(iEncodingDevice, EHex); - } - - iOnlyWithActiveCSCall = KErrNotFound; - iRepository->Get(MusSettingsKeys::KAllowOnlyWithActiveCSCall, iOnlyWithActiveCSCall); - - iOnlyIn3GNetwork = KErrNotFound; - iRepository->Get(MusSettingsKeys::KAllowOnlyIn3GNetwork, iOnlyIn3GNetwork); - - iCameraUsage = KErrNotFound; - iRepository->Get(MusSettingsKeys::KCameraUsage, iCameraUsage); - - iVideoDirection = KErrNotFound; - iRepository->Get(MusSettingsKeys::KVideoDirection, iVideoDirection); - - iVideoBandwidth = KErrNotFound; - iRepository->Get(MusSettingsKeys::KVideoBandwidth, iVideoBandwidth); - - iFastMode = KErrNotFound; - iRepository->Get(MusSettingsKeys::KFastStartupMode, iFastMode); + iActivation = -1 ; + iOperatorVariant = -1 ; + iAuditoryNotification = -1; + iPopupNotification = -1 ; + iPopupNotificationType = -1 ; + iEdgeDtmSupport = -1 ; + iSessionSetupMethod = -1 ; + iAutoRecord = -1 ; + iVideoLocation = -1 ; + iSipProfileId = -1 ; + iUiOrientation = -1 ; + iCapabilityQuery = -1; + iProductModeVariation=-1; + iEncodingDevice = -1; + iPrivacyVariation = -1; + iDummy = 1; // just a postive value } +void COtherResources::ReadL() + { + + TRAPD(err,ReadCRKeyValuesL()); + if(err) HandleError (ETrue,err,_L("Read Error")); + + } + +void COtherResources::ReadCRKeyValuesL() +{ + + TInt err=KErrNone; + CRepository* cr = NULL ; + TRAP(err,cr = CRepository::NewL( MusSettingsKeys::KRepositoryUid )); + cr->CleanupCancelTransactionPushL(); + if(err) + { + CAknErrorNote *dlg = new CAknErrorNote(ETrue); + dlg->ExecuteLD(_L(\ + "Unable to Construct CRepository for UID 0x1028238B")); + return ; // dont leave + } + + ReadKeyValueL( cr, MusSettingsKeys::KActivation,iActivation ); + ReadKeyValueL( cr, MusSettingsKeys::KOperatorVariant,iOperatorVariant); + ReadKeyValueL( cr, MusSettingsKeys::KAuditoryNotification, iAuditoryNotification); + ReadKeyValueL( cr, MusSettingsKeys::KPopupNotification, iPopupNotification); + ReadKeyValueL( cr, MusSettingsKeys::KPopupNotificationType, iPopupNotificationType); + ReadKeyValueL( cr, MusSettingsKeys::KEdgeDtmSupport, iEdgeDtmSupport); + ReadKeyValueL( cr, MusSettingsKeys::KForceInternetSignaling, iSessionSetupMethod); + ReadKeyValueL( cr, MusSettingsKeys::KAutoRecord, iAutoRecord); + ReadKeyValueL( cr, MusSettingsKeys::KVideoLocation, iVideoLocation); + ReadKeyValueL( cr, MusSettingsKeys::KSipProfileId, iSipProfileId); + ReadKeyValueL( cr, MusSettingsKeys::KUiOrientation, iUiOrientation); + ReadKeyValueL( cr, MusSettingsKeys::KCapabilityQuery, iCapabilityQuery); + ReadKeyValueL( cr, MusSettingsKeys::KProductModeVariation, iProductModeVariation); + ReadKeyValueL( cr, MusSettingsKeys::KEncoderConfigurationInfo, iEncoderInfo ); + ReadKeyValueL( cr, MusSettingsKeys::KEncodingDevice, iEncodingDevice ); + ReadKeyValueL( cr, MusSettingsKeys::KPrivacyExchange, iPrivacyVariation ); + + iEncodingDeviceStr.Zero(); + iEncodingDeviceStr.AppendNum(iEncodingDevice, EHex); + + CleanupStack::PopAndDestroy(cr); + delete cr; + +} + + COtherResources::~COtherResources() - { - delete iRepository; - } + { + } void COtherResources::SaveL() { - User::LeaveIfError( - iRepository->StartTransaction(CRepository::EConcurrentReadWriteTransaction)); - iRepository->CleanupCancelTransactionPushL(); + + TRAPD(err,SaveCRKeyValuesL()); + if(err) HandleError (ETrue,err,_L("Save Error")); + + } + +void COtherResources::SaveCRKeyValuesL() + { + CRepository* cr = NULL ; + TRAPD(err,cr = CRepository::NewL( MusSettingsKeys::KRepositoryUid )); + cr->CleanupCancelTransactionPushL(); + if(err) + { + CAknErrorNote *dlg = new CAknErrorNote(ETrue); + dlg->ExecuteLD(_L(\ + "Unable to Construct CRepository for UID 0x1028238B")); + User::Leave(err); + } + SetKeyValueL( cr,MusSettingsKeys::KActivation, iActivation); + SetKeyValueL( cr,MusSettingsKeys::KOperatorVariant, iOperatorVariant); + SetKeyValueL( cr,MusSettingsKeys::KAuditoryNotification, iAuditoryNotification); + SetKeyValueL( cr,MusSettingsKeys::KPopupNotification, iPopupNotification); + SetKeyValueL( cr,MusSettingsKeys::KPopupNotificationType, iPopupNotificationType); + SetKeyValueL( cr,MusSettingsKeys::KEdgeDtmSupport, iEdgeDtmSupport); + SetKeyValueL( cr,MusSettingsKeys::KForceInternetSignaling, iSessionSetupMethod); + SetKeyValueL( cr,MusSettingsKeys::KAutoRecord, iAutoRecord); + SetKeyValueL( cr,MusSettingsKeys::KVideoLocation, iVideoLocation); + SetKeyValueL( cr,MusSettingsKeys::KSipProfileId, iSipProfileId); + SetKeyValueL( cr,MusSettingsKeys::KUiOrientation, iUiOrientation); + SetKeyValueL( cr,MusSettingsKeys::KCapabilityQuery, iCapabilityQuery); + SetKeyValueL( cr,MusSettingsKeys::KProductModeVariation, iProductModeVariation); + SetKeyValueL( cr,MusSettingsKeys::KEncoderConfigurationInfo, iEncoderInfo ); + SetKeyValueL( cr,MusSettingsKeys::KPrivacyExchange, iPrivacyVariation ); - SetKeyValueL(MusSettingsKeys::KActivation, iActivation); - SetKeyValueL(MusSettingsKeys::KOperatorVariant, iOperatorVariant); - SetKeyValueL(MusSettingsKeys::KAuditoryNotification, iAuditoryNotification); - SetKeyValueL(MusSettingsKeys::KPopupNotification, iPopupNotification); - SetKeyValueL(MusSettingsKeys::KPopupNotificationType, iPopupNotificationType); - SetKeyValueL(MusSettingsKeys::KEdgeDtmSupport, iEdgeDtmSupport); - SetKeyValueL(MusSettingsKeys::KForceInternetSignaling, iSessionSetupMethod); - SetKeyValueL(MusSettingsKeys::KAutoRecord, iAutoRecord); - SetKeyValueL(MusSettingsKeys::KVideoLocation, iVideoLocation); - SetKeyValueL(MusSettingsKeys::KSipProfileId, iSipProfileId); - SetKeyValueL(MusSettingsKeys::KUiOrientation, iUiOrientation); - SetKeyValueL(MusSettingsKeys::KCapabilityQuery, iCapabilityQuery); - SetKeyValueL(MusSettingsKeys::KProductModeVariation, iProductModeVariation); - User::LeaveIfError( - iRepository->Set(MusSettingsKeys::KEncoderConfigurationInfo, iEncoderInfo)); TLex lex( iEncodingDeviceStr ); - TUint tmpUid; - lex.SkipSpace(); - if ( lex.Val(tmpUid, EHex) == KErrNone ) + TUint uid; + err = lex.Val(uid, EHex); + if ( (err == KErrNone) && lex.Eos() ) { - iEncodingDevice = tmpUid; + iEncodingDevice = uid; + SetKeyValueL( cr, MusSettingsKeys::KEncodingDevice, iEncodingDevice ); + } + + CleanupStack::PopAndDestroy(cr); + delete cr; + } + +void COtherResources::SetKeyValueL(CRepository* repository, const TInt & aKey , TInt & aVal) + { + if(aVal<0) return; // dont care if key is not intially read + TUint32 key(aKey); + User::LeaveIfError(repository->StartTransaction( + CRepository::EConcurrentReadWriteTransaction)); + User::LeaveIfError(repository->Set(key,aVal)); + User::LeaveIfError(repository->CommitTransaction(key)); + } + +void COtherResources::ReadKeyValueL(CRepository* repository, const TInt & aKey , TInt & aVal) + { + TUint32 key(aKey); + User::LeaveIfError(repository->StartTransaction( + CRepository::EConcurrentReadWriteTransaction)); + User::LeaveIfError(repository->Get(key,aVal)); + User::LeaveIfError(repository->CommitTransaction(key)); + } + +void COtherResources::SetKeyValueL(CRepository* repository, TInt aKey, const TDesC& aVal) + { + TUint32 key(aKey); + User::LeaveIfError(repository->StartTransaction( + CRepository::EConcurrentReadWriteTransaction)); + User::LeaveIfError(repository->Set(key,aVal)); + User::LeaveIfError(repository->CommitTransaction(key)); + } + +void COtherResources::ReadKeyValueL(CRepository* repository, TInt aKey, TDes& aVal) + { + TUint32 key(aKey); + User::LeaveIfError(repository->StartTransaction( + CRepository::EConcurrentReadWriteTransaction)); + User::LeaveIfError(repository->Get(key,aVal)); + User::LeaveIfError(repository->CommitTransaction(key)); + } + +void COtherResources::HandleError(TBool aType , + TInt aError , TPtrC aKeyName ) + { + CAknErrorNote *dlg = new CAknErrorNote(ETrue); + TBuf<100> buf; + if(aType) + { + buf.Append(_L("Unable to Read Key ")); } else { - iEncodingDevice = KErrNotFound; + buf.Append(_L("Unable to Save Key ")); } - SetKeyValueL(MusSettingsKeys::KEncodingDevice, iEncodingDevice); - SetKeyValueL(MusSettingsKeys::KAllowOnlyWithActiveCSCall, iOnlyWithActiveCSCall); - SetKeyValueL(MusSettingsKeys::KAllowOnlyIn3GNetwork, iOnlyIn3GNetwork); - SetKeyValueL(MusSettingsKeys::KCameraUsage, iCameraUsage); - SetKeyValueL(MusSettingsKeys::KVideoDirection, iVideoDirection); - SetKeyValueL(MusSettingsKeys::KVideoBandwidth, iVideoBandwidth); - SetKeyValueL(MusSettingsKeys::KFastStartupMode, iFastMode); - - TUint32 modifiedKeyCount(0); - User::LeaveIfError(iRepository->CommitTransaction(modifiedKeyCount)); - CleanupStack::Pop(); // transaction - } - -void COtherResources::SetKeyValueL( - const TUint32& aKey, - TInt& aVal) - { - TBool keyExistsInRepository(EFalse); - TInt tmpVal(0); - keyExistsInRepository = (iRepository->Get(aKey,tmpVal) == KErrNone); - if (aVal < 0) - { - if (keyExistsInRepository) - { - User::LeaveIfError(iRepository->Delete(aKey)); - } - } - else - { - if (keyExistsInRepository) - { - User::LeaveIfError(iRepository->Set(aKey,aVal)); - } - else - { - User::LeaveIfError(iRepository->Create(aKey,aVal)); - } - } + buf.Append(aKeyName); + buf.Append(_L(" Error ")); + buf.AppendNum(aError); + dlg->ExecuteLD(buf); } CMusApplication* CMusApplication::NewLC() { + // create a new expense object CMusApplication* self = new (ELeave) CMusApplication(); CleanupStack::PushL(self); self->ConstructL(); @@ -308,8 +370,8 @@ void CMusApplication::ConstructL() { iUseCase = MultimediaSharing::EMusLiveVideo; - iMultimediasharing=CMusManager::NewL(); - iMultimediasharing->ExamineAvailabilityL(); + //iMultimediasharing=CMusManager::NewL(); + //iMultimediasharing->ExamineAvailabilityL(); } CMusApplication::~CMusApplication() @@ -330,10 +392,10 @@ TBool CMusApplication::Start(TInt aUseCase) { - TRAPD(err,iMultimediasharing->StartApplicationL( + /*TRAPD(err,iMultimediasharing->StartApplicationL( MultimediaSharing::TMusUseCase(aUseCase))); if(err)HandleError(err,_L("MusStart ")); - return (err)?EFalse :ETrue; + return (err)?EFalse :ETrue; */ } TBool CMusApplication::Stop() @@ -352,9 +414,21 @@ } TInt CMusApplication::MonitorAvailability() { - return KErrGeneral; + TInt status = KErrGeneral; + /*TRequestStatus requestStatus; + TRAPD(err,iMultimediasharing-> + MonitorAvailabilityL( + requestStatus, + MultimediaSharing::TMusAvailabilityStatus(status)) + ); + if(err)HandleError(err,_L("MusAvailability ")); + User::WaitForRequest(requestStatus); + */ + return status; } + + TBool CMusApplication::AvailabilityInfo() { TBuf<100> buf(_L("Availability Info: ")); @@ -442,6 +516,8 @@ (aStart) ? buf.Append(_L("Started")) : buf.Append(_L("Stoped")); dlg->ExecuteLD(buf); } + + // End of File