sl@0: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #ifndef CONSTANTS_H sl@0: #define CONSTANTS_H sl@0: sl@0: #include sl@0: sl@0: // sl@0: // Recognised file extensions. sl@0: // sl@0: #define KExtAAC _S(".aac") sl@0: #define KExt3GA _S(".3ga") sl@0: #define KExt3GP _S(".3gp") sl@0: #define KExt3G2 _S(".3g2") sl@0: #define KExtAIFF_1 _S(".aif") sl@0: #define KExtAIFF_2 _S(".aifc") sl@0: #define KExtAIFF_3 _S(".aiff") sl@0: #define KExtASF _S(".asf") sl@0: #define KExtAMR _S(".amr") sl@0: #define KExtAVI _S(".avi") sl@0: #define KExtAMRWB _S(".awb") sl@0: #define KExtAU _S(".au") sl@0: #define KExtDIVX _S(".divx") sl@0: #define KExtDLS _S(".dls") sl@0: #define KExtFLAC_1 _S(".fla") sl@0: #define KExtFLAC_2 _S(".flac") sl@0: #define KExtGSM _S(".gsm") sl@0: #define KExtMAT_A _S(".mka") sl@0: #define KExtMAT_V _S(".mkv") sl@0: #define KExtM3U _S(".m3u") sl@0: #define KExtM4A _S(".m4a") sl@0: #define KExtM4V _S(".m4v") sl@0: #define KExtMID _S(".mid") sl@0: #define KExtMLD _S(".mld") sl@0: #define KExtMMF _S(".mmf") sl@0: #define KExtMP3 _S(".mp3") sl@0: #define KExtMP4 _S(".mp4") sl@0: #define KExtMPEG_1 _S(".mpg") sl@0: #define KExtMPEG_2 _S(".m2v") sl@0: #define KExtMPEG_3 _S(".mp2") sl@0: #define KExtMPEG_4 _S(".mp2v") sl@0: #define KExtMPEG_5 _S(".mpeg") sl@0: #define KExtMPEG_6 _S(".mpv2") sl@0: #define KExtMPEG_7 _S(".m1v") sl@0: #define KExtMPEG_8 _S(".mpa") sl@0: #define KExtMXMF _S(".mxmf") sl@0: #define KExtOGG _S(".ogg") sl@0: #define KExtRA _S(".ra") sl@0: #define KExtRAM _S(".ram") sl@0: #define KExtRM _S(".rm") sl@0: #define KExtRMF _S(".rmf") sl@0: #define KExtSDP _S(".sdp") sl@0: #define KExtSMF _S(".smf") sl@0: #define KExtSND _S(".snd") sl@0: #define KExtWAV _S(".wav") sl@0: #define KExtWMA _S(".wma") sl@0: #define KExtWMV _S(".wmv") sl@0: #define KExtXMF _S(".xmf") sl@0: #define KExtXPS _S(".xps") sl@0: #define KExtBeatnikRMF _S(".rmf") sl@0: #define KExtMOV _S(".mov") // for .mov extension sl@0: sl@0: // sl@0: // Recognised MIME-types. sl@0: // sl@0: #define KMime3GA _S8("audio/3ga") sl@0: #define KMime3GP_A _S8("audio/3gpp") sl@0: #define KMime3GP_V _S8("video/3gpp") sl@0: #define KMime3G2_A _S8("audio/3gpp2") sl@0: #define KMime3G2_V _S8("video/3gpp2") sl@0: #define KMimeAAC _S8("audio/aac") sl@0: #define KMimeAIFF _S8("audio/aiff") sl@0: #define KMimeAMR _S8("audio/amr") sl@0: #define KMimeAMRWB _S8("audio/amr-wb") sl@0: #define KMimeAVI _S8("video/x-msvideo") sl@0: #define KMimeAU _S8("audio/basic") sl@0: #define KMimeDIVX _S8("video/x-divx") sl@0: #define KMimeDLS _S8("audio/dls") sl@0: #define KMimeFLAC _S8("audio/flac") sl@0: #define KMimeGSM _S8("audio/gsm") sl@0: #define KMimeMAT_A _S8("audio/x-matroska") sl@0: #define KMimeMAT_V _S8("video/x-matroska") sl@0: #define KMimeM3U _S8("audio/x-mpegurl") sl@0: #define KMimeMID _S8("audio/midi") sl@0: #define KMimeMLD _S8("audio/mld") sl@0: #define KMimeMMF _S8("audio/mmf") sl@0: #define KMimeMPEG1_A _S8("audio/x-mpeg") sl@0: #define KMimeMPEG1_V _S8("video/mpeg") sl@0: #define KMimeMPEG2_A _S8("audio/x-mpeg2") sl@0: #define KMimeMPEG2_V _S8("video/mpeg2") sl@0: #define KMimeMP3 _S8("audio/mpeg") sl@0: #define KMimeMP4_A _S8("audio/mp4") sl@0: #define KMimeMP4_V _S8("video/mp4") sl@0: #define KMimeMXMF _S8("audio/mobile-xmf") sl@0: #define KMimeOGG _S8("audio/ogg") sl@0: #define KMimeRA _S8("audio/x-pn-realaudio") sl@0: #define KMimeRAM KMimeRA sl@0: #define KMimeRM_A KMimeRA sl@0: #define KMimeRM_V _S8("video/vnd.rn-realvideo") sl@0: #define KMimeSDP _S8("application/sdp") sl@0: #define KMimeSMF _S8("audio/midi") sl@0: #define KMimeSND KMimeAU sl@0: #define KMimeWAV _S8("audio/wav") sl@0: #define KMimeASF_A _S8("audio/x-ms-asf") sl@0: #define KMimeASF_V _S8("video/x-ms-asf") sl@0: #define KMimeWMA _S8("audio/x-ms-wma") sl@0: #define KMimeWMV _S8("video/x-ms-wmv") sl@0: #define KMimeXMF _S8("audio/xmf") sl@0: #define KMimeXPS _S8("application/x-ext-packetsrc") sl@0: #define KMimeBeatnikRMF _S8("audio/x-beatnik-rmf") sl@0: #define KMimeQuickV _S8("video/quicktime") // for .mov extension sl@0: sl@0: // sl@0: // Recognised header signatures. sl@0: // These should not be defined with _S8 because using sl@0: // sizeof() in the HEADER_SIG macro will not work as intended sl@0: // due to some signatures containing the value '0x00'. sl@0: // sl@0: #define KSigAIFF "????????AIFF*" sl@0: #define KSigAMR_1 "#!AMR\n*" sl@0: #define KSigAMR_2 "#!AMR_MC1.0\n*" // Multi-channel AMR sl@0: #define KSigAMRWB_1 "#!AMR-WB\n*" sl@0: #define KSigAMRWB_2 "#!AMR-WB_MC1.0\n*" // Multi-channel AMR-WB sl@0: #define KSigAU ".snd*" sl@0: #define KSigAVI "RIFF????AVI *" sl@0: #define KSigDIVX_1 "*vidsyv12*" sl@0: #define KSigDIVX_2 "*vidsdivx*" sl@0: #define KSigDLS "????????DLS *" sl@0: #define KSigFLAC "fLaC*" sl@0: #define KSigGSM "\x72\xF6\x63\x1E\x5E\x47\xD2\x11\x87\x99\x00\x20\xAF\xE6\x36\xEE" "*" sl@0: #define KSigM3U "#EXTM3U*" sl@0: #define KSigMID "MThd*" sl@0: #define KSigMLD "melo*" sl@0: #define KSigMMF "MMMD*" sl@0: #define KSigMXMF "XMF_*" sl@0: #define KSigOGG "OggS*" sl@0: #define KSigRA ".ra\xfd" "*" sl@0: #define KSigRAM "?t?p://*" sl@0: #define KSigSDP "v=?*\n*\ns=*" sl@0: #define KSigSMF KSigMID sl@0: #define KSigSND KSigAU sl@0: #define KSigWAV_1 "RIFF????WAVEfmt ????\x01\x00" "*" // WAVE_FORMAT_PCM - PCM audio in integer format sl@0: #define KSigWAV_2 "RIFF????WAVEfmt ????\x02\x00" "*" // WAVE_FORMAT_ADPCM - Microsoft adaptive PCM sl@0: #define KSigXMF "XMF_*" sl@0: #define KSigXPS "v=?*\n*" sl@0: #define KSigBeatnikRMF "IREZ*" sl@0: sl@0: sl@0: // sl@0: // New constants. Saves on typing. sl@0: // sl@0: #define KConfNotRecognised CApaDataRecognizerType::ENotRecognized sl@0: #define KConfPossible CApaDataRecognizerType::EPossible sl@0: #define KConfProbable CApaDataRecognizerType::EProbable sl@0: #define KConfCertain CApaDataRecognizerType::ECertain sl@0: sl@0: sl@0: // sl@0: // Converts several bits into an integer sl@0: // where 'a' signifies the highest bit to be set. sl@0: // e.g. MAKE_BYTE2(a, b) -> [0000 00ab] sl@0: // MAKE_BYTE3(a, b, c) -> [0000 0abc] sl@0: // MAKE_BYTE4(a, b, c, d) -> [0000 abcd] sl@0: // sl@0: #define MAKE_BYTE2(a, b) (((TUint8)(a & 0x01) << 1) | (TUint8)(b & 0x01)) sl@0: #define MAKE_BYTE3(a, b, c) ((MAKE_BYTE2(a, b) << 1) | (TUint8)(c & 0x01)) sl@0: #define MAKE_BYTE4(a, b, c, d) ((MAKE_BYTE2(a, b) << 2) | MAKE_BYTE2(c, d)) sl@0: sl@0: sl@0: // sl@0: // Packs four bytes into a 32bit number. sl@0: // sl@0: // 3 sl@0: // 1 0 sl@0: // +--------+--------+--------+--------+ sl@0: // |aaaaaaaa|bbbbbbbb|cccccccc|dddddddd| sl@0: // +--------+--------+--------+--------+ sl@0: // sl@0: #define MAKE_INT32(a, b, c, d) (TUint32)(((TUint8)a << 24) | \ sl@0: ((TUint8)b << 16) | \ sl@0: ((TUint8)c << 8) | \ sl@0: (TUint8)d) sl@0: sl@0: // sl@0: // The following macros are used to read individual bit fields. sl@0: // sl@0: // 3 sl@0: // 1 0 sl@0: // +--------+--------+--------+--------+ sl@0: // |aaaaaaaa|bbbbbbbb|cccccccc|dddddddd| sl@0: // +--------+--------+--------+--------+ sl@0: // sl@0: // sl@0: // +--------+ sl@0: // HIGH_BYTE32 will return: |aaaaaaaa| sl@0: // +--------+--------+ sl@0: // HIGH_WORD32 will return: |aaaaaaaa|bbbbbbbb| sl@0: // +--------+--------+ sl@0: // LOW_BYTE will return: |dddddddd| sl@0: // +--------+--------+ sl@0: // LOW_WORD will return: |cccccccc|dddddddd| sl@0: // +--------+--------+ sl@0: // sl@0: #define HIGH_BYTE32(a) (TUint8)((TUint32)(a) >> 24) sl@0: #define HIGH_WORD32(a) (TUint16)((TUint32)(a) >> 16) sl@0: #define LOW_BYTE(a) (TUint8)((a) & 0xff) sl@0: #define LOW_WORD(a) (TUint16)((a) & 0xffff) sl@0: sl@0: // sl@0: // These macros will only work at compile-time with sl@0: // char* parameters in order for sizeof() to work correctly. sl@0: // The terminating '\0' of charPtr is not included. sl@0: // sl@0: #define MAKE_TPtrC8(charPtr) TPtrC8(_S8((charPtr)), sizeof(charPtr) - 1) sl@0: sl@0: #endif sl@0: