--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpxplugins/viewplugins/inc/mpxalbumarteditordialog.h Thu Dec 17 08:45:05 2009 +0200
@@ -0,0 +1,370 @@
+/*
+* Copyright (c) 2006 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: Music Player album art editor dialog declaration
+*
+*/
+
+
+#ifndef MPXALBUMARTEDITORDIALOG_H
+#define MPXALBUMARTEDITORDIALOG_H
+
+// INCLUDES
+#include <AknDialog.h>
+#include <mpxcollectionobserver.h>
+#include <mpxcommonframeworkdefs.h>
+#include <AknProgressDialog.h> // MProgressDialogCallback
+
+#include "mpxalbumarteventobserver.h"
+
+// FORWARD DECLARATIONS
+class CMPXAlbumArtEditorDialogCustomControl;
+class CAknTitlePane;
+class CAknNavigationControlContainer;
+class CAknNavigationDecorator;
+class MMPXCollectionUtility;
+class CMPXAlbumArtUtil;
+class CMPXMedia;
+class CMPXMediaArray;
+class CMPXCommonUiHelper;
+
+// CLASS DECLARATION
+
+/**
+ * CMPXAlbumArtEditorDialog dialog class for Changing/Restoring
+ * Album Art
+ */
+NONSHARABLE_CLASS( CMPXAlbumArtEditorDialog ) : public CAknDialog,
+ public MMPXCollectionObserver,
+ public MProgressDialogCallback,
+ public MMPXAlbumArtEventObserver,
+ public MMPXCollectionFindObserver
+ {
+public: // Constructors and destructor
+
+ /**
+ * Symbian OS two-phased constructor
+ * @return MP Album Art Dialog.
+ */
+ IMPORT_C static CMPXAlbumArtEditorDialog* NewL();
+
+ /**
+ * Destructor.
+ */
+ IMPORT_C virtual ~CMPXAlbumArtEditorDialog();
+
+ /**
+ * Parameter passed in from viewframework
+ *
+ * @param aParam Parameter pass in from viewframework.
+ */
+ IMPORT_C void SetParamL( const TDesC* aParam );
+
+private:
+
+ /**
+ * C++ default constructor.
+ */
+ CMPXAlbumArtEditorDialog();
+
+ void ConstructL( TInt aResource );
+
+private: // from base class MMPXCollectionObserver
+
+ /**
+ * Handle collection message.
+ *
+ * @param aMessage Collection message
+ * @param aErr system error code.
+ */
+ void HandleCollectionMessage(
+ CMPXMessage* aMessage, TInt aError );
+
+ /**
+ * Handles the collection entries being opened. Typically called
+ * when client has Open()'d a folder
+ *
+ * @param aEntries collection entries opened
+ * @param aIndex focused entry
+ * @param aComplete ETrue no more entries. EFalse more entries
+ * expected
+ * @param aError error code
+ */
+ void HandleOpenL(
+ const CMPXMedia& aEntries,
+ TInt aIndex, TBool aComplete, TInt aError);
+
+ /**
+ * Handles the item being opened. Typically called
+ * when client has Open()'d an item. Client typically responds by
+ * 'playing' the item via the playlist
+ *
+ * @param aPlaylist collection playlist, owner ship is transfered
+ * @param aError error code
+ */
+ void HandleOpenL( const CMPXCollectionPlaylist& aPlaylist, TInt aError );
+
+ /**
+ * Handle collection media
+ *
+ * @param aMedia media
+ * @param aError error code
+ */
+ void HandleCollectionMediaL(
+ const CMPXMedia& aMedia,
+ TInt aError);
+
+ /**
+ * From MMPXCollectionObserver
+ */
+ void HandleCommandComplete(CMPXCommand* aCommandResult,
+ TInt aError);
+private: // New functions
+
+ /**
+ * Sends request to determine if it's album level
+ * or track level
+ */
+ void GetCurrentModeL();
+
+ /**
+ * Backs up Status Pane.
+ */
+ void BackupPreviousStatusPaneL();
+
+ /**
+ * Restores Previous Status Pane.
+ */
+ void RestorePreviousStatusPaneL();
+
+ /**
+ * Find the components custom control.
+ */
+ CMPXAlbumArtEditorDialogCustomControl *GetAlbumArtEditorDialogCustomControl() const;
+
+ /**
+ * loads album art information from database
+ * @param aShowWaitNote ETrue if the wait note is shown, EFalse otherwise
+ */
+ void LoadAlbumArtL( TBool aShowWaitNote );
+
+ /**
+ * extracts the album art
+ *
+ * @param aMedia media object containing album art info
+ * @param aDismissWaitNoteOnError ETrue to dismiss wait note if error occurs,
+ * EFalse otherwise
+ */
+ void ExtractAlbumArtL( const CMPXMedia& aMedia,
+ TBool aDismissWaitNoteOnError = ETrue );
+
+ /**
+ * control extract of multiple album art
+ */
+ void ExtractMultipleAlbumArtL();
+
+ /**
+ * Saves the updated media
+ *
+ * @param aFileName the file name for the album art
+ * @param aIsRestore ETrue if this is a restore operation,
+ * EFalse if this is a change operation
+ * @return NULL if media is broken, CMPXMedia* ownership if saving is required
+ */
+ CMPXMedia* SaveMediaLC( const TDesC& aFileName, TBool aIsRestore );
+
+ /**
+ * Saves multiple media
+ *
+ * @param aIsRestore ETrue if this is a restore operation,
+ * EFalse if this is a change operation
+ */
+ void SaveMultipleMediaL( TBool aIsRestore );
+
+ /**
+ * Handle save operation complete
+ *
+ * @param aError Error code, if any
+ */
+ void DoHandleOperationCompleteL( TInt aError );
+
+ /**
+ * Handle collection message
+ *
+ * @param aMessage collection message
+ */
+ void DoHandleCollectionMessageL( const CMPXMessage& aMessage );
+
+ /**
+ * Updates a media to the collection
+ * @param aMedia media to update
+ * @param aSync synchronous operation or not
+ */
+ void DoSetCollectionL( CMPXMedia* aMedia, TBool aSync );
+
+ /**
+ * Appends the common attributes to attributes array
+ *
+ * @param aAryAttribute Array to append to
+ */
+ void AppendCommonAttributes( RArray<TMPXAttribute>& aAryAttribute );
+
+private: // Functions from base classes
+
+ /**
+ * From MMPXAlbumArtEventObserver
+ * Handle album art events
+ *
+ * @param aEvent album art event
+ * @param aError error code
+ */
+ void HandleAlbumArtEventL( TMPXAlbumArtEvents aEvent, TInt aError );
+
+ /**
+ * from MMPXCollectionFindObserver
+ * Handle callback for "find" operation
+ * @param aEntries, CMPXMedia to be returned
+ * @param aComplete ETrue no more entries. EFalse more entries
+ * expected
+ * @param aError error code
+ */
+ void HandleFindAllL(const CMPXMedia& aResults,
+ TBool aComplete,TInt aError);
+
+ /**
+ * Process menu command
+ * @param aCommandId command ID
+ */
+ void ProcessCommandL( TInt aCommandId ) ;
+
+ /**
+ * Creates custom control for the dialog
+ * @param aControlType control type
+ */
+ SEikControlInfo CreateCustomControlL( TInt aControlType );
+
+ /**
+ * Initialises the dialog's controls before the dialog is sized and layed out.
+ */
+ void PreLayoutDynInitL();
+
+ /**
+ * This function ALWAYS returns ETrue.
+ * @param aButtonId button ID
+ */
+ TBool OkToExitL( TInt aButtonId );
+
+ /**
+ * Called when key events happen
+ */
+ TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+
+ /**
+ * Dynamically initializes the menu pane.
+ * @param aResourceId resource identifier.
+ * @param aMenuPane menu pane
+ */
+ void DynInitMenuPaneL( TInt aResourceId,
+ CEikMenuPane* aMenuPane );
+
+ /**
+ * Processes menu command.
+ * @param aCommandId menu command
+ */
+ void DoProcessCommandL( TInt aCommandId );
+
+ /**
+ * Returns the number of component controls.
+ */
+ TInt CountComponentControls() const;
+
+ /**
+ * Returns the component control.
+ * @param aIndex index of the component
+ */
+ CCoeControl* ComponentControl(TInt aIndex) const;
+
+ /**
+ * Updates the dialogs navipane.
+ */
+ void UpdateNaviPaneL(const TDesC& aText);
+
+ /**
+ * Required for help.
+ */
+ void GetHelpContext( TCoeHelpContext& aContext ) const;
+
+ /**
+ * From CoeControl.
+ * Handles a change to the control's resources.
+ *
+ * @param aType A message UID value.
+ */
+ void HandleResourceChange( TInt aType );
+
+ /**
+ * From MProgressDialogCallback
+ * Callback method
+ * Get's called when a dialog is dismissed.
+ */
+ void DialogDismissedL( TInt aButtonId );
+
+
+ /**
+ * Callback function
+ * Get called by iAsyncCallNext.
+ */
+ static TInt ExtractNextAlbumArtCallBackL(TAny* aPtr);
+
+ /**
+ * Extract next Album Art
+ * Get called by ExtractNextAlbumArtCallBackL.
+ */
+ void ExtractNextAlbumArtL();
+
+private: // Data
+
+ HBufC* iOrigTitle; // Original title text
+ HBufC* iParam;
+ HBufC* iNewFileName;
+
+ CAknTitlePane* iTitlePane; // Not owned
+ CAknNavigationControlContainer* iNaviPane; // Not owned
+ CAknNavigationDecorator* iNaviLabelPane; // New navi label pane
+
+ MMPXCollectionUtility* iCollectionUtility; // not own
+ CMPXAlbumArtUtil* iMPXUtility; // own
+ CMPXMedia* iMedia;
+ CMPXMedia* iAlbumInfo;
+ CMPXMediaArray* iMediaArray;
+ CMPXCommonUiHelper* iCommonUiHelper;
+
+ TRect iModRect;
+ TInt iResourceOffset; // must be freed
+ TInt iCurrentMediaLOp; // current mediaL operation
+ TInt iCurrentFindAllLOp; // current FindAllL operation
+ TInt iAlbumArtMode;
+ TInt iCurrentAlbumArtIndex;
+
+ TBool iAlbumArtChanged;
+ TBool iIsSaving;
+ TBool iInvalidFileExist;
+ TBool iOpCanceled;
+ CAsyncCallBack* iAsyncCallNext;
+ TBool iFetchingPicture; // To indicate if picture fetching is ongoing
+ };
+
+#endif // MPXALBUMARTEDITORDIALOG_H
+
+// End of File