mtpdataproviders/mtpimagedp/src/cmtpimagedpsetobjectproplist.cpp
changeset 47 63cf70d3ecd8
parent 17 aabe5387f5ce
equal deleted inserted replaced
44:a5deb6b96675 47:63cf70d3ecd8
    28 
    28 
    29 #include "cmtpimagedpsetobjectproplist.h"
    29 #include "cmtpimagedpsetobjectproplist.h"
    30 #include "cmtpimagedpobjectpropertymgr.h"
    30 #include "cmtpimagedpobjectpropertymgr.h"
    31 #include "cmtpimagedp.h"
    31 #include "cmtpimagedp.h"
    32 #include "mtpimagedputilits.h"
    32 #include "mtpimagedputilits.h"
    33 
    33 #include "OstTraceDefinitions.h"
    34 __FLOG_STMT(_LIT8(KComponent,"CMTPImageDpSetObjectPropList");)
    34 #ifdef OST_TRACE_COMPILER_IN_USE
       
    35 #include "cmtpimagedpsetobjectproplistTraces.h"
       
    36 #endif
       
    37 
    35 
    38 
    36 MMTPRequestProcessor* CMTPImageDpSetObjectPropList::NewL(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection,CMTPImageDataProvider& aDataProvider)
    39 MMTPRequestProcessor* CMTPImageDpSetObjectPropList::NewL(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection,CMTPImageDataProvider& aDataProvider)
    37     {
    40     {
    38     CMTPImageDpSetObjectPropList* self = new (ELeave) CMTPImageDpSetObjectPropList(aFramework, aConnection,aDataProvider);
    41     CMTPImageDpSetObjectPropList* self = new (ELeave) CMTPImageDpSetObjectPropList(aFramework, aConnection,aDataProvider);
    39     CleanupStack::PushL(self);
    42     CleanupStack::PushL(self);
    42     return self;
    45     return self;
    43     }
    46     }
    44     
    47     
    45 CMTPImageDpSetObjectPropList::~CMTPImageDpSetObjectPropList()
    48 CMTPImageDpSetObjectPropList::~CMTPImageDpSetObjectPropList()
    46     {
    49     {
    47     __FLOG(_L8(">> CMTPImageDpSetObjectPropList::~CMTPImageDpSetObjectPropList"));
    50     OstTraceFunctionEntry0( CMTPIMAGEDPSETOBJECTPROPLIST_CMTPIMAGEDPSETOBJECTPROPLIST_DES_ENTRY );
    48     delete iPropertyList;
    51     delete iPropertyList;
    49     delete iObjectMeta;
    52     delete iObjectMeta;
    50     __FLOG(_L8("<< CMTPImageDpSetObjectPropList::~CMTPImageDpSetObjectPropList"));
    53     OstTraceFunctionExit0( CMTPIMAGEDPSETOBJECTPROPLIST_CMTPIMAGEDPSETOBJECTPROPLIST_DES_EXIT );
    51     __FLOG_CLOSE;
       
    52     }
    54     }
    53     
    55     
    54 CMTPImageDpSetObjectPropList::CMTPImageDpSetObjectPropList(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection,CMTPImageDataProvider& aDataProvider) :
    56 CMTPImageDpSetObjectPropList::CMTPImageDpSetObjectPropList(MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection,CMTPImageDataProvider& aDataProvider) :
    55     CMTPRequestProcessor(aFramework, aConnection, 0, NULL),
    57     CMTPRequestProcessor(aFramework, aConnection, 0, NULL),
    56     iDataProvider(aDataProvider),
    58     iDataProvider(aDataProvider),
    59     
    61     
    60     }
    62     }
    61     
    63     
    62 void CMTPImageDpSetObjectPropList::ConstructL()
    64 void CMTPImageDpSetObjectPropList::ConstructL()
    63     {
    65     {
    64     __FLOG_OPEN(KMTPSubsystem, KComponent);
    66     OstTraceFunctionEntry0( CMTPIMAGEDPSETOBJECTPROPLIST_CONSTRUCTL_ENTRY );
    65     __FLOG(_L8(">> CMTPImageDpSetObjectPropList::ConstructL"));
       
    66     iPropertyList = CMTPTypeObjectPropList::NewL();
    67     iPropertyList = CMTPTypeObjectPropList::NewL();
    67     iObjectMeta = CMTPObjectMetaData::NewL();
    68     iObjectMeta = CMTPObjectMetaData::NewL();
    68     __FLOG(_L8("<< CMTPImageDpSetObjectPropList::ConstructL"));
    69     OstTraceFunctionExit0( CMTPIMAGEDPSETOBJECTPROPLIST_CONSTRUCTL_EXIT );
    69     }
    70     }
    70 
    71 
    71 void CMTPImageDpSetObjectPropList::ServiceL()
    72 void CMTPImageDpSetObjectPropList::ServiceL()
    72     {
    73     {
    73     __FLOG(_L8(">> CMTPImageDpSetObjectPropList::ConstructL"));
    74     OstTraceFunctionEntry0( CMTPIMAGEDPSETOBJECTPROPLIST_SERVICEL_ENTRY );
    74     ReceiveDataL(*iPropertyList);
    75     ReceiveDataL(*iPropertyList);
    75     __FLOG(_L8(">> CMTPImageDpSetObjectPropList::ConstructL"));
    76     OstTraceFunctionExit0( CMTPIMAGEDPSETOBJECTPROPLIST_SERVICEL_EXIT );
    76     }
    77     }
    77 
    78 
    78 TBool CMTPImageDpSetObjectPropList::DoHandleResponsePhaseL()
    79 TBool CMTPImageDpSetObjectPropList::DoHandleResponsePhaseL()
    79     {
    80     {
    80     __FLOG(_L8(">> CMTPImageDpSetObjectPropList::DoHandleResponsePhaseL"));
    81     OstTraceFunctionEntry0( CMTPIMAGEDPSETOBJECTPROPLIST_DOHANDLERESPONSEPHASEL_ENTRY );
    81     MMTPObjectMgr& objects(iFramework.ObjectMgr());
    82     MMTPObjectMgr& objects(iFramework.ObjectMgr());
    82     TUint32 parameter(0);
    83     TUint32 parameter(0);
    83     TMTPResponseCode responseCode(EMTPRespCodeOK);
    84     TMTPResponseCode responseCode(EMTPRespCodeOK);
    84     const TUint count(iPropertyList->NumberOfElements());
    85     const TUint count(iPropertyList->NumberOfElements());
    85     iPropertyList->ResetCursor();
    86     iPropertyList->ResetCursor();
    86     __FLOG_VA((_L8("setting %d properties"), count));
    87     OstTrace1( TRACE_NORMAL, CMTPIMAGEDPSETOBJECTPROPLIST_DOHANDLERESPONSEPHASEL, 
       
    88             "setting %d properties", count );
    87     TUint32 preHandle = KMTPHandleNone;
    89     TUint32 preHandle = KMTPHandleNone;
    88     for (TUint i(0); ((i < count) && (responseCode == EMTPRespCodeOK)); i++)
    90     for (TUint i(0); ((i < count) && (responseCode == EMTPRespCodeOK)); i++)
    89         {
    91         {
    90         CMTPTypeObjectPropListElement& element=iPropertyList->GetNextElementL(); 
    92         CMTPTypeObjectPropListElement& element=iPropertyList->GetNextElementL(); 
    91         TUint32 handle = element.Uint32L(CMTPTypeObjectPropListElement::EObjectHandle);
    93         TUint32 handle = element.Uint32L(CMTPTypeObjectPropListElement::EObjectHandle);
    92         TUint16 propertyCode = element.Uint16L(CMTPTypeObjectPropListElement::EPropertyCode);
    94         TUint16 propertyCode = element.Uint16L(CMTPTypeObjectPropListElement::EPropertyCode);
    93         TUint16 dataType = element.Uint16L(CMTPTypeObjectPropListElement::EDatatype);
    95         TUint16 dataType = element.Uint16L(CMTPTypeObjectPropListElement::EDatatype);
    94         __FLOG_VA((_L8("set property, propertycode %d, datatype %d, handle %d"), propertyCode, dataType, handle));
    96         OstTraceExt3( TRACE_NORMAL, DUP1_CMTPIMAGEDPSETOBJECTPROPLIST_DOHANDLERESPONSEPHASEL, 
       
    97                 "set property, propertycode %d, datatype %d, handle %d", propertyCode, dataType, handle );
    95         
    98         
    96         responseCode = MTPImageDpUtilits::VerifyObjectHandleL(iFramework, handle, *iObjectMeta);
    99         responseCode = MTPImageDpUtilits::VerifyObjectHandleL(iFramework, handle, *iObjectMeta);
    97         if ((EMTPRespCodeOK == responseCode) && (iObjectMeta->Uint(CMTPObjectMetaData::EDataProviderId) == iFramework.DataProviderId()))
   100         if ((EMTPRespCodeOK == responseCode) && (iObjectMeta->Uint(CMTPObjectMetaData::EDataProviderId) == iFramework.DataProviderId()))
    98             {
   101             {
    99             // Object is owned by the FileDp
   102             // Object is owned by the FileDp
   114                         objects.ModifyObjectL(*iObjectMeta);
   117                         objects.ModifyObjectL(*iObjectMeta);
   115                         break;
   118                         break;
   116                     case EMTPObjectPropCodeNonConsumable:
   119                     case EMTPObjectPropCodeNonConsumable:
   117                         iPropertyMgr.SetPropertyL(TMTPObjectPropertyCode(propertyCode), element.Uint8L(CMTPTypeObjectPropListElement::EValue));
   120                         iPropertyMgr.SetPropertyL(TMTPObjectPropertyCode(propertyCode), element.Uint8L(CMTPTypeObjectPropListElement::EValue));
   118                         objects.ModifyObjectL(*iObjectMeta);
   121                         objects.ModifyObjectL(*iObjectMeta);
   119                         break;                        
   122                         break;
       
   123                     case EMTPObjectPropCodeHidden:
       
   124                         iPropertyMgr.SetPropertyL(TMTPObjectPropertyCode(propertyCode), element.Uint16L(CMTPTypeObjectPropListElement::EValue));
       
   125                         break;
   120                     default:
   126                     default:
   121                         responseCode = EMTPRespCodeInvalidObjectPropCode;
   127                         responseCode = EMTPRespCodeInvalidObjectPropCode;
   122                         break;
   128                         break;
   123                     }
   129                     }
   124                 
   130                 
   131             }
   137             }
   132         preHandle = handle;
   138         preHandle = handle;
   133         }
   139         }
   134 
   140 
   135     SendResponseL(responseCode, 1, &parameter);
   141     SendResponseL(responseCode, 1, &parameter);
   136     __FLOG(_L8("<< CMTPImageDpSetObjectPropList::DoHandleResponsePhaseL"));
   142     OstTraceFunctionExit0( CMTPIMAGEDPSETOBJECTPROPLIST_DOHANDLERESPONSEPHASEL_EXIT );
   137     return EFalse;
   143     return EFalse;
   138     }
   144     }
   139 
   145 
   140 TBool CMTPImageDpSetObjectPropList::HasDataphase() const
   146 TBool CMTPImageDpSetObjectPropList::HasDataphase() const
   141     {
   147     {
   142     __FLOG(_L8(">> CMTPImageDpSetObjectPropList::HasDataphase"));
   148     OstTraceFunctionEntry0( CMTPIMAGEDPSETOBJECTPROPLIST_HASDATAPHASE_ENTRY );
       
   149     OstTraceFunctionExit0( CMTPIMAGEDPSETOBJECTPROPLIST_HASDATAPHASE_EXIT );
   143     return ETrue;
   150     return ETrue;
   144     }
   151     }
   145 
   152 
   146 TMTPResponseCode CMTPImageDpSetObjectPropList::CheckPropCode(TUint16 aPropertyCode, TUint16 aDataType) const
   153 TMTPResponseCode CMTPImageDpSetObjectPropList::CheckPropCode(TUint16 aPropertyCode, TUint16 aDataType) const
   147     {
   154     {
   148     __FLOG(_L8(">> CMTPImageDpSetObjectPropList::CheckPropCode"));
   155     OstTraceFunctionEntry0( CMTPIMAGEDPSETOBJECTPROPLIST_CHECKPROPCODE_ENTRY );
   149     TMTPResponseCode responseCode = EMTPRespCodeOK;
   156     TMTPResponseCode responseCode = EMTPRespCodeOK;
   150     switch(aPropertyCode)
   157     switch(aPropertyCode)
   151         {
   158         {
   152         case EMTPObjectPropCodeStorageID:
   159         case EMTPObjectPropCodeStorageID:
   153         case EMTPObjectPropCodeObjectFormat:
   160         case EMTPObjectPropCodeObjectFormat:
   178         case EMTPObjectPropCodeNonConsumable:
   185         case EMTPObjectPropCodeNonConsumable:
   179             if (aDataType != EMTPTypeUINT8)
   186             if (aDataType != EMTPTypeUINT8)
   180                 {
   187                 {
   181                 responseCode = EMTPRespCodeInvalidObjectPropFormat;
   188                 responseCode = EMTPRespCodeInvalidObjectPropFormat;
   182                 }
   189                 }
   183             break;            
   190             break;
       
   191         case EMTPObjectPropCodeHidden:
       
   192             if (aDataType != EMTPTypeUINT16)
       
   193                 {
       
   194                 responseCode = EMTPRespCodeInvalidObjectPropFormat;
       
   195                 }
       
   196             break;
   184         default:
   197         default:
   185             responseCode = EMTPRespCodeInvalidObjectPropCode;
   198             responseCode = EMTPRespCodeInvalidObjectPropCode;
   186         }
   199         }
   187     __FLOG(_L8("<< CMTPImageDpSetObjectPropList::CheckPropCode"));
   200     OstTraceFunctionExit0( CMTPIMAGEDPSETOBJECTPROPLIST_CHECKPROPCODE_EXIT );
   188     return responseCode;
   201     return responseCode;
   189     }
   202     }
   190     
   203     
   191 
   204