mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp
branchRCL_3
changeset 19 51035f0751c2
parent 17 780c925249c1
child 23 4740b34b83ce
equal deleted inserted replaced
17:780c925249c1 19:51035f0751c2
    36 
    36 
    37 #include "mmmtpdputility.h"
    37 #include "mmmtpdputility.h"
    38 #include "mmmtpdpfiledefs.h"
    38 #include "mmmtpdpfiledefs.h"
    39 #include "tobjectdescription.h"
    39 #include "tobjectdescription.h"
    40 #include "mmmtpdplogger.h"
    40 #include "mmmtpdplogger.h"
       
    41 #include "mmmtpdp_variant.hrh"
    41 
    42 
    42 using namespace ContentAccess;
    43 using namespace ContentAccess;
    43 
    44 
    44 // local to this file, non standard mimetype used for ASF parsing with helix
    45 // local to this file, non standard mimetype used for ASF parsing with helix
    45 _LIT( KHxMimeTypeWma, "audio/x-hx-wma" );
    46 _LIT( KHxMimeTypeWma, "audio/x-hx-wma" );
    55 // These should be kept in sync with the object formats supported
    56 // These should be kept in sync with the object formats supported
    56 // -----------------------------------------------------------------------------
    57 // -----------------------------------------------------------------------------
    57 //
    58 //
    58 EXPORT_C TMTPFormatCode MmMtpDpUtility::FormatFromFilename( const TDesC& aFullFileName )
    59 EXPORT_C TMTPFormatCode MmMtpDpUtility::FormatFromFilename( const TDesC& aFullFileName )
    59     {
    60     {
       
    61     TMTPFormatCode format = EMTPFormatCodeUndefined;
       
    62 
    60     if ( aFullFileName.Right( 1 ).CompareF( KTxtBackSlash ) == 0 ) // We have a directory name
    63     if ( aFullFileName.Right( 1 ).CompareF( KTxtBackSlash ) == 0 ) // We have a directory name
    61         {
    64         {
    62         return EMTPFormatCodeAssociation;
    65         format = EMTPFormatCodeAssociation;
    63         }
    66         }
    64 
    67     else 
    65     TParsePtrC file( aFullFileName );
    68         {
    66 
    69         TParsePtrC file( aFullFileName );
    67     if ( !file.ExtPresent() )
    70 
    68         return EMTPFormatCodeUndefined;
    71         if ( file.ExtPresent() )
    69 
    72             {
    70     // need to do it in popularity of format, to optmize performance
    73             // need to do it in popularity of format, to optmize performance
    71     if ( file.Ext().CompareF( KTxtExtensionMP3 ) == 0 )
    74             if ( file.Ext().CompareF( KTxtExtensionMP3 ) == 0 )
    72             return EMTPFormatCodeMP3;
    75                 format = EMTPFormatCodeMP3;
    73 
       
    74 #ifdef __WINDOWS_MEDIA
    76 #ifdef __WINDOWS_MEDIA
    75     if ( file.Ext().CompareF( KTxtExtensionWMA ) == 0 )
    77             else if ( file.Ext().CompareF( KTxtExtensionWMA ) == 0 )
    76             return EMTPFormatCodeWMA;
    78                 format = EMTPFormatCodeWMA;
    77 #endif // __WINDOWS_MEDIA
    79 #endif // __WINDOWS_MEDIA
    78 
    80             else if (( file.Ext().CompareF( KTxtExtensionPLA ) == 0 ) 
    79     if ( ( file.Ext().CompareF( KTxtExtensionMP4 ) == 0 )
    81                 || ( file.Ext().CompareF( KTxtExtensionVIR ) == 0 ) )
    80         || ( file.Ext().CompareF( KTxtExtensionM4A ) == 0 ) )
    82                 format = EMTPFormatCodeAbstractAudioVideoPlaylist;
    81         return EMTPFormatCodeMP4Container;
    83             else if ( ( file.Ext().CompareF( KTxtExtensionMP4 ) == 0 )
    82 
    84                 || ( file.Ext().CompareF( KTxtExtensionM4A ) == 0 ) )
    83     if ( ( file.Ext().CompareF( KTxtExtension3GP ) == 0 )
    85                 format = EMTPFormatCodeMP4Container;
    84         || ( file.Ext().CompareF( KTxtExtension3G2 ) == 0 )
    86             else if ( ( file.Ext().CompareF( KTxtExtension3GP ) == 0 )
    85         || ( file.Ext().CompareF( KTxtExtensionO4A ) == 0 )
    87                 || ( file.Ext().CompareF( KTxtExtension3G2 ) == 0 )
    86         || ( file.Ext().CompareF( KTxtExtensionO4V ) == 0 ) )
    88                 || ( file.Ext().CompareF( KTxtExtensionO4A ) == 0 )
    87         return EMTPFormatCode3GPContainer;
    89                 || ( file.Ext().CompareF( KTxtExtensionO4V ) == 0 ) )
    88 
    90                 format = EMTPFormatCode3GPContainer;
    89     if ( file.Ext().CompareF( KTxtExtensionAAC ) == 0 )
    91             else if ( file.Ext().CompareF( KTxtExtensionAAC ) == 0 )
    90         return EMTPFormatCodeAAC;
    92                 format = EMTPFormatCodeAAC;
    91 
    93             else if ( file.Ext().CompareF( KTxtExtensionWAV ) == 0 )
    92     if ( file.Ext().CompareF( KTxtExtensionWAV ) == 0 )
    94                 format = EMTPFormatCodeWAV;
    93         return EMTPFormatCodeWAV;
       
    94 
       
    95 #ifdef __WINDOWS_MEDIA
    95 #ifdef __WINDOWS_MEDIA
    96     if ( file.Ext().CompareF( KTxtExtensionWMV ) == 0 )
    96             else if ( file.Ext().CompareF( KTxtExtensionWMV ) == 0 )
    97         return EMTPFormatCodeWMV;
    97                 format = EMTPFormatCodeWMV;
    98 
    98             else if ( file.Ext().CompareF( KTxtExtensionASF ) == 0 )
    99     if ( file.Ext().CompareF( KTxtExtensionASF ) == 0 )
    99                 format = EMTPFormatCodeASF;
   100         return EMTPFormatCodeASF;
       
   101 
       
   102 #endif // __WINDOWS_MEDIA
   100 #endif // __WINDOWS_MEDIA
   103 
   101             else if ( file.Ext().CompareF( KTxtExtensionODF ) == 0 )
   104     if ( file.Ext().CompareF( KTxtExtensionODF ) == 0 )
   102                 {
   105         {
   103                 HBufC8* mime = MmMtpDpUtility::ContainerMimeType( file.FullName() );
   106         HBufC8* mime = MmMtpDpUtility::ContainerMimeType( file.FullName() );
   104                 if ( mime != NULL )
   107         if ( mime != NULL )
   105                     {
   108             {
   106                     // 3GP
   109             // 3GP
   107                     if ( mime->CompareF( KMimeTypeAudio3gpp ) == 0
   110             if ( mime->CompareF( KMimeTypeAudio3gpp ) == 0
   108                         || mime->CompareF( KMimeTypeVideo3gpp ) == 0 )
   111                 || mime->CompareF( KMimeTypeVideo3gpp ) == 0 )
   109                         {
   112                 {
   110                         delete mime;
   113                 delete mime;
   111                         mime = NULL;
   114                 mime = NULL;
   112                         format = EMTPFormatCode3GPContainer;
   115                 return EMTPFormatCode3GPContainer;
   113                         }
   116                 }
   114                     }
   117             }
   115 
   118 
   116                 if ( mime != NULL )
   119         if ( mime != NULL )
   117                     {
   120             {
   118                     delete mime;
   121             delete mime;
   119                     mime = NULL;
   122             mime = NULL;
   120                     }
   123             }
   121                 }
   124         }
   122 #ifdef MMMTPDP_ABSTRACTAUDIOALBUM_SUPPORT
   125 
   123             else if ( file.Ext().CompareF( KTxtExtensionALB ) == 0 )
   126     if ( file.Ext().CompareF( KTxtExtensionALB ) == 0 )
   124                 format = EMTPFormatCodeAbstractAudioAlbum;
   127         return EMTPFormatCodeAbstractAudioAlbum;
   125 #endif // MMMTPDP_ABSTRACTAUDIOALBUM_SUPPORT
   128 
   126             else if ( file.Ext().CompareF( KTxtExtensionM3U ) == 0 )
   129     if (( file.Ext().CompareF( KTxtExtensionPLA ) == 0 ) || ( file.Ext().CompareF( KTxtExtensionVIR ) == 0 ) )
   127                 format = EMTPFormatCodeM3UPlaylist;
   130         return EMTPFormatCodeAbstractAudioVideoPlaylist;
   128             }
   131 
   129         }
   132     if ( file.Ext().CompareF( KTxtExtensionM3U ) == 0 )
   130 
   133         return EMTPFormatCodeM3UPlaylist;
   131     return format;
   134 
       
   135     return EMTPFormatCodeUndefined;
       
   136     }
   132     }
   137 
   133 
   138 // -----------------------------------------------------------------------------
   134 // -----------------------------------------------------------------------------
   139 // MmMtpDpUtility::HasMetadata
   135 // MmMtpDpUtility::HasMetadata
   140 // Utility function to determine whether a format has metadata support
   136 // Utility function to determine whether a format has metadata support