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 |