videoplayer_plat/video_player_file_details_dialog_api/inc/MPFileDetailsDialog.h
changeset 0 96612d01cf9f
child 1 6711b85517b7
equal deleted inserted replaced
-1:000000000000 0:96612d01cf9f
       
     1 /*
       
     2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   Declares media file details dialog*
       
    15 */
       
    16 
       
    17 
       
    18 // Version : %version: 6 %
       
    19 
       
    20 
       
    21 
       
    22 
       
    23 #ifndef MPFILEDETAILSDIALOG_H
       
    24 #define MPFILEDETAILSDIALOG_H
       
    25 
       
    26 //  INCLUDES
       
    27 #include <aknPopup.h>
       
    28 #ifdef SYMBIAN_BUILD_GCE
       
    29 #include <videoplayer2.h>
       
    30 #else
       
    31 #include <videoplayer.h>
       
    32 #endif //SYMBIAN_BUILD_GCE
       
    33 #include <mdaaudiosampleplayer.h>
       
    34 #include <MPFileDetails.h>
       
    35 
       
    36 // FORWARD DECLARATIONS
       
    37 class CAknDoublePopupMenuStyleListBox;
       
    38 class CMPPopupList;
       
    39 
       
    40 
       
    41 // CLASS DECLARATIONS
       
    42 
       
    43 /**
       
    44 *  CMPFileDetailsDialog
       
    45 *
       
    46 *  @lib MPFileDetailsDialog.lib
       
    47 *  @since 2.0
       
    48 */
       
    49 class CMPFileDetailsDialog : public CBase, public MMdaAudioPlayerCallback,
       
    50                              public MVideoPlayerUtilityObserver
       
    51     {
       
    52     public:  // Constructors and destructor
       
    53 
       
    54         /**
       
    55         * Two-phased constructor.
       
    56         */
       
    57         IMPORT_C static CMPFileDetailsDialog* NewL();
       
    58 
       
    59         /**
       
    60         * Destructor.
       
    61         */
       
    62         IMPORT_C virtual ~CMPFileDetailsDialog();
       
    63 
       
    64     public: // New functions
       
    65 
       
    66         /**
       
    67         * Shows file details to user in dialog.
       
    68         * @since 2.0
       
    69         * @param aFileName Media file which details are shown to user.
       
    70         * @leaves Leaves with KErrNotSupported if file is not valid media file.
       
    71         * @return void
       
    72         */
       
    73         IMPORT_C void ExecuteLD(const TDesC& aFileName);
       
    74 
       
    75         /**
       
    76         * Shows file details to user in dialog.
       
    77         * @since 2.0
       
    78         * @param aFileDetails File details which are shown to user.
       
    79         * @return void
       
    80         */
       
    81         IMPORT_C void ExecuteLD(CMPFileDetails* aFileDetails);
       
    82         
       
    83         /** 
       
    84         * Attempts to force the dialog to close 
       
    85         * @since 5.0 
       
    86         * @return void 
       
    87         */ 
       
    88         IMPORT_C void Close(); 
       
    89 
       
    90     public: // Functions from MMdaAudioPlayerCallback
       
    91 
       
    92         /** @see MMdaAudioPlayerCallback::MapcInitComplete() */
       
    93         void MapcInitComplete(TInt aError,
       
    94                 const TTimeIntervalMicroSeconds& aDuration);
       
    95 
       
    96         /** @see MMdaAudioPlayerCallback::MapcPlayComplete */
       
    97         void MapcPlayComplete(TInt aError);
       
    98 
       
    99     public: // Functions from MVideoPlayerUtilityObserver
       
   100 
       
   101         /** @see MVideoPlayerUtilityObserver::MvpuoOpenComplete */
       
   102         void MvpuoOpenComplete(TInt aError);
       
   103 
       
   104         /** @see MVideoPlayerUtilityObserver::MvpuoPrepareComplete */
       
   105         void MvpuoPrepareComplete(TInt aError);
       
   106 
       
   107         /** @see MVideoPlayerUtilityObserver::MvpuoFrameReady */
       
   108         void MvpuoFrameReady(CFbsBitmap& aFrame,TInt aError);
       
   109 
       
   110         /** @see MVideoPlayerUtilityObserver::MvpuoPlayComplete */
       
   111         void MvpuoPlayComplete(TInt aError);
       
   112 
       
   113         /** @see MVideoPlayerUtilityObserver::MvpuoEvent */
       
   114         void MvpuoEvent(const TMMFEvent& aEvent);
       
   115 
       
   116     private:
       
   117 
       
   118         /**
       
   119         * C++ default constructor.
       
   120         */
       
   121         CMPFileDetailsDialog();
       
   122 
       
   123         /**
       
   124         * By default Symbian 2nd phase constructor is private.
       
   125         */
       
   126         void ConstructL();
       
   127 
       
   128     private: // New functions
       
   129 
       
   130         /**
       
   131         * Loads MPFileDetails.rsc resource file.
       
   132         * @since 2.0
       
   133         * @return void
       
   134         */
       
   135         void LoadResourcesL();
       
   136 
       
   137         /**
       
   138         * Unloads MPFileDetails.rsc resource file.
       
   139         * @since 2.0
       
   140         * @return void
       
   141         */
       
   142         void UnLoadResources();
       
   143 
       
   144         /**
       
   145         * Sets title for CAknPopupList.
       
   146         * @since 2.0
       
   147         * @param aPopupList CAknPopupList which title is modified
       
   148         * @return void
       
   149         */
       
   150         void SetTitleL( CAknPopupList* aPopupList );
       
   151 
       
   152         /**
       
   153         * Fills listbox with file details information.
       
   154         * @since 2.0
       
   155         * @param aFileDetails File details
       
   156         * @return void
       
   157         */
       
   158         void FillListBoxL( CMPFileDetails* aFileDetails );
       
   159 
       
   160         /**
       
   161         * Adds header and value to list.
       
   162         * @since 2.0
       
   163         * @param aHeading Heading
       
   164         * @param aValue Value
       
   165         * @param aItemArray Array where value and header are added.
       
   166         * @return void
       
   167         */
       
   168         void AddItemToListBoxL( const TDesC& aHeading, const TDesC& aValue,
       
   169                 CDesCArray* aItemArray );
       
   170 
       
   171         /**
       
   172         * Constructs clip title item.
       
   173         * @since 2.0
       
   174         * @param aItemArray Array where constructed item is put.
       
   175         * @param aFileDetails File details.
       
   176         * @return void
       
   177         */
       
   178         void MakeTitleItemL( CDesCArray* aItemArray,
       
   179                 CMPFileDetails* aFileDetails );
       
   180 
       
   181         /**
       
   182         * Constructs clip url item.
       
   183         * @since 2.0
       
   184         * @param aItemArray Array where constructed item is put.
       
   185         * @param aFileDetails File details.
       
   186         * @return void
       
   187         */
       
   188         void MakeUrlItemL( CDesCArray* aItemArray,
       
   189                 CMPFileDetails* aFileDetails );
       
   190 
       
   191         /**
       
   192         * Constructs media format item.
       
   193         * @since 2.0
       
   194         * @param aItemArray Array where constructed item is put.
       
   195         * @param aFileDetails File details.
       
   196         * @return void
       
   197         */
       
   198         void MakeFormatItemL( CDesCArray* aItemArray,
       
   199                 CMPFileDetails* aFileDetails );
       
   200 
       
   201         /**
       
   202         * Constructs video resolution item.
       
   203         * @since 2.0
       
   204         * @param aItemArray Array where constructed item is put.
       
   205         * @param aFileDetails File details.
       
   206         * @return void
       
   207         */
       
   208         void MakeResolutionItemL( CDesCArray* aItemArray,
       
   209                 CMPFileDetails* aFileDetails );
       
   210 
       
   211         /**
       
   212         * Constructs media duration item.
       
   213         * @since 2.0
       
   214         * @param aItemArray Array where constructed item is put.
       
   215         * @param aFileDetails File details.
       
   216         * @return void
       
   217         */
       
   218         void MakeDurationItemL( CDesCArray* aItemArray,
       
   219                 CMPFileDetails* aFileDetails );
       
   220 
       
   221         /**
       
   222         * Constructs bitrate item.
       
   223         * @since 2.0
       
   224         * @param aItemArray Array where constructed item is put.
       
   225         * @param aFileDetails File details.
       
   226         * @return void
       
   227         */
       
   228         void MakeBitrateItemL( CDesCArray* aItemArray,
       
   229                 CMPFileDetails* aFileDetails );
       
   230 
       
   231         /**
       
   232         * Constructs samplerate item.
       
   233         * @since 2.0
       
   234         * @param aItemArray Array where constructed item is put.
       
   235         * @param aFileDetails File details.
       
   236         * @return void
       
   237         */
       
   238         void MakeSamplerateItemL( CDesCArray* aItemArray,
       
   239                 CMPFileDetails* aFileDetails );
       
   240 
       
   241         /**
       
   242         * Constructs file size item.
       
   243         * @since 2.0
       
   244         * @param aItemArray Array where constructed item is put.
       
   245         * @param aFileDetails File details.
       
   246         * @return void
       
   247         */
       
   248         void MakeSizeItemL( CDesCArray* aItemArray,
       
   249                 CMPFileDetails* aFileDetails );
       
   250 
       
   251         /**
       
   252         * Constructs date item.
       
   253         * @since 2.0
       
   254         * @param aItemArray Array where constructed item is put.
       
   255         * @param aFileDetails File details.
       
   256         * @return void
       
   257         */
       
   258         void MakeDateItemL( CDesCArray* aItemArray,
       
   259                 CMPFileDetails* aFileDetails );
       
   260 
       
   261         /**
       
   262         * Constructs time item.
       
   263         * @since 2.0
       
   264         * @param aItemArray Array where constructed item is put.
       
   265         * @param aFileDetails File details.
       
   266         * @return void
       
   267         */
       
   268         void MakeTimeItemL( CDesCArray* aItemArray,
       
   269                 CMPFileDetails* aFileDetails );
       
   270 
       
   271         /**
       
   272         * Constructs upload status item.
       
   273         * @since 2.8
       
   274         * @param aItemArray Array where constructed item is put.
       
   275         * @param aFileDetails File details.
       
   276         * @return void
       
   277         */
       
   278         void MakeUploadStatusL( CDesCArray* aItemArray,
       
   279                 CMPFileDetails* aFileDetails );
       
   280 
       
   281         /**
       
   282         * Constructs copyright item.
       
   283         * @since 2.0
       
   284         * @param aItemArray Array where constructed item is put.
       
   285         * @param aFileDetails File details.
       
   286         * @return void
       
   287         */
       
   288         void MakeCopyrightItemL( CDesCArray* aItemArray,
       
   289                 CMPFileDetails* aFileDetails );
       
   290 
       
   291         /**
       
   292         * Constructs original artist of the track item.
       
   293         * @since 3.0
       
   294         * @param aItemArray Array where constructed item is put.
       
   295         * @param aFileDetails File details.
       
   296         * @return void
       
   297         */
       
   298         void MakeOriginalArtistItemL( CDesCArray* aItemArray,
       
   299                 CMPFileDetails* aFileDetails );
       
   300 
       
   301         /**
       
   302         * Constructs track position in the album to which
       
   303         * the track belongs item.
       
   304         * @since 3.0
       
   305         * @param aItemArray Array where constructed item is put.
       
   306         * @param aFileDetails File details.
       
   307         * @return void
       
   308         */
       
   309         void MakeAlbumTrackItemL( CDesCArray* aItemArray,
       
   310                 CMPFileDetails* aFileDetails );
       
   311 
       
   312         /**
       
   313         * Constructs Genre information item.
       
   314         * @since 3.0
       
   315         * @param aItemArray Array where constructed item is put.
       
   316         * @param aFileDetails File details.
       
   317         * @return void
       
   318         */
       
   319         void MakeGenreItemL( CDesCArray* aItemArray,
       
   320                 CMPFileDetails* aFileDetails );
       
   321 
       
   322         /**
       
   323         * Constructs Composer information item.
       
   324         * @since 3.0
       
   325         * @param aItemArray Array where constructed item is put.
       
   326         * @param aFileDetails File details.
       
   327         * @return void
       
   328         */
       
   329         void MakeComposerItemL( CDesCArray* aItemArray,
       
   330                 CMPFileDetails* aFileDetails );
       
   331 
       
   332         /**
       
   333         * Constructs URL from which more information about
       
   334         * the track can be found item.
       
   335         * @since 3.0
       
   336         * @param aItemArray Array where constructed item is put.
       
   337         * @param aFileDetails File details.
       
   338         * @return void
       
   339         */
       
   340         void MakeAudioFileWebPageItemL( CDesCArray* aItemArray,
       
   341                 CMPFileDetails* aFileDetails );
       
   342 
       
   343         /**
       
   344         * Constructs comment someone has added about the track item.
       
   345         * @since 3.0
       
   346         * @param aItemArray Array where constructed item is put.
       
   347         * @param aFileDetails File details.
       
   348         * @return void
       
   349         */
       
   350         void MakeCommentItemL( CDesCArray* aItemArray,
       
   351                 CMPFileDetails* aFileDetails );
       
   352 
       
   353         /**
       
   354         * Constructs Artist item.
       
   355         * @since 2.0
       
   356         * @param aItemArray Array where constructed item is put.
       
   357         * @param aFileDetails File details.
       
   358         * @return void
       
   359         */
       
   360         void MakeArtistItemL( CDesCArray* aItemArray,
       
   361                 CMPFileDetails* aFileDetails );
       
   362 
       
   363         /**
       
   364         * Constructs Album item.
       
   365         * @since 2.0
       
   366         * @param aItemArray Array where constructed item is put.
       
   367         * @param aFileDetails File details.
       
   368         * @return void
       
   369         */
       
   370         void MakeAlbumItemL( CDesCArray* aItemArray,
       
   371                 CMPFileDetails* aFileDetails );
       
   372 
       
   373         /**
       
   374         * Constructs Year item.
       
   375         * @since 2.0
       
   376         * @param aItemArray Array where constructed item is put.
       
   377         * @param aFileDetails File details.
       
   378         * @return void
       
   379         */
       
   380         void MakeYearItemL( CDesCArray* aItemArray,
       
   381                 CMPFileDetails* aFileDetails );
       
   382 
       
   383         /**
       
   384         * Converts between arabic-indic digits and european digits.
       
   385         * @since 2.0
       
   386         * @param aText numbers to be converted.
       
   387         * @return void
       
   388         */
       
   389         void LanguageSpecificNumberConversion( TDes& aText) const;
       
   390 
       
   391         /**
       
   392         * Fetches file details from the meta data.
       
   393         * @since 2.1
       
   394         * @param aFileName Name of the audio file.
       
   395         * @param aFileDetails Pointer to the details to be fetched.
       
   396         * @return void
       
   397         */
       
   398         void FetchMetaDataL( const TDesC& aFileName,
       
   399                 CMPFileDetails* aFileDetails );
       
   400 
       
   401         /**
       
   402         * Fetches drm file details.
       
   403         * @since 2.6
       
   404         * @param aFileName Name of the audio file.
       
   405         * @param aFileDetails Pointer to the details to be fetched.
       
   406         * @return void
       
   407         */
       
   408         void FetchDrmDataL( const TDesC& aFileName,
       
   409                 CMPFileDetails* aFileDetails );
       
   410 
       
   411         /**
       
   412         * Display DRM heading info
       
   413         * @since 9.1
       
   414         * @param aItemArray Array where constructed item is put.
       
   415         * @return void
       
   416         */
       
   417         void DisplayDrmHeadingInfoL( CDesCArray* aItemArray );
       
   418 
       
   419         /**
       
   420         * Makes provider item.
       
   421         * @since 3.0
       
   422         * @param aItemArray Array where constructed item is put.
       
   423         * @param aFileDetails File details.
       
   424         * @return void
       
   425         */
       
   426         void MakeProviderItemL( CDesCArray* aItemArray,
       
   427                 CMPFileDetails* aFileDetails );
       
   428 
       
   429         /**
       
   430         * Makes description item.
       
   431         * @since 3.0
       
   432         * @param aItemArray Array where constructed item is put.
       
   433         * @param aFileDetails File details.
       
   434         * @return void
       
   435         */
       
   436         void MakeDescriptionItemL( CDesCArray* aItemArray,
       
   437                 CMPFileDetails* aFileDetails );
       
   438 
       
   439         /**
       
   440         * Fetches additional meta data.
       
   441         * @since 3.0
       
   442         * @param aFileName Name of the audio file.
       
   443         * @param aFileDetails Pointer to the details to be fetched.
       
   444         * @return None
       
   445         */
       
   446         void FetchAdditionalMetaDataL( const TDesC& aFileName,
       
   447                 CMPFileDetails* aFileDetails );
       
   448 
       
   449         /**
       
   450         * Fetches DCF meta data.
       
   451         * @since 3.0
       
   452         * @param aFileName Name of the audio file.
       
   453         * @param aFileDetails Pointer to the details to be fetched.
       
   454         * @return None
       
   455         */
       
   456         void FetchDCFHeaderDataL( const TDesC& aFileName,
       
   457                 CMPFileDetails* aFileDetails );
       
   458 
       
   459         /**
       
   460         * Checks whether file is a 3gp/mp4 file.
       
   461         * @param    aFileName: Name of the file
       
   462         * @param    aFileDetails Pointer to the details to be fetched.
       
   463         * @return   ETrue if file is 3gp file
       
   464         */
       
   465         TBool Is3gpFile( const TDesC& aFileName,
       
   466                          CMPFileDetails* aFileDetails );
       
   467 
       
   468         /**
       
   469         * Sets file detail in buffer.
       
   470         * @param    aBuf: Buffer where to store
       
   471         * @param    aDetail: Details which to store
       
   472         */
       
   473         void SetFileDetailL( HBufC*& aBuf, const TDesC& aDetail );
       
   474         void SetFileDetailL( HBufC*& aBuf, const TDesC8& aDetail );
       
   475 
       
   476     private:    // Data
       
   477         CAknDoublePopupMenuStyleListBox* iListBox;
       
   478         CDesCArrayFlat* iGenres;
       
   479         CMPPopupList* iPopupList;
       
   480 
       
   481         TInt iResourceFileOffset;
       
   482         CActiveSchedulerWait iWait;
       
   483         TInt iResult;        
       
   484     };
       
   485 
       
   486 
       
   487 /**
       
   488 *  CMPDummyController
       
   489 *  Dummy controller for CVideoPlayerUtility.
       
   490 *  Absorbs all the key presses while opening video clip.
       
   491 *
       
   492 *  @lib MPFileDetailsDialog.lib
       
   493 *  @since 2.0
       
   494 */
       
   495 class CMPDummyController : public CCoeControl
       
   496     {
       
   497     public:  // Constructors and destructor
       
   498 
       
   499         /**
       
   500         * Two-phased constructor.
       
   501         */
       
   502         static CMPDummyController* NewLC();
       
   503 
       
   504         /**
       
   505         * Destructor.
       
   506         */
       
   507         virtual ~CMPDummyController();
       
   508 
       
   509     public: // New functions
       
   510 
       
   511         /**
       
   512         * Controls window handle.
       
   513         * @since 2.0
       
   514         * @return Controllers RWindow
       
   515         */
       
   516         inline RWindow& GetClientWindow();
       
   517 
       
   518         /**
       
   519         * Controls WsSession.
       
   520         * @since 2.0
       
   521         * @return Controllers RWsSession
       
   522         */
       
   523         inline RWsSession& GetClientWsSession();
       
   524 
       
   525         /**
       
   526         * Controls ScreenDevice
       
   527         * @since 2.0
       
   528         * @return Controllers CWsScreenDevice
       
   529         */
       
   530         inline CWsScreenDevice& GetScreenDevice();
       
   531 
       
   532     private: // Functions from CCoeControl
       
   533 
       
   534         /** @see CCoeControl::OfferKeyEventL() */
       
   535         virtual TKeyResponse OfferKeyEventL( const TKeyEvent& /*aKeyEvent*/,
       
   536                 TEventCode /*aType*/ );
       
   537 
       
   538     private:
       
   539 
       
   540         /**
       
   541         * C++ default constructor.
       
   542         */
       
   543         CMPDummyController();
       
   544 
       
   545         /**
       
   546         * By default Symbian 2nd phase constructor is private.
       
   547         */
       
   548         void ConstructL();
       
   549 
       
   550     };
       
   551 
       
   552 #endif      // MPFILEDETAILSDIALOG_H
       
   553 
       
   554 // End of File