--- 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;