Revision: 201013 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 14 Apr 2010 16:29:54 +0300
branchRCL_3
changeset 11 03a293c97d5c
parent 10 3d8c721bf319
child 13 f5c5c82a163e
Revision: 201013 Kit: 201015
mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Src/3GPAudioPlayControllerPlugin.cpp
mmmw_plat/telephony_multimedia_service_api/tsrc/TmsAudioServicesTestClass/sis/create_sis.bat
mmserv/metadatautility/Src/MetaDataParserID3v22.cpp
mmserv/metadatautility/Src/MetaDataParserID3v23.cpp
mmserv/metadatautility/Src/MetaDataParserID3v24.cpp
mmserv/metadatautility/Src/MetaDataParserWMA.cpp
mmserv/radioutility/radioserver/Server/Src/RadioServer.cpp
--- a/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Src/3GPAudioPlayControllerPlugin.cpp	Wed Mar 31 22:29:45 2010 +0300
+++ b/mmfenh/advancedaudiocontroller/audiocontrollerpluginsvariant/3gpaudioplaycontroller/Src/3GPAudioPlayControllerPlugin.cpp	Wed Apr 14 16:29:54 2010 +0300
@@ -109,6 +109,7 @@
     delete iAudioUtility; // see 3gp
     delete iAacUtil;
     iAudioUtility = NULL;
+    iAacUtil = NULL;
 	iDataSourceAdapter = C3gpDataSourceAdapter::NewL();
 	iSharedBufferMaxNum = 1;
 	iSharedBufferMaxSize = KFirstBufferSize;
--- a/mmmw_plat/telephony_multimedia_service_api/tsrc/TmsAudioServicesTestClass/sis/create_sis.bat	Wed Mar 31 22:29:45 2010 +0300
+++ b/mmmw_plat/telephony_multimedia_service_api/tsrc/TmsAudioServicesTestClass/sis/create_sis.bat	Wed Apr 14 16:29:54 2010 +0300
@@ -5,7 +5,7 @@
 rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 rem All rights reserved.
 rem This component and the accompanying materials are made available
-rem under the terms of the License "Eclipse Public License v1.0"
+rem under the terms of the "Eclipse Public License v1.0"
 rem which accompanies this distribution, and is available
 rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
 rem
--- a/mmserv/metadatautility/Src/MetaDataParserID3v22.cpp	Wed Mar 31 22:29:45 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserID3v22.cpp	Wed Apr 14 16:29:54 2010 +0300
@@ -619,10 +619,20 @@
 	TInt length = info.Length();
 	if ( length )
 		{
-		TReal sec = (TReal) atoi((char*)info.Ptr()) / 1000;
-		TBuf16<10> info1;
-		info1.Num(sec, TRealFormat (9, 3));
-		iContainer->AppendL( EMetaDataDuration, info1 );
+		HBufC* data16 = HBufC::NewLC( length );
+		TPtr unicode( data16->Des() );
+		if ( ConvertToUnicodeL(encoding, info, unicode) == KErrNone )
+			{
+			TLex16 lex(unicode);
+			TReal milliSec = 0;
+			TBuf16<10> info1;
+			
+			lex.Val(milliSec);				
+			info1.Num(milliSec/1000, TRealFormat (9, 3));
+			iContainer->AppendL( EMetaDataDuration, info1 );
+			}
+		CleanupStack::PopAndDestroy();  // data16
+		
 		}
 
 	CleanupStack::PopAndDestroy();  // frame
--- a/mmserv/metadatautility/Src/MetaDataParserID3v23.cpp	Wed Mar 31 22:29:45 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserID3v23.cpp	Wed Apr 14 16:29:54 2010 +0300
@@ -666,12 +666,20 @@
 	TInt length = info.Length();
 	if ( length )
 		{
-		TReal sec = ((TReal) atoi((char*)info.Ptr())) / 1000;
-		TBuf16<10> info1;
-		info1.Num(sec, TRealFormat (9, 3));
-		iContainer->AppendL( EMetaDataDuration, info1 );
+		HBufC* data16 = HBufC::NewLC( length );
+		TPtr unicode( data16->Des() );
+		if ( ConvertToUnicodeL(encoding, info, unicode) == KErrNone )
+			{
+			TLex16 lex(unicode);
+			TReal milliSec = 0;
+			TBuf16<10> info1;
+			
+			lex.Val(milliSec);				
+			info1.Num(milliSec/1000, TRealFormat (9, 3));
+			iContainer->AppendL( EMetaDataDuration, info1 );
+			}
+		CleanupStack::PopAndDestroy();  // data16
 		}
-
 	CleanupStack::PopAndDestroy();  // frame
 	}
 
--- a/mmserv/metadatautility/Src/MetaDataParserID3v24.cpp	Wed Mar 31 22:29:45 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserID3v24.cpp	Wed Apr 14 16:29:54 2010 +0300
@@ -673,10 +673,20 @@
 	TInt length = info.Length();
 	if ( length )
 		{
-		TReal sec = (TReal) atoi((char*)info.Ptr()) / 1000;
-		TBuf16<10> info1;
-		info1.Num(sec, TRealFormat (9, 3));
-		iContainer->AppendL( EMetaDataDuration, info1 );
+		HBufC* data16 = HBufC::NewLC( length );
+		TPtr unicode( data16->Des() );
+		if ( ConvertToUnicodeL(encoding, info, unicode) == KErrNone )
+			{
+			TLex16 lex(unicode);
+			TReal milliSec = 0;
+			TBuf16<10> info1;
+			
+			lex.Val(milliSec);				
+			info1.Num(milliSec/1000, TRealFormat (9, 3));
+			iContainer->AppendL( EMetaDataDuration, info1 );
+			}
+		CleanupStack::PopAndDestroy();  // data16
+		
 		}
 
 	CleanupStack::PopAndDestroy();  // frame
