messagingapp/msgui/msguiutils/src/msgmediautil.cpp
changeset 52 12db4185673b
parent 34 84197e66a4bd
equal deleted inserted replaced
44:36f374c67aa8 52:12db4185673b
    14  * Description:This class provides duration of media file by parsing it
    14  * Description:This class provides duration of media file by parsing it
    15  *
    15  *
    16  */
    16  */
    17 #include <MsgMediaResolver.h>
    17 #include <MsgMediaResolver.h>
    18 #include <xqconversions.h>
    18 #include <xqconversions.h>
       
    19 #include <HbExtendedLocale>
       
    20 #include <QTime>
    19 
    21 
    20 #include "msgmediautil.h"
    22 #include "msgmediautil.h"
       
    23 
       
    24 // @see hbi18ndef.h
       
    25 static const char TIME_FORMAT[] = r_qtn_time_durat_min_sec_with_zero;
    21 
    26 
    22 //---------------------------------------------------------------
    27 //---------------------------------------------------------------
    23 // MsgMediaUtil::MsgMediaUtil
    28 // MsgMediaUtil::MsgMediaUtil
    24 // Constructor
    29 // Constructor
    25 //---------------------------------------------------------------
    30 //---------------------------------------------------------------
    41 // MsgMediaUtil::mediaDuration
    46 // MsgMediaUtil::mediaDuration
    42 // @see header file
    47 // @see header file
    43 //---------------------------------------------------------------
    48 //---------------------------------------------------------------
    44 QString MsgMediaUtil::mediaDuration(const QString& mediaFile)
    49 QString MsgMediaUtil::mediaDuration(const QString& mediaFile)
    45     {
    50     {
    46     QString formattedDuration(" ");
    51     QString formattedDuration;
    47     
    52     
    48     HBufC *name = XQConversions::qStringToS60Desc(mediaFile);
    53     HBufC *name = XQConversions::qStringToS60Desc(mediaFile);
    49     TInt duration = 0;
    54     TInt duration = 0;
    50     TRAPD(error, duration = mediaDurationL(*name));
    55     TRAPD(error, duration = mediaDurationL(*name));
    51     delete name;
    56     delete name;
    52     
    57     
    53     if ( error )
    58     if ( error || duration <= 0)
    54         return formattedDuration;
    59         return formattedDuration;
    55         
       
    56     int sec_duration = duration / 1000;
       
    57     int hour_component = sec_duration / (60*60);
       
    58     int min_component = (sec_duration - (hour_component*60*60))/60;
       
    59     int sec_component = (sec_duration - (hour_component*60*60) - (min_component*60));
       
    60     
       
    61     if( hour_component > 0)
       
    62         {
       
    63         formattedDuration = QString("%1:%2:%3").arg(hour_component, 2, 10, QChar('0')).
       
    64             arg(min_component, 2, 10, QChar('0')).arg(sec_component, 2, 10, QChar('0'));
       
    65         }
       
    66     else
       
    67         {
       
    68         formattedDuration = QString("%1:%2").arg(min_component, 2, 10, QChar('0')).
       
    69             arg(sec_component, 2, 10, QChar('0'));
       
    70         }
       
    71 
    60 
       
    61     // Media duration in milliseconds.
       
    62     QTime mediaDuration(0, 0);
       
    63     mediaDuration = mediaDuration.addMSecs(duration);
       
    64     HbExtendedLocale locale = HbExtendedLocale::system();
       
    65     formattedDuration = locale.format(mediaDuration, TIME_FORMAT);
    72     return formattedDuration;
    66     return formattedDuration;
    73     }
    67     }
    74 
    68 
    75 //---------------------------------------------------------------
    69 //---------------------------------------------------------------
    76 // MsgMediaUtil::mediaDurationL
    70 // MsgMediaUtil::mediaDurationL