--- a/mmappcomponents/asxparser/src/asxparser.cpp Thu Jan 07 12:57:30 2010 +0200
+++ b/mmappcomponents/asxparser/src/asxparser.cpp Mon Jan 18 20:36:37 2010 +0200
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 10.1.5 %
+// Version : %version: e003sa33#10.1.6 %
@@ -299,7 +299,8 @@
CleanupStack::PopAndDestroy(); //attributeList
}
- while( nodelist2.HasNext() )
+ TBool urlIsSet = EFalse;
+ while( !urlIsSet && nodelist2.HasNext() )
{
element = nodelist2.Next();
@@ -326,6 +327,8 @@
TPtrC8 attrData = attr.Value();
asxItem->url = attrData.AllocL();
iAsxArray.Append(asxItem);
+ urlIsSet = ETrue;
+ break;
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappcomponents/asxparser/test/AsxFiles/multiURL.asx Mon Jan 18 20:36:37 2010 +0200
@@ -0,0 +1,25 @@
+<ASX version = "3.0">
+ <ABSTRACT>Unknown Abstract Info</ABSTRACT>
+ <TITLE>Unknown Title</TITLE>
+ <AUTHOR>Unknown Author</AUTHOR>
+ <COPYRIGHT>2008 by Nokia</COPYRIGHT>
+ <MOREINFO HREF = "rtsp://195.134.224.240:554/t3.3gp" />
+ <ENTRY>
+ <TITLE>Link 1</TITLE>
+ <COPYRIGHT>2008 Nokia</COPYRIGHT>
+ <MOREINFO HREF = "http://www.microsoft.com/windows/windowsmedia"></MOREINFO>
+ <REF HREF = "http://10.48.2.56:443/WMTest/256k_WMV9_QCIF_WMA9_30fps.wmv" />
+ </ENTRY>
+ <ENTRY>
+ <TITLE>Link 2</TITLE>
+ <COPYRIGHT>2008 Nokia</COPYRIGHT>
+ <MOREINFO HREF = "http://www.microsoft.com/windows/windowsmedia"></MOREINFO>
+ <REF HREF = "http://10.48.2.56:443/WMTest/KennyRogers-LoveLiftedMe.wma" />
+ </ENTRY>
+ <ENTRY>
+ <TITLE>Link 3</TITLE>
+ <COPYRIGHT>2008 Nokia</COPYRIGHT>
+ <MOREINFO HREF = "http://www.microsoft.com/windows/windowsmedia"></MOREINFO>
+ <REF HREF = "http://10.48.2.56:443/WMTest/Kill_Kevin_01_US_s.wmv" />
+ </ENTRY>
+</ASX>
--- a/mmappcomponents/asxparser/test/test.cpp Thu Jan 07 12:57:30 2010 +0200
+++ b/mmappcomponents/asxparser/test/test.cpp Mon Jan 18 20:36:37 2010 +0200
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 5 %
+// Version : %version: e003sa33#6 %
@@ -103,6 +103,20 @@
PrintUrl(url);
delete parser;
}
+
+ RDebug::Print(_L("#MP# TestAsx Test 5"));
+ {
+ _LIT(KFile,"c:\\multiURL_v3.asx");
+ parser = CAsxParser::NewL(KFile);
+ TUint i = 0;
+ parser->GetUrlCount(i);
+ __ASSERT_DEBUG(i == 1,1);
+ TPtrC8 url;
+ TPtrC16 url2;
+ parser->GetUrl(1,url);
+ PrintUrl(url);
+ delete parser;
+ }
}
void DoExampleL()
--- a/mmappcomponents/collectionhelper/inc/mpxcollectionuihelperimp.h Thu Jan 07 12:57:30 2010 +0200
+++ b/mmappcomponents/collectionhelper/inc/mpxcollectionuihelperimp.h Mon Jan 18 20:36:37 2010 +0200
@@ -848,6 +848,7 @@
TInt iEmbeddedPluginInfo;
TBool iInitialized; // collection db merging
TBool iIncAdding; // Incremental adding guard
+ TInt iRefCount;
};
#endif // CMPX_COLLECTION_UI_HELPER_H
--- a/mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp Thu Jan 07 12:57:30 2010 +0200
+++ b/mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp Mon Jan 18 20:36:37 2010 +0200
@@ -82,6 +82,8 @@
iChunkNumber = 0;
iChunkSize = 0;
iArrayIndex = 0;
+ iRefCount = 1;
+
}
@@ -103,10 +105,34 @@
//
CMPXCollectionUiHelperImp* CMPXCollectionUiHelperImp::NewLC(const TUid& aModeId)
{
- CMPXCollectionUiHelperImp* self = new( ELeave ) CMPXCollectionUiHelperImp();
- CleanupStack::PushL( self );
- self->ConstructL(aModeId);
- return self;
+
+ CMPXCollectionUiHelperImp* self(NULL);
+
+ if ( aModeId == KMcModeDefault )
+ {
+ self = reinterpret_cast<CMPXCollectionUiHelperImp*>(Dll::Tls());
+ if ( !self )
+ {
+ self = new( ELeave ) CMPXCollectionUiHelperImp();
+ CleanupStack::PushL( self );
+ self->ConstructL(aModeId);
+ Dll::SetTls( self );
+ }
+ else
+ {
+ self->iRefCount++;
+ CleanupStack::PushL( self );
+ }
+
+ return self;
+ }
+ else
+ {
+ self = new( ELeave ) CMPXCollectionUiHelperImp();
+ CleanupStack::PushL( self );
+ self->ConstructL(aModeId);
+ return self;
+ }
}
// ---------------------------------------------------------------------------
@@ -1016,7 +1042,21 @@
//
void CMPXCollectionUiHelperImp::Close()
{
- delete this;
+
+ ASSERT( iRefCount > 0 );
+ if ( --iRefCount == 0 )
+ {
+ // last client released
+ CMPXCollectionUiHelperImp* s = reinterpret_cast<CMPXCollectionUiHelperImp*>( Dll::Tls() );
+ if ( s )
+ {
+ if ( s == this )
+ {
+ delete this;
+ Dll::SetTls( NULL );
+ }
+ }
+ }
}
// ---------------------------------------------------------------------------
--- a/mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackframeworkdefs.h Thu Jan 07 12:57:30 2010 +0200
+++ b/mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackframeworkdefs.h Mon Jan 18 20:36:37 2010 +0200
@@ -164,7 +164,8 @@
EPbAccessoryLoopset = 0x00000020,
EPbAccessoryMusicStand = 0x00000040,
EPbAccessoryTVOut = 0x00000080,
- EPbAccessoryHeadphones = 0x00000100
+ EPbAccessoryHeadphones = 0x00000100,
+ EPbAccessoryHDMI = 0x00000200
};
#else
/**
--- a/mpx/playbackframework/playbackengine/src/mpxaccessoryobserver.cpp Thu Jan 07 12:57:30 2010 +0200
+++ b/mpx/playbackframework/playbackengine/src/mpxaccessoryobserver.cpp Mon Jan 18 20:36:37 2010 +0200
@@ -211,6 +211,9 @@
case EAccModeHeadphones:
mode = EPbAccessoryHeadphones;
break;
+ case EAccModeHDMI:
+ mode = EPbAccessoryHDMI;
+ break;
default:
break;
}
--- a/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Thu Jan 07 12:57:30 2010 +0200
+++ b/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Mon Jan 18 20:36:37 2010 +0200
@@ -1514,7 +1514,7 @@
// Try pre-initialsing the next song, just in case we get there
//
TBool more = iInitializer->Next();
- if (!more && iPlaylist->Shuffle())
+ if (!more && iPlaylist && iPlaylist->Shuffle())
{ // Reach to the end and shuffle is on, pre-initializer
// needs to re-copy the new shuffle list from engine
if (iInitializer)
--- a/mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp Thu Jan 07 12:57:30 2010 +0200
+++ b/mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp Mon Jan 18 20:36:37 2010 +0200
@@ -367,8 +367,11 @@
EPbCmdPlayPause == cmdType ||
EPbCmdStop == cmdType)
{
- aCmd.SetTObjectValueL<TProcessId>(KMPXCommandPlaybackGeneralClientPid,
- RProcess().Id()); // current process id
+ if( !aCmd.IsSupported( KMPXCommandPlaybackGeneralClientPid ) )
+ {
+ aCmd.SetTObjectValueL<TProcessId> (
+ KMPXCommandPlaybackGeneralClientPid, RProcess().Id()); // current process id
+ }
}
}