--- a/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackmediadetailsviewer.cpp Fri Mar 12 15:43:00 2010 +0200
+++ b/videoplayback/videoplaybackcontrols/src/mpxvideoplaybackmediadetailsviewer.cpp Mon Mar 15 12:40:47 2010 +0200
@@ -15,7 +15,8 @@
*
*/
-// Version : %version: e003sa33#14 %
+
+// Version : %version: e003sa33#16 %
// INCLUDE FILES
@@ -55,23 +56,16 @@
// UID of this interface
const TUid KFileDetailsCntlPluginUid = {0x2002A59D};
-const TUid KFileDetailsInterfaceUid = {0x2002A5A0};
-// ---------------------------------------------------------------------------
-// Local function to cleanup an array
-// ---------------------------------------------------------------------------
-//
-static void CleanupEcomArray( TAny* aArray )
-{
- ( static_cast<RImplInfoPtrArray*>( aArray ) )->ResetAndDestroy();
- ( static_cast<RImplInfoPtrArray*>( aArray ) )->Close();
-}
+const TUint32 KScrollTimerDelayTickCounts = 2000; // 2000 milliseconds
+const TUint32 KInvalidTick = 0;
// ============================ MEMBER FUNCTIONS ===================================================
CMPXVideoPlaybackMediaDetailsViewer::CMPXVideoPlaybackMediaDetailsViewer(
CMPXVideoPlaybackControlsController* aController )
: iController( aController )
+ , iScrollTimerDelayBeginningTick( KInvalidTick )
{
}
@@ -83,26 +77,25 @@
void CMPXVideoPlaybackMediaDetailsViewer::ConstructL()
{
MPX_DEBUG(_L("CMPXVideoPlaybackMediaDetailsViewer::ConstructL()"));
-
+
iViewerRect = CalculateViewerRectL();
SetRect( TRect(0, 0, iViewerRect.Width(), iViewerRect.Height()) );
-
+
CreateLabelsL();
SkinChangeL();
-
+
iBackgroundBitmap = new ( ELeave ) CFbsBitmap();
TSize bitmapSize = Rect().Size();
User::LeaveIfError( iBackgroundBitmap->Create( bitmapSize, EColor16MA ) );
-
+
iScrollPosition = 0;
- iScrollingTextTimer = CPeriodic::NewL( CActive::EPriorityStandard );
- iScrollingTextTimer->Start(
+ iScrollingTextTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+ iScrollingTextTimer->Start(
0,
175000,
- TCallBack( CMPXVideoPlaybackMediaDetailsViewer::ScrollFilenameTimer, this ) );
-
+ TCallBack( CMPXVideoPlaybackMediaDetailsViewer::ScrollFilenameTimer, this ) );
+
iShouldPauseScrolling = EFalse;
-
}
// -------------------------------------------------------------------------------------------------
@@ -131,79 +124,79 @@
CMPXVideoPlaybackMediaDetailsViewer::~CMPXVideoPlaybackMediaDetailsViewer()
{
MPX_DEBUG(_L("CMPXVideoPlaybackMediaDetailsViewer::~CMPXVideoPlaybackMediaDetailsViewer()"));
-
+
if ( iClipnameLabel )
{
delete iClipnameLabel;
iClipnameLabel = NULL;
}
-
+
if ( iTitleLabel )
{
delete iTitleLabel;
iTitleLabel = NULL;
- }
-
+ }
+
if ( iArtistLabel )
{
delete iArtistLabel;
iArtistLabel = NULL;
- }
-
+ }
+
if ( iFormatLabel )
{
delete iFormatLabel;
iFormatLabel = NULL;
}
-
+
if ( iResolutionLabel )
{
delete iResolutionLabel;
iResolutionLabel = NULL;
- }
-
+ }
+
if ( iDurationLabel )
{
delete iDurationLabel;
iDurationLabel = NULL;
- }
-
+ }
+
if ( iBitrateLabel )
{
delete iBitrateLabel;
iBitrateLabel = NULL;
- }
-
+ }
+
if ( iLicenseLabel )
{
delete iLicenseLabel;
iLicenseLabel = NULL;
- }
-
+ }
+
if ( iBackgroundBitmap )
{
delete iBackgroundBitmap;
iBackgroundBitmap = NULL;
- }
-
+ }
+
if ( iScrollingTextTimer )
{
iScrollingTextTimer->Cancel();
delete iScrollingTextTimer;
iScrollingTextTimer = NULL;
- }
-
+ }
+
if ( iAdditionalLabel )
{
delete iAdditionalLabel;
iAdditionalLabel = NULL;
- }
-
+ }
+
if ( iAdditionalString )
{
delete iAdditionalString;
iAdditionalString = NULL;
- }
+ }
}
// -------------------------------------------------------------------------------------------------
@@ -223,12 +216,12 @@
case TPointerEvent::EButton1Up:
{
TRect expandedRect; //make it a bit easier to click the License label
-
+
if ( iLicenseLabel )
{
- expandedRect = TRect(iLicenseLabel->Rect().iTl,
- TPoint(iLicenseLabel->Rect().iBr.iX,
- iLicenseLabel->Rect().iBr.iY * 2 ) );
+ expandedRect = TRect(iLicenseLabel->Rect().iTl,
+ TPoint(iLicenseLabel->Rect().iBr.iX,
+ iLicenseLabel->Rect().iBr.iY * 2 ) );
}
if ( iLicenseLabel && expandedRect.Contains(aPointerEvent.iPosition) )
@@ -236,9 +229,9 @@
LaunchDRMDetailsL();
}
else
- {
- iController->HandleEventL( EMPXControlCmdCloseFileDetailsViewer );
- }
+ {
+ iController->HandleEventL( EMPXControlCmdCloseFileDetailsViewer );
+ }
}
}
}
@@ -248,7 +241,7 @@
// -------------------------------------------------------------------------------------------------
//
void CMPXVideoPlaybackMediaDetailsViewer::LaunchDRMDetailsL()
-{
+{
iController->iContainer->HandleCommandL(EMPXPbvLaunchDRMDetails);
}
@@ -257,10 +250,9 @@
// -------------------------------------------------------------------------------------------------
//
void CMPXVideoPlaybackMediaDetailsViewer::SkinChangeL()
-{
+{
}
-
// -------------------------------------------------------------------------------------------------
// CMPXVideoPlaybackMediaDetailsViewer::Draw()
// -------------------------------------------------------------------------------------------------
@@ -271,16 +263,16 @@
CWindowGc& gc = SystemGc();
gc.SetClippingRect( aRect );
-
+
this->DrawableWindow()->SetCornerType(EWindowCorner5);
-
+
TRAP_IGNORE( UpdateBackgroundBitmapL() );
gc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
gc.BitBlt( Rect().iTl, iBackgroundBitmap );
-
- TRAP_IGNORE( FormatLabelsL() );
-
- gc.SetBrushStyle( CGraphicsContext::ENullBrush );
+
+ TRAP_IGNORE( FormatLabelsL() );
+
+ gc.SetBrushStyle( CGraphicsContext::ENullBrush );
}
// -------------------------------------------------------------------------------------------------
@@ -290,7 +282,7 @@
void CMPXVideoPlaybackMediaDetailsViewer::FormatLabelsL() const
{
// FORMAT LABELS
-
+
TInt labelWidth = Rect().iBr.iX;
TInt labelHeight = iController->iContainer->Rect().iBr.iY / KMediaDetailsViewerMaxItems;
@@ -299,114 +291,114 @@
// License
if ( iController->FileDetails()->iDrmProtected )
{
- iLicenseLabel->SetExtent(
- TPoint(Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded) ) ,
- TSize( labelWidth, labelHeight )
- );
- HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_LICENSE_HEADING );
+ iLicenseLabel->SetExtent(
+ TPoint(Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded) ) ,
+ TSize( labelWidth, labelHeight )
+ );
+ HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_LICENSE_HEADING );
CleanupStack::PushL( heading );
-
+
TBuf<KMediaDetailsViewerMaxBufLen> licenseField;
licenseField.Append(KLeftMargin);
licenseField.Append( *heading );
iLicenseLabel->OverrideColorL(EColorLabelText, KRgbDarkBlue);
iLicenseLabel->SetTextL(licenseField);
- iLicenseLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
+ iLicenseLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
iLicenseLabel->SetLabelAlignment(ELayoutAlignCenter);
iLicenseLabel->SetUnderlining(ETrue);
iLicenseLabel->MakeVisible( ETrue );
rowsAdded++;
-
+
CleanupStack::PopAndDestroy( heading );
- }
+ }
// Filename
HBufC* fileName = iController->FileDetails()->GenerateFileNameL();
+
if ( fileName && fileName->Length() )
- {
- // file name gets populated by HandleScrollFilenameTimer method
- iClipnameLabel->SetExtent(
- TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
+ {
+ // file name gets populated by HandleScrollFilenameTimer method
+ iClipnameLabel->SetExtent(
+ TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
TSize( labelWidth, labelHeight )
);
- iClipnameLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
+ iClipnameLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
iClipnameLabel->MakeVisible( ETrue );
rowsAdded++;
-
+
delete fileName;
- }
+ }
// Mime Type (Format)
- if ( iController->FileDetails()->iMimeType
- && iController->FileDetails()->iMimeType->Length() )
+ if ( iController->FileDetails()->iMimeType && iController->FileDetails()->iMimeType->Length() )
{
- iFormatLabel->SetExtent(
- TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
+ iFormatLabel->SetExtent(
+ TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
TSize( labelWidth, labelHeight )
);
- HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_FORMAT_HEADING );
+ HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_FORMAT_HEADING );
CleanupStack::PushL( heading );
-
+
TBuf<KMediaDetailsViewerMaxBufLen> formatField;
formatField.Append(KLeftMargin);
formatField.Append( *heading );
formatField.Append( KHeadingValueSeperator );
TInt allowLen = KMediaDetailsViewerMaxBufLen-formatField.Length();
- formatField.Append( (iController->FileDetails()->iMimeType)->Left(allowLen) );
+ formatField.Append( (iController->FileDetails()->iMimeType)->Left(allowLen) );
iFormatLabel->SetTextL(formatField);
iFormatLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
- iFormatLabel->MakeVisible( ETrue );
+ iFormatLabel->MakeVisible( ETrue );
rowsAdded++;
-
+
CleanupStack::PopAndDestroy( heading );
- }
+ }
// Resolution
- if ( iController->FileDetails()->iVideoHeight &&
- iController->FileDetails()->iVideoWidth )
+ if ( iController->FileDetails()->iVideoHeight && iController->FileDetails()->iVideoWidth )
{
- iResolutionLabel->SetExtent(
- TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
+ iResolutionLabel->SetExtent(
+ TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
TSize( labelWidth, labelHeight )
);
- HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_RESOLUTION_HEADING );
+ HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_RESOLUTION_HEADING );
CleanupStack::PushL( heading );
-
+
TBuf<KMediaDetailsViewerMaxBufLen> resolutionField;
resolutionField.Append(KLeftMargin);
resolutionField.Append( *heading );
resolutionField.Append( KHeadingValueSeperator );
- resolutionField.AppendNum( iController->FileDetails()->iVideoWidth );
+ resolutionField.AppendNum( iController->FileDetails()->iVideoWidth );
resolutionField.Append( KWidthHeightSeparator );
resolutionField.AppendNum( iController->FileDetails()->iVideoHeight);
AknTextUtils::DisplayTextLanguageSpecificNumberConversion( resolutionField );
-
+
iResolutionLabel->SetTextL(resolutionField);
iResolutionLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
- iResolutionLabel->MakeVisible( ETrue );
+ iResolutionLabel->MakeVisible( ETrue );
rowsAdded++;
-
+
CleanupStack::PopAndDestroy( heading );
- }
+ }
// Duration
if ( iController->FileDetails()->iDuration > 0 )
{
iDurationLabel->SetExtent(
- TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded) ) ,
+ TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded) ) ,
TSize( labelWidth, labelHeight )
);
- HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_DURATION_HEADING );
+ HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_DURATION_HEADING );
CleanupStack::PushL( heading );
-
+
TBuf<KMediaDetailsViewerMaxBufLen> durationField;
durationField.Append(KLeftMargin);
durationField.Append( *heading );
durationField.Append( KHeadingValueSeperator );
-
+
TInt64 durationInSeconds = iController->FileDetails()->iDuration / 1000;
-
+
HBufC* unitFormatString;
+
if ( durationInSeconds < 3600 ) // one hour
{
unitFormatString = StringLoader::LoadLC(R_QTN_TIME_DURAT_MIN_SEC);
@@ -415,88 +407,84 @@
{
unitFormatString = StringLoader::LoadLC(R_QTN_TIME_DURAT_LONG);
}
-
+
TBuf<64> dur;
TTime durTime = TTime(durationInSeconds * 1000000);
durTime.FormatL(dur, *unitFormatString);
- AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dur );
-
+ AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dur );
+
durationField.Append( dur );
iDurationLabel->SetTextL(durationField);
iDurationLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
- iDurationLabel->MakeVisible( ETrue );
+ iDurationLabel->MakeVisible( ETrue );
rowsAdded++;
-
+
CleanupStack::PopAndDestroy( unitFormatString ); // unitFormatString
CleanupStack::PopAndDestroy( heading );
-
- }
-
+ }
// Bitrate
if ( iController->FileDetails()->iBitRate > 0 )
{
- iBitrateLabel->SetExtent(
- TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
+ iBitrateLabel->SetExtent(
+ TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
TSize( labelWidth, labelHeight )
);
- HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_BITRATE_HEADING );
+ HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_BITRATE_HEADING );
CleanupStack::PushL( heading );
-
+
TBuf<KMediaDetailsViewerMaxBufLen> bitrateField;
bitrateField.Append(KLeftMargin);
bitrateField.Append( *heading );
bitrateField.Append( KHeadingValueSeperator );
-
- HBufC* formattedBitrate =
+
+ HBufC* formattedBitrate =
StringLoader::LoadLC(R_MPX_BITRATE_UNITS,iController->FileDetails()->iBitRate / 1000 );
-
+
bitrateField.Append( *formattedBitrate );
iBitrateLabel->SetTextL(bitrateField);
iBitrateLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
- iBitrateLabel->MakeVisible( ETrue );
+ iBitrateLabel->MakeVisible( ETrue );
rowsAdded++;
CleanupStack::PopAndDestroy( formattedBitrate ); // formattedBitrate
CleanupStack::PopAndDestroy( heading );
- }
+ }
// Title
- if ( iController->FileDetails()->iTitle
- && iController->FileDetails()->iTitle->Length() )
+ if ( iController->FileDetails()->iTitle && iController->FileDetails()->iTitle->Length() )
{
- iTitleLabel->SetExtent(
- TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
- TSize( labelWidth, labelHeight )
+ iTitleLabel->SetExtent(
+ TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
+ TSize( labelWidth, labelHeight )
);
- HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_TITLE_HEADING );
+ HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_TITLE_HEADING );
CleanupStack::PushL( heading );
-
+
TBuf<KMediaDetailsViewerMaxBufLen> titleField;
titleField.Append(KLeftMargin);
titleField.Append( *heading );
titleField.Append( KHeadingValueSeperator );
TInt allowLen = KMediaDetailsViewerMaxBufLen-titleField.Length();
- titleField.Append( (iController->FileDetails()->iTitle)->Left(allowLen) );
+ titleField.Append( (iController->FileDetails()->iTitle)->Left(allowLen) );
iTitleLabel->SetTextL(titleField);
iTitleLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
iTitleLabel->MakeVisible( ETrue );
rowsAdded++;
-
- CleanupStack::PopAndDestroy( heading );
- }
+
+ CleanupStack::PopAndDestroy( heading );
+ }
// Artist
- if ( iController->FileDetails()->iArtist
- && iController->FileDetails()->iArtist->Length() )
+ if ( iController->FileDetails()->iArtist && iController->FileDetails()->iArtist->Length() )
{
- iArtistLabel->SetExtent(
- TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
+ iArtistLabel->SetExtent(
+ TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
TSize( labelWidth, labelHeight )
);
- HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_ARTIST_HEADING );
+ HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_ARTIST_HEADING );
CleanupStack::PushL( heading );
-
+
TBuf<KMediaDetailsViewerMaxBufLen> artistField;
artistField.Append(KLeftMargin);
artistField.Append( *heading );
@@ -507,19 +495,18 @@
iArtistLabel->SetAllMarginsTo(KMediaDetailsViewerItemMargin);
iArtistLabel->MakeVisible( ETrue );
rowsAdded++;
-
- CleanupStack::PopAndDestroy( heading );
- }
-
-
+
+ CleanupStack::PopAndDestroy( heading );
+ }
+
// Additional Label
- if ( iAdditionalString && iAdditionalString->Length() )
- {
+ if ( iAdditionalString && iAdditionalString->Length() )
+ {
iAdditionalLabel->SetExtent(
- TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
+ TPoint( Rect().iTl.iX, Rect().iTl.iY + ( labelHeight * rowsAdded ) ) ,
TSize( labelWidth, labelHeight )
- );
-
+ );
+
TBuf<KMediaDetailsViewerMaxBufLen> titleField;
titleField.Append(KLeftMargin);
TInt allowLen = KMediaDetailsViewerMaxBufLen-titleField.Length();
@@ -545,9 +532,9 @@
// -------------------------------------------------------------------------------------------------
//
CCoeControl* CMPXVideoPlaybackMediaDetailsViewer::ComponentControl(TInt aIndex) const
-{
+{
CCoeControl* control = NULL;
-
+
switch ( aIndex )
{
case 0:
@@ -580,7 +567,7 @@
default:
break;
}
-
+
return control;
}
@@ -598,60 +585,59 @@
//
void CMPXVideoPlaybackMediaDetailsViewer::CreateLabelsL()
{
- // Licence / DRM
+ // Licence / DRM
iLicenseLabel = new (ELeave) CEikLabel;
- iLicenseLabel->SetContainerWindowL( *this );
+ iLicenseLabel->SetContainerWindowL( *this );
iLicenseLabel->SetTextL( KNullDesC );
// Filename
iClipnameLabel = new (ELeave) CEikLabel;
- iClipnameLabel->SetContainerWindowL( *this );
- iClipnameLabel->SetTextL( KNullDesC );
+ iClipnameLabel->SetContainerWindowL( *this );
+ iClipnameLabel->SetTextL( KNullDesC );
iClipnameLabel->SetLabelAlignment( ELayoutAlignBidi );
-
+
// Title
iTitleLabel = new (ELeave) CEikLabel;
- iTitleLabel->SetContainerWindowL( *this );
- iTitleLabel->SetTextL( KNullDesC );
+ iTitleLabel->SetContainerWindowL( *this );
+ iTitleLabel->SetTextL( KNullDesC );
iTitleLabel->SetLabelAlignment( ELayoutAlignBidi );
-
+
// Artist
iArtistLabel = new (ELeave) CEikLabel;
- iArtistLabel->SetContainerWindowL( *this );
- iArtistLabel->SetTextL( KNullDesC );
+ iArtistLabel->SetContainerWindowL( *this );
+ iArtistLabel->SetTextL( KNullDesC );
iArtistLabel->SetLabelAlignment( ELayoutAlignBidi );
-
+
// Format
iFormatLabel = new (ELeave) CEikLabel;
- iFormatLabel->SetContainerWindowL( *this );
+ iFormatLabel->SetContainerWindowL( *this );
iFormatLabel->SetTextL( KNullDesC );
iFormatLabel->SetLabelAlignment( ELayoutAlignBidi );
-
+
// Resolution
iResolutionLabel = new (ELeave) CEikLabel;
- iResolutionLabel->SetContainerWindowL( *this );
- iResolutionLabel->SetTextL( KNullDesC );
+ iResolutionLabel->SetContainerWindowL( *this );
+ iResolutionLabel->SetTextL( KNullDesC );
iResolutionLabel->SetLabelAlignment( ELayoutAlignBidi );
-
+
// Duration
iDurationLabel = new (ELeave) CEikLabel;
- iDurationLabel->SetContainerWindowL( *this );
- iDurationLabel->SetTextL( KNullDesC );
+ iDurationLabel->SetContainerWindowL( *this );
+ iDurationLabel->SetTextL( KNullDesC );
iDurationLabel->SetLabelAlignment( ELayoutAlignBidi );
-
+
// Bitrate
iBitrateLabel = new (ELeave) CEikLabel;
- iBitrateLabel->SetContainerWindowL( *this );
- iBitrateLabel->SetTextL( KNullDesC );
+ iBitrateLabel->SetContainerWindowL( *this );
+ iBitrateLabel->SetTextL( KNullDesC );
iBitrateLabel->SetLabelAlignment( ELayoutAlignBidi );
// Additional Labels
iAdditionalLabel = new (ELeave) CEikLabel;
- iAdditionalLabel->SetContainerWindowL( *this );
- iAdditionalLabel->SetTextL( KNullDesC );
+ iAdditionalLabel->SetContainerWindowL( *this );
+ iAdditionalLabel->SetTextL( KNullDesC );
iAdditionalLabel->SetLabelAlignment( ELayoutAlignBidi );
-
-}
+}
// -----------------------------------------------------------------------------
// CMPXVideoPlaybackMediaDetailsViewer::UpdateBackgroundBitmapL
@@ -662,16 +648,15 @@
{
TSize bitmapSize = Rect().Size();
- CFbsBitmapDevice* bgBitmapDevice =
- CFbsBitmapDevice::NewL( iBackgroundBitmap );
+ CFbsBitmapDevice* bgBitmapDevice = CFbsBitmapDevice::NewL( iBackgroundBitmap );
CleanupStack::PushL( bgBitmapDevice );
-
+
CFbsBitGc* bgBitGc( NULL );
User::LeaveIfError( bgBitmapDevice->CreateContext( bgBitGc ) );
CleanupStack::PushL( bgBitGc );
bgBitGc->SetBrushColor( TRgb(0x708090) ); // slate gray
- bgBitGc->Clear();
+ bgBitGc->Clear();
CleanupStack::PopAndDestroy( bgBitGc );
CleanupStack::PopAndDestroy( bgBitmapDevice );
@@ -680,22 +665,22 @@
//
// Scan line length in 32-bit words
TInt scanLineLengthWord = CFbsBitmap::ScanLineLength( bitmapSize.iWidth, EColor16MA) / 4;
-
+
iBackgroundBitmap->LockHeap();
- TUint32* dataAddr =
- reinterpret_cast<TUint32*>( iBackgroundBitmap->DataAddress() );
+ TUint32* dataAddr = reinterpret_cast<TUint32*>( iBackgroundBitmap->DataAddress() );
+
for ( TInt y = 0; y < bitmapSize.iHeight; y++ )
+ {
+ for ( TInt x = 0; x < bitmapSize.iWidth; x++ )
+ {
+ if ( ( y + x ) & 1 )
{
- for ( TInt x = 0; x < bitmapSize.iWidth; x++ )
- {
- if ( ( y + x ) & 1 )
- {
- // Make this pixel transparent
- dataAddr[y * scanLineLengthWord + x] = 0x00000000;
- }
- }
+ // Make this pixel transparent
+ dataAddr[y * scanLineLengthWord + x] = 0x00000000;
}
-
+ }
+ }
+
iBackgroundBitmap->UnlockHeap();
}
@@ -705,9 +690,9 @@
//
TInt CMPXVideoPlaybackMediaDetailsViewer::ScrollFilenameTimer( TAny* aPtr )
{
- TRAP_IGNORE(
- static_cast<CMPXVideoPlaybackMediaDetailsViewer*>(aPtr)->HandleScrollFilenameTimerL()
- );
+ TRAP_IGNORE(
+ static_cast<CMPXVideoPlaybackMediaDetailsViewer*>(aPtr)->HandleScrollFilenameTimerL()
+ );
return KErrNone;
}
@@ -716,55 +701,79 @@
// -------------------------------------------------------------------------------------------------
//
void CMPXVideoPlaybackMediaDetailsViewer::HandleScrollFilenameTimerL()
-{
- HBufC* fileName = iController->FileDetails()->GenerateFileNameL();
-
- if ( fileName && fileName->Length() )
+{
+ MPX_ENTER_EXIT( _L( "CMPXVideoPlaybackMediaDetailsViewer::HandleScrollFilenameTimerL" ) );
+
+ TBool skipForTimerDelay = EFalse;
+
+ // add a delay after each complete scrolling
+ if ( iScrollTimerDelayBeginningTick != KInvalidTick )
{
- CleanupStack::PushL( fileName );
- if ( iShouldPauseScrolling )
+ if ( ( User::NTickCount() - iScrollTimerDelayBeginningTick ) >= KScrollTimerDelayTickCounts )
+ {
+ iScrollTimerDelayBeginningTick = KInvalidTick;
+ }
+ else
{
- iShouldPauseScrolling = EFalse;
- User::After( 2000000 ); // add a 2 second delay after each complete scrolling
- }
-
- TInt length = fileName->Length();
-
- HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_FILENAME_HEADING );
- CleanupStack::PushL( heading );
+ skipForTimerDelay = ETrue;
+ }
+ }
+
+ if ( !skipForTimerDelay && iShouldPauseScrolling )
+ {
+ iShouldPauseScrolling = EFalse;
+ iScrollTimerDelayBeginningTick = User::NTickCount();
+ skipForTimerDelay = ETrue;
+ }
+
+ // skip the scrolling operation if the loop for delay is going on
+ if ( !skipForTimerDelay )
+ {
+ HBufC* fileName = iController->FileDetails()->GenerateFileNameL();
+
+
+ if ( fileName && fileName->Length() )
+ {
+ CleanupStack::PushL( fileName );
- TBuf<KMediaDetailsViewerMaxBufLen> filenameField;
- filenameField.Append(KLeftMargin);
- filenameField.Append( *heading );
- filenameField.Append( KHeadingValueSeperator );
-
- if ( length >= KMediaDetailsViewerVisibleCharacters )
- {
- filenameField.Append( fileName->Mid( iScrollPosition,
- KMediaDetailsViewerVisibleCharacters ) );
+ TInt length = fileName->Length();
+
+ HBufC* heading = iEikonEnv->AllocReadResourceL( R_MPX_FILENAME_HEADING );
+ CleanupStack::PushL( heading );
+
+ TBuf<KMediaDetailsViewerMaxBufLen> filenameField;
+ filenameField.Append(KLeftMargin);
+ filenameField.Append( *heading );
+ filenameField.Append( KHeadingValueSeperator );
- if ( iScrollPosition == (length - KMediaDetailsViewerVisibleCharacters) )
+ if ( length >= KMediaDetailsViewerVisibleCharacters )
{
- iScrollPosition = 0;
- iShouldPauseScrolling = ETrue;
+ filenameField.Append( fileName->Mid( iScrollPosition,
+ KMediaDetailsViewerVisibleCharacters ) );
+
+ if ( iScrollPosition == (length - KMediaDetailsViewerVisibleCharacters) )
+ {
+ iScrollPosition = 0;
+ iShouldPauseScrolling = ETrue;
+ }
+ else
+ {
+ iScrollPosition++;
+ }
}
else
{
- iScrollPosition++;
+ filenameField.Append( *fileName );
+ iScrollingTextTimer->Cancel(); // no need to keep the timer active
}
- }
- else
- {
- filenameField.Append( *fileName );
- iScrollingTextTimer->Cancel(); // no need to keep the timer active
+
+ iClipnameLabel->SetTextL(filenameField);
+ DrawNow();
+
+ CleanupStack::PopAndDestroy( heading );
+ CleanupStack::PopAndDestroy( fileName );
}
-
- iClipnameLabel->SetTextL(filenameField);
- DrawNow();
-
- CleanupStack::PopAndDestroy( heading );
- CleanupStack::PopAndDestroy( fileName );
- }
+ }
}
@@ -775,43 +784,43 @@
TInt CMPXVideoPlaybackMediaDetailsViewer::NumOfItemsShownInViewerL()
{
TInt numOfItems = 0;
-
+
if ( iController->FileDetails()->iDrmProtected )
{
numOfItems++;
}
-
+
if ( iController->FileDetails()->iClipName )
{
numOfItems++;
}
-
+
if ( iController->FileDetails()->iMimeType )
{
numOfItems++;
}
-
- if ( iController->FileDetails()->iVideoHeight &&
+
+ if ( iController->FileDetails()->iVideoHeight &&
iController->FileDetails()->iVideoWidth )
{
numOfItems++;
}
-
+
if ( iController->FileDetails()->iDuration > 0 )
{
- numOfItems++;
+ numOfItems++;
}
-
+
if ( iController->FileDetails()->iBitRate > 0 )
{
- numOfItems++;
+ numOfItems++;
}
-
+
if ( iController->FileDetails()->iTitle )
{
numOfItems++;
}
-
+
if ( iController->FileDetails()->iArtist )
{
numOfItems++;
@@ -819,27 +828,27 @@
// Additional File Details
CMPXFileDetailsPlugin* addPlugin( NULL );
-
+
// Use the interface to load the ecom plugin
TRAPD ( err, addPlugin = CMPXFileDetailsPlugin::NewL( KFileDetailsCntlPluginUid ) );
// If plugin loaded successfully
- if (!err )
+ if ( ! err )
{
TPtrC addLabel;
addLabel.Set( addPlugin->GetAdditionalLabelLC( iController->FileDetails()->iFourCCCode ) );
iAdditionalString = addLabel.AllocL();
- if ( iAdditionalString->Length() )
- {
+ if ( iAdditionalString->Length() )
+ {
numOfItems++;
}
CleanupStack::PopAndDestroy(); // addLabel
}
-
+
delete addPlugin;
-
+
return numOfItems;
}
@@ -850,38 +859,38 @@
TRect CMPXVideoPlaybackMediaDetailsViewer::CalculateViewerRectL()
{
TInt numOfItems = NumOfItemsShownInViewerL();
- TRect viewerRect;
-
- // optimize viewer's width for the clipname
+ TRect viewerRect;
+
+ // optimize viewer's width for the clipname
TInt horizontalOffset = 0;
TInt filenameLength = iController->FileDetails()->iClipName->Des().Length();
- if ( filenameLength <= KMediaDetailsViewerFilenameMedium )
+ if ( filenameLength <= KMediaDetailsViewerFilenameMedium )
{
- horizontalOffset =
+ horizontalOffset =
iController->iContainer->Rect().iBr.iX / KMediaDetailsViewerOffsetDivisorMedium;
- }
+ }
else
{
- horizontalOffset =
+ horizontalOffset =
iController->iContainer->Rect().iBr.iX / KMediaDetailsViewerOffsetDivisorMax;
}
-
- TInt eachItemHeight =
- iController->iContainer->Rect().iBr.iY / KMediaDetailsViewerMaxItems;
-
- TInt verticalHalf = iController->iContainer->Rect().iBr.iY / 2;
-
+
+ TInt eachItemHeight = iController->iContainer->Rect().iBr.iY / KMediaDetailsViewerMaxItems;
+
+ TInt verticalHalf = iController->iContainer->Rect().iBr.iY / 2;
+
TInt tLX = (iController->iContainer->Rect().iTl.iX) + horizontalOffset;
- TInt bRX = (iController->iContainer->Rect().iBr.iX) - horizontalOffset;
-
+ TInt bRX = (iController->iContainer->Rect().iBr.iX) - horizontalOffset;
+
TInt tLY = verticalHalf - ( eachItemHeight * numOfItems/2 );
-
- // pad for the margins on top and bottom of viewer
- TInt bRY = verticalHalf + ( eachItemHeight * numOfItems/2 ) + (KMediaDetailsViewerItemMargin * 2);
-
+
+ // pad for the margins on top and bottom of viewer
+ TInt bRY =
+ verticalHalf + ( eachItemHeight * numOfItems/2 ) + ( KMediaDetailsViewerItemMargin * 2 );
+
viewerRect = TRect( tLX, tLY, bRX, bRY );
-
+
return viewerRect;
}
@@ -895,5 +904,4 @@
}
-
// End of File