diff -r 000000000000 -r ca436256272f profilesapplication/Profiles/ProfileAiwProvider/src/CProfileAiwProvider.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/profilesapplication/Profiles/ProfileAiwProvider/src/CProfileAiwProvider.h Thu Dec 17 08:45:58 2009 +0200 @@ -0,0 +1,216 @@ +/* +* Copyright (c) 2002-2004 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: Profile Aiw service provider. +* +*/ + + +#ifndef __CPROFILEAIWPROVIDER_H__ +#define __CPROFILEAIWPROVIDER_H__ + +// INTERNAL INCLUDES + +// EXTERNAL INCLUDES +#include + +// FORWARD DECLARATIONS +class CProfileToneHandler; +class CProfileEngineHandler; +class CAknPopupList; + +// CLASS DECLARATION + +/** +* Profiles AIW Provider +* AIW Provider for seting files as ringingtone +* +* @lib ProfileSettingsView.lib +* @since 3.1 +*/ + +NONSHARABLE_CLASS( CProfileAiwProvider ) + : public CAiwServiceIfMenu + { + public: // Constructors and destructors + + /** + * Two-phase static constructor + * @return A pointer to a fully constructed CProfileAiwProvider instance + */ + static CProfileAiwProvider* NewL(); + + /** + * Destructor + */ + virtual ~CProfileAiwProvider(); + + private: // From CAiwServiceIfMenu + + void InitialiseL( MAiwNotifyCallback& aFrameworkCallback, + const RCriteriaArray& aInterest ); + + void HandleServiceCmdL( const TInt& aCmdId, + const CAiwGenericParamList& aInParamList, + CAiwGenericParamList& aOutParamList, + TUint aCmdOptions = 0, + const MAiwNotifyCallback* aCallback = NULL ); + + void InitializeMenuPaneL( CAiwMenuPane& aMenuPane, + TInt aIndex, + TInt aCascadeId, + const CAiwGenericParamList& aInParamList ); + + void HandleMenuCmdL( TInt aMenuCmdId, + const CAiwGenericParamList& aInParamList, + CAiwGenericParamList& aOutParamList, + TUint aCmdOptions = 0, + const MAiwNotifyCallback* aCallback = NULL ); + + private: // Constructors and destructors + + /** + * Constructor + */ + CProfileAiwProvider(); + + /** + * Second phase constructor + */ + void ConstructL(); + + private: // New functions + + /* + * Reads AIW parameters + * @param aParamList Generic parameterlist + * @param aParamType Generic parameterID + * @return Parameter in text form + */ + TPtrC GetAiwParamAsDescriptor( + const CAiwGenericParamList& aParamList, + TGenericParamId aParamType); + /* + * Checks MIME type + * @param aMimeTypeString MIME type to be checked + * @return Returns ETrue if MIME type is valid ( audio or video ) + */ + TBool CheckMimeTypeL(const TDesC& aMimeTypeString); + + /* + * Launches multiselection popup listbox containing profile names + * @param aPopupTitle Listbox title + * @param aFilename Filename to be assigned as ringing tone + */ + void LaunchL( const TDesC& aPopupTitle, const TDesC& aFileName ); + /* + * Populates listbox + * @param aItems Pointer to constructed listbox item array + */ + void PopulateListBoxL( CDesCArrayFlat* aItems ); + /* + * Performs the setting of ringing tone through ProfileSettingsView API + * @param aFileName Filename to be assigned as ringing tone + * @param aChangeAllProfiles Boolean value defines whether all + * profiles are changed + */ + void PerformProfileChangeL( + const TDesC& aFileName, const TBool& aChangeAllProfiles ) const; + + /** + * Checks that the size of the tone file does not exceed the set limit + * (if one has been set). + * @param aFileName the name of the file to be assigned as ringing tone + * @return ETrue if the size of the file does not rule the file out to + * be set as ringing tone + */ + TBool IsToneFileSizeOkL( const TDesC& aFile ); + + /** + * Displays an error note. + * @param aResourceId Resource ID to a TBUF resource. + */ + void ShowErrorNoteL( const TDesC& aErrorText ) const; + + /** + * Checks if file is WMDRM protected. + * @param aFileName Name of the file to be checked. + * @return ETrue if file is WMDRM protected, EFalse otherwise. + */ + TBool IsFileWMDRMProtectedL( const TDesC& aFileName ) const; + + /** + * Checks if file is located on a remote drive and copies it if so. + * @param aFileName Name of the file to be checked/copied. + * @param aTarget File name on device after copying. + * @return ETrue if file is remote, EFalse otherwise. + */ + TBool CopyIfRemoteL( const TDesC& aFileName, TFileName& aTarget ) const; + + private: // Data + + /// Own: Profile tone handler + CProfileToneHandler* iProfileToneHandler; + + /// Own: Engine handler. + CProfileEngineHandler* iEngineHandler; + + /// Ref: AIWCallback + MAiwNotifyCallback* iConstNotifyCallback; + + /// Own: WMA Error text + HBufC* iWMAErrorText; + + /// Own: MP4 Error text + HBufC* iMP4ErrorText; + + /// Own: Unprotected Error text + HBufC* iUnprotectedErrorText; + + /// Own: Not supported Error text + HBufC* iNotSupportedErrorText; + + /// Own: Popup + CAknPopupList* iPopup; + + /// Own: Popup title text + HBufC* iPopupTitle; + + /// Own: Changed profile information text + HBufC* iChangedProfilesText; + + /// Own: File was copied and set + HBufC* iCopiedAndChangedText; + + /// Own: Tone file size too big error text + HBufC* iSizeErrorText; + + /// Own: ListBox selection array + const CArrayFix* iSelectionArray; + + /// Own: Array for mapping of original indexes in Profile name array + /// to Profile IDs + CArrayFixFlat* iIndexToIdArray; + + /// Resource offset + TInt iResourceOffset; + + /// Maximum allowed size for tone files: + TInt iMaxSize; + + /// Is file video: + TBool iIsVideo; + + }; + +#endif // __CPROFILEAIWPROVIDER_H__