diff -r 000000000000 -r 3ce708148e4d customization/ScreenSaverAdapter/inc/ScreenSaverAdapter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/customization/ScreenSaverAdapter/inc/ScreenSaverAdapter.h Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,169 @@ +/* +* Copyright (c) 2002 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" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: DM Screensaver Adapter +* +*/ + + + +#ifndef __NSMLScreenSaverAdapter_H__ +#define __NSMLScreenSaverAdapter_H__ + + +#include "TARMDmAdapter.h" + + +const TUint KNSmlDMScreenSaverAdapterImplUid = 0x1020782E; + +// the DDF version must be changed if any changes in DDF structure ( built in DDFStructureL() function ) +_LIT8( KNSmlSCDDFVersion, "1.0" ); + +_LIT8( KNSmlSCTextPlain, "text/plain" ); + +_LIT8( KNSmlCustomizationNodeName, "Customization" ); +_LIT8( KNSmlSCDescription, "The interior object holds all customization objects" ); + +_LIT8( KNSmlSCScreenSavers, "ScreenSavers" ); +_LIT8( KNSmlSCScreenSaversNodeDescription, "ScreenSavers is a common parent node for nodes managing screen savers"); + +_LIT8( KNSmlSCAvailableScreenSaversNodeName, "AvailableScreenSavers" ); +_LIT8( KNSmlSCAvailableScreenSaversNodeDescription, "This node holds the available screen saver placeholders"); + +_LIT8( KNSmlSCActiveScNodeName, "ActiveSc" ); +_LIT8( KNSmlSCActiveScNodeDescription, "This node is a link to the currently active screen saver"); + +_LIT8( KNSmlSCDynamicDescription, "This is a placeholder to screen saver ID identifying a screen saver"); + +_LIT8( KNSmlSCDataNodeName, "Data" ); +_LIT8( KNSmlSCDataNodeDescription, "Replace command will install a screen saver that's in the data field of the command"); + +_LIT8( KNSmlSCIDNodeName, "ID" ); +_LIT8( KNSmlSCIDNodeDescription, "This leaf node holds the ID of the screen saver"); + +_LIT8( KNSmlSCNameNodeName, "Name" ); +_LIT8( KNSmlSCNameNodeDescription, "This leaf node holds the name of the screen saver"); + +_LIT8( KNSmlSCDescriptionNodeName, "Description" ); +_LIT8( KNSmlSCDescriptionNodeDescription, "This leaf node holds the description of the screen saver"); + +_LIT8( KNSmlSCCustomPropertyNodeName, "CustomProperty" ); +_LIT8( KNSmlSCCustomPropertyNodeDescription, "This leaf node holds the custom property value of the screen saver"); + +_LIT8( KNSmlSCVersionNodeName, "Version" ); +_LIT8( KNSmlSCVersionNodeDescription, "This leaf node holds the version of the screen saver"); + +_LIT8( KNSmlSCInstallOptionsNodeName, "InstallOptions" ); +_LIT8( KNSmlSCInstallOptionsNodeDescription, "Holds the install options for next install"); + +_LIT8( KNSmlSCActiveScRef, "Customization/ScreenSavers/AvailableScreenSavers/" ); + +_LIT8( KSlash, "/" ); + + +class CScreenSaverList; + +// ------------------------------------------------------------------------------------------------ +// CNSmlDmEmailAdapter +// ------------------------------------------------------------------------------------------------ +class CScreenSaverAdapter : public CTARMDmAdapter + { +public: + static CScreenSaverAdapter* NewL(MSmlDmCallback* aDmCallback ); + static CScreenSaverAdapter* NewLC(MSmlDmCallback* aDmCallback ); + + virtual ~CScreenSaverAdapter(); + + // Implementation of MSmlDmAdapter interface + // ========================================= + void DDFVersionL( CBufBase& aVersion ); + void DDFStructureL( MSmlDmDDFObject& aDDF ); + + void _UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aObject, const TDesC8& aType, TInt aStatusRef ); + void _UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType, TInt aStatusRef ); + void _DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, TInt aStatusRef ); + void _FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef ); + void _FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aType, TInt aResultsRef, TInt aStatusRef ); + void _ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, const CArrayFix& aPreviousURISegmentList, TInt aResultsRef, TInt aStatusRef ); + + void _AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, TInt aStatusRef ); + void _ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aArgument, const TDesC8& aType, TInt aStatusRef ); + void _ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, RWriteStream*& aStream, const TDesC8& aType, TInt aStatusRef ); + void _CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, const TDesC8& aSourceURI, const TDesC8& aSourceLUID, const TDesC8& aType, TInt aStatusRef ); + + void StartAtomicL(); + void CommitAtomicL(); + void RollbackAtomicL(); + TBool StreamingSupport( TInt& aItemSize ); +#ifdef __TARM_SYMBIAN_CONVERGENCY + virtual void StreamCommittedL( RWriteStream& aStream ); +#else + virtual void StreamCommittedL(); +#endif + void CompleteOutstandingCmdsL(); + + // PolicyCheck, resource name +//#ifdef __SAP_POLICY_MANAGEMENT + TPtrC8 PolicyRequestResourceL( const TDesC8& aURI ); +//#endif + +protected: + // Other + void GetLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, const TDesC8& aType, CBufBase& aResult, TError& aRet ); + +private: + void ConstructL( ); + CScreenSaverAdapter( MSmlDmCallback* aDmCallback ); + + enum TNodeId + { + ENodeUnknown, + + ENodeCustomization, + ENodeScreenSavers, + + ENodeAvailableScreenSavers, + ENodeActiveSc, + + ENodeAvailableScreenSaversX, + + ENodeData, + ENodeID, + ENodeName, + ENodeDescription, + ENodeCustomProperty, + ENodeVersion, + ENodeInstallOptions, + + ENodeLast + }; + + TNodeId NodeId( const TDesC8& aURI ); + + void FillNodeInfoL( MSmlDmDDFObject& aNode,TSmlDmAccessTypes aAccTypes,MSmlDmDDFObject::TOccurence aOccurrence, MSmlDmDDFObject::TScope aScope, MSmlDmDDFObject::TDFFormat aFormat,const TDesC8& aDescription ); + TBool IsImage(const TDesC8& aMime) ; + + + void InstalledPackagesL( RArray< TUid >& aUids ); +// void InstalledScreenSaversL( RArray< TUid >& aUids ); + void InstalledScreenSaversL( CDesCArray& aIds ); + +private: + + MSmlDmCallback* iCallBack; + CScreenSaverList* iScreenSavers; + TBool iScreensaverOff; + +}; + +#endif // __NSMLScreenSaverAdapter_H__