videoplayer_plat/video_player_file_details_dialog_api/inc/MPFileDetailsDialog.h
changeset 0 96612d01cf9f
child 1 6711b85517b7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayer_plat/video_player_file_details_dialog_api/inc/MPFileDetailsDialog.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,554 @@
+/*
+* 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 the License "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:   Declares media file details dialog*
+*/
+
+
+// Version : %version: 6 %
+
+
+
+
+#ifndef MPFILEDETAILSDIALOG_H
+#define MPFILEDETAILSDIALOG_H
+
+//  INCLUDES
+#include <aknPopup.h>
+#ifdef SYMBIAN_BUILD_GCE
+#include <videoplayer2.h>
+#else
+#include <videoplayer.h>
+#endif //SYMBIAN_BUILD_GCE
+#include <mdaaudiosampleplayer.h>
+#include <MPFileDetails.h>
+
+// FORWARD DECLARATIONS
+class CAknDoublePopupMenuStyleListBox;
+class CMPPopupList;
+
+
+// CLASS DECLARATIONS
+
+/**
+*  CMPFileDetailsDialog
+*
+*  @lib MPFileDetailsDialog.lib
+*  @since 2.0
+*/
+class CMPFileDetailsDialog : public CBase, public MMdaAudioPlayerCallback,
+                             public MVideoPlayerUtilityObserver
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        IMPORT_C static CMPFileDetailsDialog* NewL();
+
+        /**
+        * Destructor.
+        */
+        IMPORT_C virtual ~CMPFileDetailsDialog();
+
+    public: // New functions
+
+        /**
+        * Shows file details to user in dialog.
+        * @since 2.0
+        * @param aFileName Media file which details are shown to user.
+        * @leaves Leaves with KErrNotSupported if file is not valid media file.
+        * @return void
+        */
+        IMPORT_C void ExecuteLD(const TDesC& aFileName);
+
+        /**
+        * Shows file details to user in dialog.
+        * @since 2.0
+        * @param aFileDetails File details which are shown to user.
+        * @return void
+        */
+        IMPORT_C void ExecuteLD(CMPFileDetails* aFileDetails);
+        
+        /** 
+        * Attempts to force the dialog to close 
+        * @since 5.0 
+        * @return void 
+        */ 
+        IMPORT_C void Close(); 
+
+    public: // Functions from MMdaAudioPlayerCallback
+
+        /** @see MMdaAudioPlayerCallback::MapcInitComplete() */
+        void MapcInitComplete(TInt aError,
+                const TTimeIntervalMicroSeconds& aDuration);
+
+        /** @see MMdaAudioPlayerCallback::MapcPlayComplete */
+        void MapcPlayComplete(TInt aError);
+
+    public: // Functions from MVideoPlayerUtilityObserver
+
+        /** @see MVideoPlayerUtilityObserver::MvpuoOpenComplete */
+        void MvpuoOpenComplete(TInt aError);
+
+        /** @see MVideoPlayerUtilityObserver::MvpuoPrepareComplete */
+        void MvpuoPrepareComplete(TInt aError);
+
+        /** @see MVideoPlayerUtilityObserver::MvpuoFrameReady */
+        void MvpuoFrameReady(CFbsBitmap& aFrame,TInt aError);
+
+        /** @see MVideoPlayerUtilityObserver::MvpuoPlayComplete */
+        void MvpuoPlayComplete(TInt aError);
+
+        /** @see MVideoPlayerUtilityObserver::MvpuoEvent */
+        void MvpuoEvent(const TMMFEvent& aEvent);
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CMPFileDetailsDialog();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    private: // New functions
+
+        /**
+        * Loads MPFileDetails.rsc resource file.
+        * @since 2.0
+        * @return void
+        */
+        void LoadResourcesL();
+
+        /**
+        * Unloads MPFileDetails.rsc resource file.
+        * @since 2.0
+        * @return void
+        */
+        void UnLoadResources();
+
+        /**
+        * Sets title for CAknPopupList.
+        * @since 2.0
+        * @param aPopupList CAknPopupList which title is modified
+        * @return void
+        */
+        void SetTitleL( CAknPopupList* aPopupList );
+
+        /**
+        * Fills listbox with file details information.
+        * @since 2.0
+        * @param aFileDetails File details
+        * @return void
+        */
+        void FillListBoxL( CMPFileDetails* aFileDetails );
+
+        /**
+        * Adds header and value to list.
+        * @since 2.0
+        * @param aHeading Heading
+        * @param aValue Value
+        * @param aItemArray Array where value and header are added.
+        * @return void
+        */
+        void AddItemToListBoxL( const TDesC& aHeading, const TDesC& aValue,
+                CDesCArray* aItemArray );
+
+        /**
+        * Constructs clip title item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeTitleItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs clip url item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeUrlItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs media format item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeFormatItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs video resolution item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeResolutionItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs media duration item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeDurationItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs bitrate item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeBitrateItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs samplerate item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeSamplerateItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs file size item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeSizeItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs date item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeDateItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs time item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeTimeItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs upload status item.
+        * @since 2.8
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeUploadStatusL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs copyright item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeCopyrightItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs original artist of the track item.
+        * @since 3.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeOriginalArtistItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs track position in the album to which
+        * the track belongs item.
+        * @since 3.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeAlbumTrackItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs Genre information item.
+        * @since 3.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeGenreItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs Composer information item.
+        * @since 3.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeComposerItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs URL from which more information about
+        * the track can be found item.
+        * @since 3.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeAudioFileWebPageItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs comment someone has added about the track item.
+        * @since 3.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeCommentItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs Artist item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeArtistItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs Album item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeAlbumItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Constructs Year item.
+        * @since 2.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeYearItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Converts between arabic-indic digits and european digits.
+        * @since 2.0
+        * @param aText numbers to be converted.
+        * @return void
+        */
+        void LanguageSpecificNumberConversion( TDes& aText) const;
+
+        /**
+        * Fetches file details from the meta data.
+        * @since 2.1
+        * @param aFileName Name of the audio file.
+        * @param aFileDetails Pointer to the details to be fetched.
+        * @return void
+        */
+        void FetchMetaDataL( const TDesC& aFileName,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Fetches drm file details.
+        * @since 2.6
+        * @param aFileName Name of the audio file.
+        * @param aFileDetails Pointer to the details to be fetched.
+        * @return void
+        */
+        void FetchDrmDataL( const TDesC& aFileName,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Display DRM heading info
+        * @since 9.1
+        * @param aItemArray Array where constructed item is put.
+        * @return void
+        */
+        void DisplayDrmHeadingInfoL( CDesCArray* aItemArray );
+
+        /**
+        * Makes provider item.
+        * @since 3.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeProviderItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Makes description item.
+        * @since 3.0
+        * @param aItemArray Array where constructed item is put.
+        * @param aFileDetails File details.
+        * @return void
+        */
+        void MakeDescriptionItemL( CDesCArray* aItemArray,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Fetches additional meta data.
+        * @since 3.0
+        * @param aFileName Name of the audio file.
+        * @param aFileDetails Pointer to the details to be fetched.
+        * @return None
+        */
+        void FetchAdditionalMetaDataL( const TDesC& aFileName,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Fetches DCF meta data.
+        * @since 3.0
+        * @param aFileName Name of the audio file.
+        * @param aFileDetails Pointer to the details to be fetched.
+        * @return None
+        */
+        void FetchDCFHeaderDataL( const TDesC& aFileName,
+                CMPFileDetails* aFileDetails );
+
+        /**
+        * Checks whether file is a 3gp/mp4 file.
+        * @param    aFileName: Name of the file
+        * @param    aFileDetails Pointer to the details to be fetched.
+        * @return   ETrue if file is 3gp file
+        */
+        TBool Is3gpFile( const TDesC& aFileName,
+                         CMPFileDetails* aFileDetails );
+
+        /**
+        * Sets file detail in buffer.
+        * @param    aBuf: Buffer where to store
+        * @param    aDetail: Details which to store
+        */
+        void SetFileDetailL( HBufC*& aBuf, const TDesC& aDetail );
+        void SetFileDetailL( HBufC*& aBuf, const TDesC8& aDetail );
+
+    private:    // Data
+        CAknDoublePopupMenuStyleListBox* iListBox;
+        CDesCArrayFlat* iGenres;
+        CMPPopupList* iPopupList;
+
+        TInt iResourceFileOffset;
+        CActiveSchedulerWait iWait;
+        TInt iResult;        
+    };
+
+
+/**
+*  CMPDummyController
+*  Dummy controller for CVideoPlayerUtility.
+*  Absorbs all the key presses while opening video clip.
+*
+*  @lib MPFileDetailsDialog.lib
+*  @since 2.0
+*/
+class CMPDummyController : public CCoeControl
+    {
+    public:  // Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CMPDummyController* NewLC();
+
+        /**
+        * Destructor.
+        */
+        virtual ~CMPDummyController();
+
+    public: // New functions
+
+        /**
+        * Controls window handle.
+        * @since 2.0
+        * @return Controllers RWindow
+        */
+        inline RWindow& GetClientWindow();
+
+        /**
+        * Controls WsSession.
+        * @since 2.0
+        * @return Controllers RWsSession
+        */
+        inline RWsSession& GetClientWsSession();
+
+        /**
+        * Controls ScreenDevice
+        * @since 2.0
+        * @return Controllers CWsScreenDevice
+        */
+        inline CWsScreenDevice& GetScreenDevice();
+
+    private: // Functions from CCoeControl
+
+        /** @see CCoeControl::OfferKeyEventL() */
+        virtual TKeyResponse OfferKeyEventL( const TKeyEvent& /*aKeyEvent*/,
+                TEventCode /*aType*/ );
+
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CMPDummyController();
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL();
+
+    };
+
+#endif      // MPFILEDETAILSDIALOG_H
+
+// End of File