Revision: 201001
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:36:37 +0200
changeset 2 7a9a8e73f54b
parent 1 7f2202662322
child 3 b425f12f328d
Revision: 201001 Kit: 201003
mmappcomponents/asxparser/src/asxparser.cpp
mmappcomponents/asxparser/test/AsxFiles/multiURL.asx
mmappcomponents/asxparser/test/test.cpp
mmappcomponents/collectionhelper/inc/mpxcollectionuihelperimp.h
mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp
mmappfw_plat/mpx_playback_common_definition_api/inc/mpxplaybackframeworkdefs.h
mpx/playbackframework/playbackengine/src/mpxaccessoryobserver.cpp
mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp
mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp
--- 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
+                }
             }
         }