--- a/tsrc/CenrepEditor/Src/cenrepeditormodel.cpp Thu Aug 19 09:51:39 2010 +0300
+++ b/tsrc/CenrepEditor/Src/cenrepeditormodel.cpp Tue Aug 31 15:12:07 2010 +0300
@@ -40,7 +40,6 @@
CPhoneResources* CPhoneResources::NewLC()
{
- // create a new expense object
CPhoneResources* self = new (ELeave) CPhoneResources();
CleanupStack::PushL(self);
self->ConstructL();
@@ -54,112 +53,79 @@
return self;
}
+CPhoneResources::~CPhoneResources()
+ {
+ }
+
void CPhoneResources::ConstructL()
{
- iCameraAvailability = -1;
- iKeypadAvailability = -1 ;
- iVideoPlayerAvailability = -1;
- iCameraInformation = -1;
- iKodiakPhoneCall = -1;
- iDummy = 1; // just a postive value , dirty idea but just works at this time
- }
+ // 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);
-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)
+ 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)
{
iKodiakPhoneCall = EPSCTsyKodiakPttNotActive;
RProperty::Define(KPSUidCtsyCallInformation,KCTsyKodiakPtt,EPSCTsyKodiakPttNotActive);
- }
- }
-
-
-CPhoneResources::~CPhoneResources()
- {
+ }
}
void CPhoneResources::SaveL()
{
- //TInt err = KErrNone;
+ SetValueL(NMusResourceApi::KCategoryUid,
+ NMusResourceApi::KCameraAvailability,
+ iCameraAvailability);
+
+ SetValueL(NMusResourceApi::KCategoryUid,
+ NMusResourceApi::KKeypadAvailability,
+ iKeypadAvailability);
- 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"));
+ SetValueL(NMusResourceApi::KCategoryUid,
+ NMusResourceApi::KVideoPlayerAvailability,
+ iVideoPlayerAvailability);
+
+ SetValueL(NMusResourceApi::KCategoryUid,
+ NMusResourceApi::KCameraInformation,
+ iCameraInformation);
+
+ SetValueL(KPSUidCtsyCallInformation,
+ KCTsyKodiakPtt,
+ iKodiakPhoneCall);
}
-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 )
+void CPhoneResources::SetValueL(TUid aCategory, TUint aKey, TInt aValue)
{
- CAknErrorNote *dlg = new CAknErrorNote(ETrue);
- TBuf<100> buf;
- if(aType)
+ // Don't care if the key is not found initially
+ if (aValue >= 0)
{
- buf.Append(_L("Unable to Read Key "));
+ User::LeaveIfError(RProperty::Set(aCategory, aKey, aValue));
}
- 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();
@@ -175,185 +141,157 @@
void COtherResources::ConstructL()
{
- 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
+ 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);
}
-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()
{
-
- TRAPD(err,SaveCRKeyValuesL());
- if(err) HandleError (ETrue,err,_L("Save Error"));
+ User::LeaveIfError(
+ iRepository->StartTransaction(CRepository::EConcurrentReadWriteTransaction));
+ iRepository->CleanupCancelTransactionPushL();
- }
-
-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 uid;
- err = lex.Val(uid, EHex);
- if ( (err == KErrNone) && lex.Eos() )
+ TUint tmpUid;
+ lex.SkipSpace();
+ if ( lex.Val(tmpUid, EHex) == KErrNone )
{
- 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 "));
+ iEncodingDevice = tmpUid;
}
else
{
- buf.Append(_L("Unable to Save Key "));
+ iEncodingDevice = KErrNotFound;
}
- buf.Append(aKeyName);
- buf.Append(_L(" Error "));
- buf.AppendNum(aError);
- dlg->ExecuteLD(buf);
+ 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));
+ }
+ }
}
CMusApplication* CMusApplication::NewLC()
{
- // create a new expense object
CMusApplication* self = new (ELeave) CMusApplication();
CleanupStack::PushL(self);
self->ConstructL();
@@ -370,8 +308,8 @@
void CMusApplication::ConstructL()
{
iUseCase = MultimediaSharing::EMusLiveVideo;
- //iMultimediasharing=CMusManager::NewL();
- //iMultimediasharing->ExamineAvailabilityL();
+ iMultimediasharing=CMusManager::NewL();
+ iMultimediasharing->ExamineAvailabilityL();
}
CMusApplication::~CMusApplication()
@@ -392,10 +330,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()
@@ -414,21 +352,9 @@
}
TInt CMusApplication::MonitorAvailability()
{
- TInt status = KErrGeneral;
- /*TRequestStatus requestStatus;
- TRAPD(err,iMultimediasharing->
- MonitorAvailabilityL(
- requestStatus,
- MultimediaSharing::TMusAvailabilityStatus(status))
- );
- if(err)HandleError(err,_L("MusAvailability "));
- User::WaitForRequest(requestStatus);
- */
- return status;
+ return KErrGeneral;
}
-
-
TBool CMusApplication::AvailabilityInfo()
{
TBuf<100> buf(_L("Availability Info: "));
@@ -516,8 +442,6 @@
(aStart) ? buf.Append(_L("Started")) : buf.Append(_L("Stoped"));
dlg->ExecuteLD(buf);
}
-
-
// End of File