--- a/mmserv/metadatautility/Src/MetaDataParserWMA.cpp	Wed Mar 31 22:29:45 2010 +0300
+++ b/mmserv/metadatautility/Src/MetaDataParserWMA.cpp	Wed Apr 14 16:29:54 2010 +0300
@@ -28,6 +28,23 @@
 #include <s32mem.h>
 
 // CONSTANTS
+/***
+ *  File Properties Objects:
+ *  Object ID,          GUID,   128 [bits]
+ *  Object Size,        QWORD,  64 
+ *  File ID,            GUID,   128 
+ *  File Size,          QWORD,  64
+ *  Creation Date,      QWORD,  64
+ *  Data Packets Count, QWORD,  64
+ *  Play Duration,      QWORD,  64
+ *  Send Duration,      QWORD,  64
+ *  Preroll,            QWORD,  64
+ *  Flags,              DWORD,  32 
+ */
+const TInt KDurationOffset  = 64;       // duration offset from File Property object
+const TInt KPrerollOffset   = 80;       // preRoll offset from File Property object
+const TInt KFlagsOffset     = 88;       // flags offset from File Property object
+
 // ASF Header Object GUIDs 
   
 _LIT8 (KASFContentDescriptionObject, "75B22633668E11CFA6D900AA0062CE6C");
@@ -695,22 +712,37 @@
 //
 void CMetaDataParserWMA::GetDurationL()
 	{
-	TInt offset = iFilePropertiesOffset + 16;
-	TPtrC8 size8 = iHeaderData->Mid(offset, 8);
-	TInt size = ConvertToInt64(size8);
-	offset = iFilePropertiesOffset + 88;
-	TPtrC8 flags = iHeaderData->Mid(offset, 4);
-	TInt broadcastBit = (TInt) (flags[0] & 0x01);
-	if(broadcastBit == 1)
-		{
-		return; // duration not valid.
-		}
-	//offset = iFilePropertiesOffset + 48;
-	TPtrC8 duration8 = iHeaderData->Mid(offset - 24, 8); // 100 nanosec units
-	TReal sec = ((TReal)ConvertToInt64(duration8)) / 10000000; // seconds
-	TBuf16<10> des16;
-	des16.Num(sec, TRealFormat (9, 3));
+#ifdef _DEBUG
+    RDebug::Print(_L("CMetaDataParserWMA::GetDuration()"));
+#endif    
+    TInt offset = iFilePropertiesOffset + KFlagsOffset;
+    TPtrC8 flags = iHeaderData->Mid(offset, 4);
+    TInt broadcastBit = (TInt) (flags[0] & 0x01);
+    if(broadcastBit == 1)
+        {
+        return; // duration not valid.
+        }
+    
+    offset = iFilePropertiesOffset + KDurationOffset;
+    TPtrC8 duration8 = iHeaderData->Mid(offset, 8);     // 100 nanosec units
+    TReal durationSec = ((TReal)ConvertToInt64(duration8)) / 10000000; // seconds
+    
+    offset = iFilePropertiesOffset + KPrerollOffset;
+    TPtrC8 preRoll8 = iHeaderData->Mid(offset, 8);      // millisec units
+    TReal preRollSec = ((TReal)ConvertToInt64(preRoll8)) / 1000; // seconds
+    TReal sec = durationSec - preRollSec;               // not include preroll
+
+    TBuf16<10> des16;	
+    TRealFormat format(9, 3);                           // width=9, decimal place=3
+    // Use fixed format, and do not use Triads
+    format.iType = KRealFormatFixed | KDoNotUseTriads; 
+    des16.Num(sec, format);	                            // convert to string
+	
 	iContainer->AppendL( EMetaDataDuration, des16 );
+#ifdef _DEBUG
+    RDebug::Print(_L("CMetaDataParserWMA::GetDuration(), duration=%f"), sec);
+#endif 	
+	
 	}
 
 
--- a/mmserv/radioutility/radioserver/Server/Src/RadioServer.cpp	Wed Mar 31 22:29:45 2010 +0300
+++ b/mmserv/radioutility/radioserver/Server/Src/RadioServer.cpp	Wed Apr 14 16:29:54 2010 +0300
@@ -695,6 +695,15 @@
     TRadioServerError aError )
     {
     RADIO_RDEBUG_INT2(_L("[RADIO-SVR] SetFrequencyComplete(%d) State[%d]"), aError, iState);
+    
+    // Disable squelching, if on
+    if ( iSquelch )
+        {
+        // Restore the last volume
+        iDevSound->SetVolume(iSettings->Volume());
+        iSquelch = EFalse;
+        }
+    
     if ( iAsyncRequest && iAsyncRequest->iType == ERadioServSetFrequency )
         {
         if ( aError == KErrNone )
@@ -1798,6 +1807,12 @@
                 }
             else
                 {
+                if ( iSettings->IsSquelchEnabled() && !iSettings->IsMute() )
+                    {
+                    // Simulate squelching
+                    iDevSound->SetVolume(0);
+                    iSquelch = ETrue;
+                    }
                 iTunerControl->SetFrequency(aFrequency);
                 }
             break;