--- /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 <AiwServiceIfMenu.h>
+
+// 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<TInt>* iSelectionArray;
+
+ /// Own: Array for mapping of original indexes in Profile name array
+ /// to Profile IDs
+ CArrayFixFlat<TInt>* iIndexToIdArray;
+
+ /// Resource offset
+ TInt iResourceOffset;
+
+ /// Maximum allowed size for tone files:
+ TInt iMaxSize;
+
+ /// Is file video:
+ TBool iIsVideo;
+
+ };
+
+#endif // __CPROFILEAIWPROVIDER_H__