--- a/connectivitymodules/SeCon/clients/syncclient/inc/sconsyncclient.h Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/clients/syncclient/inc/sconsyncclient.h Wed Sep 15 13:07:27 2010 +0300
@@ -21,7 +21,7 @@
#include <e32base.h>
#include <e32std.h>
-#include <ecom/ImplementationInformation.h>
+#include <ecom/implementationinformation.h>
#include <SmlDataProvider.h>
#include "scondataproviderinfo.h"
--- a/connectivitymodules/SeCon/servers/pcconn/bld/sconpcconnserver.mmp Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/pcconn/bld/sconpcconnserver.mmp Wed Sep 15 13:07:27 2010 +0300
@@ -21,8 +21,7 @@
#include <data_caging_paths.hrh>
VENDORID VID_DEFAULT
-
-CAPABILITY CAP_SERVER TrustedUI
+CAPABILITY ReadDeviceData WriteDeviceData SwEvent NetworkServices ReadUserData WriteUserData LocalServices TrustedUI
TARGET sconpcconnserver.exe
TARGETTYPE exe
--- a/connectivitymodules/SeCon/servers/pcconn/inc/sconbtengine.h Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/pcconn/inc/sconbtengine.h Wed Sep 15 13:07:27 2010 +0300
@@ -23,7 +23,7 @@
#include <e32std.h>
#include <e32base.h>
#include <s32mem.h>
-#include <BTEngDevMan.h>
+#include <btengdevman.h>
#include <btengsettings.h>
const TInt KCenRepAddrBufSize = 2 * KBTDevAddrSize;
--- a/connectivitymodules/SeCon/servers/pcconn/inc/sconimsireader.h Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/pcconn/inc/sconimsireader.h Wed Sep 15 13:07:27 2010 +0300
@@ -20,7 +20,7 @@
#define __SCONIMSIREADER_H__
#include <e32base.h>
-#include <Etel3rdParty.h>
+#include <etel3rdparty.h>
enum TImsiReaderStatus
{
--- a/connectivitymodules/SeCon/servers/pcconn/src/sconpcconnserver.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/pcconn/src/sconpcconnserver.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -18,7 +18,7 @@
#include <s32mem.h> // For RMemReadStream
#include <utf.h>
-#include <Etel3rdParty.h>
+#include <etel3rdparty.h>
#include <f32file.h>
#include "sconpcconnclientserver.h"
--- a/connectivitymodules/SeCon/servers/syncserver/group/sconsyncserver.mmp Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/syncserver/group/sconsyncserver.mmp Wed Sep 15 13:07:27 2010 +0300
@@ -44,7 +44,7 @@
USERINCLUDE ../../../clients/syncclient/inc
SOURCE scondataproviderinfo.cpp
-USERINCLUDE ..\inc
+USERINCLUDE ../inc
// Default system include paths for middleware layer modules.
MW_LAYER_SYSTEMINCLUDE
--- a/connectivitymodules/SeCon/servers/syncserver/inc/sconsyncrelationship.h Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/syncserver/inc/sconsyncrelationship.h Wed Sep 15 13:07:27 2010 +0300
@@ -22,8 +22,8 @@
#include <e32base.h>
#include <f32file.h>
#include <s32file.h>
-#include <syncml/smldatasyncdefs.h>
-#include <syncmldef.h>
+#include <syncml/SmlDataSyncDefs.h>
+#include <SyncMLDef.h>
class CDictionaryFileStore;
--- a/connectivitymodules/SeCon/servers/syncserver/src/sconasynchandler.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/servers/syncserver/src/sconasynchandler.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -23,7 +23,7 @@
#include <s32mem.h>
#include <nsmlchangefinder.h>
#include <e32cmn.h>
-#include <ecom/ImplementationInformation.h>
+#include <ecom/implementationinformation.h>
#include <mmf/common/mmfcontrollerpluginresolver.h>
#include "sconsyncclientserver.h"
@@ -42,8 +42,9 @@
const TInt KMaxStoresCount = 10;
const TInt KDefaultTimeOutInMicroSeconds = 30 * 1000000; // 30 seconds
-const TInt KDeleteAllTimeOutInMicroSeconds = 300 * 1000000; // 5 minutes
-const TInt KOpenStoreTimeOutInMicroSeconds = 180 * 1000000; // 180 seconds
+const TInt KDeleteAllTimeOutInMicroSeconds = 540 * 1000000; // 9 minutes
+const TInt KOpenStoreTimeOutInMicroSeconds = 540 * 1000000; // 9 minutes
+const TInt KResetChangeInfoTimeOutInMicroSeconds = 540 * 1000000; // 9 minutes
CSconAsyncHandler::~CSconAsyncHandler()
{
@@ -180,6 +181,7 @@
MovedItemsL();
break;
case EResetChangeInfo:
+ iTimeOut->Start( KResetChangeInfoTimeOutInMicroSeconds );
ResetChangeInfoL();
break;
case ECommitChangeInfo:
Binary file connectivitymodules/SeCon/services/csc/bld/101F99F6.xml has changed
--- a/connectivitymodules/SeCon/services/pcd/src/sconsynchandler.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/connectivitymodules/SeCon/services/pcd/src/sconsynchandler.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -18,8 +18,8 @@
#include "sconsynchandler.h"
#include <f32file.h>
-#include <S32MEM.H>
-#include <UTF.H>
+#include <s32mem.h>
+#include <utf.h>
#include <mmf/common/mmfcontrollerpluginresolver.h>
#include <bautils.h>
#include <nsmlconstants.h>
--- a/mtpdataproviders/mtpfileandfolderdp/inc/mtpfiledpconst.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpfileandfolderdp/inc/mtpfiledpconst.h Wed Sep 15 13:07:27 2010 +0300
@@ -75,7 +75,8 @@
EMTPObjectPropCodeParentObject,
EMTPObjectPropCodePersistentUniqueObjectIdentifier,
EMTPObjectPropCodeName,
- EMTPObjectPropCodeNonConsumable
+ EMTPObjectPropCodeNonConsumable,
+ EMTPObjectPropCodeHidden
};
/**
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetformatcapabilities.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetformatcapabilities.h Wed Sep 15 13:07:27 2010 +0300
@@ -51,6 +51,7 @@
void ServiceOneFormatCapabilitiesL(TUint aFormatCode);
CMTPTypeObjectPropDesc* ServiceProtectionStatusL();
CMTPTypeObjectPropDesc* ServiceNonConsumableL();
+ CMTPTypeObjectPropDesc* ServiceHiddenL();
TUint16 GetPropertyGroupNumber(const TUint16 aPropCode) const;
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropdesc.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropdesc.h Wed Sep 15 13:07:27 2010 +0300
@@ -70,6 +70,7 @@
void ServiceRepresentativeSampleWidthL();
void ServiceRepresentativeSampleDataL();
void ServiceNonConsumableL();
+ void ServiceHiddenL();
TUint16 GetPropertyGroupNumber(const TUint16 aPropCode) const;
private:
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropvalue.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpgetobjectpropvalue.h Wed Sep 15 13:07:27 2010 +0300
@@ -73,6 +73,7 @@
void ServiceRepresentativeSampleWidthL();
void ServiceRepresentativeSampleDataL();
void ServiceNonConsumableL();
+ void ServiceHiddenL();
private:
CMTPImageDpObjectPropertyMgr& iObjectPropertyMgr;
--- a/mtpdataproviders/mtpimagedp/inc/cmtpimagedpsendobjectinfo.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/cmtpimagedpsendobjectinfo.h Wed Sep 15 13:07:27 2010 +0300
@@ -175,6 +175,7 @@
CMTPObjectMetaData* iReceivedObject;
TMTPTypeRequest iExpectedSendObjectRequest;
TUint16 iProtectionStatus;
+ TUint16 iHiddenStatus;
TUint16 iFormatCode;
TUint32 iPreviousTransactionID;
CMTPImageDpObjectPropertyMgr& iObjectPropertyMgr;
--- a/mtpdataproviders/mtpimagedp/inc/mtpimagedpconst.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/inc/mtpimagedpconst.h Wed Sep 15 13:07:27 2010 +0300
@@ -98,7 +98,8 @@
EMTPObjectPropCodeRepresentativeSampleHeight,
EMTPObjectPropCodeRepresentativeSampleWidth,
EMTPObjectPropCodeRepresentativeSampleData,
- EMTPObjectPropCodeNonConsumable
+ EMTPObjectPropCodeNonConsumable,
+ EMTPObjectPropCodeHidden
};
/**
@@ -134,7 +135,10 @@
EMTPObjectPropCodeRepresentativeSampleSize,
EMTPObjectPropCodeRepresentativeSampleHeight,
EMTPObjectPropCodeRepresentativeSampleWidth,
- EMTPObjectPropCodeRepresentativeSampleData
+ EMTPObjectPropCodeRepresentativeSampleData,
+
+ //From file system
+ EMTPObjectPropCodeHidden
};
/**
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpcopyobject.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpcopyobject.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -45,7 +45,7 @@
const TMTPRequestElementInfo KMTPCopyObjectPolicy[] =
{
{TMTPTypeRequest::ERequestParameter2, EMTPElementTypeStorageId, EMTPElementAttrWrite, 0, 0, 0},
- {TMTPTypeRequest::ERequestParameter3, EMTPElementTypeObjectHandle, EMTPElementAttrDir | EMTPElementAttrWrite, 1, 0, 0}
+ {TMTPTypeRequest::ERequestParameter3, EMTPElementTypeObjectHandle, EMTPElementAttrDir, 1, 0, 0}
};
/**
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropdesc.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropdesc.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -175,7 +175,10 @@
break;
case EMTPObjectPropCodeNonConsumable:
ServiceNonConsumableL();
- break;
+ break;
+ case EMTPObjectPropCodeHidden:
+ ServiceHiddenL();
+ break;
default:
{
//Leave
@@ -434,6 +437,21 @@
iObjectProperty = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeNonConsumable, *expectedForm);
CleanupStack::PopAndDestroy(expectedForm);
}
+
+void CMTPImageDpGetObjectPropDesc::ServiceHiddenL()
+ {
+ CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
+ CleanupStack::PushL(expectedForm);
+ TUint16 values[] = {EMTPVisible,EMTPHidden};
+ TUint numValues((sizeof(values) / sizeof(values[0])));
+ for (TUint i = 0; i < numValues; i++)
+ {
+ TMTPTypeUint16 data(values[i]);
+ expectedForm->AppendSupportedValueL(data);
+ }
+ iObjectProperty = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeHidden, *expectedForm);
+ CleanupStack::PopAndDestroy(expectedForm);
+ }
TUint16 CMTPImageDpGetObjectPropDesc::GetPropertyGroupNumber(const TUint16 aPropCode) const
{
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectproplist.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectproplist.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -424,7 +424,24 @@
propElem.SetUint8L(CMTPTypeObjectPropListElement::EValue, value);
iPropertyList->CommitPropElemL(propElem);
}
- break;
+ break;
+ case EMTPObjectPropCodeHidden:
+ {
+ TEntry FileEntry;
+ User::LeaveIfError(iFramework.Fs().Entry(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), FileEntry));
+ CMTPTypeObjectPropListElement& propElem = iPropertyList->ReservePropElemL(aHandle, aPropCode);
+ TBool isHidden = FileEntry.IsHidden();
+ if ( isHidden )
+ {
+ propElem.SetUint16L(CMTPTypeObjectPropListElement::EValue,EMTPHidden );
+ }
+ else
+ {
+ propElem.SetUint16L(CMTPTypeObjectPropListElement::EValue,EMTPVisible );
+ }
+ iPropertyList->CommitPropElemL(propElem);
+ }
+ break;
default:
//Leave
{
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropvalue.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpgetobjectpropvalue.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -189,7 +189,10 @@
break;
case EMTPObjectPropCodeNonConsumable:
ServiceNonConsumableL();
- break;
+ break;
+ case EMTPObjectPropCodeHidden:
+ ServiceHiddenL();
+ break;
default:
User::Leave(KErrGeneral);
}
@@ -353,3 +356,11 @@
iMTPTypeUint8.Set(nonConsumable);
SendDataL(iMTPTypeUint8);
}
+
+void CMTPImageDpGetObjectPropValue::ServiceHiddenL()
+ {
+ TUint16 hiddenStatus;
+ iObjectPropertyMgr.GetPropertyL(EMTPObjectPropCodeHidden, hiddenStatus);
+ iMTPTypeUint16.Set(hiddenStatus);
+ SendDataL(iMTPTypeUint16);
+ }
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpobjectpropertymgr.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpobjectpropertymgr.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -277,6 +277,24 @@
case EMTPObjectPropCodeProtectionStatus://this property does not supported by image dp
//nothing to do
break;
+ case EMTPObjectPropCodeHidden:
+ {
+ __ASSERT_ALWAYS(( EMTPHidden == aValue )||( EMTPVisible == aValue ), User::Leave(KErrArgument));
+ TEntry entry;
+ User::LeaveIfError(iFramework.Fs().Entry(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), entry));
+ if (( EMTPHidden == aValue ) && ( !entry.IsHidden()))
+ {
+ entry.iAtt &= ~KEntryAttHidden;
+ entry.iAtt |= KEntryAttHidden;
+ User::LeaveIfError(iFramework.Fs().SetAtt(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+ }
+ else if (( EMTPVisible == aValue )&&( entry.IsHidden()))
+ {
+ entry.iAtt &= ~KEntryAttHidden;
+ User::LeaveIfError(iFramework.Fs().SetAtt(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+ }
+ }
+ break;
default:
//nothing to do
break;
@@ -420,7 +438,20 @@
aValue = EMTPProtectionNoProtection;
}
}
- break;
+ break;
+ case EMTPObjectPropCodeHidden:
+ {
+ TInt err = iFs.Entry(iObjectInfo->DesC(CMTPObjectMetaData::ESuid), entry);
+ if ( err == KErrNone && entry.IsHidden())
+ {
+ aValue = EMTPHidden;
+ }
+ else
+ {
+ aValue = EMTPVisible;
+ }
+ }
+ break;
default:
aValue = 0;//initialization
//ingore the failure if we can't get properties form MdS
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpsendobjectinfo.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpsendobjectinfo.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -98,6 +98,7 @@
CMTPImageDpSendObjectInfo::CMTPImageDpSendObjectInfo(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, CMTPImageDataProvider& aDataProvider) :
CMTPRequestProcessor(aFramework, aConnection, 0, NULL),
iDataProvider(aDataProvider),
+ iHiddenStatus( EMTPVisible ),
iObjectPropertyMgr(aDataProvider.PropertyMgr())
{
@@ -785,12 +786,12 @@
SendResponseL(EMTPRespCodeTransactionCancelled);
}
else if (result && !iCancelled)
- {
+ {
+ TUint attValue = 0;
+ User::LeaveIfError(iFileReceived->File().Att(attValue));
if (iProtectionStatus == EMTPProtectionNoProtection ||
iProtectionStatus == EMTPProtectionReadOnly)
{
- TUint attValue = 0;
- User::LeaveIfError(iFileReceived->File().Att(attValue));
attValue &= ~(KEntryAttNormal | KEntryAttReadOnly);
if (iProtectionStatus == EMTPProtectionNoProtection)
@@ -803,6 +804,12 @@
}
User::LeaveIfError(iFileReceived->File().SetAtt(attValue, ~attValue));
}
+ if ( iHiddenStatus == EMTPHidden )
+ {
+ attValue &= ~KEntryAttHidden;
+ attValue |= KEntryAttHidden;
+ User::LeaveIfError(iFileReceived->File().SetAtt(attValue, ~attValue));
+ }
TTime modifiedTime;
//update datemodified property.
if(iDateMod != NULL && iDateMod->Length())
@@ -1062,7 +1069,9 @@
case EMTPObjectPropCodeNonConsumable:
iNonConsumable = aElement.Uint8L(CMTPTypeObjectPropListElement::EValue);
break;
-
+ case EMTPObjectPropCodeHidden:
+ iHiddenStatus = aElement.Uint16L(CMTPTypeObjectPropListElement::EValue);
+ break;
default:
break;
}
@@ -1133,6 +1142,7 @@
case EMTPObjectPropCodeRepresentativeSampleFormat:
case EMTPObjectPropCodeProtectionStatus:
+ case EMTPObjectPropCodeHidden:
if (aElement.Uint16L(CMTPTypeObjectPropListElement::EDatatype) != EMTPTypeUINT16)
{
responseCode = EMTPRespCodeInvalidObjectPropFormat;
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectproplist.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectproplist.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -116,7 +116,10 @@
case EMTPObjectPropCodeNonConsumable:
iPropertyMgr.SetPropertyL(TMTPObjectPropertyCode(propertyCode), element.Uint8L(CMTPTypeObjectPropListElement::EValue));
objects.ModifyObjectL(*iObjectMeta);
- break;
+ break;
+ case EMTPObjectPropCodeHidden:
+ iPropertyMgr.SetPropertyL(TMTPObjectPropertyCode(propertyCode), element.Uint16L(CMTPTypeObjectPropListElement::EValue));
+ break;
default:
responseCode = EMTPRespCodeInvalidObjectPropCode;
break;
@@ -180,7 +183,13 @@
{
responseCode = EMTPRespCodeInvalidObjectPropFormat;
}
- break;
+ break;
+ case EMTPObjectPropCodeHidden:
+ if (aDataType != EMTPTypeUINT16)
+ {
+ responseCode = EMTPRespCodeInvalidObjectPropFormat;
+ }
+ break;
default:
responseCode = EMTPRespCodeInvalidObjectPropCode;
}
--- a/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectpropvalue.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectpropvalue.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -168,7 +168,10 @@
break;
case EMTPObjectPropCodeNonConsumable:
ReceiveDataL(iMTPTypeUint8);
- break;
+ break;
+ case EMTPObjectPropCodeHidden:
+ ReceiveDataL(iMTPTypeUint16);
+ break;
default:
User::Leave(KErrGeneral);
}
@@ -233,7 +236,13 @@
iFramework.ObjectMgr().ModifyObjectL(*iObjectMeta);
responseCode = EMTPRespCodeOK;
}
- break;
+ break;
+ case EMTPObjectPropCodeHidden:
+ {
+ iObjectPropertyMgr.SetPropertyL(TMTPObjectPropertyCode(propCode), iMTPTypeUint16.Value());
+ responseCode = EMTPRespCodeOK;
+ }
+ break;
default:
responseCode = EMTPRespCodeInvalidObjectPropFormat;
//Panic(EMTPImageDpUnsupportedProperty);
--- a/mtpdataproviders/mtpimagedp/src/mtpimagedpgetformatcapabilities.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpdataproviders/mtpimagedp/src/mtpimagedpgetformatcapabilities.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -132,7 +132,8 @@
//EMTPObjectPropCodeNonConsumable
frmCap->AppendL(ServiceNonConsumableL() );
-
+ //EMTPObjectPropCodeHidden
+ frmCap->AppendL( ServiceHiddenL() );
CMTPTypeObjectPropDesc::TPropertyInfo info;
info.iDataType = EMTPTypeString;
@@ -294,6 +295,22 @@
__FLOG(_L8("<< CMTPPictureDpGetFormatCapabilities::ConstructL"));
}
+CMTPTypeObjectPropDesc* CMTPImageDpGetFormatCapabilities::ServiceHiddenL()
+ {
+ CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
+ CleanupStack::PushL(expectedForm);
+ TUint16 values[] = {EMTPVisible, EMTPHidden};
+ TUint numValues((sizeof(values) / sizeof(values[0])));
+ for (TUint i = 0; i < numValues; i++)
+ {
+ TMTPTypeUint16 data(values[i]);
+ expectedForm->AppendSupportedValueL(data);
+ }
+ CMTPTypeObjectPropDesc* ret = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeHidden, *expectedForm);
+ CleanupStack::PopAndDestroy(expectedForm);
+ return ret;
+ }
+
TUint16 CMTPImageDpGetFormatCapabilities::GetPropertyGroupNumber(const TUint16 aPropCode) const
{
for( TInt propCodeIndex = 0 ; propCodeIndex < KMTPImageDpGroupOneSize ; propCodeIndex++)
--- a/mtpfws/mtpfw/dataproviders/devdp/inc/mtpdevicedpconst.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/devdp/inc/mtpdevicedpconst.h Wed Sep 15 13:07:27 2010 +0300
@@ -110,7 +110,8 @@
EMTPObjectPropCodeParentObject,
EMTPObjectPropCodePersistentUniqueObjectIdentifier,
EMTPObjectPropCodeName,
- EMTPObjectPropCodeNonConsumable
+ EMTPObjectPropCodeNonConsumable,
+ EMTPObjectPropCodeHidden
};
static const TUint16 KMTPDeviceDpSupportedEvents[] =
--- a/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedp.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/devdp/src/cmtpdevicedp.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -416,7 +416,14 @@
TInt lengthOfRight( folderRight.Length());
TFileName folderLeft;
- _LIT( KRootFolder, "?:\\");
+ // get root path of storage
+ TInt driveNumber;
+ User::LeaveIfError(Framework().Fs().CharToDrive(folderRight[0], driveNumber));
+ RBuf rootDirPath;
+ rootDirPath.CreateL(KMaxFileName);
+ rootDirPath.CleanupClosePushL();
+ iDevDpSingletons.ConfigMgr().GetRootDirPathL(driveNumber, rootDirPath);
+ rootDirPath.Insert(0, folderRight.Mid(0, 2));// get drive:
/*
Go through from beginning.
@@ -434,7 +441,7 @@
lengthOfRight = folderRight.Length()-pos -1;
folderRight.Set( folderRight.Right( lengthOfRight ));
- if ( KErrNotFound != folderLeft.Match( KRootFolder ))
+ if ( rootDirPath.FindF(folderLeft) != KErrNotFound)
{
//first time, root folder
//continue
@@ -444,7 +451,7 @@
handle = Framework().ObjectMgr().HandleL( folderLeft );
}
while( KMTPHandleNone != handle );
-
+ CleanupStack::PopAndDestroy(&rootDirPath);
if ( KMTPHandleNone == handle )
{
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpcopyobject.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpcopyobject.h Wed Sep 15 13:07:27 2010 +0300
@@ -84,6 +84,7 @@
TUint32 iNewParentHandle;
TUint32 iStorageId;
TTime iPreviousModifiedTime;
+ TBool iIsHidden;
RMTPFramework iSingletons;
RMTPDpSingletons iDpSingletons;
CPeriodic* iTimer;
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetformatcapabilities.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetformatcapabilities.h Wed Sep 15 13:07:27 2010 +0300
@@ -52,6 +52,7 @@
CMTPTypeObjectPropDesc* ServiceProtectionStatusL();
CMTPTypeObjectPropDesc* ServiceAssociationTypeL();
CMTPTypeObjectPropDesc* ServiceNonConsumableL();
+ CMTPTypeObjectPropDesc* ServiceHiddenL();
private: // Owned
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropdesc.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropdesc.h Wed Sep 15 13:07:27 2010 +0300
@@ -62,6 +62,7 @@
void ServicePuidL();
void ServiceNameL();
void ServiceNonConsumableL();
+ void ServiceHiddenL();
TUint16 GetPropertyGroupNumber(const TUint16 aPropCode) const;
private:
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropvalue.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpgetobjectpropvalue.h Wed Sep 15 13:07:27 2010 +0300
@@ -69,6 +69,8 @@
void ServicePuidL();
void ServiceNameL();
void ServiceNonConsumableL();
+ void ServiceHiddenL();
+
private:
TMTPTypeUint8 iMTPTypeUint8;
TMTPTypeUint16 iMTPTypeUint16;
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpmoveobject.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpmoveobject.h Wed Sep 15 13:07:27 2010 +0300
@@ -85,6 +85,7 @@
CPeriodic* iTimer;
HBufC* iNewFileName;
TBool iIsFolder;
+ TBool iIsHidden;
/**
FLOGGER debug trace member variable.
*/
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpsendobjectinfo.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/cmtpsendobjectinfo.h Wed Sep 15 13:07:27 2010 +0300
@@ -123,6 +123,7 @@
TBool iIsFolder;
TMTPTypeNull iNullObject;
TUint16 iProtectionStatus;
+ TUint16 iHiddenStatus;
TUint32 iPreviousTransactionID;
RMTPDpSingletons iDpSingletons;
TFileName iName;
--- a/mtpfws/mtpfw/dataproviders/dputility/inc/mtpdpconst.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/inc/mtpdpconst.h Wed Sep 15 13:07:27 2010 +0300
@@ -40,7 +40,8 @@
EMTPObjectPropCodeParentObject,
EMTPObjectPropCodePersistentUniqueObjectIdentifier,
EMTPObjectPropCodeName,
- EMTPObjectPropCodeNonConsumable
+ EMTPObjectPropCodeNonConsumable,
+ EMTPObjectPropCodeHidden
};
/**
@@ -64,7 +65,7 @@
static const TUint16 KMTPDpPropertyGroups[KMTPDpPropertyGroupNumber+1][KMTPDpPropertyNumber] =
{
{}, // group 0 is not used.
- // group 1 contains 10 proeprties
+ // group 1 contains 11 proeprties
{ EMTPObjectPropCodeStorageID,
EMTPObjectPropCodeObjectFormat,
EMTPObjectPropCodeProtectionStatus,
@@ -74,7 +75,8 @@
EMTPObjectPropCodeParentObject,
EMTPObjectPropCodePersistentUniqueObjectIdentifier,
EMTPObjectPropCodeName,
- EMTPObjectPropCodeNonConsumable }
+ EMTPObjectPropCodeNonConsumable,
+ EMTPObjectPropCodeHidden}
};
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpcopyobject.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpcopyobject.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -359,6 +359,12 @@
{
__FLOG(_L8("GetPreviousPropertiesL - Entry"));
User::LeaveIfError(iFramework.Fs().Modified(aFileName, iPreviousModifiedTime));
+ if ( iIsFolder )
+ {
+ TEntry fileEntry;
+ User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+ iIsHidden = fileEntry.IsHidden();
+ }
__FLOG(_L8("GetPreviousPropertiesL - Exit"));
}
@@ -369,6 +375,14 @@
{
__FLOG(_L8("SetPreviousPropertiesL - Entry"));
User::LeaveIfError(iFramework.Fs().SetModified(aFileName, iPreviousModifiedTime));
+ if ( iIsFolder && iIsHidden )
+ {
+ TEntry fileEntry;
+ User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+ fileEntry.iAtt &= ~KEntryAttHidden;
+ fileEntry.iAtt |= KEntryAttHidden;
+ User::LeaveIfError(iFramework.Fs().SetAtt( aFileName, fileEntry.iAtt, ~fileEntry.iAtt));
+ }
__FLOG(_L8("SetPreviousPropertiesL - Exit"));
}
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetformatcapabilities.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetformatcapabilities.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -160,6 +160,12 @@
CleanupStack::PushL(nonConsumable);
frmCap->AppendL(nonConsumable);
CleanupStack::Pop(nonConsumable);
+
+ //Hidden
+ CMTPTypeObjectPropDesc* hidden = ServiceHiddenL();
+ CleanupStack::PushL( hidden );
+ frmCap->AppendL( hidden );
+ CleanupStack::Pop( hidden );
iCapabilityList->AppendL(frmCap);
CleanupStack::Pop(frmCap);
@@ -227,6 +233,11 @@
CleanupStack::PushL(nonConsumable);
frmCap->AppendL(nonConsumable);
CleanupStack::Pop(nonConsumable);
+ //Hidden
+ CMTPTypeObjectPropDesc* hidden = ServiceHiddenL();
+ CleanupStack::PushL( hidden );
+ frmCap->AppendL( hidden );
+ CleanupStack::Pop( hidden );
iCapabilityList->AppendL(frmCap);
CleanupStack::Pop(frmCap);
@@ -295,6 +306,23 @@
return ret;
}
+CMTPTypeObjectPropDesc* CMTPGetFormatCapabilities::ServiceHiddenL()
+ {
+ CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
+ CleanupStack::PushL(expectedForm);
+ TUint16 values[] = {EMTPVisible, EMTPHidden};
+ TUint numValues((sizeof(values) / sizeof(values[0])));
+ for (TUint i = 0; i < numValues; i++)
+ {
+ TMTPTypeUint16 data(values[i]);
+ expectedForm->AppendSupportedValueL(data);
+ }
+ CMTPTypeObjectPropDesc* ret = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeHidden, *expectedForm);
+ CleanupStack::PopAndDestroy(expectedForm);
+
+ return ret;
+ }
+
TMTPResponseCode CMTPGetFormatCapabilities::CheckRequestL()
{
TMTPResponseCode response = CMTPRequestProcessor::CheckRequestL();
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropdesc.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropdesc.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -157,6 +157,9 @@
case EMTPObjectPropCodeNonConsumable:
ServiceNonConsumableL();
break;
+ case EMTPObjectPropCodeHidden:
+ ServiceHiddenL();
+ break;
default:
User::Leave( KErrNotSupported );
break;
@@ -294,7 +297,20 @@
CleanupStack::PopAndDestroy(expectedForm);
}
-
+void CMTPGetObjectPropDesc::ServiceHiddenL()
+ {
+ CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL(EMTPTypeUINT16);
+ CleanupStack::PushL(expectedForm);
+ TUint16 values[] = {EMTPVisible,EMTPHidden};
+ TUint numValues((sizeof(values) / sizeof(values[0])));
+ for (TUint i = 0; i < numValues; i++)
+ {
+ TMTPTypeUint16 data(values[i]);
+ expectedForm->AppendSupportedValueL(data);
+ }
+ iObjectProperty = CMTPTypeObjectPropDesc::NewL(EMTPObjectPropCodeHidden, *expectedForm);
+ CleanupStack::PopAndDestroy(expectedForm);
+ }
TUint16 CMTPGetObjectPropDesc::GetPropertyGroupNumber(const TUint16 aPropCode) const
{
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectproplist.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -477,7 +477,22 @@
iPropertyList->CommitPropElemL(propElem);
}
}
- break;
+ break;
+ case EMTPObjectPropCodeHidden:
+ {
+ TBool isHidden = iFileEntry.IsHidden();
+ CMTPTypeObjectPropListElement& propElem = iPropertyList->ReservePropElemL(aHandle, aPropCode);
+ if ( isHidden )
+ {
+ propElem.SetUint16L(CMTPTypeObjectPropListElement::EValue, EMTPHidden);
+ }
+ else
+ {
+ propElem.SetUint16L(CMTPTypeObjectPropListElement::EValue, EMTPVisible);
+ }
+ iPropertyList->CommitPropElemL(propElem);
+ }
+ break;
default:
User::Leave( KErrNotSupported );
break;
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropvalue.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpgetobjectpropvalue.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -165,6 +165,9 @@
case EMTPObjectPropCodeNonConsumable:
ServiceNonConsumableL();
break;
+ case EMTPObjectPropCodeHidden:
+ ServiceHiddenL();
+ break;
default:
User::Leave( KErrNotSupported );
break;
@@ -265,6 +268,19 @@
SendDataL(iMTPTypeUint8);
}
+void CMTPGetObjectPropValue::ServiceHiddenL()
+ {
+ TBool isHidden = iFileEntry.IsHidden();
+ if ( isHidden )
+ {
+ iMTPTypeUint16.Set(EMTPHidden);
+ }
+ else
+ {
+ iMTPTypeUint16.Set(EMTPVisible);
+ }
+ SendDataL(iMTPTypeUint16);
+ }
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpmoveobject.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpmoveobject.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -380,6 +380,12 @@
{
__FLOG(_L8("GetPreviousPropertiesL - Entry"));
User::LeaveIfError(iFramework.Fs().Modified(aFileName, iPreviousModifiedTime));
+ if ( iIsFolder )
+ {
+ TEntry fileEntry;
+ User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+ iIsHidden = fileEntry.IsHidden();
+ }
__FLOG(_L8("GetPreviousPropertiesL - Exit"));
}
@@ -390,6 +396,14 @@
{
__FLOG(_L8("SetPreviousPropertiesL - Entry"));
User::LeaveIfError(iFramework.Fs().SetModified(aFileName, iPreviousModifiedTime));
+ if ( iIsFolder && iIsHidden )
+ {
+ TEntry fileEntry;
+ User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+ fileEntry.iAtt &= ~KEntryAttHidden;
+ fileEntry.iAtt |= KEntryAttHidden;
+ User::LeaveIfError(iFramework.Fs().SetAtt( aFileName, fileEntry.iAtt, ~fileEntry.iAtt));
+ }
__FLOG(_L8("SetPreviousPropertiesL - Exit"));
}
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsendobjectinfo.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -100,7 +100,8 @@
@param aConnection The connection from which the request comes
*/
CMTPSendObjectInfo::CMTPSendObjectInfo(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection) :
- CMTPRequestProcessor(aFramework, aConnection, 0, NULL)
+ CMTPRequestProcessor(aFramework, aConnection, 0, NULL),
+ iHiddenStatus( EMTPVisible )
{
}
@@ -660,14 +661,15 @@
if (!iIsFolder)
{
- delete iFileReceived;
- iFileReceived = NULL;
TEntry fileEntry;
User::LeaveIfError(iFramework.Fs().Entry(iFullPath, fileEntry));
if (fileEntry.FileSize() != iObjectSize)
{
+ delete iFileReceived;
+ iFileReceived = NULL;
+
iFramework.RouteRequestUnregisterL(iExpectedSendObjectRequest, iConnection);
iFramework.Fs().Delete(iFullPath);
@@ -713,6 +715,8 @@
if(!iIsFolder)
{
SetPropertiesL();
+ delete iFileReceived;
+ iFileReceived = NULL;
iFramework.ObjectMgr().CommitReservedObjectHandleL(*iReceivedObject);
iFullPath.LowerCase();
__FLOG_VA((_L8("File Name %S"), &iFullPath));
@@ -939,6 +943,9 @@
case EMTPObjectPropCodeName:
iName = aElement.StringL(CMTPTypeObjectPropListElement::EValue);
break;
+ case EMTPObjectPropCodeHidden:
+ iHiddenStatus = aElement.Uint16L(CMTPTypeObjectPropListElement::EValue);
+ break;
default:
break;
}
@@ -1031,6 +1038,7 @@
break;
case EMTPObjectPropCodeAssociationType:
+ case EMTPObjectPropCodeHidden:
if (aElement.Uint16L(CMTPTypeObjectPropListElement::EDatatype) != EMTPTypeUINT16)
{
responseCode = EMTPRespCodeInvalidObjectPropFormat;
@@ -1199,6 +1207,7 @@
void CMTPSendObjectInfo::SetPropertiesL()
{
__FLOG(_L8("SetPropertiesL - Entry"));
+
TEntry entry;
User::LeaveIfError(iFramework.Fs().Entry(iFullPath, entry));
@@ -1235,14 +1244,42 @@
{
entry.iAtt |= KEntryAttReadOnly;
}
- User::LeaveIfError(iFramework.Fs().SetAtt(iFullPath, entry.iAtt, ~entry.iAtt));
+ if ( iFileReceived )
+ {
+ User::LeaveIfError(iFileReceived->File().SetAtt(entry.iAtt, ~entry.iAtt));
+ }
+ else
+ {
+ User::LeaveIfError(iFramework.Fs().SetAtt(iFullPath, entry.iAtt, ~entry.iAtt));
+ }
}
-
+
+ if ( EMTPHidden == iHiddenStatus )
+ {
+ entry.iAtt &= ~KEntryAttHidden;
+ entry.iAtt |= KEntryAttHidden;
+ if ( iFileReceived )
+ {
+ User::LeaveIfError(iFileReceived->File().SetAtt(entry.iAtt, ~entry.iAtt));
+ }
+ else
+ {
+ User::LeaveIfError(iFramework.Fs().SetAtt(iFullPath, entry.iAtt, ~entry.iAtt));
+ }
+ }
+
if(iDateMod != NULL && iDateMod->Length())
{
TTime modifiedTime;
iDpSingletons.MTPUtility().MTPTimeStr2TTime(*iDateMod, modifiedTime);
- User::LeaveIfError(iFramework.Fs().SetModified(iFullPath, modifiedTime));
+ if ( iFileReceived )
+ {
+ User::LeaveIfError(iFileReceived->File().SetModified( modifiedTime ));
+ }
+ else
+ {
+ User::LeaveIfError(iFramework.Fs().SetModified(iFullPath, modifiedTime));
+ }
}
iReceivedObject->SetDesCL(CMTPObjectMetaData::EName, iName);
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectproplist.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectproplist.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -128,7 +128,35 @@
}
}
break;
-
+ case EMTPObjectPropCodeHidden:
+ {
+ TUint16 hiddenStatus = element.Uint16L(CMTPTypeObjectPropListElement::EValue);
+ TEntry entry;
+ if ( EMTPHidden == hiddenStatus )
+ {
+ User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry));
+ if ( !entry.IsHidden())
+ {
+ entry.iAtt &= ~KEntryAttHidden;
+ entry.iAtt |= KEntryAttHidden;
+ User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+ }
+ }
+ else if ( EMTPVisible == hiddenStatus )
+ {
+ User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry));
+ if ( entry.IsHidden())
+ {
+ entry.iAtt &= ~KEntryAttHidden;
+ User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+ }
+ }
+ else
+ {
+ responseCode = EMTPRespCodeInvalidObjectPropValue;
+ }
+ break;
+ }
case EMTPObjectPropCodeNonConsumable:
iObjMeta->SetUint( CMTPObjectMetaData::ENonConsumable, element.Uint8L(CMTPTypeObjectPropListElement::EValue));
iFramework.ObjectMgr().ModifyObjectL(*iObjMeta);
@@ -211,6 +239,7 @@
}
break;
case EMTPObjectPropCodeAssociationType:
+ case EMTPObjectPropCodeHidden:
if (aDataType != EMTPTypeUINT16)
{
responseCode = EMTPRespCodeInvalidObjectPropFormat;
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectpropvalue.cpp Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpsetobjectpropvalue.cpp Wed Sep 15 13:07:27 2010 +0300
@@ -192,6 +192,7 @@
ReceiveDataL(iMTPTypeUint8);
break;
case EMTPObjectPropCodeAssociationType:
+ case EMTPObjectPropCodeHidden:
{
ReceiveDataL(iMTPTypeUint16);
}
@@ -245,7 +246,37 @@
}
}
break;
-
+ case EMTPObjectPropCodeHidden:
+ {
+ if ( EMTPHidden == iMTPTypeUint16.Value())
+ {
+ TEntry entry;
+ User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry));
+ if ( !entry.IsHidden())
+ {
+ entry.iAtt &= ~KEntryAttHidden;
+ entry.iAtt |= KEntryAttHidden;
+ User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+ }
+ responseCode = EMTPRespCodeOK;
+ }
+ else if ( EMTPVisible == iMTPTypeUint16.Value())
+ {
+ TEntry entry;
+ User::LeaveIfError(iFramework.Fs().Entry(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry));
+ if ( entry.IsHidden())
+ {
+ entry.iAtt &= ~KEntryAttHidden;
+ User::LeaveIfError(iFramework.Fs().SetAtt(iObjMeta->DesC(CMTPObjectMetaData::ESuid), entry.iAtt, ~entry.iAtt));
+ }
+ responseCode = EMTPRespCodeOK;
+ }
+ else
+ {
+ responseCode = EMTPRespCodeInvalidObjectPropValue;
+ }
+ }
+ break;
case EMTPObjectPropCodeObjectFileName:
{
--- a/mtpfws/mtpfw/datatypes/interface/mtpprotocolconstants.h Tue Sep 14 22:52:29 2010 +0300
+++ b/mtpfws/mtpfw/datatypes/interface/mtpprotocolconstants.h Wed Sep 15 13:07:27 2010 +0300
@@ -800,6 +800,12 @@
EMTPProtectionNonTransferable = 0x8003
};
+enum TMTPHiddenStatus
+ {
+ EMTPVisible = 0x0000,
+ EMTPHidden = 0x0001
+ };
+
/**
The MTP consumable status datacodes. For a description of these datacodes,
please refer to the "Media Transfer Protocol Enhanced" specification.