--- a/layers.sysdef.xml Thu Aug 19 10:24:28 2010 +0300
+++ b/layers.sysdef.xml Tue Aug 31 15:41:40 2010 +0300
@@ -1,14 +1,16 @@
<?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_5_1.dtd" [
<!ENTITY layer_real_source_path "sf/mw/mmappfw" >
]>
-<SystemDefinition name="avdomain" schema="1.4.0">
+<SystemDefinition name="mmappfw" schema="1.5.1">
<systemModel>
<!-- Common file for prebuild layers-->
<layer name="mw_layer">
<module name="mmappfw">
<unit unitID="mmappfw" mrp="" bldFile="&layer_real_source_path;/group" name="mmappfw" />
+ <unit unitID="mpxviewframeworkqt" name="mpxviewframeworkqt" bldFile="&layer_real_source_path;/mpx/mpxviewframeworkqt" proFile="mpxviewframeworkqt.pro" qmakeArgs="-r -config rom" mrp=""/>
+ <unit unitID="qtms" name="qtms" bldFile="&layer_real_source_path;/qtms" proFile="qtmsapi.pro" qmakeArgs="-r -config rom" mrp=""/>
</module>
</layer>
@@ -27,6 +29,8 @@
<layer name="mw_mmappfw_layer">
<module name="mmappfw_group">
<unit unitID="mmappfw_group" mrp="" bldFile="&layer_real_source_path;/group" name="mmappfw_group" />
+ <unit unitID="mpxviewframeworkqt_group" name="mpxviewframeworkqt_group" bldFile="&layer_real_source_path;/mpx/mpxviewframeworkqt" proFile="mpxviewframeworkqt.pro" qmakeArgs="-r -config rom" mrp=""/>
+ <unit unitID="qtms_group" name="qtms_group" bldFile="&layer_real_source_path;/qtms" proFile="qtmsapi.pro" qmakeArgs="-r -config rom" mrp=""/>
</module>
</layer>
--- a/mmappcomponents/asxparser/group/asxparser.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/asxparser/group/asxparser.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 9.1.3 %
+// Version : %version: 9.1.5 %
#include <platform_paths.hrh>
--- a/mmappcomponents/asxparser/inc/AsxParser_debug.h Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/asxparser/inc/AsxParser_debug.h Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 4.1.2 %
+// Version : %version: 4.1.4 %
#ifndef __MP_DEBUG_H__
--- a/mmappcomponents/asxparser/src/asxparser.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/asxparser/src/asxparser.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: e003sa33#10.1.6 %
+// Version : %version: 10.1.5.1.4 %
@@ -26,11 +26,11 @@
#include <utf.h>
#include <asxparser.h>
-#include <xmlengdomimplementation.h>
-#include <xmlengdomparser.h>
-#include <xmlengdocument.h>
-#include <xmlengelement.h>
-#include <xmlengnodelist.h>
+#include <xml/dom/xmlengdomimplementation.h>
+#include <xml/dom/xmlengdomparser.h>
+#include <xml/dom/xmlengdocument.h>
+#include <xml/dom/xmlengelement.h>
+#include <xml/dom/xmlengnodelist.h>
#include "AsxParser_debug.h"
@@ -421,7 +421,7 @@
{
iVersion = KErrNotFound;
- TInt size;
+ TInt size = 0;
User::LeaveIfError( aFile.Size( size ) );
if ( size > KMaxAsxFileSize )
--- a/mmappcomponents/asxparser/test/test.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/asxparser/test/test.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 7 %
+// Version : %version: 9 %
#include <e32base.h>
#include <e32cons.h>
--- a/mmappcomponents/asxparser/test/test.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/asxparser/test/test.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,8 @@
*
*/
-// Version : %version: 10 %
+// Version : %version: 12 %
+
#include <platform_paths.hrh>
--- a/mmappcomponents/audiofetcher/src/audiofetcherdialog.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/audiofetcher/src/audiofetcherdialog.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -600,8 +600,7 @@
switch ( aEventType )
{
- case EEventItemClicked: // fallthrough
- case EEventItemSingleClicked:
+ case EEventItemSingleClicked: // fallthrough
case EEventEnterKeyPressed:
{
TBool closeDialog = HandleListSelectionL();
--- a/mmappcomponents/collectionhelper/group/mpxcollectionhelper.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/collectionhelper/group/mpxcollectionhelper.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -56,9 +56,11 @@
LIBRARY usbman.lib
LIBRARY apgrfx.lib
LIBRARY mpxmetadataextractor.lib
+
+LIBRARY metadatautility.lib
+
#ifdef RD_MPX_TNM_INTEGRATION
LIBRARY thumbnailmanager.lib
-
#endif //RD_MPX_TNM_INTEGRATION
#if defined(ARMCC)
--- a/mmappcomponents/collectionhelper/inc/mpxcollectioncachedhelper.h Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/collectionhelper/inc/mpxcollectioncachedhelper.h Tue Aug 31 15:41:40 2010 +0300
@@ -618,6 +618,12 @@
* @param aDestination destination media to copt attributes to
*/
void DoAppendMTPL( CMPXMedia& aSrc, CMPXMedia& aDestination );
+
+ /**
+ * Attempt to set missing Metadata info in specific case
+ * @param aMedia media object to be checked and adding the info if needed
+ */
+ void SetMissingMetadataL(CMPXMedia* aMedia);
#ifdef RD_MPX_COLLECTION_CACHE
--- a/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Extended collection helper with an internal caching array
-* Version : %version: e003sa33#27.1.12.1.3 %
+* Version : %version: da1mmcf#27.1.12.3.5 %
*
*/
@@ -43,9 +43,17 @@
#include "mpxcollectionhelpercommon.h"
#include <mpxmetadataextractor.h>
+#include <MetaDataUtility.h> // for SetMissingMetadataL
+#include <MetaDataFieldContainer.h> // for SetMissingMetadataL
+
// CONSTANTS
const TInt KCacheCount = 10;
+_LIT( K3GPFileExt, ".3gp" );
+_LIT( K3G2FileExt, ".3g2" );
+_LIT( KODFFileExt, ".odf" );
+_LIT( KO4AFileExt, ".o4a" );
+
// ======== MEMBER FUNCTIONS ========
// ---------------------------------------------------------------------------
@@ -884,6 +892,9 @@
{
case EAdd:
{
+ TRAP( error, SetMissingMetadataL( media ) ); // doing this only before initial add
+ MPX_DEBUG2( "CMPXCollectionCachedHelper::Commit, SetMissingMetadataL, err = %d", error );
+
TRAP(error,
CMPXCollectionHelperImp::AddL( media );
);
@@ -1188,5 +1199,113 @@
aDestination.SetTObjectValueL( KMPXMediaMTPDrmStatus, val );
}
}
+
+// ---------------------------------------------------------------------------
+// Attempt to set missing Metadata info in specific case
+// ---------------------------------------------------------------------------
+//
+void CMPXCollectionCachedHelper::SetMissingMetadataL(CMPXMedia* aMedia)
+ {
+ MPX_FUNC("CMPXCollectionCachedHelper::SetMissingMetadataL");
+
+ const TDesC& path = aMedia->ValueText(KMPXMediaGeneralUri);
+ TParsePtrC parse( path );
+
+ // only do this for file that might not be natively supported by PC
+ if ( ( parse.Ext().CompareF(K3GPFileExt) == 0 )
+ || ( parse.Ext().CompareF(K3G2FileExt) == 0 )
+ || ( parse.Ext().CompareF(KODFFileExt) == 0 )
+ || ( parse.Ext().CompareF(KO4AFileExt) == 0 ) )
+ {
+ TBool isTitleMissing = EFalse;
+ TBool isArtistMissing = EFalse;
+ TBool isAlbumMissing = EFalse;
+
+ if ( aMedia->ValueText( KMPXMediaGeneralTitle ).Length() == 0 )
+ isTitleMissing = ETrue;
+
+ if ( aMedia->ValueText( KMPXMediaMusicArtist ).Length() == 0 )
+ isArtistMissing = ETrue;
+
+ if ( aMedia->ValueText( KMPXMediaMusicAlbum ).Length() == 0 )
+ isAlbumMissing = ETrue;
+
+ MPX_DEBUG4("CMPXCollectionCachedHelper::SetMissingMetadataL, isTitleMissing = %d, isArtistMissing = %d, isAlbumMissing = %d", isTitleMissing, isArtistMissing, isAlbumMissing);
+
+ // only do this if one of the following is missing:
+ // - Title
+ // - Artist
+ // - Album
+ // but can easily be extended to support any category field like: composer, genre
+ if ( isTitleMissing || isArtistMissing || isAlbumMissing )
+ {
+ // metadataextractor should be used instead, but not until CreateMediaL can be called without add/TN of the embedded art
+ // CR is needed to add parameter (TBool aAlbumArtNeeded = ETrue) // ETrue by default, for all existing caller
+ // for now use MDU instead
+ CMetaDataUtility* metadataUtility = CMetaDataUtility::NewL();
+
+ CleanupStack::PushL( metadataUtility );
+ metadataUtility->OpenFileL( path );
+
+ MPX_DEBUG1( "CMPXCollectionCachedHelper::SetMissingMetadataL, CMetaDataUtility::OpenFileL succeed" );
+
+ const CMetaDataFieldContainer& metaCont = metadataUtility->MetaDataFieldsL();
+
+ for ( TInt i = 0; i < metaCont.Count(); i++ )
+ {
+ TMetaDataFieldId fieldType;
+ TMPXAttributeData attribute;
+
+ metaCont.FieldIdAt( i, fieldType ); // get the field type
+
+ switch ( fieldType )
+ {
+ case EMetaDataSongTitle: // fall through
+ case EMetaDataArtist: // fall through
+ case EMetaDataAlbum:
+ {
+ if ( ( isTitleMissing && ( fieldType == EMetaDataSongTitle ) )
+ || ( isArtistMissing && ( fieldType == EMetaDataArtist ) )
+ || ( isAlbumMissing && ( fieldType == EMetaDataAlbum ) ) )
+ {
+ HBufC* value = metaCont.At( i, fieldType ).AllocL();
+ CleanupStack::PushL( value );
+
+ TPtr valptr = value->Des();
+ valptr.Trim();
+
+ // replace '\t' as ' '
+ for ( TInt i = 0; i < value->Length(); i++ )
+ {
+ if ( valptr[i] == TText( '\t' ) )
+ valptr[i] = TText( ' ' );
+ }
+
+ if ( fieldType == EMetaDataSongTitle )
+ attribute = KMPXMediaGeneralTitle;
+ else if ( fieldType == EMetaDataArtist )
+ attribute = KMPXMediaMusicArtist;
+ else
+ attribute = KMPXMediaMusicAlbum;
+
+ MPX_DEBUG3( "fieldType = %d, value = %S", fieldType, &valptr );
+ aMedia->SetTextValueL( attribute , *value );
+ CleanupStack::PopAndDestroy( value );
+ }
+ }
+
+ break;
+
+ default:
+
+ break;
+ }
+ }
+
+ metadataUtility->ResetL();
+ CleanupStack::PopAndDestroy( metadataUtility );
+ }
+ }
+ }
// END OF FILE
--- a/mmappcomponents/collectionhelper/src/mpxcollectionhelperimp.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxcollectionhelperimp.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -549,25 +549,19 @@
CMPXMedia* foundMedia(NULL);
- switch ( ary && ary->Count() ) //lint !e961
+ if ( ary && ary->Count() )
{
- case 0:
- User::Leave(KErrNotFound);
- case 1:
- {
- foundMedia = CMPXMedia::NewL(*ary->AtL(0));
- CleanupStack::PushL(foundMedia);
- foundMedia->SetTObjectValueL<TUid>(
- KMPXMediaGeneralCollectionId, TUid::Uid(col) );
- CleanupStack::Pop(foundMedia);
- break;
- }
- default:
- User::Leave(KErrCorrupt);
+ foundMedia = CMPXMedia::NewL(*ary->AtL(0));
+ CleanupStack::PushL(foundMedia);
+ foundMedia->SetTObjectValueL<TUid>( KMPXMediaGeneralCollectionId, TUid::Uid(col) );
+ CleanupStack::Pop(foundMedia);
}
-
+ else
+ {
+ User::Leave(KErrNotFound);
+ }
+
CleanupStack::PopAndDestroy(result);
-
return foundMedia;
}
--- a/mmappcomponents/harvester/collectionmediator/group/mpxcollectionmediator.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/collectionmediator/group/mpxcollectionmediator.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -53,4 +53,7 @@
deffile ../eabi/
#elif defined(WINSCW)
deffile ../bwinscw/
-#endif
\ No newline at end of file
+#endif
+
+SMPSAFE
+
--- a/mmappcomponents/harvester/filehandler/group/mpxfilehandler.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/group/mpxfilehandler.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -77,3 +77,5 @@
deffile ../bwinscw/
#endif
+SMPSAFE
+
--- a/mmappcomponents/harvester/filehandler/inc/mpxdbcommon.h Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/inc/mpxdbcommon.h Tue Aug 31 15:41:40 2010 +0300
@@ -24,11 +24,11 @@
// Please update the increment number for each increment
// Please update the version number for each schema change
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
-_LIT( KHarvesterDBName, "harvesterdbv10_1.dat" );
-_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_1i.dat" );
+_LIT( KHarvesterDBName, "harvesterdbv10_2.dat" );
+_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_2i.dat" );
#else
-_LIT( KHarvesterDBName, "harvesterdbv10_1n.dat" );
-_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_1in.dat" );
+_LIT( KHarvesterDBName, "harvesterdbv10_2n.dat" );
+_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_2in.dat" );
#endif
_LIT( KHarvesterDBPattern, "harvesterdbv*.dat" );
--- a/mmappcomponents/harvester/filehandler/inc/mpxharvesterdbmanager.h Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/inc/mpxharvesterdbmanager.h Tue Aug 31 15:41:40 2010 +0300
@@ -211,7 +211,7 @@
*
* @return TInt64 estimated file size
*/
- TInt64 CalculateInitalDummyDBSizeL( TVolumeInfo aVol, TInt aOrigDbSize );
+ TInt64 CalculateInitalDummyDBSizeL( TVolumeInfo& aVol, TInt aOrigDbSize );
/**
* Remove dummy file
--- a/mmappcomponents/harvester/filehandler/src/mpxfolderscanner.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/src/mpxfolderscanner.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -192,14 +192,6 @@
do
{
TRAP(err, iDirScan->NextL(iDir));
- if( !iDir && !err )
- {
- // if iDir NULL and no error, there are no
- // more directories in the structure
- // in this case there is no leaving functions called before
- // returning err has to be 0
- break;
- }
blocked = iObserver.IsPathBlockedL( iDirScan->FullPath() );
if( blocked )
{
@@ -254,14 +246,6 @@
{
MPX_DEBUG1("CMPXFolderScanner::SetupNextDriveToScanL iDirScan->NextL()");
TRAP(err, iDirScan->NextL(iDir));
- if( !iDir && !err )
- {
- // if iDir NULL and no error, there are no
- // more directories in the structure
- // in this case there is no leaving functions called before
- // returning err has to be 0
- break;
- }
MPX_DEBUG2("CMPXFolderScanner::SetupNextDriveToScanL path %S", &iDirScan->FullPath());
blocked = iObserver.IsPathBlockedL( iDirScan->FullPath() );
MPX_DEBUG2("CMPXFolderScanner::SetupNextDriveToScanL path blocked %i", blocked);
--- a/mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -862,7 +862,7 @@
// CMPXHarvesterDatabaseManager::CalculateInitalDummyDBSizeL
// ---------------------------------------------------------------------------
//
-TInt64 CMPXHarvesterDatabaseManager::CalculateInitalDummyDBSizeL( TVolumeInfo aVol, TInt aOrigDbSize )
+TInt64 CMPXHarvesterDatabaseManager::CalculateInitalDummyDBSizeL( TVolumeInfo& aVol, TInt aOrigDbSize )
{
MPX_FUNC("CMPXHarvesterDatabaseManager::CalculateInitalDummyDBSizeL");
TInt64 size;
--- a/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Handles all file related activities
-* Version : %version: da1mmcf#72.1.14.2.4.1.4.1.2.1.9 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#72.1.14.2.4.1.4.1.2.5.4 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -343,11 +343,12 @@
// Remove current drive from the scanned drives list
TParse fileNameParser;
User::LeaveIfError(fileNameParser.Set(iFilteredDrivesToScan[index],NULL,NULL));
- TPtrC driveName(fileNameParser.Drive());
+ TFileName driveName(fileNameParser.Drive());
TInt driveNumber = TDriveUnit( driveName );
if (currentDriveNumber == driveNumber)
{
iFilteredDrivesToScan.Remove(index);
+ iFilteredOutOfDisk = ETrue;
count--;
}
else
@@ -356,7 +357,6 @@
}
}
iDBManager->CloseDatabase(static_cast<TDriveNumber>(currentDriveNumber));
- iFilteredOutOfDisk = ETrue;
}
}
--- a/mmappcomponents/harvester/filehandler/src/mpxmetadatascanner.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/src/mpxmetadatascanner.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Active object to extract metadata
-* Version : %version: da1mmcf#16.2.3.1.6 %
+* Version : %version: da1mmcf#16.2.3.1.5.2.1 %
*
*/
--- a/mmappcomponents/harvester/metadataextractor/group/mpxmetadataextractor.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/group/mpxmetadataextractor.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -61,3 +61,6 @@
#elif defined(WINSCW)
deffile ../bwinscw/
#endif
+
+SMPSAFE
+
--- a/mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: This class is responsible for reading file info
-* Version : %version: e003sa33#5.1.3.1.10 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: e003sa33#5.1.3.1.6.2.3 % << Don't touch! Updated by Synergy at check-out.
*
* Copyright © 2005 Nokia. All rights reserved.
*/
--- a/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Extracts metadata from a file
-* Version : %version: da1mmcf#38.1.4.2.6.1.15 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#38.1.4.2.6.1.5.3.8 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -52,7 +52,7 @@
#ifdef RD_MPX_TNM_INTEGRATION
_LIT( KImageFileType, "image/jpeg" );
const TInt KMPXTimeoutTimer = 3000000; // 3 seconds
-const TInt KMPXMaxThumbnailRequest = 2;
+const TInt KMPXMaxThumbnailRequest = 2;
#endif //RD_MPX_TNM_INTEGRATION
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
@@ -186,10 +186,10 @@
aNewProperty = NULL;
iFileName = aFile;
iMetadataOnly = aMetadataOnly;
-
+
// populate the task array
AddTasksL();
-
+
// execute all tasks in the array
while ( iArrayTasks.Count() )
{
@@ -211,10 +211,10 @@
}
break;
}
-
+
iArrayTasks.Remove( 0 );
}
-
+
aNewProperty = iMedia;
iMedia = NULL; // ownership transferred.
CleanUp();
@@ -236,9 +236,6 @@
// Album
aMediaProp.SetTextValueL( KMPXMediaMusicAlbum,
KNullDesC );
- // Year
- aMediaProp.SetTObjectValueL<TInt64>( KMPXMediaMusicYear,
- (TInt64) 0 );
// Track
aMediaProp.SetTextValueL( KMPXMediaMusicAlbumTrack,
KNullDesC );
@@ -254,6 +251,10 @@
// URL
aMediaProp.SetTextValueL( KMPXMediaMusicURL,
KNullDesC );
+ // AlbumArtist
+ aMediaProp.SetTextValueL( KMPXMediaMusicAlbumArtist,
+ KNullDesC );
+
}
// ---------------------------------------------------------------------------
@@ -267,20 +268,20 @@
const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
HBufC8* mimeType8 = HBufC8::NewLC( mimeType.Length() );
mimeType8->Des().Append( mimeType );
-
+
// Continue to extract metadata even if fail.
MPX_TRAPD( metadataerror, iMetadataUtility->OpenFileL( iFile, *mimeType8 ) );
CleanupStack::PopAndDestroy( mimeType8 );
-
+
// Get MetadataUtility Container
const CMetaDataFieldContainer& metaCont = iMetadataUtility->MetaDataFieldsL();
// Get DRM data
// Need the protected flag from metadataUtility Container
MPX_TRAPD( drmerror, SetDrmMediaPropertiesL( metaCont ) );
- MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, result=%d getting drm data",
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, result=%d getting drm data",
drmerror );
-
+
// Get metadata fields
TInt count( metaCont.Count() );
for( TInt i=0; i<count; ++i )
@@ -289,19 +290,19 @@
HBufC* value = NULL;
metaCont.FieldIdAt( i, fieldType ); // get the field type
-
+
// get the value, except for album art
if ( fieldType != EMetaDataJpeg )
{
MPX_TRAPD( err, value = metaCont.At( i, fieldType ).AllocL() );
if ( KErrNone != err )
{
- MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL - error = %i", err);
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL - error = %i", err);
continue;
- }
+ }
CleanupStack::PushL( value );
}
-
+
switch( fieldType )
{
case EMetaDataSongTitle:
@@ -409,70 +410,82 @@
*value );
break;
}
- case EMetaDataDuration:
- {
+ case EMetaDataDuration:
+ {
const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
- MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);
-
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);
+
// Verify if WMA, get the duration
if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
{
- MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");
+ MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");
// Perform the duration conversion
TLex lexer( *value );
TInt32 duration ( 0 );
- lexer.Val( duration ); // [second]
+ lexer.Val( duration ); // [second]
duration *= 1000; // [msec]
-
+
iMedia->SetTObjectValueL<TInt32>( KMPXMediaGeneralDuration,
- duration );
-
- MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- duration = %i", duration);
+ duration );
+
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- duration = %i", duration);
}
break;
}
- case EMetaDataSampleRate:
- {
+ case EMetaDataSampleRate:
+ {
const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
- MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);
-
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);
+
// Verify if WMA, get the sample rate
if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
{
- MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");
+ MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");
// Perform the sample rate conversion
TLex lexer( *value );
TInt32 sampleRate ( 0 );
- lexer.Val( sampleRate );
-
+ lexer.Val( sampleRate );
+
iMedia->SetTObjectValueL<TUint>( KMPXMediaAudioSamplerate,
sampleRate );
-
- MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- sample rate = %i", sampleRate);
+
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- sample rate = %i", sampleRate);
}
break;
}
- case EMetaDataBitRate:
- {
+ case EMetaDataBitRate:
+ {
const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
- MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);
-
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);
+
// Verify if WMA, get the duration
if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
{
- MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");
+ MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");
// Perform the duration conversion
TLex lexer( *value );
TInt32 bitRate ( 0 );
- lexer.Val( bitRate );
-
+ lexer.Val( bitRate );
+
iMedia->SetTObjectValueL<TUint>( KMPXMediaAudioBitrate,
bitRate );
-
- MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- duration = %i", bitRate);
+
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- duration = %i", bitRate);
+ }
+ break;
+ }
+ case EMetaDataAlbumArtist:
+ {
+ TPtr valptr = value->Des();
+ valptr.Trim();
+ TInt vallen = value->Length();
+ if (vallen>0)
+ {
+ FindAndReplaceForbiddenChars(valptr, vallen);
+ iMedia->SetTextValueL(KMPXMediaMusicAlbumArtist, *value);
}
break;
}
@@ -493,7 +506,7 @@
}
if (fieldType != EMetaDataJpeg)
{
- CleanupStack::PopAndDestroy( value );
+ CleanupStack::PopAndDestroy( value );
}
}
}
@@ -513,25 +526,25 @@
if( iFileOpenError == KErrNone )
{
const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
- MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, mimeType = %S", &mimeType);
+ MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, mimeType = %S", &mimeType);
iFile.Size( size );
iMedia->SetTObjectValueL<TInt>( KMPXMediaGeneralSize, size );
-
+
// Verify if WMA, skip getting info from MMF
if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
{
// No need to get MMF support
- MPX_DEBUG1("CMPXMetadataExtractor::SetExtMediaPropertiesL, skip MMF ");
+ MPX_DEBUG1("CMPXMetadataExtractor::SetExtMediaPropertiesL, skip MMF ");
}
else
{
- MPX_DEBUG1("CMPXMetadataExtractor::SetExtMediaPropertiesL, get MMF controller");
+ MPX_DEBUG1("CMPXMetadataExtractor::SetExtMediaPropertiesL, get MMF controller");
// Duration, bitrate, samplerate, etc
//
if( !iMetadataOnly )
{
MPX_TRAPD(err2, iFileInfoUtil->OpenFileL(
- iFile,
+ iFile,
iMedia->ValueText(KMPXMediaGeneralMimeType)));
MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, file info util error %i", err2);
if( KErrNone == err2 )
@@ -546,7 +559,7 @@
MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL -- duration %i", duration);
}
-
+
iFileInfoUtil->Reset();
}
}
@@ -582,22 +595,22 @@
// CMPXMetadataExtractor::ThumbnailPreviewReady
// Callback but not used here
// ---------------------------------------------------------------------------
-void CMPXMetadataExtractor::ThumbnailPreviewReady(
+void CMPXMetadataExtractor::ThumbnailPreviewReady(
MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
{
MPX_FUNC("CMPXMetadataExtractor::ThumbnailPreviewReady()");
}
-
+
// ---------------------------------------------------------------------------
// CMPXMetadataExtractor::ThumbnailReady
// Callback but not used here
// ---------------------------------------------------------------------------
-void CMPXMetadataExtractor::ThumbnailReady( TInt /*aError*/,
+void CMPXMetadataExtractor::ThumbnailReady( TInt /*aError*/,
MThumbnailData& /*aThumbnail*/, TThumbnailRequestId aId )
{
MPX_FUNC("CMPXMetadataExtractor::ThumbnailReady()");
-
+
// Remove thumbnail id from array.
TInt index = iArrayTNRequestId.Find( aId );
if ( index >= 0 )
@@ -622,8 +635,8 @@
CMPXMetadataExtractor* ptr =
static_cast<CMPXMetadataExtractor*>(aPtr);
-
- // Timer expired before thumbnail callback occurred. Stop wait loop to unblock.
+
+ // Timer expired before thumbnail callback occurred. Stop wait loop to unblock.
ptr->StopWaitLoop();
return KErrNone;
}
@@ -636,7 +649,7 @@
MPX_FUNC("CMPXMetadataExtractor::StopWaitLoop()");
// Cancel timer
CancelTimeoutTimer();
-
+
// Stop wait loop to unblock.
if ( iTNSyncWait->IsStarted() )
{
@@ -646,12 +659,12 @@
}
// ----------------------------------------------------------------------------
-// Cancel timer.
+// Cancel timer.
// ----------------------------------------------------------------------------
void CMPXMetadataExtractor::CancelTimeoutTimer()
{
MPX_FUNC("CMPXMetadataExtractor::CancelTimeoutTimer()");
-
+
// Cancel timer.
if ( iTimer && iTimer->IsActive() )
{
@@ -668,12 +681,12 @@
MPX_FUNC("CMPXMetadataExtractor::ExtractAlbumArtL()");
TInt err = KErrNone;
iCancelled = EFalse;
-
+
if ( !aMedia->IsSupported(KMPXMediaGeneralUri) )
{
return KErrArgument;
}
-
+
// Get full file name.
const TDesC& path = aMedia->ValueText(KMPXMediaGeneralUri);
MPX_DEBUG2("CMPXMetadataExtractor::ExtractAlbumArtL Filename:%S ", &path );
@@ -695,7 +708,7 @@
HBufC8* value8 = ((HBufC8*)sampleData)->Des().AllocLC(); // make a local copy of sampleData
source = CThumbnailObjectSource::NewLC(
value8, mimeType, path ); // give up ownership of value8
-
+
MPX_DEBUG1("CMPXMetadataExtractor::ExtractAlbumArtL source created from buffer");
TThumbnailRequestId tnId = iTNManager->CreateThumbnails( *source );
iArrayTNRequestId.Append( tnId );
@@ -706,7 +719,7 @@
{
source = CThumbnailObjectSource::NewLC(
path, KImageFileType );
-
+
MPX_DEBUG1("CMPXMetadataExtractor::ExtractAlbumArtL source created from path");
TThumbnailRequestId tnId = iTNManager->CreateThumbnails( *source );
iArrayTNRequestId.Append( tnId );
@@ -721,7 +734,7 @@
RArray<TMetaDataFieldId> wantedFields;
CleanupClosePushL( wantedFields );
wantedFields.Append(EMetaDataJpeg);
-
+
// Open file
if ( aMedia->IsSupported(KMPXMediaGeneralMimeType) )
{
@@ -737,7 +750,7 @@
MPX_TRAP( err, iMetadataUtility->OpenFileL( path, wantedFields ) );
}
CleanupStack::PopAndDestroy( &wantedFields );
-
+
if ( !err )
{
//check if can send TN request, If thumbnail creation is ongoing, wait til it is done
@@ -756,28 +769,28 @@
// ----------------------------------------------------------------------------
// Add album art to media object.
// ----------------------------------------------------------------------------
-void CMPXMetadataExtractor::AddMediaAlbumArtL( CMPXMedia& aMedia,
+void CMPXMetadataExtractor::AddMediaAlbumArtL( CMPXMedia& aMedia,
const TDesC& aFile )
{
MPX_FUNC("CMPXMetadataExtractor::AddMediaAlbumArtL()");
-
+
// get metadata container.
const CMetaDataFieldContainer& metaCont = iMetadataUtility->MetaDataFieldsL();
TPtrC8 data8 = metaCont.Field8( EMetaDataJpeg );
-
+
if ( data8.Length() )
{
MPX_DEBUG1("CMPXMetadataExtractor::GetMediaAlbumArtL(): Album art exist.");
#ifdef RD_MPX_TNM_INTEGRATION
- HBufC8* value8 = NULL;
+ HBufC8* value8 = NULL;
MPX_TRAPD( err, value8 = data8.AllocL() );
if ( KErrNone != err )
{
MPX_DEBUG2("CMPXMetadataExtractor::GetMediaAlbumArtL - error jpeg = %i", err);
return;
- }
+ }
CleanupStack::PushL( value8 );
-
+
TBuf<256> mimeType;
mimeType.Copy( KImageFileType );
CThumbnailObjectSource* source = CThumbnailObjectSource::NewL(
@@ -786,9 +799,9 @@
iArrayTNRequestId.Append( tnId ); // add thumbnail id to array
CleanupStack::Pop( value8 );
delete source;
-
+
aMedia.SetTextValueL( KMPXMediaMusicOriginalAlbumArtFileName, aFile );
-#endif // RD_MPX_TNM_INTEGRATION
+#endif // RD_MPX_TNM_INTEGRATION
aMedia.SetTextValueL( KMPXMediaMusicAlbumArtFileName, aFile );
}
}
@@ -926,10 +939,23 @@
{
TDataType dataType;
TUid dummyUid(KNullUid);
- iAppArc.AppForDocument(iFileName, dummyUid, dataType);
+ // File handle based mime type recogniton required , because AppArc does
+ // not have All Files capa required for files in private folders
+ TDataRecognitionResult result;
+ RFs fs;
+ RFile rFile;
+ User::LeaveIfError(fs.Connect());
+ CleanupClosePushL(fs);
+ User::LeaveIfError(fs.ShareProtected());
+ User::LeaveIfError(rFile.Open(fs, iFileName, EFileShareReadersOrWriters));
+ CleanupClosePushL(rFile);
+ User::LeaveIfError(iAppArc.RecognizeData(rFile, result));
+ CleanupStack::PopAndDestroy(&rFile);
+ CleanupStack::PopAndDestroy(&fs);
+ dataType = result.iDataType;
iMedia->SetTextValueL( KMPXMediaGeneralMimeType,dataType.Des() );
}
-
+
// Initially set default tags.
SetDefaultL( *iMedia );
}
@@ -981,23 +1007,23 @@
MPX_DEBUG1("CMPXMetadataExtractor::CreateMediaAsyncL Request ongoing. Abort!" );
User::Leave( KErrAbort );
}
-
+
iCancelled = EFalse;
iFileOpenError = KErrNone;
iFileName = aFile;
iObs = aObs;
iMetadataOnly = aMetadataOnly;
-
+
// populate the task array
AddTasksL();
-
+
// Start task timer to execute task
if ( iArrayTasks.Count() )
{
if ( iTaskTimer->IsActive() )
{
iTaskTimer->Cancel();
- }
+ }
iTaskTimer->Start( 0, 0, TCallBack(TaskTimerCallback, this ));
}
}
@@ -1009,7 +1035,7 @@
TInt CMPXMetadataExtractor::OpenFile()
{
MPX_FUNC("CMPXMetadataExtractor::OpenFile()");
-
+
// Open the file
iFile.Close();
TInt error = iFile.Open( iFs, iFileName, EFileRead | EFileShareReadersOrWriters );
@@ -1025,7 +1051,7 @@
{
MPX_FUNC("CMPXMetadataExtractor::AddTasks()");
iFileOpenError = OpenFile();
-
+
// Do not change the order of the task below.
iArrayTasks.Reset();
if ( iFileOpenError == KErrNone )
@@ -1066,7 +1092,7 @@
void CMPXMetadataExtractor::HandleTaskTimerExpired()
{
MPX_FUNC("CMPXMetadataExtractor::HandleTaskTimerExpired()");
-
+
if ( iTaskTimer && iTaskTimer->IsActive() )
{
iTaskTimer->Cancel();
@@ -1083,13 +1109,13 @@
}
iArrayTasks.Reset();
}
-
+
// Remove task at index 0.
if ( iArrayTasks.Count() )
{
iArrayTasks.Remove( 0 );
}
-
+
// check if we have any more task to run
if ( iArrayTasks.Count() )
{
@@ -1104,7 +1130,7 @@
iObs->HandleCreateMediaComplete( iMedia, error );
iMedia = NULL; // ownership transferred.
}
-
+
CleanUp();
}
}
@@ -1135,7 +1161,7 @@
// Validate the objects to be used
MPX_ASSERT(iMedia);
MPX_ASSERT(iDrmMediaUtility);
-
+
// File Path
TParsePtrC parse( iFileName );
iMedia->SetTextValueL( KMPXMediaGeneralUri, iFileName );
@@ -1143,7 +1169,7 @@
MPX_DEBUG2("CMPXMetadataExtractor::SetDrmMediaPropertiesL - Filename=%S", &iFileName);
// get the protected flag from MetadataUtility Container
- TPtrC ptr = aMetaCont.Field( EMetaDataProtected );
+ TPtrC ptr = aMetaCont.Field( EMetaDataProtected );
MPX_DEBUG2("CMPXMetadataExtractor::SetDrmMediaPropertiesL -- status=%S", &ptr);
_LIT( KNonProtected, "0" );
if ( ptr.Compare( KNonProtected ) == 0 )
@@ -1154,7 +1180,7 @@
iMedia->SetTObjectValueL<TBool>( KMPXMediaDrmProtected, prot );
iMedia->SetTObjectValueL<TUint16>( KMPXMediaMTPDrmStatus, (TUint16)prot );
}
- else
+ else
{ // DRM file
// DRM Rights
@@ -1206,20 +1232,20 @@
iMedia->SetTObjectValueL<TBool>( KMPXMediaDrmProtected, prot );
iMedia->SetTObjectValueL<TUint16>( KMPXMediaMTPDrmStatus, (TUint16)prot );
-
+
iDrmMediaUtility->Close();
-
+
} // DRM file
-
+
// verify the file open status
if( iFileOpenError == KErrNotFound || iFileOpenError == KErrPathNotFound )
{
dbFlags |= KMPXMediaGeneralFlagsIsInvalid;
}
-
+
// Finally set the db flag
//
iMedia->SetTObjectValueL( KMPXMediaGeneralFlags, dbFlags );
-
+
}
--- a/mmappcomponents/harvester/server/group/mpxharvester.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/server/group/mpxharvester.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -62,3 +62,6 @@
LIBRARY usbman.lib
LIBRARY PlatformEnv.lib
LIBRARY disknotifyhandler.lib
+
+SMPSAFE
+
--- a/mmappcomponents/harvester/server/src/mpxusbeventhandler.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxusbeventhandler.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -191,9 +191,9 @@
if (value == EMtpPSStatusActive)
{
- MPX_DEBUG1("CMPXUsbEventHandler::DoHandlePSEvent - MTP Start");
- iObserver.HandleSystemEventL( EUSBMTPStartEvent, removableDrive );
- iState = KUsbPersonalityIdMTP;
+ MPX_DEBUG1("CMPXUsbEventHandler::DoHandlePSEvent - MTP Start");
+ iObserver.HandleSystemEventL( EUSBMTPStartEvent, removableDrive );
+ iState = KUsbPersonalityIdMTP;
}
else if( value != EMtpPSStatusReadyToSync )
{
--- a/mmappcomponents/harvester/utility/group/mpxharvesterutility.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/harvester/utility/group/mpxharvesterutility.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -45,4 +45,7 @@
deffile ../eabi/
#elif defined(WINSCW)
deffile ../bwinscw/
-#endif
\ No newline at end of file
+#endif
+
+SMPSAFE
+
--- a/mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 4.1.3 %
+// Version : %version: 4.1.6 %
#include <platform_paths.hrh>
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidergetobjectproplist.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidergetobjectproplist.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -124,7 +124,7 @@
PRINT2( _L( "MM MTP <> EMTPObjectPropCodeRepresentativeSampleData sampleFile.Size size=%d, err=%d" ), size, err );
if( err == KErrNone && size > 0 )
{
- HBufC8* sampleData = HBufC8::NewLC( size * sizeof( TUint8 ) ); // + sampleData
+ HBufC8* sampleData = HBufC8::NewLC( size ); // + sampleData
TPtr8 samplePtr = sampleData->Des();
err = sampleFile.Read( samplePtr );
PRINT1( _L( "MM MTP <> EMTPObjectPropCodeRepresentativeSampleData sampleFile.Read err=%d" ), err );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidergetobjectpropvalue.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidergetobjectpropvalue.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -126,7 +126,7 @@
if( size > 0 )
{
- HBufC8* sampleData = HBufC8::NewLC( size * sizeof(TUint8) ); // + sampleData
+ HBufC8* sampleData = HBufC8::NewLC( size ); // + sampleData
TPtr8 samplePtr = sampleData->Des();
User::LeaveIfError( sampleFile.Read( samplePtr ) );
iMTPTypeArray->SetByDesL( samplePtr );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -314,8 +314,6 @@
{
PRINT( _L( "MM MTP => CMoveObject::GetPreviousPropertiesL" ) );
- const TDesC& suid( aObject.DesC( CMTPObjectMetaData::ESuid ) );
-
// same storage, not necessary to get the properties
if ( iSameStorage )
return;
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -902,7 +902,7 @@
delete iSampleData;
iSampleData = NULL;
- iSampleData = HBufC8::NewL( numElements * sizeof( TUint8 ) );
+ iSampleData = HBufC8::NewL( numElements );
TPtr8 samplePtr = iSampleData->Des();
mtpTypeArray.ToDes( samplePtr );
RFile sampleFile;
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -480,6 +480,8 @@
//__ASSERT_DEBUG(!iColSet, _MTP_PANIC(KMtpPrtPncCat, ENullPointer)); // Must have iColSet == NULL
// Make sure any quotes in the aMatchCriteria are doubled...
+ // coverity[incorrect_multiplication]
+ // coverity[buffer_alloc]
HBufC* matchText = HBufC::NewLC( 2 * aMatchCriteria.Length() );
TPtr pMatchText( matchText->Des() );
TInt srcLen = aMatchCriteria.Length();
--- a/mmappcomponents/mmmtpdataprovider/tsrc/mtpdataprovidertestmodule/src/ctestobjectmanager.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/tsrc/mtpdataprovidertestmodule/src/ctestobjectmanager.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -84,6 +84,7 @@
const TMTPObjectMgrQueryParams& aParams,
RMTPObjectMgrQueryContext& aContext, RArray<TUint>& aHandles ) const
{
+ CleanupClosePushL( aHandles );
PRINTF3( ">CTestObjectManager::GetObjectHandlesL storage = 0x%x parent = 0x%x format = 0x%x", aParams.iStorageId, aParams.iParentHandle, aParams.iFormatCode );
for ( TInt i = 0; i < iMTPObjects.Count(); i++ )
{
@@ -103,6 +104,7 @@
}
aContext.Close();
PRINTF0( "<CTestObjectManager::GetObjectHandlesL" );
+ CleanupStack::Pop();
}
void CTestObjectManager::GetObjectSuidsL(
--- a/mmappcomponents/mmmtpdataprovider/tsrc/mtpdataprovidertestmodule/src/ctestobserver.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/tsrc/mtpdataprovidertestmodule/src/ctestobserver.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -737,6 +737,7 @@
void CTestObserver::GetArrayValue( MMTPDataProviderConfig::TParameter aParam, RArray<TUint>& aArray ) const
{
+ CleanupClosePushL( aArray );
PRINTF1( ">CTestObserver::GetArrayValue aParam = %d", aParam );
switch (aParam)
{
@@ -751,4 +752,5 @@
User::Leave( KErrArgument );
}
PRINTF0( "<CTestObserver::GetArrayValue" );
+ CleanupStack::Pop();
}
--- a/mmappcomponents/mmmtpdataprovider/tsrc/mtpdataprovidertestmodule/src/cteststoragemgr.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/tsrc/mtpdataprovidertestmodule/src/cteststoragemgr.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -432,6 +432,7 @@
void CTestStorageMgr::GetAvailableDrivesL(
RArray<TDriveNumber>& aDrives ) const
{
+ CleanupClosePushL( aDrives );
PRINTF0( ">CTestStorageMgr::GetAvailableDrivesL" );
aDrives.Reset();
for ( TUint i = 0; ( i < iMapDriveToStorage.Count() ); i++ )
@@ -443,6 +444,7 @@
}
}
PRINTF0( "<CTestStorageMgr::GetAvailableDrivesL" );
+ CleanupStack::Pop();
}
void CTestStorageMgr::GetLogicalStoragesL(
--- a/mmappcomponents/playbackhelper/group/playbackhelper.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/playbackhelper/group/playbackhelper.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 6 %
+// Version : %version: 9 %
#include <data_caging_paths.hrh>
--- a/mmappcomponents/playbackhelper/inc/playbackhelper_log.h Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/playbackhelper/inc/playbackhelper_log.h Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 5 %
+// Version : %version: 7 %
#ifndef PLAYBACKHELPER_LOG_H
--- a/mmappcomponents/playbackhelper/src/streaminglinkmodel.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/playbackhelper/src/streaminglinkmodel.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 4 %
+// Version : %version: 4.1.1 %
@@ -559,6 +559,8 @@
TInt size = 0;
TInt result = KErrNone;
+
+ TBool linkadded = EFalse;
if ( aRamFile.Size( size ) == KErrNone && size <= KMaxLinkFileSize )
{
@@ -576,6 +578,8 @@
// Get links from buffer
while ( ret == KErrNone )
{
+ linkadded = EFalse;
+
// Create a linkitem ptr
LinkStruct* linkItem = new( ELeave ) LinkStruct;
CleanupStack::PushL( linkItem );
@@ -593,14 +597,23 @@
{
ptr2.TrimRight();
iLinkArray.Append( linkItem );
+ linkadded = ETrue;
}
}
else
{
iLinkArray.Append( linkItem );
+ linkadded = ETrue;
}
- CleanupStack::Pop(2); // pop the linkItem and the HbufC created for linkItem->link
+ if ( linkadded )
+ {
+ CleanupStack::Pop(2); // pop the linkItem and the HbufC created for linkItem->link
+ }
+ else
+ {
+ CleanupStack::PopAndDestroy(2); //pop and destroy linkItem and the HbufC created for linkItem->link
+ }
}
CleanupStack::PopAndDestroy(2); // buffer, recognizer
@@ -636,6 +649,8 @@
iLinkCount = 0;
TInt ret = KErrNone;
+
+ TBool linkadded = EFalse;
if ( aAsxParser )
{
@@ -650,6 +665,9 @@
for (TInt i=1; i <= urlCount; i++)
{
+
+ linkadded = EFalse;
+
// Get the asx struct from the parser
asxItem = aAsxParser->GetUrl(i);
// Set the url to the bufferptr
@@ -677,15 +695,23 @@
{
ptr2.TrimRight();
iLinkArray.Append( linkItem );
+ linkadded = ETrue;
}
}
else
{
iLinkArray.Append( linkItem );
+ linkadded = ETrue;
}
-
- CleanupStack::Pop(2); // pop the linkItem and the HbufC created for linkItem->link
-
+
+ if ( linkadded )
+ {
+ CleanupStack::Pop(2); // pop the linkItem and the HbufC created for linkItem->link
+ }
+ else
+ {
+ CleanupStack::PopAndDestroy(2); //pop and destroy linkItem and the HbufC created for linkItem->link
+ }
}
CleanupStack::PopAndDestroy(); //recognizer
--- a/mmappcomponents/playlistengine/group/mpxplaylistengine.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/playlistengine/group/mpxplaylistengine.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -51,4 +51,6 @@
LIBRARY charconv.lib
LIBRARY mpxcommon.lib
+SMPSAFE
+
// End of File
--- a/mmappcomponents/playlistengine/group/mpxplaylistrecognizer.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/playlistengine/group/mpxplaylistrecognizer.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -46,5 +46,6 @@
LIBRARY bafl.lib
LIBRARY mpxcommon.lib
+SMPSAFE
// End of File
--- a/mmappcomponents/videoplaylistutility/group/videoplaylistutility.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/videoplaylistutility/group/videoplaylistutility.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 4 %
+// Version : %version: 6 %
#include <data_caging_paths.hrh>
--- a/mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 3 %
+// Version : %version: 6 %
#ifndef VIDEOPLAYLISTUTILITY_LOG_H
--- a/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/group/CollectionHelperTestClass.pkg Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/group/CollectionHelperTestClass.pkg Tue Aug 31 15:41:40 2010 +0300
@@ -50,7 +50,7 @@
"..\..\data\1.alb" - "e:\data\sounds\digital\1.alb"
"..\..\data\1.mp3" - "e:\data\sounds\digital\1.mp3"
"..\..\data\1.wma" - "e:\data\sounds\digital\1.wma"
-
+
"\epoc32\release\armv5\urel\CollectionHelperTestClass.dll" - "c:\Sys\Bin\CollectionHelperTestClass.dll"
; Embedded SIS
--- a/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/src/CollectionHelperTestClassBlocks.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/src/CollectionHelperTestClassBlocks.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -138,19 +138,19 @@
ENTRY( "AddSong", CCollectionHelperTestClass::AddSongL ),
ENTRY( "RemoveSong", CCollectionHelperTestClass::RemoveSongL ),
ENTRY( "AddAbstractAlbum", CCollectionHelperTestClass::AddAbstractAlbumL ),
- ENTRY( "RemoveAbstractAlbum", CCollectionHelperTestClass::RemoveAbstractAlbumL ),
+ ENTRY( "RemoveAbstractAlbum", CCollectionHelperTestClass::RemoveAbstractAlbumL ),
ENTRY( "SetAbstractAlbum", CCollectionHelperTestClass::SetAbstractAlbumL ),
ENTRY( "SetSongAlbumArtist", CCollectionHelperTestClass::SetSongAlbumArtistL ),
ENTRY( "GetSongAlbumArtist", CCollectionHelperTestClass::GetSongAlbumArtistL ),
-ENTRY( "SetAbstractAlbumArtist", CCollectionHelperTestClass::SetAbstractAlbumArtistL ),
-ENTRY( "GetAbstractAlbumArtist", CCollectionHelperTestClass::GetAbstractAlbumArtistL ),
-ENTRY( "UpdateAbstractAlbumName", CCollectionHelperTestClass::UpdateAbstractAlbumNameL ),
- ENTRY("GetAbstractAlbumAndSongs",CCollectionHelperTestClass::GetAbstractAlbumAndSongsL),
+ ENTRY( "SetAbstractAlbumArtist", CCollectionHelperTestClass::SetAbstractAlbumArtistL ),
+ ENTRY( "GetAbstractAlbumArtist", CCollectionHelperTestClass::GetAbstractAlbumArtistL ),
+ ENTRY( "UpdateAbstractAlbumName", CCollectionHelperTestClass::UpdateAbstractAlbumNameL ),
+ ENTRY("GetAbstractAlbumAndSongs",CCollectionHelperTestClass::GetAbstractAlbumAndSongsL),
ENTRY( "RenameAbstractAlbum", CCollectionHelperTestClass::RenameAbstractAlbumL ),
ENTRY( "CloseUiHelper", CCollectionHelperTestClass::CloseUiHelperL ),
ENTRY( "CloseHelper", CCollectionHelperTestClass::CloseHelperL ),
ENTRY( "CloseCachedHelper", CCollectionHelperTestClass::CloseCachedHelperL ),
- };
+ };
const TInt count = sizeof( KFunctions ) /
sizeof( TStifFunctionInfo );
--- a/mmappfw_plat/collection_helper_api/tsrc/conf/CollectionHelperTestClass.cfg Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/collection_helper_api/tsrc/conf/CollectionHelperTestClass.cfg Tue Aug 31 15:41:40 2010 +0300
@@ -31,7 +31,6 @@
// Collection Helper Test Class
// ==================================================
-
[Test]
title 1. Create UI Helper
create CollectionHelperTestClass test
@@ -65,7 +64,6 @@
pause 1000
[Endtest]
-
[Test]
title 4. Add Song
create CollectionHelperTestClass test
@@ -114,7 +112,6 @@
pause 1000
[Endtest]
-
[Test]
title 8. Associate Song with AbstractAlbum
create CollectionHelperTestClass test
@@ -127,7 +124,6 @@
pause 1000
[Endtest]
-
[Test]
title 9. Set SongAlbumArtist
create CollectionHelperTestClass test
@@ -140,7 +136,6 @@
pause 1000
[Endtest]
-
[Test]
title 10. Get SongAlbumArtist
create CollectionHelperTestClass test
@@ -184,7 +179,6 @@
pause 1000
[Endtest]
-
[Test]
title 13. Update AbstractAlbumName
create CollectionHelperTestClass test
@@ -211,8 +205,8 @@
delete test
pause 1000
[Endtest]
+
[Test]
-
title 15. Rename AbstractAlbum
create CollectionHelperTestClass test
test OpenCollectionUtility
--- a/mmappfw_plat/collection_helper_api/tsrc/init/TestFramework.ini Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/collection_helper_api/tsrc/init/TestFramework.ini Tue Aug 31 15:41:40 2010 +0300
@@ -174,4 +174,4 @@
[End_Logger_Defaults]
# -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-# End of file
\ No newline at end of file
+# End of file
--- a/mmappfw_plat/group/bld.inf Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/group/bld.inf Tue Aug 31 15:41:40 2010 +0300
@@ -13,13 +13,13 @@
*
* Description: Includes all the Domain API specific bld.inf files, which
* export files.
-* Version : %version: 1.1.4.1.3.3.5.1.1 %
+* Version : %version: da1ido#1.1.4.1.3.3.8 %
*
*/
#include <bldvariant.hrh>
-#include "../../inc/mmappfwbldvariant.hrh"
+#include "../inc/mmappfwbldvariant.hrh"
#include "../collection_helper_api/group/bld.inf"
#include "../harvester_collection_mediator_api/group/bld.inf"
@@ -46,3 +46,4 @@
#endif
#include "../playback_helper_api/group/bld.inf"
#include "../videoplaylist_utility_api/group/bld.inf"
+#include "../qt_telephony_multimedia_service_api/group/bld.inf"
--- a/mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/group/HarvesterCollectionMediatorTest.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/group/HarvesterCollectionMediatorTest.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -49,7 +49,11 @@
LIBRARY euser.lib
LIBRARY bafl.lib estor.lib ecom.lib stiftestinterface.lib
LIBRARY stiftestengine.lib
-LIBRARY mpxcollectionmediator.lib mpxcollectionutility.lib mpxcollectionview.lib mpxcollectionengine.lib mpxcollectionhelper.lib mpxcommon.lib
+LIBRARY mpxcollectionmediator.lib
+LIBRARY mpxcollectionutility.lib
+LIBRARY mpxcollectionengine.lib
+LIBRARY mpxcollectionhelper.lib
+LIBRARY mpxcommon.lib
LANG SC
--- a/mmappfw_plat/harvester_utility_api/tsrc/mpxharvestertest/src/mpxharvestertestBlocks.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/harvester_utility_api/tsrc/mpxharvestertest/src/mpxharvestertestBlocks.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -388,16 +388,16 @@
for( TInt i = 0; i < 5; i++ )
{
- err = iFileMan->Copy(KFrom, KTo);
- if ( err != KErrNone )
- {
- iLog->Log(_L("CopyTestFile returned: %d"), err);
+ err = iFileMan->Copy(KFrom, KTo);
+ if ( err != KErrNone )
+ {
+ iLog->Log(_L("CopyTestFile returned: %d"), err);
User::After( 1000000 );
}
else
{
- break;
- }
+ break;
+ }
}
}
return err;
@@ -422,17 +422,18 @@
for( TInt i = 0; i < 5; i++ )
{
- err = iFileMan->Delete(KFrom);
- if ( err != KErrNone )
- {
- iLog->Log(_L("DeleteTestFile returned: %d"), err);
+ err = iFileMan->Delete(KFrom);
+ if ( err != KErrNone )
+ {
+ iLog->Log(_L("DeleteTestFile returned: %d"), err);
User::After( 1000000 );
}
else
{
- break;
- }
+ break;
+ }
}
+
}
return err;
}
@@ -714,17 +715,17 @@
{
for( TInt i = 0; i < 5; i++ )
{
- TRAP(err, iHarvester->DeleteFilesL(*files));
- if ( err != KErrNone )
- {
- iLog->Log(_L("DeleteFilesL sync returned: %d"), err);
+ TRAP(err, iHarvester->DeleteFilesL(*files));
+ if ( err != KErrNone )
+ {
+ iLog->Log(_L("DeleteFilesL sync returned: %d"), err);
User::After( 1000000 );
}
else
{
break;
}
- }
+ }
}
else
{
--- a/mmappfw_plat/mpx_base_view_plugins_api/group/bld.inf Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_base_view_plugins_api/group/bld.inf Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -27,5 +27,8 @@
../inc/mpxakndialogplugin.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxakndialogplugin.h)
../inc/mpxaknviewplugin.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxaknviewplugin.h)
../inc/mpxviewplugin.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewplugin.h)
-../inc/mpxviewplugin.hrh MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewplugin.hrh)
+../inc/mpxviewplugin.hrh MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewplugin.hrh)
+// new for 10.1 QT
+../inc/mpxviewpluginqt.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewpluginqt.h)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_base_view_plugins_api/inc/mpxviewpluginqt.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,135 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef MPXVIEWPLUGIN_H
+#define MPXVIEWPLUGIN_H
+
+#ifdef BUILD_VIEWFRAMEWORK
+#define VFDLL_EXPORT Q_DECL_EXPORT
+#else
+#define VFDLL_EXPORT Q_DECL_IMPORT
+#endif
+
+#include <QObject>
+
+class QGraphicsWidget;
+class MpxViewPlugin;
+
+class VFDLL_EXPORT MpxPluginViewInterface {
+
+ public:
+ virtual MpxViewPlugin *viewPlugin() = 0;
+
+ };
+
+Q_DECLARE_INTERFACE(MpxPluginViewInterface , "org.nokia.mmdt.MpxViewPlugin/1.0" );
+
+class VFDLL_EXPORT MpxViewPlugin : public QObject, public MpxPluginViewInterface {
+
+ Q_OBJECT
+ Q_INTERFACES(MpxPluginViewInterface)
+
+ public:
+
+ /* COMMENT:
+ * following two methods are kind of second-phase create & destroy. Rationale for this step is that
+ * we need some way to promote lazy resources allocation (on application demand) and early resource
+ * deallocation (again, on application direct command).
+ */
+
+ /**
+ * createView is the second operation (after plugin construction which is done somewhere
+ * in the plugin framework) executed in the application layer to make a fully operational
+ * View Plugin descendant.
+ * I should allocate all of those resources that are required by plugin, but which are
+ * too expensive to allocate in constructor (eg. in case of plugin prefetching).
+ */
+ virtual void createView() = 0;
+
+ /**
+ * destroyView is an operation that should be executed just before plugin deletion.
+ * Implementation should destroy all of resources allocated during createView execution.
+ * It's reason d'etre is based on a fact, that application doesn't controll when exactly
+ * plugin will be deleted, so destructor execution could be postponed still holding resources.
+ */
+ virtual void destroyView() = 0;
+
+ /* COMMENT:
+ * view activation and deactivation are reversible operations
+ * that allows us to give up resources that we could temporary deallocate when that
+ * specific view plugin goes into background.
+ */
+
+ /**
+ * Called to notice view activation.
+ */
+ virtual void activateView() = 0;
+
+ /**
+ * Called to notice view deactivation.
+ */
+ virtual void deactivateView() = 0;
+
+ /**
+ * gives actual view component, ready to put somewhere into the app layout.
+ * However, beware that calling to activate/deactivate in the meantime
+ * can invalidate that pointer.
+ *
+ * NOTE: Returned type is choosen to be as generic as possible,
+ * so please ensure that it fulfills all your needs (it was HbView* before)
+ */
+ virtual QGraphicsWidget* getView() = 0;
+
+ public slots:
+
+ /**
+ * Signalled by application when orientation has changed.
+ */
+ virtual void orientationChange(Qt::Orientation orientation) = 0;
+
+ /**
+ * Implementation should take care either to implement
+ * go-back operation internally or to emit proper
+ * command signal to delegate that responsibility to
+ * framework (eg. to switch to previous view).
+ */
+ virtual void back() = 0;
+
+ signals:
+
+ /**
+ * Command is the only way to notify from plugin to application
+ * about action needed to be executed.
+ *
+ * @param aCommand enumeration of command type.
+ * Currently supported are: ViewBack, CloseApp, GoToNowPlaying, GoToCollectionView.
+ * NOTE: It should be specified how to determine between broadly supported operations
+ * (back, close etc.) and application/plugin specific (go to collection, go to now playing etc.)
+ *
+ * There is also one major issue here, that there is no guaranted order of command delivery,
+ * so there is second option to use common observer pattern. Should be discussed.
+ */
+ void command(int aCommand);
+
+ public:
+
+ virtual MpxViewPlugin *viewPlugin() { return this; }
+
+};
+
+#endif /*MPXVIEWPLUGIN_H_*/
+
--- a/mmappfw_plat/mpx_base_view_plugins_api/tsrc/conf/tcmpxbaseviewpluginstest.cfg Thu Aug 19 10:24:28 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-
-[Test]
-title 1: CMPXAknViewPluginDestruct
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 1
-[Endtest]
-
-[Test]
-title 2: CMPXAknViewPluginCreateViewL
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 2
-[Endtest]
-
-[Test]
-title 3: CMPXAknViewPluginDestroyView
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 3
-[Endtest]
-
-[Test]
-title 4: CMPXAknViewPluginActivateViewL
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 4
-[Endtest]
-
-[Test]
-title 5: CMPXAknViewPluginSetAsDefaultViewL
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 5
-[Endtest]
-
-[Test]
-title 6: CMPXAknViewPluginDeactivateView
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 6
-[Endtest]
-
-[Test]
-title 7: CMPXAknDialogPluginDestruct
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 7
-[Endtest]
-
-[Test]
-title 8: CMPXAknDialogPluginCreateViewL
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 8
-[Endtest]
-
-[Test]
-title 9: CMPXAknDialogPluginDestroyView
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 9
-[Endtest]
-
-[Test]
-title 10: CMPXAknDialogPluginActivateViewL
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 10
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 17
-[Endtest]
-
-[Test]
-title 11: CMPXAknDialogPluginSetAsDefaultViewL
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 11
-[Endtest]
-
-[Test]
-title 12: CMPXAknDialogPluginDeactivateView
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 12
-[Endtest]
-
-[Test]
-title 13: CMPXViewPluginNewL
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 13
-[Endtest]
-
-[Test]
-title 14: CMPXViewPluginDestruct
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 14
-[Endtest]
-
-[Test]
-title 15: CMPXViewPluginSetObserver
-run testscripter c:\testframework\ui_mpxbaseviewpluginstest.cfg 15
-[Endtest]
-
--- a/mmappfw_plat/mpx_base_view_plugins_api/tsrc/conf/ui_mpxbaseviewpluginstest.cfg Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_base_view_plugins_api/tsrc/conf/ui_mpxbaseviewpluginstest.cfg Tue Aug 31 15:41:40 2010 +0300
@@ -91,7 +91,6 @@
[Test]
title 10: CMPXAknDialogPluginActivateViewL
create ui_mpxbaseviewpluginstest foobar
-bringtoforeground
foobar CDummyMPXAknDialogPluginConstruct
foobar CMPXAknDialogPluginCreateViewL
foobar CMPXAknDialogPluginActivateViewL
@@ -99,7 +98,6 @@
foobar CMPXAknDialogPluginDestroyView
foobar CDummyMPXViewPluginDesConstruct
delete foobar
-sendtobackground
[Endtest]
[Test]
@@ -149,14 +147,3 @@
delete foobar
[Endtest]
-[Test]# lsf key
-title PressKey
-pause 10000
-presskey global EKeyDevice0
-[Endtest]
-
-[Test]# rsf key
-title PressKey
-pause 10000
-presskey global EKeyDevice1
-[Endtest]
--- a/mmappfw_plat/mpx_base_view_plugins_api/tsrc/init/TestFramework.ini Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_base_view_plugins_api/tsrc/init/TestFramework.ini Tue Aug 31 15:41:40 2010 +0300
@@ -89,8 +89,8 @@
# name of the test module when adding new test module
[New_Module]
-ModuleName= testcombiner
-TestCaseFile= c:\testframework\tcmpxbaseviewpluginstest.cfg
+ModuleName= testscripter
+TestCaseFile= c:\testframework\ui_mpxbaseviewpluginstest.cfg
[End_Module]
--- a/mmappfw_plat/mpx_base_view_plugins_api/tsrc/ui_mpxbaseviewpluginstest/group/ui_mpxbaseviewpluginstest.pkg Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_base_view_plugins_api/tsrc/ui_mpxbaseviewpluginstest/group/ui_mpxbaseviewpluginstest.pkg Tue Aug 31 15:41:40 2010 +0300
@@ -48,9 +48,8 @@
; Install files
-"..\..\init\TestFramework.ini" - "c:\testframework\TestFramework.ini"
+;"..\..\init\TestFramework.ini" - "c:\testframework\TestFramework.ini"
"..\..\conf\ui_mpxbaseviewpluginstest.cfg" - "c:\testframework\ui_mpxbaseviewpluginstest.cfg"
-"..\..\conf\tcmpxbaseviewpluginstest.cfg" - "c:\testframework\tcmpxbaseviewpluginstest.cfg"
"\epoc32\release\armv5\urel\ui_mpxbaseviewpluginstest.dll" - "c:\Sys\Bin\ui_mpxbaseviewpluginstest.dll"
--- a/mmappfw_plat/mpx_common_api/inc/mpxmediamusicdefs.h Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_common_api/inc/mpxmediamusicdefs.h Tue Aug 31 15:41:40 2010 +0300
@@ -46,6 +46,7 @@
const TMPXAttributeData KMPXMediaMusicAlbumArtThumbnailSize={KMPXMediaIdMusic,0x800}; // TSint
const TMPXAttributeData KMPXMediaMusicAlbumArtChanged={KMPXMediaIdMusic,0x1000}; // TInt
const TMPXAttributeData KMPXMediaMusicAlbumArtist={KMPXMediaIdMusic,0x2000}; // Text
+const TMPXAttributeData KMPXMediaMusicAlbumId={KMPXMediaIdMusic,0x4000}; // TMPXItemId
const TMPXAttributeData KMPXMediaMusicAll={KMPXMediaIdMusic,0xffffffff}; // Text
/**
@@ -68,6 +69,7 @@
EMPXMediaMusicAlbumArtThumbnail=0x400,
EMPXMediaMusicAlbumArtThumbnailSize=0x800,
EMPXMediaMusicAlbumArtist=0x2000,
+ EMPXMediaMusicAlbumId=0x4000,
EMPXMediaMusicAll=0xffffffff
};
--- a/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxpluginhandlerbase.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxpluginhandlerbase.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -24,7 +24,6 @@
// Begin MPXPluginHandlerBase testing implementation (mpxpluginhandlerbase.h)============================
const TUid KMPXPPluginHandlerBaseUid = {0x12345};
-
const TUid KMPXPlaybackInterfaceUid = {0x101FFC05};
class CDummyMpxPluginHandler : public CMPXPluginHandlerBase,
public MMPXPluginHandlerObserver
@@ -602,7 +601,7 @@
CDummyMpxPluginHandler pluginHandler;
- //TInt index = pluginHandler.IndexOf(KMPXPPluginHandlerBaseUid);
+ //TInt index = pluginHandler.IndexOf(KMPXPPluginHandlerBaseUid);
TRAPD( err, pluginHandler.PluginFlagsL(KMPXPPluginHandlerBaseUid));
// Using the invalid id (KMPXPPluginHandlerBaseUid), so it is right if the
// return err is KErrNotFound.
--- a/mmappfw_plat/mpx_common_definition_api/group/bld.inf Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_common_definition_api/group/bld.inf Tue Aug 31 15:41:40 2010 +0300
@@ -36,4 +36,5 @@
../inc/mpxmessage2.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxmessage2.h)
../inc/mpxpathconfiguration.hrh MW_LAYER_PLATFORM_EXPORT_PATH(mpxpathconfiguration.hrh)
../inc/mpxprivatecrkeys.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxprivatecrkeys.h)
-../inc/mpxsearchcriteria.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxsearchcriteria.h)
\ No newline at end of file
+../inc/mpxsearchcriteria.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxsearchcriteria.h)
+../inc/EqualizerConstants.h MW_LAYER_PLATFORM_EXPORT_PATH(EqualizerConstants.h)
\ No newline at end of file
--- a/mmappfw_plat/mpx_playback_utility_api/tsrc/conf/mpxplaybackutilitytest.cfg Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/conf/mpxplaybackutilitytest.cfg Tue Aug 31 15:41:40 2010 +0300
@@ -26,6 +26,12 @@
// Timers
KTimerEndTest 5000 // 5 sec
+// Properties for SetL
+EPbPropertyVolume 0
+EPbPropertyPosition 10
+
+
+
[Enddefine]
@@ -251,3 +257,526 @@
delete pbutil
[Endtest]
+[Test]
+//
+// Test Video play
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play
+//
+title 14 MMPXPlaybackUtilityVideoCommandPlayL(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video play, then stop
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Stop
+//
+title 15 MMPXPlaybackUtilityVideoCommandPlayClose(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandStopL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video play, then pause
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Pause
+//
+title 16 MMPXPlaybackUtilityVideoCommandPlayandPause(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPauseL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video play, then playpause
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, PlayPause
+//
+title 17 MMPXPlaybackUtilityVideoCommandPlayPause(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayPauseL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video play, then playpause twice
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, PlayPause, PlayPause
+//
+title 18 MMPXPlaybackUtilityVideoCommandPlayPausePlay(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayPauseL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayPauseL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+
+[Test]
+//
+// Test Video playcomplete
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Play Complete
+//
+title 19 MMPXPlaybackUtilityVideoCommandPlayComplete(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayCompleteL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+
+[Test]
+//
+// Test Video seeking forward
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Seek Forward
+//
+title 20 MMPXPlaybackUtilityVideoCommandSeekForwardPlayState(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandSeekForwardL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+
+[Test]
+//
+// Test Video seeking backward
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Seek Backward
+//
+title 21 MMPXPlaybackUtilityVideoCommandSeekBackwardPlayState(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandSeekBackwardL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video seeking forward while paused
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Pause, Seek Forward
+//
+title 22 MMPXPlaybackUtilityVideoCommandSeekForwardPauseState(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPauseL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandSeekForwardL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+
+[Test]
+//
+// Test Video seeking backward while paused
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Pause, Seek Backward
+//
+title 23 MMPXPlaybackUtilityVideoCommandSeekBackwardPauseState(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPauseL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandSeekBackwardL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+
+[Test]
+//
+// Test Video play with RFile64
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - Init64L with RFile64, File MPEG4_VBR_176x144_15fps.3gp
+// - File64L to get RFile64 file handler
+//
+title 24 MMPXPlaybackUtilityVideoFile64PlayL
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInit64L MPEG4_VBR_176x144_15fps.3gp
+pause 1000
+pbutil MMPXPlaybackUtilityFile64L
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+
+[Test]
+//
+// Test Video close after stop
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Stop, close
+//
+title 25 MMPXPlaybackUtilityVideoCommandPlayStopClose(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandStopL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandCloseL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video close
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Close
+//
+title 26 MMPXPlaybackUtilityVideoCommandPlayClose(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandCloseL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+
+[Test]
+//
+// Test Video set position (jump while playing)
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Set Position
+//
+title 27 MMPXPlaybackUtilityVideoSetPosition(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilitySetL EPbPropertyPosition 100
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+
+[Test]
+//
+// Test Video set volume
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Set Volume
+//
+title 28 MMPXPlaybackUtilityVideoSetVolume(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilitySetL EPbPropertyVolume 15
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video play command while already playing
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play
+//
+title 29 MMPXPlaybackUtilityVideoCommandPlayPlayL(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video playpause command in stopped state
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Stop, PlayPause
+//
+title 30 MMPXPlaybackUtilityVideoCommandStopPlayPause(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandStopL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayPauseL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video pause command while already paused
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Pause, Pause
+//
+title 31 MMPXPlaybackUtilityVideoCommandPausePauseL(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPauseL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPauseL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video pause command in stopped state
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Stop, Pause
+//
+title 32 MMPXPlaybackUtilityVideoCommandStopPause(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandStopL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPauseL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video stop command in stopped state
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Play, Stop, Stop
+//
+title 33 MMPXPlaybackUtilityVideoCommandStopStop(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandPlayL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandStopL
+pause 1000
+pbutil MMPXPlaybackUtilityCommandStopL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
+
+[Test]
+//
+// Test Video stop command while in buffering state
+// - UtilityL with Mode NewPlayer, Category Video
+// - Add Observer
+// - SelectPlayerL with HelixPlugin UID
+// - InitL with URI, File Battle_160x100_30kbps.rm
+// - Init, Stop
+//
+title 34 MMPXPlaybackUtilityVideoCommandInitStop(uri)
+create mpxplaybackutilitytest pbutil
+pbutil MMPXPlaybackUtilityUtilityWithCatL KMPXCategoryVideo KPbModeNewPlayer
+pbutil MMPXPlaybackUtilityAddObserverL
+pbutil MMPXPlaybackUtilityPlayerManagerSelectPlayerL KVideoHelixPlaybackPluginUid
+pbutil MMPXPlaybackUtilityInitWithUriL Battle_160x100_30kbps.rm
+pause 1000
+pbutil MMPXPlaybackUtilityCommandStopL
+pause KTimerEndTest
+pbutil EndTest
+delete pbutil
+[Endtest]
\ No newline at end of file
--- a/mmappfw_plat/mpx_playback_utility_api/tsrc/group/bld.inf Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/group/bld.inf Tue Aug 31 15:41:40 2010 +0300
@@ -28,5 +28,6 @@
PRJ_TESTMMPFILES
#include "../mpxplaybackutilitytest/group/bld.inf"
+#include "../testvideoplaybackplugin/group/bld.inf"
// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/inc/testcollectionplugintype.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,33 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: define collection collection plugin type enum
+*
+*/
+
+#ifndef TESTCOLLECTIONPLUGINTYPE_H
+#define TESTCOLLECTIONPLUGINTYPE_H
+
+#include "testcommonpluginuids.h"
+
+// Collection Plugin Test Types.
+//
+enum TCollectionTestPluginType
+ {
+ ECollectionTestPluginType = KCollectionTestPluginType,
+ ECollectionTestPluginType2 = KCollectionTestPluginType2,
+ ECollectionTestPluginType3 = KCollectionTestPluginType3
+ };
+
+
+#endif // TESTCOLLECTIONPLUGINTYPE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/inc/testcommonpluginuids.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,75 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: define commonly used uids
+*
+*/
+
+#ifndef TESTCOMMONPLUGINUIDS_H
+#define TESTCOMMONPLUGINUIDS_H
+
+#define KCollectionTestPlugin 0xE0000101 // dll uid
+#define KCollectionTestPluginImpId 0xE0000102 // implementation uid
+#define KCollectionTestPluginType 0xE0000103 // refer TCollectionTestPluginType
+#define KCollectionTestPlugin2 0xE0000111 // dll uid
+#define KCollectionTestPluginImpId2 0xE0000112 // implementation uid
+#define KCollectionTestPluginType2 0xE0000113 // refer TCollectionTestPluginType
+#define KCollectionTestPlugin3 0xE0000121 // dll uid
+#define KCollectionTestPluginImpId3 0xE0000122 // implementation uid
+#define KCollectionTestPluginType3 0xE0000123 // refer TCollectionTestPluginType
+
+#define KPlaybackTestVideoPlugin 0xE0000201 // dll uid
+#define KPlaybackTestVideoPluginImpId 0xE0000202 // implementation uid
+#define KPlaybackTestPluginType 0xE0000203 // refer TPlaybackTestPluginType
+#define KPlaybackTestPlugin2 0xE0000211 // dll uid
+#define KPlaybackTestPluginImpId2 0xE0000212 // implementation uid
+#define KPlaybackTestPluginType2 0xE0000213 // refer TPlaybackTestPluginType
+#define KPlaybackTestPlugin3 0xE0000221 // dll uid
+#define KPlaybackTestPluginImpId3 0xE0000222 // implementation uid
+#define KPlaybackTestPluginType3 0xE0000223 // refer TPlaybackTestPluginType
+
+#define KViewTestPlugin 0xE0000301 // dll uid
+#define KViewTestPluginImpId 0xE0000302 // implementation uid
+#define KViewTestPluginType 0xE0000303
+
+#define KViewTestPlugin2 0xE0000304 // dll uid
+#define KViewTestPlugin2ImpId 0xE0000305 // implementation uid
+#define KViewTestPluginType2 0xE0000306
+
+#define KViewTestPlugin3 0xE0000307 // dll uid
+#define KViewTestPlugin3ImpId 0xE0000308 // implementation uid
+#define KViewTestPluginType3 0xE0000309
+
+#define KViewTestPlugin4 0xE000030A // dll uid
+#define KViewTestPlugin4ImpId 0xE000030B // implementation uid
+#define KViewTestPluginType4 0xE000030C
+#define KViewTestPlugin4BetterMatch 0xE000030D // dll uid
+#define KViewTestPlugin4BetterMatchImpId 0xE000030E // implementation uid
+#define KViewTestPlugin4BetterMatchCriteria 0xE000030F
+
+#define KViewTestPlugin5Low 0xE0000311 // dll uid
+#define KViewTestPlugin5LowImpId 0xE0000312 // implementation uid
+#define KViewTestPluginType5 0xE0000313
+#define KViewTestPlugin5High 0xE0000314 // dll uid
+#define KViewTestPlugin5HighImpId 0xE0000315 // implementation uid
+
+#define KViewTestPlugin6 0xE0000317 // dll uid
+#define KViewTestPlugin6ImpId 0xE0000318 // implementation uid
+#define KViewTestPluginType6 0xE0000319
+
+
+#define KPlaylistTestPluginM3u 0xE000031A // dll uid
+#define KPlaylistTestPluginM3uImpId 0xE000031B // implementation uid
+
+#endif // TESTCOMMONPLUGINUIDS_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/inc/testplaybackplugintype.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: define playback plugin type enum
+*
+*/
+
+#ifndef TESTPLAYBACKPLUGINTYPE_H
+#define TESTPLAYBACKPLUGINTYPE_H
+
+#include "testcommonpluginuids.h"
+
+// Collection Plugin Test Types.
+//
+enum TPlaybackTestPluginType
+ {
+ EPlaybackTestPluginType = KPlaybackTestPluginType,
+ EPlaybackTestPluginType2 = KPlaybackTestPluginType2,
+ EPlaybackTestPluginType3 = KPlaybackTestPluginType3
+ };
+
+
+#endif // TESTPLAYBACKPLUGINTYPE_H
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/inc/testviewplugintype.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: define view plugin type enum
+*
+*/
+
+#ifndef TESTVIEWPLUGINTYPE_H
+#define TESTVIEWPLUGINTYPE_H
+
+#include "testcommonpluginuids.h"
+
+// View Plugin Test Types.
+//
+enum TViewTestPluginType
+ {
+ EViewPluginTypeTest = KViewPluginTypeTest,
+ EViewPluginTypeTest2 = KViewPluginTypeTest2,
+ EViewPluginTypeTest3 = KViewPluginTypeTest3,
+ EViewPluginTypeTest4 = KViewPluginTypeTest4,
+ EViewPluginTypeTest5 = KViewPluginTypeTest5,
+ EViewPluginTypeTest6 = KViewPluginTypeTest6
+ };
+
+enum TViewTestPluginMatchCriteria
+ {
+ EViewPluginMatchCriteria4 = KViewTestPlugin4BetterMatchCriteria
+ };
+
+#endif // TESTVIEWPLUGINTYPE_H
--- a/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/group/bld.inf Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/group/bld.inf Tue Aug 31 15:41:40 2010 +0300
@@ -25,6 +25,9 @@
PRJ_TESTEXPORTS
// NOTE: If using ARS requirements all export operations should be done under this.
// 'abld test export'
+../../conf/mpxplaybackutilitytest.cfg /epoc32/winscw/c/testframework/mpxplaybackutilitytest.cfg
+../../init/Testframework.ini /epoc32/winscw/c/testframework/testframework.ini
+
PRJ_EXPORTS
// Specify the source file followed by its destination here
--- a/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/group/mpxplaybackutilitytest.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/group/mpxplaybackutilitytest.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -36,7 +36,9 @@
MW_LAYER_SYSTEMINCLUDE
-USERINCLUDE ../inc
+USERINCLUDE ../inc
+
+USERINCLUDE ../../inc
SOURCEPATH ../src
@@ -54,7 +56,9 @@
LIBRARY stiftestengine.lib
LIBRARY mpxplaybackutility.lib
LIBRARY mpxcommon.lib
-LIBRARY mpxcollectionutility.lib
+LIBRARY mpxcollectionutility.lib
+LIBRARY bafl.lib
+
LANG SC
--- a/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/group/mpxplaybackutilitytest.pkg Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/group/mpxplaybackutilitytest.pkg Tue Aug 31 15:41:40 2010 +0300
@@ -34,14 +34,8 @@
; Install files
"\epoc32\release\armv5\udeb\mpxplaybackutilitytest.dll" - "!:\Sys\Bin\mpxplaybackutilitytest.dll"
+"\epoc32\release\armv5\udeb\testvideoplaybackplugin.dll" - "!:\Sys\Bin\testvideoplaybackplugin.dll"
+"\epoc32\data\z\resource\plugins\testvideoplaybackplugin.rsc" - "!:\resource\plugins\testvideoplaybackplugin.rsc"
+
"..\..\init\TestFramework.ini" - "c:\testframework\TestFramework.ini"
"..\..\conf\mpxplaybackutilitytest.cfg" - "c:\testframework\mpxplaybackutilitytest.cfg"
-
-"..\..\data\mmc\Battle_160x100_30kbps.rm" - "f:\testing\data\Battle_160x100_30kbps.rm"
-"..\..\data\mmc\20k_H263_WB_176x144_15fps.3gp" - "f:\testing\data\20k_H263_WB_176x144_15fps.3gp"
-"..\..\data\mmc\30k_MPEG4_AAC_8Khz_176x144_15fps_30secs.mp4" - "f:\testing\data\30k_MPEG4_AAC_8Khz_176x144_15fps_30secs.mp4"
-"..\..\data\mmc\80k_H264_AAC16M22_176x144_15fps.3gp" - "f:\testing\data\80k_H264_AAC16M22_176x144_15fps.3gp"
-"..\..\data\mmc\DivX_MP3_256x112_30fps_300Kbps.avi" - "f:\testing\data\DivX_MP3_256x112_30fps_300Kbps.avi"
-"..\..\data\mmc\honey_im_home_horror_ad.avi" - "f:\testing\data\honey_im_home_horror_ad.avi"
-"..\..\data\mmc\MPEG4_VBR_176x144_15fps.3gp" - "f:\testing\data\MPEG4_VBR_176x144_15fps.3gp"
-"..\..\data\mmc\XVID_176x144_15fps_261Kbps.avi" - "f:\testing\data\XVID_176x144_15fps_261Kbps.avi"
--- a/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/inc/mpxplaybackutilitytest.h Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/inc/mpxplaybackutilitytest.h Tue Aug 31 15:41:40 2010 +0300
@@ -40,14 +40,14 @@
_LIT( KmpxplaybackutilitytestLogFile, "mpxplaybackutilitytest.txt" );
_LIT( KmpxplaybackutilitytestLogFileWithTitle, "mpxplaybackutilitytest_[%S].txt" );
// data file
-_LIT( KmpxplaybackutilityTestFilePath, "C:\\testing\\data\\" );
+_LIT( KmpxplaybackutilityTestFilePath, "C:\\" );
#else
-_LIT( KmpxplaybackutilitytestLogPath, "f:\\logs\\testframework\\mpxplaybackutilitytest\\" );
+_LIT( KmpxplaybackutilitytestLogPath, "c:\\logs\\testframework\\mpxplaybackutilitytest\\" );
// Log file
_LIT( KmpxplaybackutilitytestLogFile, "mpxplaybackutilitytest.txt" );
_LIT( KmpxplaybackutilitytestLogFileWithTitle, "mpxplaybackutilitytest_[%S].txt" );
// data file
-_LIT( KmpxplaybackutilityTestFilePath, "f:\\testing\\data\\" );
+_LIT( KmpxplaybackutilityTestFilePath, "c:\\" );
#endif
// FUNCTION PROTOTYPES
@@ -204,6 +204,17 @@
TInt MMPXPlaybackUtilityAddObserverL(CStifItemParser& /*aItem*/);
TInt MMPXPlaybackUtilityRemoveObserverL(CStifItemParser& /*aItem*/);
TInt MMPXPlaybackUtilityPlayerManagerSelectPlayerL(CStifItemParser& /*aItem*/);
+
+ TInt MMPXPlaybackUtilityCommandPlayL ( CStifItemParser & /*aItem*/ );
+ TInt MMPXPlaybackUtilityCommandStopL ( CStifItemParser & /*aItem*/ );
+ TInt MMPXPlaybackUtilityCommandPauseL ( CStifItemParser & /*aItem*/);
+ TInt MMPXPlaybackUtilityCommandPlayPauseL ( CStifItemParser & /*Item*/);
+ TInt MMPXPlaybackUtilityCommandPlayCompleteL ( CStifItemParser & /*Item*/);
+ TInt MMPXPlaybackUtilityCommandSeekForwardL ( CStifItemParser & /*Item*/);
+ TInt MMPXPlaybackUtilityCommandSeekBackwardL ( CStifItemParser & /*Item*/);
+ TInt MMPXPlaybackUtilityCommandCloseL ( CStifItemParser & /*Item*/);
+ TInt MMPXPlaybackUtilitySetL(CStifItemParser& /*aItem*/ );
+
TInt EndTest(CStifItemParser& /*aItem*/);
/**
@@ -219,6 +230,8 @@
RFs iFs;
TInt iCallbackError;
RFile iFile;
+ TFileName iFileName;
+
#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
RFile64 iFile64;
#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
--- a/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/inc/mpxplaybackutilitytestdefs.h Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/inc/mpxplaybackutilitytestdefs.h Tue Aug 31 15:41:40 2010 +0300
@@ -21,8 +21,26 @@
const TInt KGeneralPlaybackMsgOffset = 0;
const TInt KVideoPlaybackMsgOffset = 100;
const TInt KStifPlaybackMsgOffset = 200;
+
+
+
+
const TInt KMPXMessageStif = 0x20011397;
+//
+// TInt for Command Id
+//
+const TMPXAttributeData KMPXStifPlaybackCommand = { KMPXMessageStif, 0x01 };
+
+
+enum TMPXStifCommand
+{
+ EPbStifPlayComplete,
+ EPbStifSeekForward,
+ EPbStifSeekBackward
+
+};
+
#endif // MPXPLAYBACKUTILITYTESTDEFS_H
--- a/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/src/mpxplaybackutilitytestBlocks.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/src/mpxplaybackutilitytestBlocks.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -18,6 +18,10 @@
// [INCLUDE FILES] - do not remove
+#include <sysutil.h>
+#include <s32file.h>
+#include <bautils.h>
+
#include <e32svr.h>
#include <StifParser.h>
#include <Stiftestinterface.h>
@@ -32,6 +36,9 @@
#include <mpxcollectionplaylist.h>
#include "mpxplaybackutilitytest.h"
#include "mpxplaybackutilitytestdefs.h"
+#include "testcommonpluginuids.h"
+
+const TUid KPbTestVideoPlugin = {KPlaybackTestVideoPluginImpId};
// ============================ MEMBER FUNCTIONS ===============================
// ---------------------------------------------------------------------------
@@ -40,52 +47,54 @@
// ---------------------------------------------------------------------------
//
void Cmpxplaybackutilitytest::HandlePlaybackMessage( CMPXMessage* aMessage, TInt aError )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::HandlePlaybackMessage( CMPXMessage* aMessage, TInt aError )");
+ iLog->Log(_L("Cmpxplaybackutilitytest::HandlePlaybackMessage: Error %d"), aError);
+ if ( !aError )
{
- iLog->Log(_L("Cmpxharvestertest::HandlePlaybackMessage: Error %d"), aError);
- if ( !aError )
- {
TMPXMessageId id( *(aMessage->Value<TMPXMessageId>(KMPXMessageGeneralId)) );
TInt event( *aMessage->Value<TInt>( KMPXMessageGeneralEvent ) );
TInt type( *aMessage->Value<TInt>( KMPXMessageGeneralType ) );
TInt data( *aMessage->Value<TInt>( KMPXMessageGeneralData ) );
if ( KMPXMessageGeneral == id )
- {
+ {
iLog->Log(_L("Cmpxplaybackutilitytest::HandlePlaybackMessage() General event = %d type = %d value = %d"),
event, type, data );
RemoveExpectedEventL( KGeneralPlaybackMsgOffset + event, type, data );
- }
+ }
else if ( KMPXMediaIdVideoPlayback == id )
- {
+ {
iLog->Log(_L("Cmpxplaybackutilitytest::HandlePlaybackMessage() Video event = %d type = %d value = %d"),
event, type, data );
RemoveExpectedEventL( KVideoPlaybackMsgOffset + event, type, data );
- }
+ }
else if ( KMPXMessageStif )
- {
+ {
iLog->Log(_L("Cmpxplaybackutilitytest::HandlePlaybackMessage() STIF event = %d type = %d value = %d"),
event, type, data );
RemoveExpectedEventL( KStifPlaybackMsgOffset + event, type, data );
- }
- }
- else
- {
- if ( !iCallbackError )
- {
- iCallbackError = aError;
- }
}
}
+ else
+ {
+ if ( !iCallbackError )
+ {
+ iCallbackError = aError;
+ }
+ }
+}
// ---------------------------------------------------------------------------
// Handle playback property.
// ---------------------------------------------------------------------------
//
void Cmpxplaybackutilitytest::HandlePropertyL( TMPXPlaybackProperty aProperty, TInt aValue, TInt aError )
- {
- iLog->Log(_L("Cmpxharvestertest::HandlePropertyL: Property %d, Value %d, Error %d"),
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::HandlePropertyL( TMPXPlaybackProperty aProperty, TInt aValue, TInt aError )");
+ iLog->Log(_L("Cmpxplaybackutilitytest::HandlePropertyL: Property %d, Value %d, Error %d"),
aProperty, aValue, aError);
- }
+}
// ---------------------------------------------------------------------------
// Method is called continously until aComplete=ETrue, signifying that
@@ -97,18 +106,20 @@
const MDesCArray* aSubPlayers,
TBool aComplete,
TInt aError )
- {
- iLog->Log(_L("Cmpxharvestertest::HandleSubPlayerNamesL: Complete %d, Error %d"), aComplete, aError);
- }
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::HandleSubPlayerNamesL( TUid aPlayer, const MDesCArray* aSubPlayers, TBool aComplete, TInt aError)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::HandleSubPlayerNamesL: Complete %d, Error %d"), aComplete, aError);
+}
// ---------------------------------------------------------------------------
// Call back of media request.
// ---------------------------------------------------------------------------
//
void Cmpxplaybackutilitytest::HandleMediaL( const CMPXMedia& aProperties, TInt aError )
- {
- iLog->Log(_L("Cmpxharvestertest::HandleMediaL: Error %d"), aError);
- }
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::HandleMediaL( const CMPXMedia& aProperties, TInt aError )");
+ iLog->Log(_L("Cmpxplaybackutilitytest::HandleMediaL: Error %d"), aError);
+}
// ---------------------------------------------------------------------------
// Handle completion of a asynchronous command.
@@ -116,9 +127,10 @@
// ---------------------------------------------------------------------------
//
void Cmpxplaybackutilitytest::HandlePlaybackCommandComplete( CMPXCommand* aCommandResult, TInt aError )
- {
- iLog->Log(_L("Cmpxharvestertest::HandlePlaybackCommandComplete: Error %d"), aError);
- }
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::HandlePlaybackCommandComplete( CMPXCommand* aCommandResult, TInt aError )");
+ iLog->Log(_L("Cmpxplaybackutilitytest::HandlePlaybackCommandComplete: Error %d"), aError);
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::Delete
@@ -127,15 +139,26 @@
// -----------------------------------------------------------------------------
//
void Cmpxplaybackutilitytest::Delete()
- {
- iMPXPlaybackUtility->Close();
+{
+ TInt delerr = KErrNone;
+
+ iMPXPlaybackUtility->Close();
#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
iFile64.Close();
#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
iFile.Close();
+
+ if ( BaflUtils::FileExists( iFs, iFileName ) )
+ {
+ User::After( 1000000 * 10 );
+ delerr = BaflUtils::DeleteFile(iFs,iFileName);
+ iLog->Log(_L("deleting tempfile delerr=%d"),delerr);
+ }
iFs.Close();
iExpectedEventArray->ResetAndDestroy();
- }
+
+}
+
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::CreateL
@@ -144,21 +167,22 @@
// -----------------------------------------------------------------------------
//
void Cmpxplaybackutilitytest::CreateL()
- {
+{
iFs.Connect();
iFs.ShareProtected();
iExpectedEventArray = new (ELeave) CArrayPtrFlat<TMpxPlaybackTestEvent>( 1 );
iCallbackError = KErrNone;
iMPXPlaybackUtility = NULL;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::AddExpectedEventL
// -----------------------------------------------------------------------------
//
void Cmpxplaybackutilitytest::AddExpectedEventL( TInt aEvent, TInt aType, TInt aData )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::AddExpectedEventL( TInt aEvent, TInt aType, TInt aData )");
iLog->Log(_L("Cmpxplaybackutilitytest::AddExpectedEventL() event = %d type = %d value = %d"),
aEvent, aType, aData );
@@ -167,24 +191,25 @@
event->iType = aType;
event->iData = aData;
iExpectedEventArray->AppendL( event );
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::RemoveExpectedEventL
// -----------------------------------------------------------------------------
//
void Cmpxplaybackutilitytest::RemoveExpectedEventL( TInt aEvent, TInt aType, TInt aData )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::RemoveExpectedEventL( TInt aEvent, TInt aType, TInt aData )");
iLog->Log(_L("Cmpxplaybackutilitytest::RemoveExpectedEventL() event = %d type = %d value = %d"),
aEvent, aType, aData );
if ( (iExpectedEventArray->Count() > 0) &&
- ((*iExpectedEventArray)[0]->iEvent == aEvent) )
- {
+ ((*iExpectedEventArray)[0]->iEvent == aEvent) && ((*iExpectedEventArray)[0]->iType == aType))
+ {
iLog->Log(_L("Cmpxplaybackutilitytest::RemoveExpectedEventL() event = %d removed."), aEvent);
iExpectedEventArray->Delete( 0 );
- }
}
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::RunMethodL
@@ -192,9 +217,9 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::RunMethodL( CStifItemParser& aItem )
- {
+{
static TStifFunctionInfo const KFunctions[] =
- {
+ {
// Copy this line for every implemented function.
// First string is the function name used in TestScripter script file.
// Second is the actual implementation member function.
@@ -216,14 +241,25 @@
ENTRY( "MMPXPlaybackUtilityAddObserverL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityAddObserverL ),
ENTRY( "MMPXPlaybackUtilityRemoveObserverL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityRemoveObserverL ),
ENTRY( "MMPXPlaybackUtilityPlayerManagerSelectPlayerL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityPlayerManagerSelectPlayerL ),
+
+ ENTRY( "MMPXPlaybackUtilityCommandPlayL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayL ),
+ ENTRY( "MMPXPlaybackUtilityCommandStopL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandStopL ),
+ ENTRY( "MMPXPlaybackUtilityCommandPauseL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPauseL ),
+ ENTRY( "MMPXPlaybackUtilityCommandPlayPauseL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayPauseL ),
+ ENTRY( "MMPXPlaybackUtilityCommandPlayCompleteL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayCompleteL ),
+ ENTRY( "MMPXPlaybackUtilityCommandSeekForwardL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekForwardL ),
+ ENTRY( "MMPXPlaybackUtilityCommandSeekBackwardL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekBackwardL ),
+ ENTRY( "MMPXPlaybackUtilityCommandCloseL", Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandCloseL ),
+ ENTRY( "MMPXPlaybackUtilitySetL", Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL),
+
ENTRY( "EndTest", Cmpxplaybackutilitytest::EndTest ),
- };
+ };
const TInt count = sizeof( KFunctions ) /
sizeof( TStifFunctionInfo );
return RunInternalL( KFunctions, count, aItem );
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewL
@@ -232,28 +268,29 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewL( CStifItemParser& aItem )
- {
- iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewL"));
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewL( CStifItemParser& aItem )");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewL"));
TInt err = KErrNone;
TInt mode;
if ( aItem.GetNextInt(mode) != KErrNone )
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityNewL - Missing playback mode."));
err = KErrArgument;
return err;
- }
+ }
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityNewL: mode %d"), mode);
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewL: mode %d"), mode);
TRAP( err,iMPXPlaybackUtility = MMPXPlaybackUtility::NewL(TUid::Uid(mode), this ));
if (err!= KErrNone)
- {
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityNewL: error %d"), err);
- }
+ {
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewL: error %d"), err);
+ }
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewWithCatL
@@ -262,35 +299,36 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewWithCatL( CStifItemParser& aItem )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewWithCatL( CStifItemParser& aItem )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewWithCatL"));
TInt err = KErrNone;
TInt mode;
TInt category;
if ( aItem.GetNextInt(category) != KErrNone )
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityNewWithCatL - Missing category."));
err = KErrArgument;
return err;
- }
+ }
if ( aItem.GetNextInt(mode) != KErrNone )
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityNewWithCatL - Missing playback mode."));
err = KErrArgument;
return err;
- }
+ }
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityNewWithCatL: category %d"), category);
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityNewWithCatL: mode %d"), mode);
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewWithCatL: category %d"), category);
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewWithCatL: mode %d"), mode);
TRAP( err,iMPXPlaybackUtility = MMPXPlaybackUtility::NewL((TMPXCategory)category, TUid::Uid(mode), this ));
if (err!= KErrNone)
- {
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityNewWithCatL: error %d"), err);
- }
+ {
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityNewWithCatL: error %d"), err);
+ }
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityL
@@ -299,26 +337,27 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityL( CStifItemParser& aItem )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityL( CStifItemParser& aItem )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityL"));
TInt err = KErrNone;
TInt mode = 0;
aItem.GetNextInt(mode);
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityUtilityL: mode %d"), mode);
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityL: mode %d"), mode);
if ( mode )
- {
+ {
TRAP(err,iMPXPlaybackUtility = MMPXPlaybackUtility::UtilityL(TUid::Uid(mode)));
- }
+ }
else
- {
+ {
TRAP(err,iMPXPlaybackUtility = MMPXPlaybackUtility::UtilityL());
- }
+ }
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityUtilityL: error %d"), err);
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityL: error %d"), err);
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityWithCatL
@@ -327,35 +366,36 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityWithCatL( CStifItemParser& aItem )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityWithCatL( CStifItemParser& aItem )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityWithCatL"));
TInt err = KErrNone;
TInt category;
TInt mode = 0;
if ( aItem.GetNextInt(category) != KErrNone )
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityNewWithCatL - Missing category."));
err = KErrArgument;
return err;
- }
+ }
aItem.GetNextInt(mode);
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityUtilityWithCatL: category %d"), category);
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityUtilityWithCatL: mode %d"), mode);
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityWithCatL: category %d"), category);
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityWithCatL: mode %d"), mode);
if ( mode )
- {
+ {
TRAP(err,iMPXPlaybackUtility = MMPXPlaybackUtility::UtilityL((TMPXCategory)category, TUid::Uid(mode)));
- }
+ }
else
- {
+ {
TRAP(err,iMPXPlaybackUtility = MMPXPlaybackUtility::UtilityL((TMPXCategory)category));
- }
+ }
- iLog->Log(_L("Cmpxharvestertest::MMPXPlaybackUtilityUtilityWithCatL: error %d"), err);
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityUtilityWithCatL: error %d"), err);
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithPlaylistL
@@ -364,7 +404,8 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithPlaylistL( CStifItemParser& /*aItem*/ )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithPlaylistL( CStifItemParser& )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithPlaylistL"));
TInt err = KErrNone;
CMPXCollectionPlaylist* playlist = CMPXCollectionPlaylist::NewL();
@@ -373,7 +414,7 @@
CleanupStack::PopAndDestroy(playlist);
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithPlaylistL - error=%d"),err);
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithUriL
@@ -382,35 +423,60 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithUriL( CStifItemParser& aItem )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithUriL( CStifItemParser& aItem )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithUriL"));
- TInt err = KErrNone;
+ TInt err = KErrNone;
TPtrC string;
-
+
+ MMPXPlayerManager& manager = iMPXPlaybackUtility->PlayerManager();
+ MMPXPlayer* player = manager.CurrentPlayer();
+
if( aItem.GetNextString( string ) == KErrNone )
- {
- TBuf<120> uri;
+ {
+ //TBuf<120> uri;
+ TFileName uri;
uri.Append(KmpxplaybackutilityTestFilePath);
uri.Append(string);
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithUriL - uri = %S."), &uri);
+ iFileName = uri;
+
+ if ( ! BaflUtils::FileExists( iFs, iFileName ) )
+ {
+ err = iFile.Create( iFs, uri, EFileShareAny );
+ iLog->Log(_L("creating tempfile error=%d"),err);
+ iFile.Close();
+ }
+
TRAP(err,iMPXPlaybackUtility->InitL(uri));
if ( !err )
- {
+ {
TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPlayerChanged;
AddExpectedEventL(event, 0, 0);
+
event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EInitializeComplete;
AddExpectedEventL(event, 0, 0);
+
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateInitialised, 0);
+
+ if ( player->UidL() == KPbTestVideoPlugin )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateBuffering, 0);
}
- iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithUriL - error=%d"),err);
}
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithUriL - error=%d"),err);
+ }
else
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityInitWithUriL - Missing file name."));
err = KErrArgument;
- }
+ }
+
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithRFileL
@@ -419,43 +485,68 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithRFileL( CStifItemParser& aItem )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithRFileL( CStifItemParser& aItem )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithRFileL"));
TInt err = KErrNone;
TPtrC string;
+
+ MMPXPlayerManager& manager = iMPXPlaybackUtility->PlayerManager();
+ MMPXPlayer* player = manager.CurrentPlayer();
if( aItem.GetNextString( string ) == KErrNone )
- {
+ {
TBuf<120> KFrom;
KFrom.Append(KmpxplaybackutilityTestFilePath);
KFrom.Append(string);
+ iFileName = KFrom;
+
if ( iFile.SubSessionHandle() )
- {
+ {
iFile.Close();
- }
+ }
+
+ if ( ! BaflUtils::FileExists( iFs, iFileName ) )
+ {
+ err = iFile.Create( iFs, KFrom, EFileShareAny );
+ iLog->Log(_L("creating tempfile error=%d"),err);
+ iFile.Close();
+ }
+
err = iFile.Open(iFs, KFrom, EFileRead | EFileShareReadersOrWriters);
+
if ( err == KErrNone )
- {
+ {
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithRFileL - Open passed."));
TRAP(err,iMPXPlaybackUtility->InitL(iFile));
if ( !err )
- {
+ {
TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPlayerChanged;
AddExpectedEventL(event, 0, 0);
+
event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EInitializeComplete;
AddExpectedEventL(event, 0, 0);
+
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateInitialised, 0);
+
+ if ( player->UidL() == KPbTestVideoPlugin )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateBuffering, 0);
}
}
+ }
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitWithRFileL - error=%d"),err);
- }
+ }
else
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityInitWithRFileL - Missing file name."));
err = KErrArgument;
- }
+ }
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithUriL
@@ -464,36 +555,60 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithUriL( CStifItemParser& aItem )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithUriL( CStifItemParser& aItem )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithUriL"));
TInt err = KErrNone;
TPtrC string;
TInt accessPoint = 1;
+ MMPXPlayerManager& manager = iMPXPlaybackUtility->PlayerManager();
+ MMPXPlayer* player = manager.CurrentPlayer();
+
if( aItem.GetNextString( string ) == KErrNone )
- {
+ {
TBuf<120> uri;
uri.Append(KmpxplaybackutilityTestFilePath);
uri.Append(string);
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithUriL - uri = %S."), &uri);
+ iFileName = uri;
+
+ if ( ! BaflUtils::FileExists( iFs, iFileName ) )
+ {
+ err = iFile.Create( iFs, uri, EFileShareAny );
+ iLog->Log(_L("creating tempfile error=%d"),err);
+ iFile.Close();
+ }
+
TRAP(err,iMPXPlaybackUtility->InitStreamingL(uri, NULL, accessPoint));
if ( !err )
- {
+ {
TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPlayerChanged;
AddExpectedEventL(event, 0, 0);
+
event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EInitializeComplete;
AddExpectedEventL(event, 0, 0);
+
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateInitialised, 0);
+
+ if ( player->UidL() == KPbTestVideoPlugin )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateBuffering, 0);
}
- iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithUriL - error=%d"),err);
+
}
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithUriL - error=%d"),err);
+ }
else
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityInitStreamingWithUriL - Missing file name."));
err = KErrArgument;
- }
+ }
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithRFileL
@@ -502,44 +617,69 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithRFileL( CStifItemParser& aItem )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithRFileL( CStifItemParser& aItem )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithRFileL"));
TInt err = KErrNone;
TPtrC string;
TInt accessPoint = 1;
+ MMPXPlayerManager& manager = iMPXPlaybackUtility->PlayerManager();
+ MMPXPlayer* player = manager.CurrentPlayer();
+
if( aItem.GetNextString( string ) == KErrNone )
- {
+ {
TBuf<120> KFrom;
KFrom.Append(KmpxplaybackutilityTestFilePath);
KFrom.Append(string);
+ iFileName = KFrom;
+
if ( iFile.SubSessionHandle() )
- {
+ {
iFile.Close();
- }
+ }
+
+ if ( ! BaflUtils::FileExists( iFs, iFileName ) )
+ {
+ err = iFile.Create( iFs, KFrom, EFileShareAny );
+ iLog->Log(_L("creating tempfile error=%d"),err);
+ iFile.Close();
+ }
+
err = iFile.Open(iFs, KFrom, EFileRead | EFileShareReadersOrWriters);
if ( err == KErrNone )
- {
+ {
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithRFileL - Open passed."));
TRAP(err,iMPXPlaybackUtility->InitStreamingL(iFile, accessPoint));
if ( !err )
- {
+ {
TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPlayerChanged;
AddExpectedEventL(event, 0, 0);
+
event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EInitializeComplete;
AddExpectedEventL(event, 0, 0);
+
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateInitialised, 0);
+
+ if ( player->UidL() == KPbTestVideoPlugin )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateBuffering, 0);
}
+
}
+ }
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreamingWithRFileL - error=%d"),err);
- }
+ }
else
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityInitStreamingWithRFileL - Missing file name."));
err = KErrArgument;
- }
+ }
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityInit64L
@@ -548,7 +688,8 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityInit64L( CStifItemParser& aItem )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInit64L( CStifItemParser& aItem )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInit64L"));
TInt err = KErrNone;
#ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
@@ -557,39 +698,64 @@
#else // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
TPtrC string;
+ MMPXPlayerManager& manager = iMPXPlaybackUtility->PlayerManager();
+ MMPXPlayer* player = manager.CurrentPlayer();
+
if( aItem.GetNextString( string ) == KErrNone )
- {
+ {
TBuf<120> KFrom;
KFrom.Append(KmpxplaybackutilityTestFilePath);
KFrom.Append(string);
+ iFileName = KFrom;
+
if ( iFile64.SubSessionHandle() )
- {
+ {
iFile64.Close();
- }
+ }
+
+ if ( ! BaflUtils::FileExists( iFs, iFileName ) )
+ {
+ err = iFile64.Create( iFs, KFrom, EFileShareAny );
+ iLog->Log(_L("creating tempfile error=%d"),err);
+ iFile64.Close();
+ }
+
err = iFile64.Open(iFs, KFrom, EFileRead | EFileShareReadersOrWriters);
+
if ( err == KErrNone )
- {
+ {
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInit64L - Open passed."));
TRAP(err,iMPXPlaybackUtility->Init64L(iFile64));
if ( !err )
- {
+ {
TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPlayerChanged;
AddExpectedEventL(event, 0, 0);
+
event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EInitializeComplete;
AddExpectedEventL(event, 0, 0);
+
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateInitialised, 0);
+
+ if ( player->UidL() == KPbTestVideoPlugin )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateBuffering, 0);
}
+
}
+ }
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInit64L - error=%d"),err);
- }
+ }
else
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityInit64L - Missing file name."));
err = KErrArgument;
- }
+ }
#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreaming64L
@@ -598,7 +764,8 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreaming64L( CStifItemParser& aItem )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreaming64L( CStifItemParser& aItem )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreaming64L"));
TInt err = KErrNone;
#ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
@@ -608,39 +775,63 @@
TPtrC string;
TInt accessPoint = 1;
+ MMPXPlayerManager& manager = iMPXPlaybackUtility->PlayerManager();
+ MMPXPlayer* player = manager.CurrentPlayer();
+
if( aItem.GetNextString( string ) == KErrNone )
- {
+ {
TBuf<120> KFrom;
KFrom.Append(KmpxplaybackutilityTestFilePath);
KFrom.Append(string);
+ iFileName = KFrom;
+
if ( iFile64.SubSessionHandle() )
- {
+ {
iFile64.Close();
- }
+ }
+
+ if ( ! BaflUtils::FileExists( iFs, iFileName ) )
+ {
+ err = iFile64.Create( iFs, KFrom, EFileShareAny );
+ iLog->Log(_L("creating tempfile error=%d"),err);
+ iFile64.Close();
+ }
+
err = iFile64.Open(iFs, KFrom, EFileRead | EFileShareReadersOrWriters);
+
if ( err == KErrNone )
- {
+ {
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreaming64L - Open passed."));
TRAP(err,iMPXPlaybackUtility->InitStreaming64L(iFile64, accessPoint));
if ( !err )
- {
+ {
TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPlayerChanged;
AddExpectedEventL(event, 0, 0);
+
event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EInitializeComplete;
AddExpectedEventL(event, 0, 0);
+
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateInitialised, 0);
+
+ if ( player->UidL() == KPbTestVideoPlugin )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateBuffering, 0);
}
}
+ }
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityInitStreaming64L - error=%d"),err);
- }
+ }
else
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityInitStreaming64L - Missing file name."));
err = KErrArgument;
- }
+ }
#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityFile64L
@@ -649,7 +840,8 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityFile64L( CStifItemParser& /*aItem*/ )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityFile64L( CStifItemParser& )");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityFile64L"));
TInt err = KErrNone;
#ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
@@ -659,13 +851,13 @@
RFile64* file64Ptr=NULL;
TRAP(err, file64Ptr=iMPXPlaybackUtility->Source()->File64L());
if ( !file64Ptr->SubSessionHandle() )
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityFile64L - file64 = NULL."));
- }
+ }
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityFile64L - error=%d"),err);
#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityAddObserverL
@@ -674,13 +866,14 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityAddObserverL( CStifItemParser& /*aItem*/ )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityAddObserverL( CStifItemParser&)");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityAddObserverL"));
TInt err = KErrNone;
TRAP(err, iMPXPlaybackUtility->AddObserverL(*this));
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityAddObserverL - error=%d"),err);
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityRemoveObserverL
@@ -689,13 +882,14 @@
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityRemoveObserverL( CStifItemParser& /*aItem*/ )
- {
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityRemoveObserverL( CStifItemParser&)");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityRemoveObserverL"));
TInt err = KErrNone;
TRAP(err, iMPXPlaybackUtility->RemoveObserverL(*this));
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityRemoveObserverL - error=%d"),err);
return err;
- }
+}
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::MMPXPlaybackUtilityPlayerManagerSelectPlayerL
@@ -703,51 +897,499 @@
// (other items were commented in a header).
// -----------------------------------------------------------------------------
//
-TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityPlayerManagerSelectPlayerL(CStifItemParser& aItem)
- {
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityPlayerManagerSelectPlayerL( CStifItemParser& aItem )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityPlayerManagerSelectPlayerL(CStifItemParser& aItem)");
iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityPlayerManagerSelectPlayerL"));
TInt uidInt;
TInt err = KErrNone;
// read in UID
if ( aItem.GetNextInt(uidInt) != KErrNone )
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityPlayerManagerSelectPlayerL - Missing UID."));
err = KErrArgument;
return err;
- }
+ }
iLog->Log(_L("MMPXPlaybackUtilityPlayerManagerSelectPlayerL - UID = 0x%x."), uidInt);
if ( iMPXPlaybackUtility )
- {
+ {
MMPXPlayerManager& manager = iMPXPlaybackUtility->PlayerManager();
- TRAP( err, manager.SelectPlayerL( TUid::Uid(uidInt) ) );
+
+ if (uidInt == 0x10282551)
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityPlayerManagerSelectPlayerL video uid"));
+ MPX_DEBUG2(("MMPXPlaybackUtilityPlayerManagerSelectPlayerL - uidInt = %d."), uidInt);
+ TRAP( err, manager.SelectPlayerL( KPbTestVideoPlugin ) );
+ }
+ else
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityPlayerManagerSelectPlayerL NOT video uid"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityPlayerManagerSelectPlayerL NOT video uid"));
+ TRAP( err, manager.SelectPlayerL( TUid::Uid(uidInt) ) );
+ }
iLog->Log(_L("MMPXPlaybackUtilityPlayerManagerSelectPlayerL - SelectPlayer err = %d."), err);
- }
+ }
else
- {
+ {
iLog->Log(_L("MMPXPlaybackUtilityPlayerManagerSelectPlayerL - MPX Playback Utility not created."));
err = KErrGeneral;
+ }
+ return err;
+}
+
+
+// -----------------------------------------------------------------------------
+// Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayL
+// -----------------------------------------------------------------------------
+//
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayL( CStifItemParser& /*aItem*/ )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayL(CStifItemParser&)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayL"));
+
+ //create command
+ CMPXCommand* cmd = CMPXCommand::NewL();
+ CleanupStack::PushL( cmd );
+
+ cmd->SetTObjectValueL<TInt>(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral);
+ cmd->SetTObjectValueL<TBool>(KMPXCommandGeneralDoSync, ETrue);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralType, EPbCmdPlay);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralData, 0);
+
+
+ TRAPD(err,iMPXPlaybackUtility->CommandL( *cmd ));
+
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPlayL err from commandl: , err = %d."), err);
+ MPX_DEBUG2(("MMPXPlaybackUtilityCommandPlayL err from commandl: , err = %d."), err);
+
+ if ( !err )
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPlayL no error from commandl:"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandPlayL no err from commandl:"));
+
+ TMPXPlaybackState s = iMPXPlaybackUtility->StateL();
+
+ if ( s != EPbStatePlaying )
+ {
+ TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePlaying, 0);
}
+ }
+
+ CleanupStack::PopAndDestroy (cmd);
+
return err;
+}
+
+// -----------------------------------------------------------------------------
+// Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandStopL
+// -----------------------------------------------------------------------------
+//
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandStopL( CStifItemParser& /*aItem*/ )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandStopL(CStifItemParser&)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandStopL"));
+
+ //create command
+ CMPXCommand* cmd = CMPXCommand::NewL();
+ CleanupStack::PushL( cmd );
+
+ cmd->SetTObjectValueL<TInt>(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral);
+ cmd->SetTObjectValueL<TBool>(KMPXCommandGeneralDoSync, ETrue);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralType, EPbCmdStop);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralData, 0);
+
+
+ TRAPD(err,iMPXPlaybackUtility->CommandL( *cmd ));
+
+ iLog->Log(_L("MMPXPlaybackUtilityCommandStopL err from commandl: , err = %d."), err);
+ MPX_DEBUG2(("MMPXPlaybackUtilityCommandStopL err from commandl: , err = %d."), err);
+
+ if ( !err )
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandStopL no error from commandl:"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandStopL no err from commandl:"));
+
+ TMPXPlaybackState s = iMPXPlaybackUtility->StateL();
+
+ if ( s != EPbStateStopped )
+ {
+ TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateStopped, 0);
+ }
+
}
+
+ CleanupStack::PopAndDestroy (cmd);
+
+ return err;
+}
+
+// -----------------------------------------------------------------------------
+// Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPauseL
+// -----------------------------------------------------------------------------
+//
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPauseL( CStifItemParser& /*aItem*/ )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPauseL(CStifItemParser&)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPauseL"));
+
+ //create command
+ CMPXCommand* cmd = CMPXCommand::NewL();
+ CleanupStack::PushL( cmd );
+
+ cmd->SetTObjectValueL<TInt>(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral);
+ cmd->SetTObjectValueL<TBool>(KMPXCommandGeneralDoSync, ETrue);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralType, EPbCmdPause);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralData, 0);
+
+
+ TRAPD(err,iMPXPlaybackUtility->CommandL( *cmd ));
+
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPauseL err from commandl: , err = %d."), err);
+ MPX_DEBUG2(("MMPXPlaybackUtilityCommandPauseL err from commandl: , err = %d."), err);
+
+ if ( !err )
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPauseL no error from commandl:"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandPauseL no err from commandl:"));
+
+ TMPXPlaybackState s = iMPXPlaybackUtility->StateL();
+
+ if ( s == EPbStatePlaying )
+ {
+ TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePaused, 0);
+ }
+
+ }
+
+ CleanupStack::PopAndDestroy (cmd);
+
+ return err;
+}
+
+// -----------------------------------------------------------------------------
+// Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayPauseL
+// -----------------------------------------------------------------------------
+//
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayPauseL( CStifItemParser& /*aItem*/ )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayPauseL(CStifItemParser&)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayPauseL"));
+
+ //create command
+ CMPXCommand* cmd = CMPXCommand::NewL();
+ CleanupStack::PushL( cmd );
+
+ cmd->SetTObjectValueL<TInt>(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral);
+ cmd->SetTObjectValueL<TBool>(KMPXCommandGeneralDoSync, ETrue);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralType, EPbCmdPlayPause);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralData, 0);
+
+ TMPXPlaybackState s = iMPXPlaybackUtility->StateL();
+
+ TRAPD(err,iMPXPlaybackUtility->CommandL( *cmd ));
+
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPlayPauseL err from commandl: err = %d."), err);
+ MPX_DEBUG2(("MMPXPlaybackUtilityCommandPlayPauseL err from commandl: err = %d."), err);
+
+ if ( !err )
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPlayPauseL no error from commandl"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandPlayPauseL no error from commandl"));
+
+
+
+ if (s == EPbStatePlaying)
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPlayPauseL EPbStatePlaying:"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandPlayPauseL EPbStatePlaying:"));
+ TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePaused, 0);
+ }
+ else
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPlayPauseL State is not playing:"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandPlayPauseL State is not playing:"));
+ TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePlaying, 0);
+ }
+ }
+
+ CleanupStack::PopAndDestroy (cmd);
+
+ return err;
+}
+
+// -----------------------------------------------------------------------------
+// Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayCompleteL
+// -----------------------------------------------------------------------------
+//
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayCompleteL( CStifItemParser& /*aItem*/ )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayCompleteL(CStifItemParser&)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandPlayCompleteL"));
+
+ //create command
+ CMPXCommand* cmd = CMPXCommand::NewL();
+ CleanupStack::PushL( cmd );
+
+ cmd->SetTObjectValueL<TInt>(KMPXCommandGeneralId, KMPXMessageStif);
+ cmd->SetTObjectValueL<TBool>(KMPXCommandGeneralDoSync, ETrue);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralData, 0);
+
+ cmd->SetTObjectValueL<TMPXStifCommand>( KMPXStifPlaybackCommand,
+ EPbStifPlayComplete );
+
+ TRAPD(err,iMPXPlaybackUtility->CommandL( *cmd ));
+
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPlayCompleteL error from commandl: err = %d."), err);
+ MPX_DEBUG2(("MMPXPlaybackUtilityCommandPlayCompleteL error from commandl: err = %d."), err);
+
+ if ( !err )
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandPlayCompleteL no error from commandl"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandPlayCompleteL no error from commandl"));
+
+ TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPropertyChanged;
+ AddExpectedEventL(event, EPbPropertyPosition, 0);
+
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateStopped, 0);
+ }
+
+ CleanupStack::PopAndDestroy (cmd);
+
+ return err;
+}
+
+
+// -----------------------------------------------------------------------------
+// Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekForwardL
+// -----------------------------------------------------------------------------
+//
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekForwardL( CStifItemParser& /*aItem*/ )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekForwardL(CStifItemParser&)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekForwardL"));
+
+ TMPXPlaybackState s = iMPXPlaybackUtility->StateL();
+
+ //create command
+ CMPXCommand* cmd = CMPXCommand::NewL();
+ CleanupStack::PushL( cmd );
+
+ cmd->SetTObjectValueL<TInt>(KMPXCommandGeneralId, KMPXMessageStif);
+ cmd->SetTObjectValueL<TBool>(KMPXCommandGeneralDoSync, ETrue);
+ cmd->SetTObjectValueL<TMPXStifCommand>( KMPXStifPlaybackCommand,
+ EPbStifSeekForward );
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralData, s);
+
+ TRAPD(err,iMPXPlaybackUtility->CommandL( *cmd ));
+
+ iLog->Log(_L("MMPXPlaybackUtilityCommandSeekForwardL error from commandl: err = %d"), err);
+ MPX_DEBUG2(("MMPXPlaybackUtilityCommandSeekForwardL error from commandl: err = %d."), err);
+
+ if ( !err )
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandSeekForwardL no error from commandl"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandSeekForwardL no error from commandl"));
+
+ TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePluginSeeking, 0);
+
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPropertyChanged;
+ AddExpectedEventL(event, EPbPropertyPosition, 0);
+
+ if ( s == EPbStatePlaying )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePlaying, 0);
+ }
+ else if ( s == EPbStatePaused )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePaused, 0);
+ }
+ }
+ CleanupStack::PopAndDestroy (cmd);
+
+ return err;
+}
+
+
+
+// -----------------------------------------------------------------------------
+// Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekBackwardL
+// -----------------------------------------------------------------------------
+//
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekBackwardL( CStifItemParser& /*aItem*/ )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekBackwardL(CStifItemParser&)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandSeekBackwardL"));
+
+ TMPXPlaybackState s = iMPXPlaybackUtility->StateL();
+
+ //create command
+ CMPXCommand* cmd = CMPXCommand::NewL();
+ CleanupStack::PushL( cmd );
+
+ cmd->SetTObjectValueL<TInt>(KMPXCommandGeneralId, KMPXMessageStif);
+ cmd->SetTObjectValueL<TBool>(KMPXCommandGeneralDoSync, ETrue);
+ cmd->SetTObjectValueL<TMPXStifCommand>( KMPXStifPlaybackCommand,
+ EPbStifSeekBackward );
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralData, s);
+
+ TRAPD(err,iMPXPlaybackUtility->CommandL( *cmd ));
+
+ iLog->Log(_L("MMPXPlaybackUtilityCommandSeekBackwardL error from commandl: err = %d."), err);
+ MPX_DEBUG2(("MMPXPlaybackUtilityCommandSeekBackwardL error from commandl: err = %d."), err);
+
+ if ( !err )
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandSeekForwardL no error from commandl"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandSeekForwardL no error from commandl"));
+
+ TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePluginSeeking, 0);
+
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPropertyChanged;
+ AddExpectedEventL(event, EPbPropertyPosition, 0);
+
+ if ( s == EPbStatePlaying )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePlaying, 0);
+ }
+ else if ( s == EPbStatePaused )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStatePaused, 0);
+ }
+ }
+
+ CleanupStack::PopAndDestroy (cmd);
+
+ return err;
+}
+
+
+// -----------------------------------------------------------------------------
+// Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandCloseL
+// -----------------------------------------------------------------------------
+//
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandCloseL( CStifItemParser& /*aItem*/ )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandCloseL(CStifItemParser&)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilityCommandCloseL"));
+
+ TMPXPlaybackState s = iMPXPlaybackUtility->StateL();
+
+ //create command
+ CMPXCommand* cmd = CMPXCommand::NewL();
+ CleanupStack::PushL( cmd );
+
+ cmd->SetTObjectValueL<TInt>(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral);
+ cmd->SetTObjectValueL<TBool>(KMPXCommandGeneralDoSync, ETrue);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralType, EPbCmdClose);
+ cmd->SetTObjectValueL<TInt>(KMPXCommandPlaybackGeneralData, 0);
+
+ TRAPD(err,iMPXPlaybackUtility->CommandL( *cmd ));
+
+ iLog->Log(_L("MMPXPlaybackUtilityCommandCloseL err from commandl: err = %d."), err);
+ MPX_DEBUG2(("MMPXPlaybackUtilityCommandCloseL err from commandl: err = %d."), err);
+
+ if ( !err )
+ {
+ iLog->Log(_L("MMPXPlaybackUtilityCommandCloseL no error from commandl:"));
+ MPX_DEBUG1(("MMPXPlaybackUtilityCommandCloseL no err from commandl:"));
+
+ TInt event;
+
+ if ( s != EPbStateStopped )
+ {
+ event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EStateChanged;
+ AddExpectedEventL(event, EPbStateStopped, 0);
+ }
+ }
+
+ CleanupStack::PopAndDestroy (cmd);
+
+ return err;
+}
+
+
+// -----------------------------------------------------------------------------
+// Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL
+// -----------------------------------------------------------------------------
+//
+TInt Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL( CStifItemParser& aItem )
+{
+ MPX_FUNC_EX("Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL(CStifItemParser&)");
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL"));
+
+ TInt err = KErrNone;
+ TInt property;
+ TInt value;
+
+
+ if( aItem.GetNextInt( property ) != KErrNone )
+ {
+ MPX_DEBUG1(("Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL missing property " ));
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL missing property " ));
+ err = KErrArgument;
+ return err;
+ }
+
+ if ( aItem.GetNextInt( value ) != KErrNone)
+ {
+ MPX_DEBUG1(("Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL missing value " ));
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL missing value " ));
+ err = KErrArgument;
+ return err;
+ }
+
+ MPX_DEBUG3(("Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL property = %d, value = %d"), property, value );
+ iLog->Log(_L("Cmpxplaybackutilitytest::MMPXPlaybackUtilitySetL property = %d, value %d") , property, value );
+
+ TRAP(err, iMPXPlaybackUtility->SetL((TMPXPlaybackProperty)property, value ));
+
+ iLog->Log(_L("MMPXPlaybackUtilitySetL err from SetL: err = %d."), err);
+ MPX_DEBUG2(("MMPXPlaybackUtilitySetL err from SetL: err = %d."), err);
+
+ if ( !err )
+ {
+ iLog->Log(_L("MMPXPlaybackUtilitySetL no error from SetL"));
+ MPX_DEBUG1(("MMPXPlaybackUtilitySetL no err from SetL"));
+
+ TInt event = KGeneralPlaybackMsgOffset + TMPXPlaybackMessage::EPropertyChanged;
+ AddExpectedEventL(event, property, value);
+ }
+
+ return err;
+}
+
// -----------------------------------------------------------------------------
// Cmpxplaybackutilitytest::EndTest
// -----------------------------------------------------------------------------
//
TInt Cmpxplaybackutilitytest::EndTest( CStifItemParser& /*aItem*/ )
- {
+{
iLog->Log(_L("Cmpxplaybackutilitytest::EndTest"));
TInt err = iCallbackError;
// check if event queue is empty
if ( !err && (iExpectedEventArray->Count() > 0 ) )
- {
+ {
iLog->Log(_L("Cmpxplaybackutilitytest::EndTest error = KErrTimedOut"));
err = KErrTimedOut;
- }
+ }
+
return err;
- }
+}
// end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/data/e0000201.rss Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Resource file
+*
+*/
+
+/*
+ * The opaque_data syntax is made up of three parts:
+ * a list of Uids for resolving the view plugin, feature flags, priority.
+ *
+ * <p>uid1;uid2;uid3</p>
+ * uid*: Supported plugin types.
+ * E.g. if podcast plugin may support music plugin as well,
+ * KMPXColPluginMusic
+ *
+ * <t>uid</t>
+ * uid: plugin type uid.
+ * E.g. for music plugin will be: 0x101FFCDA
+ *
+ * <f>flags</f> [optional]
+ * flags: sum of the required feature flags, not used now
+ *
+ * <i>priority</i> [optional]
+ * priority: a value of type TMPXCollectionPluginPriorities. This value
+ * determines the returning order when several plugins can
+ * support the same set of Uids.
+ * Default value of this field is EMPXCollectionPluginPriorityNormal.
+ */
+
+#include <Ecom/RegistryInfo.rh>
+#include <mpxplaybackplugin.hrh>
+#include "testcommonpluginuids.h"
+#include "testplaybackplugintype.h"
+
+RESOURCE REGISTRY_INFO theInfo
+{
+ dll_uid = KPlaybackTestVideoPlugin;
+
+ interfaces =
+ {
+ INTERFACE_INFO
+ {
+ interface_uid = KMPXPlaybackPluginInterfaceUid;
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = KPlaybackTestVideoPluginImpId;
+ version_no = 1;
+ display_name = "TestVideoPlaybackPlugin";
+ default_data = "";
+ opaque_data =
+ "<s><e>"
+ "<t>"EPbUnknown"</t>"
+ "<i>"EMPXPlaybackPluginPriorityHighest"</i>"
+ "<z>"MPXPlaybackPluginVersion2"</z>";
+ }
+ };
+ }
+ };
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/group/bld.inf Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Build information file for Playback test plugin
+*
+*/
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_TESTMMPFILES
+testvideoplaybackplugin.mmp
+
+PRJ_MMPFILES
+
+// End of File
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/group/testvideoplaybackplugin.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Playback test plugin project specification
+*
+*/
+
+#include <bldvariant.hrh>
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+
+#include "../../inc/testcommonpluginuids.h"
+
+TARGET testvideoplaybackplugin.dll
+TARGETTYPE PLUGIN
+UID 0x10009D8D KPlaybackTestVideoPlugin
+
+VENDORID VID_DEFAULT
+CAPABILITY CAP_ECOM_PLUGIN
+
+SOURCEPATH ../src
+SOURCE testvideoplaybackplugin.cpp
+
+SOURCEPATH ../data
+START RESOURCE e0000201.RSS
+TARGET testvideoplaybackplugin.rsc
+END
+
+USERINCLUDE ../inc
+USERINCLUDE ../../inc
+USERINCLUDE ../../mpxplaybackutilitytest/inc
+
+
+APP_LAYER_SYSTEMINCLUDE
+
+LIBRARY euser.lib
+LIBRARY ecom.lib
+LIBRARY efsrv.lib
+LIBRARY estor.lib
+LIBRARY BAFL.lib
+LIBRARY flogger.lib
+LIBRARY mpxcommon.lib
+
+SOURCEPATH ../src
+SOURCE testvideoplaybackpluginproxy.cpp
+
+//end of file
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/inc/testvideoplaybackplugin.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,268 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Implementation of testvideoplaybackplugin interface
+*
+*/
+
+#ifndef _CTESTVIDEOPLAYBACKPLUGIN_H_
+#define _CTESTVIDEOPLAYBACKPLUGIN_H_
+
+//
+// INCLUDES
+//
+#include <e32base.h>
+
+#include <mpxplaybackplugin.h>
+#include <mpxplaybackpluginversion2.h>
+#include <mpxplaybackengineobserver.h>
+#include <mpxvideoplaybackdefs.h>
+
+#include "mpxplaybackutilitytest.h"
+
+
+
+
+#include <e32svr.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+
+#include <mpxmediageneraldefs.h>
+#include <mpxcommandgeneraldefs.h>
+#include <mmf/common/mmferrors.h>
+#include <mpxplaybackpluginversion2.h>
+#include <mpxmessagegeneraldefs.h>
+
+#include <accpolnamevaluerecord.h>
+#include <accconfigfileparser.h>
+#include <acccongenericid.h>
+#include <accpolnamevaluerecord.h>
+
+#include <mpxvideoplaybackdefs.h>
+#include "mpxmediavideodefs.h"
+
+typedef struct
+{
+ TInt iEvent;
+ TInt iData;
+ TInt iError;
+} TTestVideoPlaybackCallbackEvent;
+
+typedef CArrayPtrFlat<TTestVideoPlaybackCallbackEvent> CCallbackArray;
+
+//
+// CLASS DECLARATION
+//
+
+/*
+ * CTestVideoPlaybackPlugin class
+ *
+ */
+
+NONSHARABLE_CLASS( CTestVideoPlaybackPlugin ) : public CMPXPlaybackPluginVersion2
+
+{
+ public:
+ //
+ // Constructors and destructor
+ //
+
+ /*
+ * Two-phased constructor.
+ * @param aInitParams, initialization parameter
+ * @return a pointer to the created instance
+ */
+ static CTestVideoPlaybackPlugin* NewL(TAny* aInitParams);
+
+ /*
+ * Destructor
+ * Destroy the object and release all memory objects
+ */
+ ~CTestVideoPlaybackPlugin();
+
+ /*
+ * Returns the current file handle iFile
+ */
+ RFile GetFileHandle();
+
+ /**
+ * Initializes a file for playback.
+ *
+ * @since S60 9.2
+ * @param aUri URI of the item
+ * @param aType the mime type of the item
+ * @param aAccessPoint the access point
+ */
+ void InitStreamingL(const TDesC& aUri, const TDesC8& aType, TInt aAccessPoint, TInt aPosition);
+
+ /**
+ * Initializes a file handle for playback.
+ *
+ * @since S60 9.2
+ * @param aFile file handle of a file
+ * @param aAccessPoint the access point
+ */
+ void InitStreamingL(RFile& aFile, TInt aAccessPoint, TInt aPosition);
+
+#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+ /**
+ * Initializes a file handle for playback.
+ *
+ * @since S60 9.2
+ * @param aFile 64 bit file handle of a file
+ * @param aAccessPoint the access point
+ */
+ void InitStreaming64L(RFile64& aFile, TInt aAccessPoint, TInt aPosition);
+
+ /**
+ * Initializes a song for playback.
+ *
+ * @since S60 9.2
+ * @param aFile 64 bit file handle of a song
+ */
+ void Initialise64L(RFile64& aFile, TInt aPosition);
+#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+
+ /**
+ * Initializes a song for playback.
+ *
+ * @since S60 9.2
+ * @param aSong the song path
+ * @param aPosition the starting position
+ */
+ virtual void InitialiseWithPositionL(const TDesC& aSong, TInt aPosition = 0 );
+
+ /**
+ * Initializes a song for playback.
+ *
+ * @since S60 9.2
+ * @param aFile file handle of a song
+ * @param aPosition the starting position
+ */
+ virtual void InitialiseWithPositionL(RFile& aSong, TInt aPosition = 0);
+
+ //runl for active object
+ void RunL();
+
+ void DoCancel();
+
+ private:
+ //
+ // CMPXPlaybackPlugin Implementation
+ //
+
+ /*
+ * Set observer
+ *
+ * @param aObs observer
+ */
+ void SetObserver( MMPXPlaybackPluginObserver& aObs );
+
+ /*
+ * Initializes a clip for playback
+ * @param aSong the song path
+ */
+ void InitialiseL( const TDesC& aSong );
+
+ /*
+ * Initializes a song for playback
+ * @param aFile file handle of a song
+ */
+ void InitialiseL( RFile& aFile );
+
+ /*
+ * Executes a command on the selected song
+ * @param aCmd a command
+ * @param aData, data
+ */
+ void CommandL( CMPXCommand& aCmd );
+
+ // Supposedly being deprecated
+ // We're forced to implement this as its declared as a
+ // pure virtual function by the MPX framework
+ void CommandL(TMPXPlaybackCommand aCmd, TInt aData=0);
+
+ /*
+ * Sets a property of the plugin
+ * @param aProperty a property
+ * @param aValue the value of the setting
+ */
+ void SetL( TMPXPlaybackProperty aProperty , TInt aValue );
+
+ /*
+ * Gets a property of the plugin (async)
+ * @param aProperty a property
+ */
+ void PropertyL( TMPXPlaybackProperty aProperty ) const;
+
+ /*
+ * Gets a list of sub players
+ * @return a list of names of sub players
+ */
+ void SubPlayerNamesL();
+
+ /*
+ * Select a sub player
+ * @param aIndex index to the sub player
+ */
+ void SelectSubPlayerL( TInt aIndex );
+
+ /*
+ * Returns current sub player name
+ * @return friendly name of the current the sub player
+ */
+ const TDesC& SubPlayerName();
+
+ /*
+ * Current sub player index
+ * @return index to the sub player
+ */
+ TInt SubPlayerIndex() const;
+
+ /*
+ * Media properties of the current file (async)
+ * @param aAttrs attributes requested
+ */
+ void MediaL( const TArray<TMPXAttribute>& aAttrs );
+
+ /*
+ * Cancel async request
+ */
+ void CancelRequest();
+
+ private:
+ /*
+ * C++ default constructor
+ */
+ CTestVideoPlaybackPlugin();
+
+ /*
+ * the second phase constructor ConstructL to safely construct things
+ * that can leave
+ */
+ void ConstructL();
+
+ void AddCallbackEvent( TTestVideoPlaybackCallbackEvent* event );
+ static TInt SendEvent( TAny* aPtr );
+ void DoSendEvent();
+
+ private:
+
+ HBufC* iClipName;
+ RFs iFs;
+ RFile iFile;
+ CIdle* iCallback; //active object
+ CCallbackArray* iEventArray;
+};
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/src/testvideoplaybackplugin.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,793 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: CTestVideoPlaybackPlugin implementation
+*
+*/
+
+//
+// INCLUDE FILES
+//
+#include <apgcli.h>
+#include <e32cmn.h>
+#include <mpxmediageneraldefs.h>
+#include <mpxcommandgeneraldefs.h>
+#include <mpxmessagegeneraldefs.h>
+#include <mpxplaybackcommanddefs.h>
+#include <mpxvideoplaybackdefs.h>
+#include <mpxplaybackpluginobserver.h>
+#include <mpxplaybackplugin.h>
+#include <mpxlog.h>
+#include <mpxmedia.h>
+
+#include "testvideoplaybackplugin.h"
+#include "mpxplaybackutilitytestdefs.h"
+#include "mpxplaybackutilitytest.h"
+
+
+//
+// CONSTANTS
+//
+const TUid KLocalPlaybackUid = { 0x10282556 };
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// ----------------------------------------------------------------------------
+// Two-phased constructor.
+// ----------------------------------------------------------------------------
+//
+CTestVideoPlaybackPlugin* CTestVideoPlaybackPlugin::NewL( TAny* /*aInitParams*/ )
+{
+
+ CTestVideoPlaybackPlugin* p = new (ELeave) CTestVideoPlaybackPlugin();
+ CleanupStack::PushL(p);
+ p->ConstructL();
+ CleanupStack::Pop(p);
+ return p;
+}
+
+// ----------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave.
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::ConstructL()
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::ConstructL()");
+ User::LeaveIfError( iFs.Connect() );
+ iFs.ShareProtected();
+
+ iEventArray = new (ELeave) CArrayPtrFlat<TTestVideoPlaybackCallbackEvent>( 1 );
+ iCallback = CIdle::NewL( CActive::EPriorityLow );
+}
+
+// ----------------------------------------------------------------------------
+// C++ constructor
+// ----------------------------------------------------------------------------
+//
+CTestVideoPlaybackPlugin::CTestVideoPlaybackPlugin()
+
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::CTestVideoPlaybackPlugin()");
+}
+
+// ----------------------------------------------------------------------------
+// Destructor
+// ----------------------------------------------------------------------------
+//
+CTestVideoPlaybackPlugin::~CTestVideoPlaybackPlugin()
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::~CTestVideoPlaybackPlugin()");
+ iFile.Close();
+ iFs.Close();
+
+ if ( iCallback->IsActive() )
+ {
+ iCallback->Cancel();
+ }
+
+ delete iCallback;
+
+ iEventArray->ResetAndDestroy();
+}
+
+// ----------------------------------------------------------------------------
+// Set observer
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::SetObserver( MMPXPlaybackPluginObserver& aObs )
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::SetObserver( MMPXPlaybackPluginObserver& aObs )");
+ iObs = &aObs;
+}
+
+// ----------------------------------------------------------------------------
+// Initializes a clip for playback from a file name
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::InitialiseL( const TDesC& aSong )
+{
+
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::InitialiseL( const TDesc& aSong)");
+
+ delete iClipName;
+ iClipName = NULL;
+ iClipName = aSong.AllocL();
+
+ iFile.Close();
+
+ TInt err = iFile.Open( iFs, aSong, EFileRead | EFileShareReadersOrWriters );
+
+ //
+ // Remap KErrNotReady to KErrNotFound, because it is referencing a drive
+ // that is not existent
+ //
+ if ( KErrNotReady == err )
+ {
+ err = KErrNotFound;
+ }
+
+ // if aSong is an streaming link and contains one of the streaming schemas
+ // eg. rtsp:// , http:// etc. then a file handle can not be opened
+ // ignore KErrBadName
+ if (err != KErrBadName)
+ {
+ User::LeaveIfError( err );
+ }
+
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPInitialised;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPBufferingStarted;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+}
+
+// ----------------------------------------------------------------------------
+// Initializes a clip for playback from a file handle
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::InitialiseL( RFile& aSong )
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::InitialiseL( RFile& aSong )");
+
+ delete iClipName;
+ iClipName = NULL;
+ iClipName = HBufC::NewL( KMaxFileName );
+ TPtr ptr = iClipName->Des();
+ aSong.FullName( ptr );
+
+ iFile.Close();
+ User::LeaveIfError( iFile.Duplicate( aSong ));
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPInitialised;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPBufferingStarted;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+}
+
+/**
+* Initializes a file for playback.
+*
+* @since S60 9.2
+* @param aUri URI of the item
+* @param aType the mime type of the item
+* @param aAccessPoint the access point
+*/
+void CTestVideoPlaybackPlugin::InitStreamingL(const TDesC& /*aUri*/,
+ const TDesC8& /*aType*/, TInt /*aAccessPoint*/, TInt /*aPosition*/)
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::InitStreamingL(const TDesC& /*aUri*/, const TDesC8& /*aType*/, TInt /*aAccessPoint*/, TInt /*aPosition*/)");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPInitialised;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPBufferingStarted;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+}
+
+/**
+* Initializes a file handle for playback.
+*
+* @since S60 9.2
+* @param aFile file handle of a file
+* @param aAccessPoint the access point
+*/
+void CTestVideoPlaybackPlugin::InitStreamingL(RFile& /*aFile*/, TInt /*aAccessPoint*/, TInt /*aPosition*/)
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::InitStreamingL(RFile& /*aFile*/, TInt /*aAccessPoint*/, TInt /*aPosition*/)");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPInitialised;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPBufferingStarted;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+}
+
+#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+/**
+* Initializes a file handle for playback.
+*
+* @since S60 9.2
+* @param aFile 64 bit file handle of a file
+* @param aAccessPoint the access point
+*/
+void CTestVideoPlaybackPlugin::InitStreaming64L(RFile64& /*aFile*/, TInt /*aAccessPoint*/, TInt /*aPosition*/)
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::InitStreaming64L(RFile64& /*aFile*/, TInt /*aAccessPoint*/, TInt /*aPosition*/)");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPInitialised;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPBufferingStarted;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+}
+
+/**
+* Initializes a song for playback.
+*
+* @since S60 9.2
+* @param aFile 64 bit file handle of a song
+*/
+void CTestVideoPlaybackPlugin::Initialise64L(RFile64& /*aSong*/, TInt /*aPosition*/)
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::Initialise64L(RFile64& /*aSong*/, TInt /*aPosition*/)");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPInitialised;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPBufferingStarted;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+}
+#endif // SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
+
+// ----------------------------------------------------------------------------
+// Executes a command on the selected song
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::CommandL( CMPXCommand& aCmd )
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::CommandL( CMPXCommand& aCmd )");
+
+ if ( aCmd.IsSupported( KMPXStifPlaybackCommand ) )
+ {
+ TMPXStifCommand cmd = static_cast<TMPXStifCommand>(aCmd.ValueTObjectL<TInt>(KMPXStifPlaybackCommand));
+ TMPXPlaybackState state = static_cast<TMPXPlaybackState>(aCmd.ValueTObjectL<TInt>(KMPXCommandPlaybackGeneralData));
+
+ MPX_DEBUG3("CTestVideoPlaybackPlugin::CommandL cmd = %d, state = %d ", cmd, state);
+
+ switch ( cmd )
+ {
+ case EPbStifPlayComplete:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd is EPbStifPlaybackComplete");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPPlayComplete;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ break;
+ }
+ case EPbStifSeekForward:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd is EPbStifSeekForward");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPPluginSeeking;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPPositionChanged;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ if ( state == EPbStatePlaying )
+ {
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPPlaying;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+ }
+ else if ( state == EPbStatePaused )
+ {
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPPaused;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ }
+ break;
+ }
+
+ case EPbStifSeekBackward:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd is EPbStifSeekBackward");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPPluginSeeking;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPPositionChanged;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ if ( state == EPbStatePlaying )
+ {
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPPlaying;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+ }
+ else if ( state == EPbStatePaused )
+ {
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPPaused;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+ }
+ break;
+ }
+
+ default:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd default");
+ break;
+ }
+ }
+ }
+}
+
+
+// ----------------------------------------------------------------------------
+// Executes a command on the selected song
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::CommandL(TMPXPlaybackCommand aCmd, TInt /*aData*/)
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::CommandL(TMPXPlaybackCommand aCmd, TInt /*aData*/)");
+
+ MPX_DEBUG2("CTestVideoPlaybackPlugin::CommandL aCmd = %d", aCmd);
+
+ switch (aCmd)
+ {
+ case EPbCmdPlay:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd is EPbCmdPlay");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPPlaying;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ break;
+ }
+
+ case EPbCmdClose:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd is EPbCmdClose");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPClosed;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ break;
+ }
+
+ case EPbCmdStop:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd is EPbCmdStop");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPStopped;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ break;
+ }
+
+ case EPbCmdPause:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd is EPbCmdPause");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPPaused;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ break;
+ }
+
+ case EPbCmdStartSeekForward:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd is EPbCmdStartSeekForward");
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPPluginSeeking;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPPositionChanged;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPPlaying;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ break;
+ }
+
+ default:
+ {
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::CommandL aCmd default");
+ break;
+ }
+ }
+}
+
+
+// ----------------------------------------------------------------------------
+// Sets a property of the plugin
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::SetL( TMPXPlaybackProperty aProperty, TInt aValue )
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::SetL( TMPXPlaybackProperty /*aProperty*/, TInt /*aValue*/ )");
+ MPX_DEBUG3("CTestVideoPlaybackPlugin::SetL aProperty = %d, aValue = %d", aProperty, aValue);
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPSetComplete;
+ event->iData = aProperty;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+}
+
+// ----------------------------------------------------------------------------
+// Gets a property of the plugin (async)
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::PropertyL( TMPXPlaybackProperty /*aProperty*/ ) const
+{
+
+}
+
+// ----------------------------------------------------------------------------
+// Gets a list of sub players, UPnP only
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::SubPlayerNamesL()
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::SubPlayerNamesL()");
+
+ iObs->HandleSubPlayerNames( KLocalPlaybackUid, NULL, ETrue, KErrNone );
+}
+
+// ----------------------------------------------------------------------------
+// Select a sub player
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::SelectSubPlayerL( TInt /*aIndex*/ )
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::SelectSubPlayerL( TInt aIndex )");
+
+ User::Leave( KErrNotSupported );
+}
+
+// ----------------------------------------------------------------------------
+// Returns current sub player name
+// ----------------------------------------------------------------------------
+//
+const TDesC& CTestVideoPlaybackPlugin::SubPlayerName()
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::SubPlayerName()");
+
+ return KNullDesC;
+}
+
+// ----------------------------------------------------------------------------
+// Current sub player index
+// ----------------------------------------------------------------------------
+//
+TInt CTestVideoPlaybackPlugin::SubPlayerIndex() const
+{
+
+ return KErrNotFound;
+}
+
+// ----------------------------------------------------------------------------
+// Gets media properties
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::MediaL( const TArray<TMPXAttribute>& /*aAttrs*/ )
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::MediaL( const TArray TMPXAttribute )");
+}
+
+// ----------------------------------------------------------------------------
+// Cancel request
+// ----------------------------------------------------------------------------
+//
+void CTestVideoPlaybackPlugin::CancelRequest()
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::CancelRequest()");
+}
+
+// ----------------------------------------------------------------------------
+// CTestVideoPlaybackPlugin::GetFileHandle()
+// ----------------------------------------------------------------------------
+//
+RFile CTestVideoPlaybackPlugin::GetFileHandle()
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::GetFileHandle()");
+
+ return iFile;
+}
+
+/**
+* Initializes a song for playback.
+*
+* @since S60 9.2
+* @param aSong the song path
+* @param aPosition the starting position
+*/
+void CTestVideoPlaybackPlugin::InitialiseWithPositionL(const TDesC& aSong, TInt aPosition)
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::InitialiseWithPositionL(const TDesC& /*aSong*/, TInt /*aPosition*/)");
+
+ delete iClipName;
+ iClipName = NULL;
+ iClipName = aSong.AllocL();
+
+ iFile.Close();
+
+ TInt err = iFile.Open( iFs, aSong, EFileRead | EFileShareReadersOrWriters );
+
+ //
+ // Remap KErrNotReady to KErrNotFound, because it is referencing a drive
+ // that is not existent
+ //
+ if ( KErrNotReady == err )
+ {
+ err = KErrNotFound;
+ }
+
+ // if aSong is an streaming link and contains one of the streaming schemas
+ // eg. rtsp:// , http:// etc. then a file handle can not be opened
+ // ignore KErrBadName
+ if (err != KErrBadName)
+ {
+ User::LeaveIfError( err );
+ }
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPInitialised;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPBufferingStarted;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+}
+
+/**
+* Initializes a song for playback.
+*
+* @since S60 9.2
+* @param aFile file handle of a song
+* @param aPosition the starting position
+*/
+void CTestVideoPlaybackPlugin::InitialiseWithPositionL(RFile& aSong, TInt aPosition)
+{
+ MPX_FUNC_EX("CTestVideoPlaybackPlugin::InitialiseWithPositionL(RFile& aSong, TInt aPosition)");
+
+ delete iClipName;
+ iClipName = NULL;
+ iClipName = HBufC::NewL( KMaxFileName );
+ TPtr ptr = iClipName->Des();
+ aSong.FullName( ptr );
+
+ iFile.Close();
+ User::LeaveIfError( iFile.Duplicate( aSong ));
+
+
+ TTestVideoPlaybackCallbackEvent* event = new (ELeave) TTestVideoPlaybackCallbackEvent;
+
+ event->iEvent = MMPXPlaybackPluginObserver::EPInitialised;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+
+ event = new TTestVideoPlaybackCallbackEvent;
+ event->iEvent = MMPXPlaybackPluginObserver::EPBufferingStarted;
+ event->iData = 0;
+ event->iError = KErrNone;
+
+ AddCallbackEvent( event );
+}
+
+
+void CTestVideoPlaybackPlugin::RunL()
+{
+ MPX_FUNC_EX("CTestVideoPaybackPlugin::RunL");
+}
+
+void CTestVideoPlaybackPlugin::DoCancel()
+{
+ MPX_FUNC_EX("CTestVideoPaybackPlugin::DoCancel");
+}
+
+void CTestVideoPlaybackPlugin::AddCallbackEvent( TTestVideoPlaybackCallbackEvent* event )
+{
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::AddCallbackEvent");
+
+ iEventArray->AppendL( event );
+
+ if ( ! iCallback->IsActive() )
+ {
+ iCallback->Start( TCallBack( CTestVideoPlaybackPlugin::SendEvent, this ) );
+ }
+}
+
+TInt CTestVideoPlaybackPlugin::SendEvent (TAny* aPtr )
+{
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::SendEvent");
+
+ static_cast<CTestVideoPlaybackPlugin*>(aPtr)->DoSendEvent();
+
+ return KErrNone;
+}
+
+void CTestVideoPlaybackPlugin::DoSendEvent()
+{
+ MPX_DEBUG1("-->CTestVideoPlaybackPlugin::DoSendEvent");
+
+ TInt count = iEventArray->Count();
+
+ if ( count > 0 )
+ {
+ TTestVideoPlaybackCallbackEvent* event = (*iEventArray)[0];
+
+ MMPXPlaybackPluginObserver::TEvent myevent = static_cast<MMPXPlaybackPluginObserver::TEvent>(event->iEvent);
+
+ iObs->HandlePluginEvent( myevent, event->iData, event->iError);
+
+ if ( count > 1 )
+ {
+ //
+ // More events exist, start another callback
+ //
+ MPX_DEBUG1("CTestVideoPlaybackPlugin::DoSendEvent - there are more events, start another callback");
+ iCallback->Start( TCallBack( CTestVideoPlaybackPlugin::SendEvent, this ) );
+ }
+
+ iEventArray->Delete( 0 );
+ }
+ MPX_DEBUG1("<--CTestVideoPlaybackPlugin::DoSendEvent");
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/src/testvideoplaybackpluginproxy.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2002 - 2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Standard proxy of the ECOM plugin
+*
+*/
+
+#include <ecom/implementationproxy.h>
+#include "testcommonpluginuids.h"
+#include "testvideoplaybackplugin.h"
+
+#if ( ! defined IMPLEMENTATION_PROXY_ENTRY )
+typedef TAny* TProxyNewLPtr;
+#define IMPLEMENTATION_PROXY_ENTRY(aUid,aFuncPtr) \
+ { {aUid}, (TProxyNewLPtr)(aFuncPtr) }
+#endif
+
+// ----------------------------------------------------------------------------
+// The list of implementations
+// ----------------------------------------------------------------------------
+//
+const TImplementationProxy ImplementationTable[] =
+ { IMPLEMENTATION_PROXY_ENTRY( KPlaybackTestVideoPluginImpId,
+ CTestVideoPlaybackPlugin::NewL ) };
+
+// ----------------------------------------------------------------------------
+// The proxy of implementations
+// ----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+{
+ aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+ return ImplementationTable;
+}
+
+// End of File
--- a/mmappfw_plat/mpx_view_utility_api/group/bld.inf Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/mpx_view_utility_api/group/bld.inf Tue Aug 31 15:41:40 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -26,4 +26,7 @@
../inc/mpxviewactivationobserver.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewactivationobserver.h)
../inc/mpxviewpluginmanager.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewpluginmanager.h)
../inc/mpxviewutility.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewutility.h)
-../inc/mpxviewutilitycommanddef.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewutilitycommanddef.h)
+../inc/mpxviewutilitycommanddef.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewutilitycommanddef.h)
+
+// new for 10.1 QT
+../inc/mpxviewframeworkqt.h MW_LAYER_PLATFORM_EXPORT_PATH(mpxviewframeworkqt.h)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/mpx_view_utility_api/inc/mpxviewframeworkqt.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef MPXVIEWFRAMEWORK_H
+#define MPXVIEWFRAMEWORK_H
+
+#include <QObject>
+#include <QList>
+#include <qglobal.h>
+#include <hbmainwindow.h>
+
+class MpxViewPlugin;
+class HbView;
+
+#ifdef BUILD_VIEWFRAMEWORK
+#define VFDLL_EXPORT Q_DECL_EXPORT
+#else
+#define VFDLL_EXPORT Q_DECL_IMPORT
+#endif
+
+class VFDLL_EXPORT MpxViewFramework : public HbMainWindow
+ {
+ Q_OBJECT
+
+public:
+ MpxViewFramework(QWidget *parent = 0, Hb::WindowFlags windowFlags = Hb::WindowFlagNone);
+
+ virtual ~MpxViewFramework();
+
+ virtual MpxViewPlugin *resolvePlugin(const QList<int>& requestedPlugins);
+
+private:
+
+ Q_DISABLE_COPY(MpxViewFramework)
+
+ };
+
+#endif //VIEWFRAMEWORK_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/group/bld.inf Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/qtms.h MW_LAYER_PLATFORM_EXPORT_PATH(qtms.h)
+../inc/qtmsamrformat.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsamrformat.h)
+../inc/qtmsbuffer.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsbuffer.h)
+../inc/qtmscall.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmscall.h)
+../inc/qtmsclientsink.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsclientsink.h)
+../inc/qtmsclientsource.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsclientsource.h)
+../inc/qtmsdtmf.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsdtmf.h)
+../inc/qtmseffect.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmseffect.h)
+../inc/qtmsfactory.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsfactory.h)
+../inc/qtmsformat.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsformat.h)
+../inc/qtmsg711format.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsg711format.h)
+../inc/qtmsg729format.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsg729format.h)
+../inc/qtmsgaineffect.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsgaineffect.h)
+../inc/qtmsglobalgaineffect.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsglobalgaineffect.h)
+../inc/qtmsglobalrouting.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsglobalrouting.h)
+../inc/qtmsglobalvoleffect.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsglobalvoleffect.h)
+../inc/qtmsilbcformat.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsilbcformat.h)
+../inc/qtmspcmformat.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmspcmformat.h)
+../inc/qtmsringtone.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsringtone.h)
+../inc/qtmssink.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmssink.h)
+../inc/qtmssource.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmssource.h)
+../inc/qtmsstream.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsstream.h)
+../inc/qtmsvolumeeffect.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsvolumeeffect.h)
+../inc/qtmsmicsource.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsmicsource.h)
+../inc/qtmsmodemsink.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsmodemsink.h)
+../inc/qtmsmodemsource.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsmodemsource.h)
+../inc/qtmsspeakersink.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsspeakersink.h)
+../inc/qtmsinbandtone.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsinbandtone.h)
+../inc/qtmswrapperexport.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmswrapperexport.h)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtms.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,210 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_H
+#define QTMS_H
+
+// Include files
+#include <glib.h>
+#include <vector>
+
+namespace QTMS {
+
+// FORWARD DECLARATION
+class QTMSFormat;
+
+// Result codes
+#define QTMS_RESULT_SUCCESS ((gint)0x00000000)
+#define QTMS_RESULT_ALREADY_EXIST ((gint)0x00000001)
+#define QTMS_RESULT_DOES_NOT_EXIST ((gint)0x00000002)
+#define QTMS_RESULT_NULL_ARGUMENT ((gint)0x00000003)
+#define QTMS_RESULT_INVALID_ARGUMENT ((gint)0x00000004)
+#define QTMS_RESULT_INVALID_STATE ((gint)0x00000005)
+#define QTMS_RESULT_UNINITIALIZED_OBJECT ((gint)0x00000006)
+#define QTMS_RESULT_INSUFFICIENT_MEMORY ((gint)0x00000007)
+#define QTMS_RESULT_GENERAL_ERROR ((gint)0x00000008)
+#define QTMS_RESULT_FATAL_ERROR ((gint)0x00000009)
+#define QTMS_RESULT_OPERATION_CANCELLED ((gint)0x0000000A)
+#define QTMS_RESULT_ILLEGAL_OPERATION ((gint)0x0000000B)
+#define QTMS_RESULT_BUFFER_LATENCY_ERROR ((gint)0x0000000C)
+#define QTMS_RESULT_CALL_TYPE_NOT_SUPPORTED ((gint)0x0000000D)
+#define QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED ((gint)0x0000000E)
+#define QTMS_RESULT_SOURCE_TYPE_NOT_SUPPORTED ((gint)0x0000000F)
+#define QTMS_RESULT_SINK_TYPE_NOT_SUPPORTED ((gint)0x00000010)
+#define QTMS_RESULT_STREAM_TYPE_NOT_SUPPORTED ((gint)0x00000011)
+#define QTMS_RESULT_FORMAT_TYPE_NOT_SUPPORTED ((gint)0x00000012)
+#define QTMS_RESULT_EFFECT_TYPE_NOT_SUPPORTED ((gint)0x00000013)
+#define QTMS_RESULT_VERSION_NOT_SUPPORTED ((gint)0x00000014)
+#define QTMS_RESULT_FORMAT_TYPE_UNSPECIFIED ((gint)0x00000015)
+#define QTMS_RESULT_FEATURE_NOT_SUPPORTED ((gint)0x00000016)
+
+// Reasons codes
+#define QTMS_REASON_CLIENT_INITIATED ((gint)0x00000000)
+#define QTMS_REASON_DEVICE_IN_USE ((gint)0x00000001) // Device not available
+#define QTMS_REASON_DEVICE_TAKEN ((gint)0x00000002) // Preemption
+#define QTMS_REASON_INSUFFICIENT_MEMORY ((gint)0x00000003) // Memory
+#define QTMS_REASON_PERMISSION_DENIED ((gint)0x00000004) // Client app does not have perission
+#define QTMS_REASON_EMERGENCY_CALL_ONGOING ((gint)0x00000005) // Already ongoing emergency call
+#define QTMS_REASON_EMERGENCY_CALL_STARTED ((gint)0x00000006) // Preemption because of emergency call
+#define QTMS_REASON_SOURCE_NULL ((gint)0x00000007) // Could be checked on client side
+#define QTMS_REASON_SOURCE_NOT_SUPPORTED ((gint)0x00000008)
+#define QTMS_REASON_FORMAT_NULL ((gint)0x00000009) // Could be checked on client side
+#define QTMS_REASON_EFFECT_NOT_SUPPORTED ((gint)0x0000000A)
+#define QTMS_REASON_SINK_NULL ((gint)0x0000000B) // Could be checked on client side
+#define QTMS_REASON_SINK_NOT_SUPPORTED ((gint)0x0000000C)
+#define QTMS_REASON_CALL_NOT_ACTIVE ((gint)0x0000000D)
+
+// Event codes
+#define QTMS_EVENT_STREAM_STATE_CHANGED ((gint)0x00000000)
+#define QTMS_EVENT_STREAM_STATE_CHANGE_ERROR ((gint)0x00000001)
+#define QTMS_EVENT_SOURCE_FILL_BUFFER ((gint)0x00000002)
+#define QTMS_EVENT_SOURCE_PROCESSED_BUFFER ((gint)0x00000003)
+#define QTMS_EVENT_SINK_PROCESS_BUFFER ((gint)0x00000004)
+#define QTMS_EVENT_EFFECT_VOL_CHANGED ((gint)0x00000005)
+#define QTMS_EVENT_EFFECT_GAIN_CHANGED ((gint)0x00000006)
+#define QTMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED ((gint)0x00000007)
+#define QTMS_EVENT_ROUTING_OUTPUT_CHANGED ((gint)0x00000008)
+#define QTMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE ((gint)0x00000009)
+#define QTMS_EVENT_RINGTONE_OPEN_COMPLETE ((gint)0x0000000A)
+#define QTMS_EVENT_RINGTONE_PLAY_COMPLETE ((gint)0x0000000B)
+#define QTMS_EVENT_RINGTONE_DEINIT_COMPLETE ((gint)0x0000000C)
+#define QTMS_EVENT_DTMF_TONE_STARTED ((gint)0x0000000D)
+#define QTMS_EVENT_DTMF_TONE_STOPPED ((gint)0x0000000E)
+#define QTMS_EVENT_INBAND_TONE_STARTED ((gint)0x0000000F)
+#define QTMS_EVENT_INBAND_TONE_STOPPED ((gint)0x00000010)
+
+// Stream states
+typedef gint QTMSStreamState;
+#define QTMS_STREAM_UNINITIALIZED ((gint)0x00000000)
+#define QTMS_STREAM_INITIALIZED ((gint)0x00000001)
+#define QTMS_STREAM_PAUSED ((gint)0x00000002)
+#define QTMS_STREAM_STARTED ((gint)0x00000003)
+
+#define DEFAULT_CALL_CONTEXT ((gint)1)
+
+// QTMS object types
+typedef gint QTMSStreamType;
+#define QTMS_STREAM_UPLINK ((gint)0)
+#define QTMS_STREAM_DOWNLINK ((gint)1)
+
+typedef gint QTMSBufferType;
+#define QTMS_BUFFER_MEMORY ((gint)2)
+
+typedef gint QTMSSourceType;
+#define QTMS_SOURCE_CLIENT ((gint)3)
+#define QTMS_SOURCE_MODEM ((gint)4)
+#define QTMS_SOURCE_MIC ((gint)5)
+
+typedef gint QTMSSinkType;
+#define QTMS_SINK_CLIENT ((gint)6)
+#define QTMS_SINK_MODEM ((gint)7)
+#define QTMS_SINK_SPEAKER ((gint)8)
+
+typedef gint QTMSEffectType;
+#define QTMS_EFFECT_GLOBAL_VOL ((gint)9)
+#define QTMS_EFFECT_GLOBAL_GAIN ((gint)10)
+#define QTMS_EFFECT_VOLUME ((gint)11)
+#define QTMS_EFFECT_GAIN ((gint)12)
+
+typedef gint QTMSFormatType;
+#define QTMS_FORMAT_PCM ((gint)13)
+#define QTMS_FORMAT_AMR ((gint)14)
+#define QTMS_FORMAT_G711 ((gint)15)
+#define QTMS_FORMAT_G729 ((gint)16)
+#define QTMS_FORMAT_ILBC ((gint)17)
+
+typedef gint QTMSRingToneType;
+#define QTMS_RINGTONE_DEFAULT ((gint)0)
+#define QTMS_RINGTONE_FILE ((gint)1)
+#define QTMS_RINGTONE_SEQUENCE ((gint)2)
+#define QTMS_RINGTONE_BEEP_ONCE ((gint)3)
+#define QTMS_RINGTONE_SILENT ((gint)4)
+#define QTMS_RINGTONE_UNSECURE_VOIP ((gint)5)
+
+typedef gint QTMSRTPSessionType;
+#define QTMS_SESSION_RTP_PULL ((gint)0)
+#define QTMS_SESSION_RTP_PUSH ((gint)1)
+
+// QTMS vectors
+typedef std::vector<QTMSFormat*> FormatVector;
+typedef std::vector<guint> BitRateVector;
+typedef std::vector<guint> OutputVector;
+
+// Call types
+typedef gint QTMSCallType;
+#define QTMS_CALL_CS ((gint)0)
+#define QTMS_CALL_ECS ((gint)1)
+#define QTMS_CALL_IP ((gint)2)
+#define QTMS_CALL_RTP ((gint)3)
+
+// Codec modes
+typedef gint QTMSG711CodecMode;
+#define QTMS_G711_CODEC_MODE_ALAW ((gint)0)
+#define QTMS_G711_CODEC_MODE_MULAW ((gint)1)
+
+typedef gint QTMSILBCCodecMode;
+#define QTMS_ILBC_CODEC_MODE_20MS_FRAME ((gint)0)
+#define QTMS_ILBC_CODEC_MODE_30MS_FRAME ((gint)1)
+
+// Audio output types
+typedef gint QTMSAudioOutput;
+#define QTMS_AUDIO_OUTPUT_NONE ((gint)0)
+#define QTMS_AUDIO_OUTPUT_PUBLIC ((gint)1)
+#define QTMS_AUDIO_OUTPUT_PRIVATE ((gint)2)
+#define QTMS_AUDIO_OUTPUT_HANDSET ((gint)3)
+#define QTMS_AUDIO_OUTPUT_LOUDSPEAKER ((gint)4)
+#define QTMS_AUDIO_OUTPUT_WIRED_ACCESSORY ((gint)5)
+#define QTMS_AUDIO_OUTPUT_ACCESSORY ((gint)6)
+#define QTMS_AUDIO_OUTPUT_ETTY ((gint)7)
+#define QTMS_AUDIO_OUTPUT_NOT_ACTIVE ((gint)8)
+
+typedef gint QTMSInbandToneType;
+#define QTMS_INBAND_USER_BUSY ((gint)0)
+#define QTMS_INBAND_RADIO_PATH_NOT_AVAIL ((gint)1)
+#define QTMS_INBAND_CONGESTION ((gint)2)
+#define QTMS_INBAND_SPECIAL_INFO ((gint)3)
+#define QTMS_INBAND_REORDER ((gint)4)
+#define QTMS_INBAND_REMOTE_ALEARTING ((gint)5)
+#define QTMS_INBAND_CALL_WAITING ((gint)6)
+#define QTMS_INBAND_DATA_CALL ((gint)7)
+#define QTMS_INBAND_NO_SEQUENCE ((gint)8)
+#define QTMS_INBAND_BEEP_SEQUENCE ((gint)9)
+
+// Structure signalling callback notifications
+struct QTMSSignalEvent
+ {
+ guint type;
+ guint reason;
+ gpointer event_data;
+ gpointer user_data;
+ gint curr_state;
+ gint prev_state;
+ };
+
+// Structure for global volume effect change event
+struct QTMSVolumeEventChangeData
+ {
+ guint level;
+ QTMSAudioOutput output;
+ gboolean output_changed;
+ };
+
+} //namespace QTMS
+
+#endif // QTMS_H
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsamrformat.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_AMR_FORMAT_H
+#define QTMS_AMR_FORMAT_H
+
+#include <QObject>
+#include <qtmsformat.h>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSAMRFormat class
+ *
+ * This class provides access methods to configure and query AMR-NB codec
+ * format settings.
+ *
+ * This format class can be used for both the encoder and decoder.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSAMRFormat: public QObject, public QTMSFormat
+{
+Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSAMRFormat();
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSAMRFormat();
+};
+
+} //namespace QTMS
+
+#endif //QTMS_AMR_FORMAT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsbuffer.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_BUFFER_H
+#define QTMS_BUFFER_H
+
+#include <qtms.h>
+
+namespace QTMS
+{
+
+/**
+ * QTMSBuffer class
+ *
+ * This interface provides data buffers to QTMS clients. This class allows
+ * clients to allocate data by themselves or request a specific size of the
+ * buffer from the factory.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMSBuffer
+{
+public:
+ /*
+ * Destructor
+ */
+ virtual ~QTMSBuffer()
+ {
+ }
+
+ /**
+ * Return buffer type.
+ *
+ * @param buftype
+ * Type of the buffer object (QTMS_BUFFER_MEMORY).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful otherwise
+ * system error.
+ *
+ */
+ virtual gint GetType(QTMSBufferType& buftype) = 0;
+
+ /**
+ * Returns time stamp of the buffer so that the framework can determine
+ * the time at which this buffer has to be rendered by the output device
+ * sink.
+ *
+ * @param ts
+ * Time stamp in microseconds.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful otherwise
+ * system error.
+ *
+ */
+ virtual gint GetTimeStamp(guint64& ts) = 0;
+
+ /**
+ * Sets the time stamp on the Buffer so that the framework can determine
+ * the time at which this buffer has to be rendered by the output device
+ * sink.
+ *
+ * @param ts
+ * Time stamp in microseconds.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful otherwise
+ * system error.
+ *
+ */
+ virtual gint SetTimeStamp(const guint64 ts) = 0;
+
+ /**
+ * Returns size of data in the buffer.
+ *
+ * @param size
+ * Size of data in the buffer.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful otherwise
+ * system error.
+ *
+ */
+ virtual gint GetDataSize(guint& size) = 0;
+
+ /**
+ * Set size of data in the buffer after filling in by the client.
+ *
+ * @param size
+ * Size of data in the buffer.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful otherwise
+ * system error.
+ *
+ */
+ virtual gint SetDataSize(const guint size) = 0;
+
+ /**
+ * Return pointer to the memory location of the data associated with this
+ * buffer.
+ *
+ * @param bufptr
+ * Pointer to the data stored in the buffer.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful otherwise
+ * system error.
+ *
+ */
+ virtual gint GetDataPtr(guint8*& bufptr) = 0;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_BUFFER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmscall.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,158 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_CALL_H
+#define QTMS_CALL_H
+
+#include <qtms.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSCall;
+}
+
+namespace QTMS
+{
+
+// FORWARD DECLARATIONS
+class QTMSStream;
+
+/**
+ * QTMSCall class
+ *
+ * This class instantiates QTMS call object of one of the following types:
+ * QTMS_CALL_CS
+ * QTMS_CALL_ECS
+ * QTMS_CALL_IP
+ *
+ * Each QTMS call contains at least 1 stream (uplink or downlink).
+ *
+ * Usage:
+ * <code>
+ * QTMSFactory *iFactory;
+ * QTMSCall *iCall;
+ * QTMSStream *iUplink;
+ * QTMSStream *iDownlink;
+ * gint err;
+ * err = QTMSFactory::CreateFactory(iFactory);
+ * err = iFactory->CreateCall(QTMS_CALL_IP, iCall);
+ * err = iCall->CreateStream(QTMS_STREAM_UPLINK, iUplink);
+ * err = iCall->CreateStream(QTMS_STREAM_DOWNLINK, iDownlink);
+ * ...
+ * err = iCall->DeleteStream(iDownlink);
+ * err = iCall->DeleteStream(iUplink);
+ * err = iFactory->DeleteCall(iCall);
+ * delete iFactory;
+ * ...
+ * </code>
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSCall : public QObject
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ *
+ */
+ virtual ~QTMSCall();
+
+ /**
+ * Return call type.
+ *
+ * This function can be called at any time.
+ *
+ * Possible call types are as follows:
+ * QTMS_CALL_CS,
+ * QTMS_CALL_ECS
+ * QTMS_CALL_IP
+ *
+ * @return
+ * Call type as indicated above.
+ *
+ */
+ QTMSCallType GetCallType();
+
+ /**
+ * Get call context ID.
+ *
+ * This ID is passed during the creation of the call object.
+ *
+ * @param ctxid
+ * Context ID.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_FATAL_ERROR if an error occured.
+ *
+ */
+ gint GetCallContextId(guint& ctxid);
+
+ /**
+ * Create QTMS stream of the given type.
+ *
+ * @param type
+ * Stream type to be created.
+ *
+ * @param strm
+ * Created stream.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if call creation failed due to
+ * insufficient memory.
+ * QTMS_RESULT_STREAM_TYPE_NOT_SUPPORTED if stream type is not
+ * supported.
+ * QTMS_RESULT_FATAL_ERROR if an error occured.
+ * QTMS_REASON_EMERGENCY_CALL_ONGOING if emergency call is active.
+ * QTMS_REASON_PERMISSION_DENIED if permission is denied.
+ *
+ */
+ gint CreateStream(const QTMSStreamType type, QTMSStream*& strm);
+
+ /**
+ * Delete stream object.
+ *
+ * @param strm
+ * Stream to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INVALID_ARGUMENT if the stream is not valid.
+ */
+ gint DeleteStream(QTMSStream*& strm);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSCall();
+
+protected:
+ TMS::TMSCall* iTmsCall;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_CALL_H
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsink.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_CLIENT_SINK_H
+#define QTMS_CLIENT_SINK_H
+
+#include <QObject>
+#include <qtms.h>
+#include <qtmsbuffer.h>
+#include <qtmssink.h>
+#include <qglobal.h>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSink;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSClientSink class
+ *
+ * This class provides QTMS client sink interface. It serves as a data sink
+ * to the QTMS, which supplies the client with buffers recorded by the a/v
+ * recording device. The constant flow of data between the a/v recorder
+ * device and the client is accomplished by sending BufferProcessed() events
+ * in response to TMSClientSinkObserver::ProcessBuffer sink observer callbacks.
+ * This indicates to the QTMS that the supplied buffer has been consumed by the
+ * client and it is ready to receive more recorded data.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSClientSink : public QObject,
+ public QTMSSink
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSClientSink();
+
+ /**
+ * Tell the sink that the buffer passed in has been processed by
+ * the client and is ready to be reused by the Sink.
+ *
+ * This function must be called in response to the callback from the
+ * sink observer QTMSClientSinkObserver::ProcessBuffer().
+ *
+ * @param buffer
+ * The buffer which has been processed by the client (filled in
+ * with data).
+ *
+ * @return
+ * Status of the operation.
+ *
+ */
+ gint BufferProcessed(QTMSBuffer* buffer);
+
+ /**
+ * Return sink type.
+ *
+ * This function can be called at any time.
+ *
+ * @param sinktype
+ * The type of sink object (QTMS_SINK_CLIENT).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSSinkType& sinktype);
+
+ Q_SIGNALS:
+ void ProcessBuffer(const QTMSBuffer* buffer);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSClientSink();
+
+protected:
+ TMS::TMSSink* iSink;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_CLIENT_SINK_H
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsource.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_CLIENT_SOURCE_H
+#define QTMS_CLIENT_SOURCE_H
+
+#include <QObject>
+#include <qtms.h>
+#include <qtmsbuffer.h>
+#include <qtmssource.h>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSource;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSClientSource class
+ *
+ * This class instantiates QTMS client source interface. It serves as a data
+ * source to the QTMS, through which the client submits data buffers to the
+ * QTMS call server for playback on the audio and/or video output device.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSClientSource : public QObject,
+ public QTMSSource
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSClientSource();
+
+ /**
+ * PULL MODE ONLY
+ *
+ * Tell the source that the buffer passed in has been filled in with data
+ * by the client and it is ready to be sent do the QTMS for processing.
+ *
+ * This function must be called in response to the callback from the
+ * source observer QTMSClientSourceObserver::FillBuffer.
+ *
+ * @param buffer
+ * The buffer which has been processed by the client (filled in
+ * with data).
+ *
+ * @return
+ * Status of the operation.
+ *
+ */
+ gint BufferFilled(QTMSBuffer& buffer);
+
+ /**
+ * In the PUSH MODE, tell the source that the supplied buffer filled in
+ * with data should be queued before being sent for processing by the
+ * server. All ProcessBuffer requests will be queued until client calls
+ * Flush(). After all queued buffers are pushed to the server and
+ * processed, the QTMS will respond by issuing
+ * QTMSClientSourceObserver::BufferProcessed
+ * callback event.
+ *
+ * @param buffer
+ * The buffer with audio data supplied by the client for playback.
+ *
+ */
+ gint ProcessBuffer(QTMSBuffer* buffer);
+
+ /**
+ * PUSH MODE ONLY
+ *
+ * Tell the QTMS framework to queue ProcessBuffer events. To request the
+ * QTMS push mode operation, the SetEnqueueMode must be called with the
+ * flag set TRUE. Buffer enqueuing continues until the client calls
+ * Flush(). At this point all queued data (buffers) are sent over to the
+ * QTMS for processing and the enqueuing mode is turned OFF. To turn it
+ * ON again, the client has to call SetEnqueueMode with TRUE parameter.
+ *
+ * Has no effect in the PULL mode.
+ *
+ * @param enable
+ * Toggles buffer enqueuing ON and OFF.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint SetEnqueueMode(const gboolean enable);
+
+ /**
+ * PUSH MODE ONLY
+ *
+ * Return current buffer enqueuing mode setting.
+ * Has no effect in the PULL mode.
+ *
+ * @param enable
+ * Current enqueuing mode.
+ *
+ */
+ gint GetEnqueueMode(gboolean& enable);
+
+ /**
+ * PUSH MODE ONLY
+ *
+ * Push all queued buffers by ProcessBuffer to the server for processing.
+ * After calling this function, the enqueuing mode is turned OFF. To set
+ * it ON, the client has to call SetEnqueueMode again.
+ *
+ * Has no effect in the PULL mode.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Flush();
+
+ /**
+ * Return the source type.
+ *
+ * This function can be called at any time.
+ *
+ * @param QTMSSourceType&
+ * The type of the source object. The supported source types are
+ * as follows:
+ * QTMS_SOURCE_CLIENT
+ * QTMS_SOURCE_MODEM
+ * QTMS_SOURCE_MIC
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSSourceType& sourcetype);
+
+ Q_SIGNALS:
+ void FillBuffer(QTMSBuffer& buffer);
+ void BufferProcessed(const QTMSBuffer* buffer, gint reason);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSClientSource();
+
+protected:
+ TMS::TMSSource* iSource;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_CLIENT_SOURCE_H
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsdtmf.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_DTMF_H
+#define QTMS_DTMF_H
+
+#include <qtms.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSDTMF;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSDTMFclass
+ *
+ * This class provides DTMF playback capability to the QTMS clients. Each
+ * DTMF player session is associated either with an uplink or downlink stream.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSDTMF : public QObject
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSDTMF();
+
+ /**
+ * Starts DTMF playback. In the case of downlink, the tone will be played
+ * locally. In case of uplink, the network will play tones.
+ *
+ * Common for CS and VOIP (uplink and downlink)
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Start();
+
+ /**
+ * Stops DTMF playback.
+ * Common for CS and VOIP (Uplink and Downlink).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Stop();
+
+ /**
+ * Supply DTMF player with a string of tones to be played on local
+ * playback device or sent via the uplink.
+ *
+ * @param string
+ * String containing one or more DTMF digits.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint SetTone(GString* string);
+
+ /**
+ * Allows a client to continue or cancel the sending of a DTMF string
+ * when it was stopped by the use of ‘w’ char in the string.
+ * The client will set sending param to true if it wishes to continue
+ * the DTMF string sending and will set sending param to false if it
+ * wishes to discard the rest of the DTMF string.
+ * Reference: Multimode ETel API Design Document
+ *
+ * For CS calltype
+ *
+ * @param sending
+ * Boolean to continue sending DTMF string.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint ContinueDTMFStringSending(gboolean sending);
+
+ Q_SIGNALS:
+ void DTMFEvent(const QTMSDTMF& dtmf, QTMSSignalEvent event);
+
+protected:
+
+ /**
+ * Constructor
+ */
+ QTMSDTMF();
+
+protected:
+ TMS::TMSDTMF* iDtmf;
+};
+
+} //namespace QTMS
+
+#endif //__QTMS_DTMF_H__
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmseffect.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_EFFECT_H
+#define QTMS_EFFECT_H
+
+#include <qtms.h>
+#include <QObject>
+
+namespace QTMS
+{
+
+/**
+ * QTMSEffect class
+ *
+ * Base class for all effect object classes.
+ * This is an abstract class.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMSEffect
+{
+public:
+ /**
+ * Return effect type.
+ *
+ * @param effecttype
+ * Type of the effect object.
+ *
+ * @return
+ * The status of the operation.
+ *
+ */
+ virtual gint GetType(QTMSEffectType& effecttype) = 0;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_EFFECT_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsfactory.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,459 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_FACTORY_H
+#define QTMS_FACTORY_H
+
+#include <qtms.h>
+#include <QObject>
+#include <QtCore/qglobal.h>
+#include "qtmswrapperexport.h"
+
+namespace QTMS
+{
+
+// FORWARD DECLARATIONS
+class QTMSCall;
+class QTMSFormat;
+class QTMSEffect;
+class QTMSBuffer;
+class QTMSSource;
+class QTMSSink;
+class QTMSFactoryImpl;
+class QTMSVer; // QTMS version definition
+class QTMSGlobalRouting;
+class QTMSDTMF;
+class QTMSRingTone;
+class QTMSInbandTone;
+
+/**
+ * QTMSFactory class
+ *
+ * This class serves as a factory crating all necessary QTMS components.
+ *
+ * Usage:
+ * <code>
+ * QTMSFactory* iFactory;
+ * QTMSCall* iCall;
+ * gint err;
+ * err = QTMSFactory::CreateFactory(iFactory);
+ * err = iFactory->CreateCall(QTMS_CALL_IP, iCall);
+ * ...
+ * err = iFactory->DeleteCall(iCall);
+ * delete iFactory;
+ * ...
+ * </code>
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSFactory : public QObject
+{
+ Q_OBJECT
+public:
+ /**
+ * Returns pointer reference to created QTMS Factory object. The specified
+ * API version will allow using different QTMS API variants.
+ *
+ * @param QTMSfactory
+ * Created Factory object.
+ *
+ * @param ver
+ * API version which should be used to create QTMS components.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if factory is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if factory creation failed due to
+ * insufficient of memory.
+ * QTMS_RESULT_VERSION_NOT_SUPPORTED if requested API version is not
+ * supported.
+ *
+ */
+ static gint CreateFactory(QTMSFactory*& tmsfactory, QTMSVer& ver);
+
+ /**
+ * Destructor
+ *
+ * Deletes the QTMS Factory.
+ *
+ */
+ virtual ~QTMSFactory();
+
+ /**
+ * Creates QTMS Call of the given type with context ID.
+ *
+ * @param ctype
+ * Call type to be created.
+ * Supported call types:
+ * QTMS_CALL_CS
+ * QTMS_CALL_ECS
+ * QTMS_CALL_IP
+ *
+ * @param QTMScall
+ * Created Call object.
+ *
+ * @param ctxid
+ * The Context ID to be assigned to the call. The default is
+ * DEFAULT_CALL_CONTEXT.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if call is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if call creation failed due to
+ * insufficient memory.
+ * QTMS_RESULT_CALL_TYPE_NOT_SUPPORTED if calltype is not supported.
+ * QTMS_RESULT_INVALID_ARGUMENT if the context id is not valid.
+ * QTMS_RESULT_FATAL_ERROR if there is any other error.
+ *
+ */
+ gint CreateCall(QTMSCallType ctype, QTMSCall*& QTMScall,
+ guint ctxid = DEFAULT_CALL_CONTEXT);
+
+ /**
+ * Deletes QTMS Call.
+ *
+ * @param QTMSct
+ * The call to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if call is deleted successfully.
+ * QTMS_RESULT_INVALID_ARGUMENT if the call is not valid.
+ *
+ */
+ gint DeleteCall(QTMSCall*& qtmsct);
+
+ /**
+ * Is the given calltype supported by the QTMS API.
+ *
+ * @param ctype
+ * The call type to be validated.
+ *
+ * @param flag
+ * Indicates wheter the call type is supported or not.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if operation was successful.
+ * QTMS_RESULT_FATAL_ERROR if operation failed.
+ *
+ */
+ gint IsCallTypeSupported(QTMSCallType ctype, gboolean& flag);
+
+ /**
+ * Returns supported codec format types.
+ *
+ * @param strmtype
+ * Stream type: Uplink or Downlink
+ *
+ * @param fmtlist
+ * Format vector in which the supported formats are stored
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if operation was successful.
+ * QTMS_RESULT_FATAL_ERROR if operation failed.
+ *
+ */
+ gint GetSupportedFormats(const QTMSStreamType strmtype,
+ FormatVector& fmtlist);
+
+ /**
+ * Creates Format object of the given format type.
+ *
+ * @param fmttype
+ * Format type to be created.
+ *
+ * @param QTMSfmt
+ * Crated Format object.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if format is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if format creation failed due to
+ * insufficient of memory.
+ * QTMS_RESULT_FORMAT_TYPE_NOT_SUPPORTED if format type is not
+ * supported.
+ *
+ */
+ gint CreateFormat(QTMSFormatType fmttype, QTMSFormat*& qtmsfmt);
+
+ /**
+ * Deletes Format object.
+ *
+ * @param QTMSfmt
+ * Format to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if format is deleted successfully.
+ * QTMS_RESULT_INVALID_ARGUMENT if the format is not valid.
+ *
+ */
+ gint DeleteFormat(QTMSFormat*& qtmsfmt);
+
+ /**
+ * Creates Effect object of the given type.
+ *
+ * @param QTMSeffecttype
+ * Effect type to be created.
+ *
+ * @param QTMSeffect
+ * Created Effect object.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if effect is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if effect creation failed due to
+ * insufficient memory.
+ * QTMS_RESULT_EFFECT_TYPE_NOT_SUPPORTED if the effect type is not
+ * supported.
+ *
+ */
+ gint CreateEffect(QTMSEffectType QTMSeffecttype,
+ QTMSEffect*& qtmseffect);
+
+ /**
+ * Deletes Effect object.
+ *
+ * @param QTMSeffect
+ * Effect object to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if effect is deleted successfully.
+ * QTMS_RESULT_INVALID_ARGUMENT if the effect is not valid.
+ */
+ gint DeleteEffect(QTMSEffect*& qtmseffect);
+
+ /**
+ * Creates Buffer object of the given type and size.
+ * The memory is allocated on the heap.
+ *
+ * @param buffertype
+ * Buffer type to be created.
+ *
+ * @param size
+ * Size of the buffer to be created.
+ *
+ * @param QTMSbuffer
+ * Created buffer object.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if buffer is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if buffer creation failed due to
+ * insufficient memory.
+ * QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED if the buffer type is not
+ * supported.
+ *
+ */
+ gint CreateBuffer(QTMSBufferType buffertype, guint size,
+ QTMSBuffer*& qtmsbuffer);
+
+ /**
+ * Deletes the Buffer object.
+ *
+ * @param QTMSbuffer
+ * Buffer to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if buffer is deleted successfully.
+ * QTMS_RESULT_INVALID_ARGUMENT if the buffer is not valid.
+ */
+ gint DeleteBuffer(QTMSBuffer*& qtmsbuffer);
+
+ /**
+ * Creates the Source object of the given type.
+ *
+ * @param srctype
+ * Source type to be created.
+ *
+ * @param QTMSsrc
+ * Crated source object.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if source is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if source creation failed due to
+ * lack of memory.
+ * QTMS_RESULT_SOURCE_TYPE_NOT_SUPPORTED if the source type is not
+ * supported.
+ *
+ */
+ gint CreateSource(QTMSSourceType srctype, QTMSSource*& qtmssrc);
+
+ /**
+ * Deletes the Source object.
+ *
+ * @param QTMSsrc
+ * Source to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if source is deleted successfully.
+ * QTMS_RESULT_INVALID_ARGUMENT if the source is not valid.
+ *
+ */
+ gint DeleteSource(QTMSSource*& qtmssrc);
+
+ /**
+ * Creates the Sink object of the given QTMSSinkType.
+ *
+ * @param sinktype
+ * Sink type to be created.
+ *
+ * @param QTMSsink
+ * Created sink object.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if sink is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if sink creation failed due to
+ * lack of memory.
+ * QTMS_RESULT_SOURCE_TYPE_NOT_SUPPORTED if the sink type is not
+ * supported.
+ *
+ */
+ gint CreateSink(QTMSSinkType sinktype, QTMSSink*& qtmssink);
+
+ /**
+ * Deletes the Sink object.
+ *
+ * @param QTMSsink
+ * The sink to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if sink is deleted successfully.
+ * QTMS_RESULT_INVALID_ARGUMENT if the sink is not valid.
+ */
+ gint DeleteSink(QTMSSink*& qtmssink);
+
+ /**
+ * Creates QTMSGlobalRouting object.
+ *
+ * @param globrouting
+ * Created global routing object.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if global routing object is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if global routing creation failed
+ * due to lack of memory.
+ * QTMS_RESULT_SOURCE_TYPE_NOT_SUPPORTED if global routing is not
+ * supported.
+ *
+ */
+ gint CreateGlobalRouting(QTMSGlobalRouting*& globrouting);
+
+ /**
+ * Deletes QTMSGlobalRouting object.
+ *
+ * @param globrouting
+ * Global routing object to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if global routing object is deleted successfully.
+ * QTMS_RESULT_INVALID_ARGUMENT if the global routing object is invalid.
+ */
+ gint DeleteGlobalRouting(QTMSGlobalRouting*& globrouting);
+
+ /**
+ * Create DTMF player object.
+ *
+ * @param streamtype
+ * Stream ID to be used to create the DTMF player.
+ * QTMS_STREAM_UPLINK
+ * QTMS_STREAM_DOWNLINK
+ *
+ * @param dtmf
+ * Created DTMF player.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY if DTMF player creation failed due
+ * to insufficient memory.
+ * QTMS_RESULT_FATAL_ERROR if an error occured.
+ * QTMS_REASON_EMERGENCY_CALL_ONGOING if emergency call is active.
+ * QTMS_REASON_PERMISSION_DENIED if permission is denied.
+ *
+ */
+ gint CreateDTMF(QTMSStreamType streamtype, QTMSDTMF*& dtmf);
+
+ /**
+ * Delete DTMF player object.
+ *
+ * @param dtmf
+ * DTMF player to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INVALID_ARGUMENT if the DTMF player is not valid.
+ *
+ */
+ gint DeleteDTMF(QTMSDTMF*& dtmf);
+
+ /**
+ * Creates QTMSRingTone player object for audio ring tone.
+ *
+ * @param rt
+ * RingTone player object to be created.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS when object is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY when object creation failed due to
+ * insufficient memory.
+ */
+ gint CreateRingTonePlayer(QTMSRingTone*& rt);
+
+ /**
+ * Deletes QTMSRingTone object.
+ *
+ * @param rt
+ * RingTone player object to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS when object is deleted successfully.
+ * QTMS_RESULT_INVALID_ARGUMENT if RingTone player object is invalid.
+ */
+ gint DeleteRingTonePlayer(QTMSRingTone*& rt);
+
+ /**
+ * Creates QTMSInbandTone player object.
+ *
+ * @param inbandtone
+ * InbandTone player object to be created.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS when object is created successfully.
+ * QTMS_RESULT_INSUFFICIENT_MEMORY when object creation failed due to
+ * insufficient memory.
+ */
+ gint CreateInbandTonePlayer(QTMSInbandTone*& inbandtone);
+
+ /**
+ * Deletes QTMSInbandTone object.
+ *
+ * @param inbandtone
+ * InbandTone player object to be deleted.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS when object is deleted successfully.
+ * QTMS_RESULT_INVALID_ARGUMENT if InbandTone player object is invalid.
+ */
+ gint DeleteInbandTonePlayer(QTMSInbandTone*& inbandtone);
+
+private:
+ /**
+ * Constructor
+ */
+ QTMSFactory();
+
+private:
+ QTMSFactoryImpl* impl;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_FACTORY_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsformat.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_FORMAT_H
+#define QTMS_FORMAT_H
+
+#include <qtms.h>
+#include "qtmswrapperexport.h"
+
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSFormat class
+ *
+ * This is base class for codec format classes. Provides access methods to
+ * configure and query common codec format settings.
+ *
+ * This format class can be used for both the encoder and decoder.
+ *
+ * Usage:
+ * <code>
+ * QTMSFactory* iFactory;
+ * QTMSFormat* iFormat
+ * gint err;
+ * err = QTMSFactory::CreateFactory(iFactory);
+ * err = iFactory->Create(QTMS_FORMAT_XXX,iFormat);
+ * ...
+ * </code>
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSFormat
+{
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSFormat();
+
+ /**
+ * Get supported bitrates. Returns list of supported bitrates for the
+ * selected encoder
+ *
+ * This method is allowable at all times, while actively encoding or not.
+ *
+ * @param bitrates
+ * The typedef std::vector<guint> BitRateVector; list of codecs.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ *
+ */
+ gint GetSupportedBitRates(BitRateVector& bitrates);
+
+ /**
+ * Set bitrate.
+ *
+ * This method is allowable at all times, while actively encoding or not.
+ *
+ * @param bitrate
+ * Bitrate to be set for the encoder.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INVALID_ARGUMENT if requested bitrate is invalid.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ *
+ */
+ gint SetBitRate(const guint bitrate);
+
+ /**
+ * Get current encoder's bitrate.
+ *
+ * This method is allowable at all times, while actively encoding or not.
+ *
+ * @param bitrate
+ * Current bitrate.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ *
+ */
+ gint GetBitRate(guint& bitrate);
+
+ /**
+ * Return format type.
+ *
+ * @param fmttype
+ * Type of the format object.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSFormatType& fmttype);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSFormat();
+
+protected:
+ TMS::TMSFormat* iFormat;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_FORMAT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsg711format.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,206 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_G711_FORMAT_H
+#define QTMS_G711_FORMAT_H
+
+#include <qtms.h>
+#include <qtmsformat.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSG711Format class
+ *
+ * This class provides access methods to configure and query G.711 codec
+ * format settings.
+ *
+ * This format class can be used for both the encoder and decoder.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSG711Format: public QObject, public QTMSFormat
+{
+Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSG711Format();
+
+ /**
+ * Set G.711 codec mode.
+ *
+ * This method is allowable when encoding is not active; i.e. anytime
+ * before encoding is started or after it is stopped.
+ *
+ * Supported G.711 codec modes are:
+ * QTMS_G711_CODEC_MODE_ALAW
+ * QTMS_G711_CODEC_MODE_MULAW
+ *
+ * @param mode
+ * Sets selected G.711 encoding or decoding mode.
+
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INVALID_STATE if this method is used during active
+ * encoding or decoding operation.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ *
+ */
+ gint SetMode(const QTMSG711CodecMode mode);
+
+ /**
+ * Return current G.711 codec mode.
+ *
+ * This method is allowable at all times, while actively encoding/decoding
+ * or not.
+ *
+ * Supported G.711 codec modes are:
+ * QTMS_G711_CODEC_MODE_ALAW
+ * QTMS_G711_CODEC_MODE_MULAW
+ *
+ * @param mode
+ * Returns current G.711 encoding or decoding mode.
+
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetMode(QTMSG711CodecMode& mode);
+
+ /**
+ * Toggles on and off Comfort Noise Generator (CNG) for G.711 decoder.
+ * Not supported by the encoder.
+ *
+ * This method is allowable when decoding is not active; i.e. anytime
+ * before decoding is started or after it is stopped.
+ *
+ * @param cng
+ * Sets CNG feature on or off.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INVALID_STATE if this method is used during active
+ * decoding operation.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ *
+ */
+ gint SetCNG(const gboolean cng);
+
+ /**
+ * Returns current CNG setting of the G.711 decoder.
+ *
+ * This method is allowable when decoding is not active; i.e. anytime
+ * before decoding is started or after it is stopped.
+ *
+ * @param cng
+ * Current CNG setting of the decoder.
+ *
+ * @return gint
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetCNG(gboolean& cng);
+
+ /**
+ * Toggles on and off Packet Loss Concealment (PLC) for G.711 decoder.
+ * Not supported by the encoder.
+ *
+ * This method is allowable when decoding is not active; i.e. anytime
+ * before decoding is started or after it is stopped.
+ *
+ * @param plc
+ * Sets PLC feature on or off.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INVALID_STATE if this method is used during active
+ * decoding operation.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ *
+ */
+ gint SetPlc(const gboolean plc);
+
+ /**
+ * Returns current PLC setting of the G.711 decoder.
+ *
+ * This method is allowable at all times, while actively decoding or not.
+ *
+ * @param plc
+ * Current CNG setting of the decoder.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetPlc(gboolean& plc);
+
+ /**
+ * Toggles on and off Voice Activation Detection (VAD) for G.711 encoder.
+ * Not supported by the decoder.
+ *
+ * This method is allowable at all times, while actively encoding or not.
+ *
+ * @param vad
+ * Sets VAD feature on or off.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ *
+ */
+ gint SetVADMode(const gboolean vad);
+
+ /**
+ * Returns current VAD setting of the G.711 encoder.
+ *
+ * This method is allowable at all times, while actively encoding or not.
+ *
+ * @param vad
+ * Current VAD setting of the encoder.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetVADMode(gboolean& vad);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSG711Format();
+};
+
+} //namespace QTMS
+
+#endif //QTMS_G711_FORMAT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsg729format.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_G729_FORMAT_H
+#define QTMS_G729_FORMAT_H
+
+#include <qtms.h>
+#include <qtmsformat.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSG729Format class
+ *
+ * This class provides access methods to configure and query G.729 codec
+ * format settings.
+ *
+ * This format class can be used for both the encoder and decoder.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSG729Format: public QObject, public QTMSFormat
+{
+Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSG729Format();
+
+ /**
+ * Toggles on and off Voice Activation Detection (VAD) for G.729 encoder.
+ * Not supported by the decoder.
+ *
+ * This method is allowable at all times, while actively encoding or not.
+ *
+ * @param vad
+ * Sets VAD feature on or off.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ * QTMS_RESULT_DOES_NOT_EXIST if the custom interface handle does
+ * not exist.
+ *
+ */
+ gint SetVADMode(const gboolean vad);
+
+ /**
+ * Returns current VAD setting of the G.729 encoder.
+ *
+ * This method is allowable at all times, while actively encoding or not.
+ *
+ * @param vad
+ * Current VAD setting of the encoder.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetVADMode(gboolean& vad);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSG729Format();
+};
+
+} //namespace QTMS
+
+#endif //QTMS_G729_FORMAT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsgaineffect.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_GAIN_EFFECT_H
+#define QTMS_GAIN_EFFECT_H
+
+#include <qtms.h>
+#include <qtmseffect.h>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSEffect;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSGainEffect class
+ *
+ * This class provides microphone gain level control in the stream scope.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSGainEffect : public QObject,
+public QTMSEffect
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSGainEffect();
+
+ /**
+ * Set mic gain level. The gain level should not be higher than
+ * the value returned by GetMaxLevel().
+ *
+ * @param level
+ * Gain level to be set.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint SetLevel(const guint level);
+
+ /**
+ * Return mic gain level.
+ *
+ * @param level
+ * Current mic gain level.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetLevel(guint& level);
+
+ /**
+ * Return max microphone gain level supported by the device.
+ *
+ * @param level
+ * Max gain level.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetMaxLevel(guint& level);
+
+ /**
+ * Returns type of the effect.
+ *
+ * This function can be called at any time.
+ *
+ * @param effecttype
+ * Variable that contains the effect type on return.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSEffectType& effecttype);
+
+ Q_SIGNALS:
+ void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSGainEffect();
+
+protected:
+ TMS::TMSEffect *iEffect;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_GAIN_EFFECT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsglobalgaineffect.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_GLOBAL_GAIN_EFFECT_H
+#define QTMS_GLOBAL_GAIN_EFFECT_H
+
+#include <qtms.h>
+#include <qtmseffect.h>
+#include "qtmswrapperexport.h"
+#include <QObject>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSEffect;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSGlobalGainEffect class
+ *
+ * This class provides microphone gain level control in the global QTMS scope.
+ * Mic gain level changes done by any client are adjusted accross all calls
+ * serviced by the QTMS server.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSGlobalGainEffect : public QObject,
+ public QTMSEffect
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSGlobalGainEffect();
+
+ /**
+ * Set global microphone gain level. The global gain level should be
+ * between 0 and the max value returned by GetMaxLevel().
+ *
+ * @param level
+ * Gain level to be set.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint SetLevel(const guint level);
+
+ /**
+ * Return current global microphone gain level.
+ *
+ * @param level
+ * Current mic gain level.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetLevel(guint& level);
+
+ /**
+ * Return max microphone gain level supported by the device.
+ *
+ * @param level
+ * Max mic gain level.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetMaxLevel(guint& level);
+
+ /**
+ * Return effect type.
+ *
+ * @param effecttype
+ * Type of the effect object (QTMS_EFFECT_GLOBAL_GAIN).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSEffectType& effecttype);
+
+ Q_SIGNALS:
+ void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSGlobalGainEffect();
+
+protected:
+ TMS::TMSEffect* iEffect;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_GLOBAL_GAIN_EFFECT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsglobalrouting.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_GLOBAL_ROUTING_H
+#define QTMS_GLOBAL_ROUTING_H
+
+#include <qtms.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSGlobalRouting;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSGlobalRouting class
+ *
+ * This class provides audio routing control in the global QTMS scope.
+ * Audio routing changes done by any client are adjusted accross all calls
+ * serviced by the QTMS server.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSGlobalRouting : public QObject
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSGlobalRouting();
+
+ /**
+ * Set global output device audio should be routed to.
+ *
+ * Settings are call-type dependent.
+ *
+ * Common:
+ * QTMS_AUDIO_OUTPUT_NONE
+ * VoIP call type:
+ * QTMS_AUDIO_OUTPUT_PUBLIC
+ * QTMS_AUDIO_OUTPUT_PRIVATE
+ * CS call type:
+ * QTMS_AUDIO_OUTPUT_HANDSET
+ * QTMS_AUDIO_OUTPUT_LOUDSPEAKER
+ * QTMS_AUDIO_OUTPUT_WIRED_ACCESSORY
+ * QTMS_AUDIO_OUTPUT_ACCESSORY
+ * QTMS_AUDIO_OUTPUT_ETTY
+ *
+ * @param output
+ * Sets call-specific audio output device.
+ *
+ * @return
+ * QTMS_RESULT_INVALID_ARGUMENT if set to QTMS_AUDIO_OUTPUT_NONE.
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint SetOutput(const QTMSAudioOutput output);
+
+ /**
+ * Return current global audio output device settings.
+ *
+ * Settings are call-type dependent.
+ * See SetOutput() (above)
+ *
+ * @param output
+ * Current audio output device.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetOutput(QTMSAudioOutput& output);
+
+ /**
+ * Return previous audio output device.
+ *
+ * Settings are call-type dependent.
+ * See SetOutput() (above)
+ *
+ * @param output
+ * Previous audio output device.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetPreviousOutput(QTMSAudioOutput& output);
+
+ /**
+ * Return list of supported audio output devices.
+ *
+ * Settings are call-type dependent.
+ * See SetOutput() (above)
+ *
+ * @param outputs
+ * The typedef std::vector<guint> OutputVector; list of supported
+ * audio output devices (QTMSAudioOutput-type).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetAvailableOutputs(OutputVector& outputs);
+
+ Q_SIGNALS:
+ void GlobalRoutingEvent(const QTMSGlobalRouting& routing,
+ QTMSSignalEvent event, QTMSAudioOutput output);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSGlobalRouting();
+
+protected:
+ TMS::TMSGlobalRouting* iRouting;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_GLOBAL_ROUTING_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsglobalvoleffect.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_GLOBAL_VOL_EFFECT_H
+#define QTMS_GLOBAL_VOL_EFFECT_H
+
+#include <qtms.h>
+#include <qtmseffect.h>
+#include <QObject>
+#include <qglobal.h>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSEffect;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSGlobalVolEffect class
+ *
+ * This class provides volume level control in the global QTMS scope. Volume
+ * level changes done by any client are adjusted accross all calls serviced
+ * by the QTMS server.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSGlobalVolEffect : public QObject,
+ public QTMSEffect
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSGlobalVolEffect();
+
+ /**
+ * Set global audio volume level. The volume level should be between 0
+ * and the max value returned by GetMaxLevel().
+ *
+ * @param level
+ * the volume level to be set.
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ */
+ gint SetLevel(const guint level);
+
+ /**
+ * Return current global audio volume level.
+ *
+ * @param level
+ * Volume level to be set.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetLevel(guint& level);
+
+ /**
+ * Return max volume level supported by the device.
+ *
+ * @param level
+ * Max volume level.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetMaxLevel(guint& level);
+
+ /**
+ * Return effect type.
+ *
+ * @param effecttype
+ * Type of the effect object (QTMS_EFFECT_GLOBAL_VOL).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSEffectType& effecttype);
+
+ Q_SIGNALS:
+ void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSGlobalVolEffect();
+
+protected:
+ TMS::TMSEffect* iEffect;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_GLOBAL_VOL_EFFECT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsilbcformat.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_ILBC_FORMAT_H
+#define QTMS_ILBC_FORMAT_H
+
+#include <qtms.h>
+#include <qtmsformat.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSILBCFormat class
+ *
+ * This class provides access methods to configure and query iLBC codec
+ * format settings.
+ *
+ * This format class can be used for both the encoder and decoder.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSILBCFormat: public QObject, public QTMSFormat
+{
+Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSILBCFormat();
+
+ /**
+ * Set iLBC codec mode.
+ *
+ * This method is allowable when encoding is not active; i.e. anytime
+ * before encoding is started or after it is stopped.
+ *
+ * Supported iLBC codec modes are:
+ * QTMS_ILBC_CODEC_MODE_20MILLI_SEC_FRAME
+ * QTMS_ILBC_CODEC_MODE_30MILLI_SEC_FRAME
+ *
+ * @param mode
+ * Sets selected iLBC encoding or decoding mode.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INVALID_STATE if this method is used during active
+ * encoding or decoding operation.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ * QTMS_RESULT_DOES_NOT_EXIST if the custom interface handle does
+ * not exist.
+ *
+ */
+ gint SetMode(const QTMSILBCCodecMode mode);
+
+ /**
+ * Return current iLBC codec mode.
+ *
+ * This method is allowable at all times, while actively encoding/decoding
+ * or not.
+ *
+ * Supported iLBC codec modes are:
+ * QTMS_ILBC_CODEC_MODE_20MILLI_SEC_FRAME
+ * QTMS_ILBC_CODEC_MODE_30MILLI_SEC_FRAME
+ *
+ * @param mode
+ * Returns current iLBC encoding or decoding mode.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetMode(QTMSILBCCodecMode& mode);
+
+ /**
+ * Toggles on and off Comfort Noise Generator (CNG) for iLBC decoder.
+ * Not supported by the encoder.
+ *
+ * This method is allowable when decoding is not active; i.e. anytime
+ * before decoding is started or after it is stopped.
+ *
+ * @param cng
+ * Sets CNG feature on or off.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_INVALID_STATE if this method is used during active
+ * decoding operation.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ * QTMS_RESULT_DOES_NOT_EXIST if the custom interface handle does
+ * not exist.
+ *
+ */
+ gint SetCNG(const gboolean cng);
+
+ /**
+ * Returns current CNG setting of the iLBC decoder.
+ *
+ * This method is allowable when decoding is not active; i.e. anytime
+ * before decoding is started or after it is stopped.
+ *
+ * @param cng
+ * Current CNG setting of the decoder.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetCNG(gboolean& cng);
+
+ /**
+ * Toggles on and off Voice Activation Detection (VAD) for iLBC encoder.
+ * Not supported by the decoder.
+ *
+ * This method is allowable at all times, while actively encoding or not.
+ *
+ * @param vad
+ * Sets VAD feature on or off.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ * QTMS_RESULT_FEATURE_NOT_SUPPORTED if this method is not implemented
+ * by the adaptation.
+ * QTMS_RESULT_DOES_NOT_EXIST if the custom interface handle does
+ * not exist.
+ *
+ */
+ gint SetVADMode(const gboolean vad);
+
+ /**
+ * Returns current VAD setting of the iLBC encoder.
+ *
+ * This method is allowable at all times, while actively encoding or not.
+ *
+ * @param vad
+ * Current VAD setting of the encoder.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetVADMode(gboolean& vad);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSILBCFormat();
+};
+
+} //namespace QTMS
+
+#endif //QTMS_ILBC_FORMAT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsinbandtone.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_INBAND_TONE_H
+#define QTMS_INBAND_TONE_H
+
+#include <glib.h>
+#include <qtms.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSInbandTone;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSInbandTone class
+ *
+ * This class provides Inband tone playback capability to the QTMS clients.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSInbandTone : public QObject
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSInbandTone();
+
+ /**
+ * Starts the inband tone playback. The inband volume will correspond to
+ * the current downlink volume level.
+ *
+ * For CS calltype.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Start(QTMSInbandToneType inbandtonetype);
+
+ /**
+ * Stops the inband tone playback.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Stop();
+
+ Q_SIGNALS:
+ void InbandToneEvent(const QTMSInbandTone& inbandtone,
+ QTMSSignalEvent event);
+
+protected:
+
+ /**
+ * Constructor
+ */
+ QTMSInbandTone();
+
+protected:
+ TMS::TMSInbandTone* iInbandTone;
+};
+
+} //namespace QTMS
+
+#endif //__QTMS_INBAND_TONE_H__
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsmicsource.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_MIC_SOURCE_H
+#define QTMS_MIC_SOURCE_H
+
+#include <qtms.h>
+#include <qtmssource.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSource;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSMicSource class
+ *
+ * This class instantiates QTMS mic source object.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSMicSource : public QObject,
+ public QTMSSource
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSMicSource();
+
+ /**
+ * Return source type.
+ *
+ * This function can be called at any time.
+ *
+ * @param sourcetype
+ * The type of sink object (QTMS_SOURCE_MIC).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSSourceType& sourcetype);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSMicSource();
+
+protected:
+ TMS::TMSSource *iSource;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_MIC_SOURCE_H
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsmodemsink.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_MODEM_SINK_H
+#define QTMS_MODEM_SINK_H
+
+#include <qtms.h>
+#include <qtmssink.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSink;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSModemSink class
+ *
+ * This class instantiates QTMS modem sink object.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSModemSink : public QObject,
+ public QTMSSink
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSModemSink();
+
+ /**
+ * Return sink type.
+ *
+ * This function can be called at any time.
+ *
+ * @param sinktype
+ * The type of sink object (QTMS_SINK_MODEM).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSSinkType& sinktype);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSModemSink();
+
+protected:
+ TMS::TMSSink *iSink;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_MODEM_SINK_H
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsmodemsource.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_MODEM_SOURCE_H
+#define QTMS_MODEM_SOURCE_H
+
+#include <qtms.h>
+#include <qtmssource.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSource;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSModemSource class
+ *
+ * This class instantiates QTMS mode source object.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSModemSource : public QObject,
+ public QTMSSource
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSModemSource();
+
+ /**
+ * Return source type.
+ *
+ * This function can be called at any time.
+ *
+ * @param sourcetype
+ * The type of sink object (QTMS_SOURCE_MODEM).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSSourceType& sourcetype);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSModemSource();
+
+protected:
+ TMS::TMSSource *iSource;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_MODEM_SOURCE_H
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmspcmformat.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_PCM_FORMAT_H
+#define QTMS_PCM_FORMAT_H
+
+#include <qtms.h>
+#include <qtmsformat.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSPCMFormat class
+ *
+ * This class provides access methods to configure and query PCM-16 codec
+ * format settings.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSPCMFormat: public QObject, public QTMSFormat
+{
+Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSPCMFormat();
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSPCMFormat();
+};
+
+} //namespace QTMS
+
+#endif //QTMS_PCM_FORMAT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsringtone.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,145 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_RINGTONE_H
+#define QTMS_RINGTONE_H
+
+#include <qtms.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSRingTone;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSRingTone class
+ *
+ * This class provides ring tone playback capability to the QTMS clients.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSRingTone : public QObject
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSRingTone();
+
+ /**
+ * Init ring tone player to play supplied content based on its type.
+ *
+ * @param type
+ * Type of the content descriptor. Allowed types:
+ * - QTMS_RINGTONE_DEFAULT - use RT from current Profile
+ * - QTMS_RINGTONE_FILE - A/V File
+ * - QTMS_RINGTONE_SEQUENCE - RNG sequence in the descriptor format
+ * - QTMS_RINGTONE_BEEP_ONCE - play a beep
+ * - QTMS_RINGTONE_SILENT - play silent tone
+ * - QTMS_RINGTONE_UNSECURE_VOIP - play tone for uncecure VoIP call
+ *
+ * @param str
+ * Content descriptor to play. String containing one of the following:
+ * - File with folder name
+ * - Nokia ring tone sequence in a descriptor format
+ * - NULL - Will use current Profile.
+ *
+ * @param tts
+ * Text to be played. When added it will be played along with the
+ * tone. TTS can only be played with QTMS_RINGTONE_DEFAULT and
+ * TMS_RINGTONE_FILE. Parameter will be ignored for all other types.
+ * - NULL - Will use current Profile TTS setting - caller's name
+ * will be played from the phone book (if available).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Init(const QTMSRingToneType type = QTMS_RINGTONE_DEFAULT,
+ GString* str = NULL, GString* tts = NULL);
+
+ /**
+ * Deinit ring tone player.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Deinit();
+
+ /**
+ * Start ring tone playback.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Play();
+
+ /**
+ * Stop ring tone playback.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Stop();
+
+ /**
+ * Pause video ring tone playback.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Pause();
+
+ /**
+ * Mute ring tone playback.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint Mute();
+
+ Q_SIGNALS:
+ void RingtoneEvent(const QTMSRingTone& rt, QTMSSignalEvent event);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSRingTone();
+
+protected:
+ TMS::TMSRingTone *iRingTone;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_RINGTONE_H
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmssink.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_SINK_H
+#define QTMS_SINK_H
+
+#include <qtms.h>
+
+namespace QTMS
+{
+
+/**
+ * QTMSSink class
+ *
+ * Base class for QTMS data sink type objects.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMSSink
+{
+public:
+ /**
+ * Returns type of the concrete data sink object implementation.
+ *
+ * This function can be called at any time.
+ *
+ * @param sinktype&
+ * Contains data sink type on return.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if sink type is returned successfully.
+ *
+ */
+ virtual gint GetType(QTMSSinkType& sinktype) = 0;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_SINK_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmssource.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_SOURCE_H
+#define QTMS_SOURCE_H
+
+#include <qtms.h>
+
+namespace QTMS
+{
+
+/**
+ * QTMSSource class
+ *
+ * Base class for QTMS data source type objects.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMSSource
+{
+public:
+ /**
+ * Returns type of the concrete data source object implementation.
+ *
+ * This function can be called at any time.
+ *
+ * @param sourcetype
+ * Contains data source type on return.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if source type is returned successfully.
+ *
+ */
+ virtual gint GetType(QTMSSourceType& sourcetype) = 0;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_SOURCE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsspeakersink.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_SPEAKER_SINK_H
+#define QTMS_SPEAKER_SINK_H
+
+#include <qtms.h>
+#include <qtmssink.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSink;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSSpeakerSink class
+ *
+ * This class instantiates QTMS speaker sink object.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSSpeakerSink : public QObject,
+ public QTMSSink
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSSpeakerSink();
+
+ /**
+ * Return sink type.
+ *
+ * This function can be called at any time.
+ *
+ * @param sinktype
+ * The type of sink object (QTMS_SINK_SPEAKER).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSSinkType& sinktype);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSSpeakerSink();
+
+protected:
+ TMS::TMSSink *iSink;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_SPEAKER_SINK_H
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsstream.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,527 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_STREAM_H
+#define QTMS_STREAM_H
+
+// Include files
+#include <qtms.h>
+#include <QObject>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSStream;
+}
+
+namespace QTMS
+{
+
+// Forward declarations
+class QTMSSource;
+class QTMSSink;
+class QTMSEffect;
+class QTMSFormat;
+class QTMSBuffer;
+
+/**
+ * QTMSStream class
+ *
+ * QTMSStream class represents either uplink or downlink stream associated with
+ * a QTMSCall.
+ *
+ * This class provides means for setting up and controlling telephony
+ * multimedia streams associated with a Circuit Switching (CS) call or Packet
+ * Switching (PS) such as IP call.
+ *
+ * QTMSStream instances are created by QTMSCall instance. Multiple QTMSStream
+ * instances (uplink and/or downlink streams) can be created. The QTMS engine
+ * does not limit the number of streams created per QTMSCall object. However,
+ * the combination of device policy and device run-time resources (both
+ * software and hardware) may limit this use-case.
+ *
+ * QTMSCall is a container which owns all its QTMSStream instances. The client
+ * has an option of creating and deleting individual streams. However, when a
+ * QTMSCall instance is deleted, all the streams associated with it are
+ * automatically deleted as well.
+ *
+ * QTMS ver 1.0.0.0:
+ * (1) An initialized stream will have one source, zero or one format,
+ * zero or more effects, and one or more sinks.
+ *
+ * (2) In the initial version of the QTMS implementation, the CS uplink and
+ * downlink streams will not control or communicate with the cellular modem.
+ * Also, the PS (IP) uplink and downlink streams will not handle network
+ * protocol. It is assumed that the QTMS client will handle this functionality.
+ *
+ * States:
+ * (1) QTMS_STREAM_UNINITIALIZED (initial state): The stream is alive but has
+ * not allocated all the resources it needs to function.
+ *
+ * (2) QTMS_STREAM_INITIALIZED: The stream has all the information required to
+ * acquire the media resources. Stream in this state will have most of the
+ * resources allocated, except the critical system resources, such as policy
+ * and/or hardware resources.
+ *
+ * (3) QTMS_STREAM_PAUSED: The stream has all the resources allocated, which may
+ * include critical system resources such as policy and/or hardware resources.
+ *
+ * (4) QTMS_STREAM_STARTED: The stream has all the resources allocated,
+ * including critical system resources such as policy and/or hardware resources
+ * and is active.
+ *
+ * Usage:
+ * <code>
+ * QTMSFactory *iFactory;
+ * QTMSCall *iCall;
+ * QTMSStream *iUplink;
+ * QTMSStream *iDownlink;
+ * gint err;
+ *
+ * err = QTMSFactory::CreateFactory(iFactory);
+ * err = iFactory->CreateCall(QTMS_CALL_IP, iCall);
+ * err = iCall->CreateStream(QTMS_STREAM_UPLINK, iUplink);
+ * err = iCall->CreateStream(QTMS_STREAM_DOWNLINK, iDownlink);
+ * // Configure CS uplink stream
+ * iUplinkStream->AddObserver(*this);
+ * iUplinkStream->AddSource(iMicSource);
+ * iUplinkStream->AddSink(iModemSink);
+ * iUplinkStream->AddEffect(iGainEffect); // To control mic gain
+ * iUplinkStream->Init();
+ * // Wait for state change callback
+ * iUplinkStream->Play();
+ * // Wait for state change callback
+ * ...
+ * // call terminated on the cell modem side, now signal multimedia system
+ * iUplinkStream->Stop();
+ * ...
+ * err = iCall->DeleteStream(iDownlink);
+ * err = iCall->DeleteStream(iUplink);
+ * err = iFactory->DeleteCall(iCall);
+ * delete iFactory;
+ *
+ * </code>
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+
+class QTMS_WRAPPER_DLL_EXPORT QTMSStream : public QObject
+{
+ Q_OBJECT
+public:
+
+ /**
+ * Destructor
+ */
+ virtual ~QTMSStream();
+
+ /**
+ * Add source for this stream.
+ *
+ * This function can be called only when stream is in
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * After source is added to the stream successfully, ownership of the source
+ * is vested in this stream. If the client wants to reuse the source, it
+ * should call RemoveSource() to re-claim QTMSSource ownership.
+ *
+ * @param source
+ * Source object to be added to the stream.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if source is added successfully to the stream.
+ * QTMS_RESULT_NULL_ARGUMENT if source is a NULL.
+ * QTMS_RESULT_ALREADY_EXIST if source has already been added to the
+ * stream.
+ * QTMS_RESULT_INVALID_STATE if stream is not
+ * in the QTMS_STREAM_UNINITIALIZED state.
+ *
+ */
+ gint AddSource(QTMSSource* source);
+
+ /**
+ * Remove source from this stream.
+ *
+ * This function can be called only when stream is in
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * After source is removed from the stream successfully, ownership of
+ * source is re-claimed by the client.
+ *
+ * @param source
+ * The source to remove.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if source is removed successfully from the
+ * stream.
+ * QTMS_RESULT_NULL_ARGUMENT if source is a NULL.
+ * QTMS_RESULT_DOES_NOT_EXIST if trying to remove the source that has
+ * not been added to stream.
+ * QTMS_RESULT_INVALID_STATE if stream is not
+ * in the QTMS_STREAM_UNINITIALIZED state.
+ *
+ */
+ gint RemoveSource(QTMSSource* source);
+
+ /**
+ * Add sink to the stream.
+ *
+ * Multiple sinks of different types can be added to a stream.
+ *
+ * This function can be called only when stream is in
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * After sink is added to the stream successfully, ownership of the sink is
+ * vested in the stream. If the client wants to reuse sink, it should call
+ * RemoveSink() to re-claim QTMSSink ownership.
+ *
+ * @param sink
+ * Data sink to be added to the stream.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if sink is added successfully to the stream.
+ * QTMS_RESULT_NULL_ARGUMENT if sink is a NULL.
+ * QTMS_RESULT_ALREADY_EXIST if sink type is already added to the
+ * stream.
+ * QTMS_RESULT_INVALID_STATE if stream is not
+ * in the QTMS_STREAM_UNINITIALIZED state.
+ *
+ */
+ gint AddSink(QTMSSink* sink);
+
+ /**
+ * Remove sink from the stream.
+ *
+ * This function can be called only when stream is in
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * After sink is removed from the stream successfully, ownership of the
+ * sink is re-claimed by the client.
+ *
+ * @param sink
+ * Sink to removed from the stream.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if sink is removed successfully from the stream.
+ * QTMS_RESULT_NULL_ARGUMENT if sink is a NULL.
+ * QTMS_RESULT_DOES_NOT_EXIST if trying to remove sink that has not
+ * been added to the stream.
+ * QTMS_RESULT_INVALID_STATE if stream is not
+ * in the QTMS_STREAM_UNINITIALIZED state.
+ *
+ */
+ gint RemoveSink(QTMSSink* sink);
+
+ /**
+ * Set data format for the stream.
+ *
+ * This function can be called only when stream is in the
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * After format is added to the stream successfully, ownership of the
+ * format is vested in this stream. If the client wants to reuse format,
+ * it should call ResetFormat() to re-claim QTMSFormat ownership.
+ *
+ * Note: In QTMS Ver 1.0.0.0, setting data format for CS call is not
+ * required.
+ *
+ * @param format
+ * Data format to be set on the stream.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if format is set successfully on the stream.
+ * QTMS_RESULT_NULL_ARGUMENT if format is a NULL.
+ * QTMS_RESULT_ALREADY_EXIST if format is already set on the stream.
+ * QTMS_RESULT_INVALID_STATE if stream is not
+ * in the QTMS_STREAM_UNINITIALIZED state.
+ *
+ */
+ gint SetFormat(QTMSFormat* format);
+
+ /**
+ * Remove data format from the stream.
+ *
+ * This function can be called only when stream is in the
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * After format is removed from the stream successfully, ownership of
+ * the format object is re-claimed by the client.
+ *
+ * @param format
+ * Data format to be removed from the stream.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if format is removed successfully from the
+ * stream.
+ * QTMS_RESULT_NULL_ARGUMENT if format is a NULL.
+ * QTMS_RESULT_DOES_NOT_EXIST if format is not currently set on the
+ * stream.
+ * QTMS_RESULT_INVALID_STATE if stream is not in the
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ */
+ gint ResetFormat(QTMSFormat* format);
+
+ /**
+ * Add an effect to the stream.
+ *
+ * Multiple effect objects of different types can be added to the stream.
+ *
+ * This function can be called only when stream is in the
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * After effect is added to the stream successfully, ownership of the
+ * effect is vested in the stream. If the client wants to reuse the effect,
+ * it shall call RemoveEffect() to re-claim QTMSEffect ownership.
+ *
+ * @param effect
+ * Stream effect to be added to the stream.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if effect is added successfully to the stream.
+ * QTMS_RESULT_NULL_ARGUMENT if effect is a NULL.
+ * QTMS_RESULT_ALREADY_EXIST if effect type is already added to the
+ * stream.
+ * QTMS_RESULT_INVALID_STATE if stream is not in the
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ */
+ gint AddEffect(QTMSEffect* effect);
+
+ /**
+ * Remove effect from the stream.
+ *
+ * This function can be called only when stream is in the
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * After effect is removed from the stream successfully, ownership of the
+ * effect is re-claimed by the client.
+ *
+ * @param effect
+ * Stream effect to be removed from the stream.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if effect is removed successfully from the
+ * stream.
+ * QTMS_RESULT_NULL_ARGUMENT if effect is a NULL.
+ * QTMS_RESULT_DOES_NOT_EXIST if trying to remove an effect that has
+ * not been added to the stream.
+ * QTMS_RESULT_INVALID_STATE if stream is not in the
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ */
+ gint RemoveEffect(QTMSEffect* effect);
+
+ /**
+ * Get current state of the stream.
+ *
+ * This function can be called at any time.
+ *
+ * Possible states are:
+ * QTMS_STREAM_UNINITIALIZED,
+ * QTMS_STREAM_INITIALIZED,
+ * QTMS_STREAM_PAUSED,
+ * QTMS_STREAM_STARTED.
+
+ * @return
+ * Stream's current state.
+ *
+ */
+ gint GetState();
+
+ /**
+ * Get stream ID.
+ *
+ * This function can be called at any time.
+ *
+ * @return
+ * Unique ID of the stream.
+ *
+ */
+ gint GetStreamId();
+
+ /**
+ * Get stream type.
+ *
+ * This function can be called at any time.
+ *
+ * The possible types are:
+ * TMS_STREAM_UPLINK
+ * TMS_STREAM_DOWNLINK
+ *
+ * @return
+ * Stream type indicating whether it is an uplink or downlink.
+ *
+ */
+ gint GetStreamType();
+
+ /**
+ * Trigger stream to transition to the initialized state.
+ *
+ * This function can be called only when stream is in the
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * If Init() is called when stream is already in initialized state, the
+ * request will be ignored and the function will return QTMS_RESULT_SUCCESS.
+ *
+ * Upon stream's successful transition to initialized state, the stream will
+ * be in the QTMS_STREAM_INITIALIZED state.
+ *
+ * Before stream can transition to initialized state the following
+ * objects must be added to the stream:
+ * CS call: UPL: mic source and modem sink
+ * CS call: DNL: modem source and speaker sink
+ * IP call: UPL: mic source, codec format and client sink
+ * IP call: DNL: client source, codec format and speaker sink
+ *
+ * @param retrytime
+ * Indicates (in seconds) for how long TMS should retry stream
+ * initialization in case of an error. When stream initialization
+ * fails within specified retry time, TMS will return
+ * TMS_EVENT_STREAM_STATE_CHANGE_ERROR. If set to 0, TMS will return
+ * TMS_EVENT_STREAM_STATE_CHANGE_ERROR immediately without retrying.
+ * If set to -1, TMS will keep retrying until user cancels by calling
+ * either Stop() or Deinit().
+ *
+ * @return
+ * Common return codes:
+ * QTMS_RESULT_SUCCESS if stream transitioned to the initialized state.
+ * QTMS_RESULT_INVALID_STATE if stream has not transitioned to the
+ * QTMS_STREAM_INITIALIZED state.
+ * QTMS_RESULT_FORMAT_TYPE_UNSPECIFIED (IP call only) when stream
+ * has no format attached to it.
+ * QTMS_RESULT_UNINITIALIZED_OBJECT when stream has no sink or source
+ * element attached to it.
+ *
+ */
+ gint Init(gint retrytime = 0);
+
+ /**
+ * Trigger stream to transition to the paused state.
+ *
+ * This function can be called only when stream is in the
+ * QTMS_STREAM_UNINITIALIZED or QTMS_STREAM_STARTED state.
+ *
+ * If Pause() is called when stream is already in paused state, the
+ * request will be ignored and the function will return QTMS_RESULT_SUCCESS.
+ *
+ * Upon stream's successful transition to the paused state, the stream will
+ * be in the QTMS_STREAM_PAUSED state.
+ *
+ * Note: In QTMS Ver 1.0.0.0, pausing stream for CS call is not supported.
+ *
+ * @return
+ * Common return codes:
+ * QTMS_RESULT_SUCCESS if stream successfully transitioned to the
+ * paused state.
+ * QTMS_RESULT_INVALID_STATE if stream is not in the
+ * QTMS_STREAM_INITIALIZED or QTMS_STREAM_PAUSED state.
+ *
+ */
+ gint Pause();
+
+ /**
+ * Trigger stream to transition to the started state.
+ *
+ * This function can be called only when stream is in the
+ * QTMS_STREAM_INITIALIZED or QTMS_STREAM_PAUSED state.
+ *
+ * If Start() is called when stream is already in the started state, the
+ * request will be ignored and the function will return QTMS_RESULT_SUCCESS.
+ *
+ * If Start() is called when stream is already in the initialized state, the
+ * stream will implicitly pause, but the observer will only receive one
+ * state change callback.
+ *
+ * Upon stream's successful transition to the started state, the stream will
+ * be in the QTMS_STREAM_STARTED state.
+ *
+ * @param retrytime
+ * Indicates (in seconds) for how long TMS should attempt to start
+ * a stream in case of an error. When stream starting fails within
+ * specified retry time, TMS will return
+ * QTMS_EVENT_STREAM_STATE_CHANGE_ERROR. If set to 0, TMS will return
+ * QTMS_EVENT_STREAM_STATE_CHANGE_ERROR immediately without retrying.
+ * If set to -1, TMS will keep retrying until user cancels by calling
+ * either Stop() or Deinit().
+ *
+ * @return
+ * Common return codes:
+ * QTMS_RESULT_SUCCESS if stream successfully transitioned to the
+ * started state.
+ * QTMS_RESULT_INVALID_STATE if stream is not in the
+ * QTMS_STREAM_INITIALIZED or QTMS_STREAM_STARTED state.
+ *
+ */
+ gint Start(gint retrytime = 0);
+
+ /**
+ * Trigger stream to transition to the initialized state.
+ *
+ * This function can be called only when stream is in the
+ * QTMS_STREAM_STARTED or QTMS_STREAM_PAUSED state.
+ *
+ * If Stop() is called when stream is already in the stopped state, the
+ * request will be ignored and the function will return QTMS_RESULT_SUCCESS.
+ *
+ * Upon stream's successful transition to the started state, the stream will
+ * be in the QTMS_STREAM_INITIALIZED state.
+ *
+ * @return
+ * Common return codes:
+ * QTMS_RESULT_SUCCESS if stream successfully transitioned to the
+ * stopped state.
+ * QTMS_RESULT_INVALID_STATE if stream is not in the
+ * QTMS_STREAM_STARTED or QTMS_STREAM_PAUSED state.
+ *
+ */
+ gint Stop();
+
+ /**
+ * Trigger stream to transition to un-initialized state.
+ *
+ * This function can be called only when stream is NOT in
+ * QTMS_STREAM_UNINITIALIZED state.
+ *
+ * If Deinit() is called when stream is already in un-initialized state, the
+ * request will be ignored.
+ *
+ * Upon stream's successful transition to the un-initialized state, the
+ * stream will be in the QTMS_STREAM_UNINITIALIZED state.
+ *
+ */
+ void Deinit();
+
+ Q_SIGNALS:
+ void TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSStream();
+
+protected:
+ TMS::TMSStream *iStream;
+};
+
+} //namespace QTMS
+
+#endif // QTMS_STREAM_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsvolumeeffect.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_VOLUME_EFFECT_H
+#define QTMS_VOLUME_EFFECT_H
+
+#include <qtms.h>
+#include <qtmseffect.h>
+#include "qtmswrapperexport.h"
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSEffect;
+}
+
+namespace QTMS
+{
+
+/**
+ * QTMSVolumeEffect class
+ *
+ * This class provides volume level control in the stream scope.
+ *
+ * @lib QTMSapi.lib
+ *
+ */
+class QTMS_WRAPPER_DLL_EXPORT QTMSVolumeEffect : public QObject,
+ public QTMSEffect
+{
+ Q_OBJECT
+public:
+ /**
+ * Destructor
+ */
+ virtual ~QTMSVolumeEffect();
+
+ /**
+ * Set audio volume level. The volume level should not be higher than
+ * the value returned by GetMaxLevel().
+ *
+ * @param level
+ * Volume level to be set.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint SetLevel(const guint level);
+
+ /**
+ * Return current audio volume level settings.
+ *
+ * @param level
+ * Volume level.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetLevel(guint& level);
+
+ /**
+ * Return max volume level supported by the device.
+ *
+ * @param level
+ * Max volume level.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ gint GetMaxLevel(guint& level);
+
+ /**
+ * Returns type of the effect.
+ *
+ * This function can be called at any time.
+ *
+ * @param effecttype
+ * Variable that contains the effect type on return.
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSEffectType& effecttype);
+
+ Q_SIGNALS:
+ void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event);
+
+protected:
+ /**
+ * Constructor
+ */
+ QTMSVolumeEffect();
+
+protected:
+ TMS::TMSEffect *iEffect;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_VOLUME_EFFECT_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmswrapperexport.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#ifndef QTMS_WRAPPER_EXPORT_H_
+#define QTMS_WRAPPER_EXPORT_H_
+
+// System includes
+#include <qglobal.h>
+
+#ifdef BUILD_TMS_WRAPPER_DLL
+#define QTMS_WRAPPER_DLL_EXPORT Q_DECL_EXPORT
+#else
+#define QTMS_WRAPPER_DLL_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif // QTMS_WRAPPER_EXPORT_H_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtestmains60.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef QTESTMAINS60
+#define QTESTMAINS60
+
+#define QTEST_MAIN_S60(QTmsCsTest) \
+int main(int argc, char *argv[]) \
+{ \
+char *new_argv[3]; \
+QCoreApplication app(argc, argv); \
+\
+QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \
+QByteArray bytes = str.toAscii(); \
+\
+char arg1[] = "-o"; \
+\
+new_argv[0] = argv[0]; \
+new_argv[1] = arg1; \
+new_argv[2] = bytes.data(); \
+\
+QTmsCsTest tc; \
+return QTest::qExec(&tc, 3, new_argv); \
+}
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,1109 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QTMS CS test
+ *
+ */
+#include <QObject>
+#include <QtTest/QtTest>
+#include "qtestmains60.h"
+
+#include <qtms.h>
+#include <qtmsfactory.h>
+#include <qtmscall.h>
+#include <qtmsstream.h>
+#include <tmsstreamobsrvr.h>
+#include <qtmsformat.h>
+
+#include <qtmspcmformat.h>
+#include <qtmsamrformat.h>
+#include <qtmsilbcformat.h>
+#include <qtmsg711format.h>
+#include <qtmsg729format.h>
+
+#include <qtmsclientsink.h>
+#include <qtmsclientsource.h>
+#include <qtmsvolumeeffect.h>
+#include <qtmsgaineffect.h>
+#include <qtmsglobalvoleffect.h>
+#include <qtmsglobalgaineffect.h>
+#include <qtmsglobalrouting.h>
+
+#include <qtmsbuffer.h>
+#include <qtmsdtmf.h>
+#include <qtmsringtone.h>
+#include <qtmsinbandtone.h>
+#include <tmsbuffer.h>
+
+using namespace QTMS;
+_LIT8(KRTBeepSequence, "\x00\x11\x0A\x0A\x08\x73\x0A\x40\x28\x0A\xF7\
+\x05\xFC\x40\x64\x0A\x08\x40\x32\x0A\xF7\x06\x0B");
+_LIT16(KTestFile1, "c:\\data\\sounds\\digital\\test_8khz.wav");
+
+class QTmsCsTest: public QObject
+{
+Q_OBJECT
+private slots:
+ void initTestCase();
+ void CSCallSetup();
+
+ void CreateUplink();
+ void CreateDnlink();
+ void CreateMicSource();
+ void AddMicSourceToStream();
+ void CreateModemSink();
+ void AddModemSinkToStream();
+ void CreateModemSource();
+ void AddModemSourceToStream();
+ void CreateSpeakerSink();
+ void AddSpeakerSinkToStream();
+
+ void CreateStreamVol();
+ void CreateStreamGain();
+
+ void InitUplink();
+ void InitDnlink();
+
+ void StartUplink();
+ void StopUplink();
+ void StartDnlink();
+
+ void StreamVol();
+ void StreamGain();
+ // void StopDnlink();
+
+ void CreateGlobalVol();
+ void CreateGlobalGain();
+ void CreateRouting_data();
+ void CreateRouting();
+
+ void CreateInband_data();
+ void CreateInband();
+ void CreateDnlinkDtmf();
+ void CreateUplinkDtmf();
+
+ void CreateRingTone();
+
+ void InitRingTonePlayerFromProfiles();
+ void PlayRingTone();
+ void PauseRingTone();
+ void MuteRingTone();
+ void StopRingTone();
+ void CloseRingTonePlayer();
+
+ void CloseUplink();
+ void CloseDownlink();
+ void cleanupTestCase();
+public slots:
+ //From TMSStreamObserver
+ void TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event);
+ //From TMSClientSinkObserver
+ void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event);
+ //From TMSGlobalRoutingObserver
+ void GlobalRoutingEvent(const QTMSGlobalRouting& routing, QTMSSignalEvent event,
+ QTMSAudioOutput output);
+ //From TMSRingToneObserver
+ void RingtoneEvent(const QTMSRingTone& rt, QTMSSignalEvent event);
+ //From TMSDTMFObserver
+ void DTMFEvent(const QTMSDTMF& dtmf, QTMSSignalEvent event);
+ //From TMSInbandToneObserver
+ void InbandToneEvent(const QTMSInbandTone& inbandtone, QTMSSignalEvent event);
+
+private:
+ void InitRingToneSequencePlayer();
+ void InitRingTonePlayerFromFile();
+ void StopDnlink();
+ void GetAvailableOutput();
+ void DisplayDevice(QTMSAudioOutput device);
+
+private:
+ QTMSFactory *m_Factory;
+ QTMSCall *m_Call;
+ QTMSDTMF *m_Dnlnkdtmf;
+ QTMSDTMF *m_Uplnkdtmf;
+ QTMSStream *m_Dnlink;
+ QTMSStream *m_Uplink;
+ QTMSSource *m_MicSource;
+ QTMSSource *m_ModemSource;
+ QTMSSink *m_SpeakerSink;
+ QTMSSink *m_ModemSink;
+ QTMSEffect *m_Vol;
+ QTMSEffect *m_Gain;
+ QTMSEffect *m_GlobalVol;
+ QTMSEffect *m_GlobalGain;
+ QTMSGlobalRouting *m_Routing;
+ QTMSInbandTone *m_InbandTonePlayer;
+ QTMSRingTone *m_RingTonePlayer;
+ GString* m_RTStr;
+ GString* m_TTSStr;
+ QSignalSpy *m_UplinkSpy;
+ QSignalSpy *m_DnlinkSpy;
+ QSignalSpy *m_InbandSpy;
+ QSignalSpy *m_RoutingSpy;
+ OutputVector m_Availableoutputs;
+
+};
+
+void QTmsCsTest::initTestCase()
+{
+ qDebug("Start QTms CS tests");
+
+ g_setenv("G_SLICE", "always-malloc", 1);
+ m_Factory = NULL;
+ m_Call = NULL;
+ m_Dnlink = NULL;
+ m_Uplink = NULL;
+ m_MicSource = NULL;
+ m_ModemSource = NULL;
+ m_SpeakerSink = NULL;
+ m_ModemSink = NULL;
+ m_Vol = NULL;
+ m_Gain = NULL;
+ m_GlobalVol = NULL;
+ m_GlobalGain = NULL;
+ m_Routing = NULL;
+ m_Dnlnkdtmf = NULL;
+ m_Uplnkdtmf = NULL;
+ m_InbandTonePlayer = NULL;
+ m_RingTonePlayer = NULL;
+ m_UplinkSpy = NULL;
+ m_DnlinkSpy = NULL;
+
+ QTMSVer *ver(NULL);
+ gint status;
+ status = QTMSFactory::CreateFactory(m_Factory, *ver);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ qRegisterMetaType<QTMSSignalEvent> ("QTMSSignalEvent");
+ qRegisterMetaType<QTMSAudioOutput> ("QTMSAudioOutput");
+
+}
+
+void QTmsCsTest::cleanupTestCase()
+{
+ qDebug("End QTms tests");
+
+ StopDnlink();
+
+ m_Factory->DeleteSource(m_MicSource);
+ m_Factory->DeleteSource(m_ModemSource);
+ m_Factory->DeleteSink(m_ModemSink);
+ m_Factory->DeleteSink(m_SpeakerSink);
+
+ m_Factory->DeleteDTMF(m_Dnlnkdtmf);
+ m_Factory->DeleteInbandTonePlayer(m_InbandTonePlayer);
+ m_Factory->DeleteRingTonePlayer(m_RingTonePlayer);
+
+ m_Factory->DeleteEffect(m_Vol);
+ m_Factory->DeleteEffect(m_Gain);
+ m_Factory->DeleteEffect(m_GlobalVol);
+ m_Factory->DeleteEffect(m_GlobalGain);
+
+ m_Factory->DeleteGlobalRouting(m_Routing);
+
+ m_Call->DeleteStream(m_Uplink);
+ m_Call->DeleteStream(m_Dnlink);
+
+ m_Factory->DeleteCall(m_Call);
+
+ delete m_Factory;
+
+}
+
+void QTmsCsTest::CSCallSetup()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory && !m_Call) {
+ gboolean issupported(FALSE);
+ m_Factory->IsCallTypeSupported(QTMS_CALL_CS, issupported);
+ QVERIFY(issupported == TRUE);
+ status = m_Factory->CreateCall(QTMS_CALL_CS, m_Call, 0);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTMSCallType calltype = m_Call->GetCallType();
+ QVERIFY(calltype == QTMS_CALL_CS);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsCsTest::CreateUplink()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Call) {
+ status = m_Call->CreateStream(QTMS_STREAM_UPLINK, m_Uplink);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_UplinkSpy = new QSignalSpy(m_Uplink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ QVERIFY( m_UplinkSpy->isValid() );
+
+ //QCOMPARE(m_UplinkSpy->count(), 0 );
+
+
+ connect(m_Uplink, SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), this,
+ SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ }
+}
+
+void QTmsCsTest::CreateDnlink()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Call) {
+ status = m_Call->CreateStream(QTMS_STREAM_DOWNLINK, m_Dnlink);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_DnlinkSpy = new QSignalSpy(m_Dnlink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ QVERIFY( m_DnlinkSpy->isValid() );
+
+ //QCOMPARE(m_DnlinkSpy->count(), 0 );
+
+ connect(m_Dnlink, SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), this,
+ SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+ }
+}
+
+void QTmsCsTest::CreateModemSink()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_ModemSink) {
+ status = m_Factory->CreateSink(QTMS_SINK_MODEM, m_ModemSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsCsTest::CreateModemSource()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_ModemSource) {
+ status = m_Factory->CreateSource(QTMS_SOURCE_MODEM, m_ModemSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsCsTest::AddModemSinkToStream()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Uplink && m_ModemSink) {
+ status = m_Uplink->AddSink(m_ModemSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsCsTest::AddModemSourceToStream()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Dnlink && m_ModemSource) {
+ status = m_Dnlink->AddSource(m_ModemSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsCsTest::CreateMicSource()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_MicSource) {
+ status = m_Factory->CreateSource(TMS_SOURCE_MIC, m_MicSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsCsTest::AddMicSourceToStream()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Uplink && m_MicSource) {
+ status = m_Uplink->AddSource(m_MicSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsCsTest::CreateSpeakerSink()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_SpeakerSink) {
+ status = m_Factory->CreateSink(QTMS_SINK_SPEAKER, m_SpeakerSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsCsTest::AddSpeakerSinkToStream()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Dnlink && m_SpeakerSink) {
+ status = m_Dnlink->AddSink(m_SpeakerSink);
+ qDebug("QTMS speaker sink added to stream");
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsCsTest::InitUplink()
+{
+ QVERIFY(m_Uplink->Init() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 1 );
+}
+
+void QTmsCsTest::InitDnlink()
+{
+ QVERIFY(m_Dnlink->Init() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 1 );
+}
+
+void QTmsCsTest::StartUplink()
+{
+ QVERIFY(m_Uplink->Start() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 2 );
+}
+
+void QTmsCsTest::StartDnlink()
+{
+ QVERIFY(m_Dnlink->Start() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 2 );
+}
+void QTmsCsTest::StopUplink()
+{
+ QVERIFY(m_Uplink->Stop() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 3 );
+}
+
+void QTmsCsTest::StopDnlink()
+{
+ QVERIFY(m_Dnlink->Stop() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 3 );
+}
+
+void QTmsCsTest::CloseUplink()
+{
+ m_Uplink->Deinit();
+ QTest::qWait(1000);
+ if (m_Uplink) {
+ if (m_Gain) {
+ QVERIFY(m_Uplink->RemoveEffect(m_Gain)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_MicSource) {
+ QVERIFY(m_Uplink->RemoveSource(m_MicSource)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_ModemSink) {
+ QVERIFY(m_Uplink->RemoveSink(m_ModemSink)== QTMS_RESULT_SUCCESS);
+ }
+ }
+}
+
+void QTmsCsTest::CloseDownlink()
+{
+ m_Dnlink->Deinit();
+ QTest::qWait(1000);
+ if (m_Dnlink) {
+ if (m_Vol) {
+ QVERIFY(m_Dnlink->RemoveEffect(m_Vol)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_ModemSource) {
+ QVERIFY(m_Dnlink->RemoveSource(m_ModemSource)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_SpeakerSink) {
+ QVERIFY(m_Dnlink->RemoveSink(m_SpeakerSink) == QTMS_RESULT_SUCCESS);
+ }
+ }
+
+}
+
+void QTmsCsTest::CreateStreamVol()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_Vol) {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_VOLUME, m_Vol);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSVolumeEffect*> (m_Vol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ if (m_Dnlink) {
+ status = m_Dnlink->AddEffect(m_Vol);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ }
+}
+
+void QTmsCsTest::StreamVol()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ guint maxvol(0);
+ if (m_Vol) {
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->GetMaxLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->SetLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->GetLevel(vol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(vol,maxvol);
+ }
+}
+
+void QTmsCsTest::CreateStreamGain()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_Gain) {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GAIN, m_Gain);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGainEffect*> (m_Gain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ if (m_Uplink) {
+ status = m_Uplink->AddEffect(m_Gain);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+}
+
+void QTmsCsTest::StreamGain()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Gain) {
+ guint maxgain(0);
+ static_cast<QTMSGainEffect*> (m_Gain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ static_cast<QTMSGainEffect*> (m_Gain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGainEffect*> (m_Gain)->GetLevel(gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(gain,maxgain);
+ }
+
+}
+
+void QTmsCsTest::CreateGlobalVol()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_GlobalVol) {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_VOL, m_GlobalVol);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGlobalVolEffect*> (m_GlobalVol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxvol(0);
+ status = static_cast<QTMSGlobalVolEffect*> (m_GlobalVol)->GetMaxLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ status = static_cast<QTMSGlobalVolEffect*> (m_GlobalVol)->SetLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSGlobalVolEffect*> (m_GlobalVol)->GetLevel(vol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(vol,maxvol);
+
+ }
+}
+
+void QTmsCsTest::CreateGlobalGain()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_GlobalGain) {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_GAIN, m_GlobalGain);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGlobalGainEffect*> (m_GlobalGain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxgain(0);
+ static_cast<QTMSGlobalGainEffect*> (m_GlobalGain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ static_cast<QTMSGlobalGainEffect*> (m_GlobalGain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGlobalGainEffect*> (m_GlobalGain)->GetLevel(gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(gain,maxgain);
+
+ }
+}
+
+void QTmsCsTest::CreateRouting_data()
+{
+ gint status;
+ if (m_Factory && !m_Routing) {
+ status = m_Factory->CreateGlobalRouting(m_Routing);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_RoutingSpy = new QSignalSpy(m_Routing,
+ SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,
+ QTMSSignalEvent,
+ QTMSAudioOutput)));
+
+ QVERIFY( m_RoutingSpy->isValid() );
+
+ // QCOMPARE(m_RoutingSpy->count(), 0 );
+ connect(m_Routing, SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,
+ QTMSSignalEvent,QTMSAudioOutput)), this,
+ SLOT(GlobalRoutingEvent(const QTMSGlobalRouting&,
+ QTMSSignalEvent,QTMSAudioOutput)));
+ }
+
+ //Populate data and test based on available output
+ GetAvailableOutput();
+}
+
+void QTmsCsTest::CreateRouting()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ QFETCH(QTMSAudioOutput, routing);
+
+ if (m_Routing) {
+ status = m_Routing->SetOutput(routing);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+#ifndef __WINSCW__
+ QTest::qWait(1000);
+ // QCOMPARE(m_RoutingSpy->count(), 1 );
+#endif
+ QTMSAudioOutput current;
+ status = m_Routing->GetOutput(current);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QCOMPARE(routing,current);
+
+ QTMSAudioOutput previous;
+ status = m_Routing->GetPreviousOutput(previous);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("Previous routing:");
+ DisplayDevice(previous);
+ }
+}
+
+void QTmsCsTest::GetAvailableOutput()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Routing) {
+ status = m_Routing->GetAvailableOutputs(m_Availableoutputs);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ qDebug("Available outputs: %d", m_Availableoutputs.size());
+ std::vector<guint>::iterator iteroutputs = m_Availableoutputs.begin();
+ for (; iteroutputs < m_Availableoutputs.end(); iteroutputs++) {
+ DisplayDevice(*iteroutputs);
+ }
+ }
+}
+
+void QTmsCsTest::DisplayDevice(QTMSAudioOutput device)
+{
+ QTest::addColumn<QTMSAudioOutput>("routing");
+
+ switch (device) {
+ case QTMS_AUDIO_OUTPUT_NONE:
+ {
+ qDebug("none");
+ QTest::newRow("None") << QTMS_AUDIO_OUTPUT_NONE;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PUBLIC:
+ {
+ qDebug("Public");
+ QTest::newRow("Public") << QTMS_AUDIO_OUTPUT_PUBLIC;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PRIVATE:
+ {
+ qDebug("Private");
+ QTest::newRow("Private") << QTMS_AUDIO_OUTPUT_PRIVATE;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_HANDSET:
+ {
+ qDebug("Handset");
+ QTest::newRow("Handset") << QTMS_AUDIO_OUTPUT_HANDSET;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_LOUDSPEAKER:
+ {
+ qDebug("Loudspeaker");
+ QTest::newRow("Loud speaker") << QTMS_AUDIO_OUTPUT_LOUDSPEAKER;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_WIRED_ACCESSORY:
+ {
+ qDebug("Wired accessory");
+ QTest::newRow("Wired accessory") << QTMS_AUDIO_OUTPUT_WIRED_ACCESSORY;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_ACCESSORY:
+ {
+ qDebug("Accessory");
+ QTest::newRow("Accessory") << QTMS_AUDIO_OUTPUT_ACCESSORY;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_ETTY:
+ {
+ qDebug("TTY");
+ QTest::newRow("ETTY") << QTMS_AUDIO_OUTPUT_ETTY;
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsCsTest::CreateDnlinkDtmf()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ GString* dtmfstring(NULL);
+
+ status = m_Factory->CreateDTMF(QTMS_STREAM_DOWNLINK, m_Dnlnkdtmf);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (m_Dnlnkdtmf) {
+ QSignalSpy dtmfspy(m_Dnlnkdtmf, SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ QVERIFY( dtmfspy.isValid() );
+
+ //QCOMPARE(dtmfspy.count(), 0 );
+
+ connect(m_Dnlnkdtmf, SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this,
+ SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ dtmfstring = g_string_new("4723");
+ status = m_Dnlnkdtmf->SetTone(dtmfstring);
+
+ m_Dnlnkdtmf->Start();
+ QTest::qWait(1000);
+ g_string_free(dtmfstring, TRUE);
+ //QCOMPARE(dtmfspy.count(), 1 );
+
+ status = m_Dnlnkdtmf->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(dtmfspy.count(), 2 );
+
+ }
+}
+
+void QTmsCsTest::CreateUplinkDtmf()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ GString* dtmfstring(NULL);
+
+ status = m_Factory->CreateDTMF(QTMS_STREAM_UPLINK, m_Uplnkdtmf);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (m_Uplnkdtmf) {
+ QSignalSpy uplinkdtmfspy(m_Uplnkdtmf, SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ QVERIFY( uplinkdtmfspy.isValid() );
+
+ //QCOMPARE(dtmfspy.count(), 0 );
+
+ connect(m_Uplnkdtmf, SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this,
+ SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ dtmfstring = g_string_new("4723");
+ status = m_Uplnkdtmf->SetTone(dtmfstring);
+
+ m_Uplnkdtmf->Start();
+ QTest::qWait(1000);
+ g_string_free(dtmfstring, TRUE);
+ //QCOMPARE(dtmfspy.count(), 1 );
+
+ m_Uplnkdtmf->ContinueDTMFStringSending(FALSE);
+
+ status = m_Uplnkdtmf->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(dtmfspy.count(), 2 );
+
+ }
+}
+
+void QTmsCsTest::CreateInband_data()
+{
+
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory && !m_InbandTonePlayer) {
+ status = m_Factory->CreateInbandTonePlayer(m_InbandTonePlayer);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ m_InbandSpy = new QSignalSpy(m_InbandTonePlayer,
+ SIGNAL(InbandToneEvent(const QTMSInbandTone&,QTMSSignalEvent)));
+
+ QVERIFY( m_InbandSpy->isValid() );
+
+ //QCOMPARE(m_InbandSpy->count(), 0 );
+ connect(m_InbandTonePlayer,
+ SIGNAL(InbandToneEvent(const QTMSInbandTone&, QTMSSignalEvent)), this,
+ SLOT(InbandToneEvent(const QTMSInbandTone&, QTMSSignalEvent)));
+ }
+
+ QTest::addColumn<QTMSInbandToneType>("inbandTone");
+
+ QTest::newRow("Busy") << QTMS_INBAND_USER_BUSY;
+ QTest::newRow("Path not avail") << QTMS_INBAND_RADIO_PATH_NOT_AVAIL;
+ QTest::newRow("Congestion") << QTMS_INBAND_CONGESTION;
+ QTest::newRow("Special info") << QTMS_INBAND_SPECIAL_INFO;
+ QTest::newRow("Reorder") << QTMS_INBAND_REORDER;
+ QTest::newRow("Remote alerting") << QTMS_INBAND_REMOTE_ALEARTING;
+ QTest::newRow("call waiting") << QTMS_INBAND_CALL_WAITING;
+ QTest::newRow("data call") << QTMS_INBAND_DATA_CALL;
+ QTest::newRow("no sequence") << QTMS_INBAND_NO_SEQUENCE;
+ QTest::newRow("beep sequence") << QTMS_INBAND_BEEP_SEQUENCE;
+
+}
+
+void QTmsCsTest::CreateInband()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ QFETCH(QTMSInbandToneType, inbandTone);
+
+ if (m_InbandTonePlayer) {
+ status = m_InbandTonePlayer->Start(inbandTone);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ // QCOMPARE(m_InbandSpy->count(), 1 );
+
+ status = m_InbandTonePlayer->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ // QCOMPARE(m_InbandSpy->count(), 2 );
+ }
+}
+
+void QTmsCsTest::CreateRingTone()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory) {
+ status = m_Factory->CreateRingTonePlayer(m_RingTonePlayer);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(m_RingTonePlayer, SIGNAL(RingtoneEvent(const QTMSRingTone&,QTMSSignalEvent)), this,
+ SLOT(RingtoneEvent(const QTMSRingTone&,QTMSSignalEvent)));
+ }
+
+}
+
+void QTmsCsTest::InitRingTonePlayerFromProfiles()
+{
+ if (m_RingTonePlayer) {
+ gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_DEFAULT);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ }
+
+}
+
+void QTmsCsTest::InitRingTonePlayerFromFile()
+{
+ if (m_RingTonePlayer) {
+ TBuf<sizeof(KTestFile1)> buf(KTestFile1);
+ m_RTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length() * 2);
+ gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_FILE, m_RTStr);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ g_string_free(m_RTStr, TRUE);
+ m_RTStr = NULL;
+ }
+
+}
+
+void QTmsCsTest::InitRingToneSequencePlayer()
+{
+ if (m_RingTonePlayer) {
+ TBuf8<sizeof(KRTBeepSequence)> buf(KRTBeepSequence);
+ m_RTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length());
+ gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_SEQUENCE, m_RTStr);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ g_string_free(m_RTStr, TRUE);
+ }
+}
+
+void QTmsCsTest::PlayRingTone()
+{
+ if (m_RingTonePlayer) {
+ gint status = m_RingTonePlayer->Play();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ }
+}
+
+void QTmsCsTest::PauseRingTone()
+{
+ if (m_RingTonePlayer) {
+ gint status = m_RingTonePlayer->Pause(); //pause audio for video RT only
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ }
+}
+
+void QTmsCsTest::StopRingTone()
+{
+ if (m_RingTonePlayer) {
+ gint status = m_RingTonePlayer->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ }
+}
+
+void QTmsCsTest::MuteRingTone()
+{
+ if (m_RingTonePlayer) {
+ m_RingTonePlayer->Mute();
+ }
+}
+
+void QTmsCsTest::CloseRingTonePlayer()
+{
+ if (m_Factory && m_RingTonePlayer) {
+ m_RingTonePlayer->Deinit();
+ m_Factory->DeleteRingTonePlayer(m_RingTonePlayer);
+ }
+}
+
+void QTmsCsTest::EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event)
+{
+ QTMSEffectType effecttype;
+ const_cast<QTMSEffect&> (tmseffect).GetType(effecttype);
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ switch (effecttype) {
+ case TMS_EFFECT_GLOBAL_VOL:
+ {
+ switch (event.type) {
+ case TMS_EVENT_EFFECT_VOL_CHANGED:
+ qDebug("Global vol effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case TMS_EFFECT_GLOBAL_GAIN:
+ {
+ switch (event.type) {
+ case TMS_EVENT_EFFECT_GAIN_CHANGED:
+ qDebug("Global gain effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case TMS_EFFECT_VOLUME:
+ qDebug("Stream vol effect change");
+ break;
+ case TMS_EFFECT_GAIN:
+ qDebug("Stream gain effect change");
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsCsTest::GlobalRoutingEvent(const QTMSGlobalRouting& /*routing*/, QTMSSignalEvent event,
+ QTMSAudioOutput /*output*/)
+{
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type) {
+ case TMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED:
+ qDebug("Available outputs changed");
+ break;
+ case TMS_EVENT_ROUTING_OUTPUT_CHANGED:
+ qDebug("output changed");
+ break;
+ case TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE:
+ qDebug("set output complete");
+ break;
+ default:
+ break;
+ }
+
+}
+
+void QTmsCsTest::TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event)
+{
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ gint streamId;
+ streamId = const_cast<QTMSStream&> (stream).GetStreamId();
+ qDebug("StreamID %d", streamId);
+ gint state;
+ state = const_cast<QTMSStream&> (stream).GetState();
+ QVERIFY(state == event.curr_state);
+
+ switch (const_cast<QTMSStream&> (stream).GetStreamType()) {
+ case QTMS_STREAM_UPLINK:
+ {
+ switch (event.type) {
+ case QTMS_EVENT_STREAM_STATE_CHANGED:
+ {
+ switch (event.curr_state) {
+ case QTMS_STREAM_INITIALIZED:
+ {
+ qDebug("Uplink initialized ");
+ break;
+ }
+ case QTMS_STREAM_UNINITIALIZED:
+ qDebug("Uplink uninitialized ");
+ break;
+ case QTMS_STREAM_PAUSED:
+ qDebug("Uplink paused ");
+ break;
+ case QTMS_STREAM_STARTED:
+ qDebug("Uplink started ");
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ case QTMS_STREAM_DOWNLINK:
+ {
+ switch (event.type) {
+ case QTMS_EVENT_STREAM_STATE_CHANGED:
+ {
+ switch (event.curr_state) {
+ case QTMS_STREAM_INITIALIZED:
+ {
+ qDebug("Downlink initialized ");
+ break;
+ }
+ case QTMS_STREAM_UNINITIALIZED:
+ qDebug("Downlink uninitialized ");
+ break;
+ case QTMS_STREAM_PAUSED:
+ qDebug("Downlink paused ");
+ break;
+ case QTMS_STREAM_STARTED:
+ qDebug("Downlink started ");
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+void QTmsCsTest::RingtoneEvent(const QTMSRingTone& /*rt*/, QTMSSignalEvent event)
+{
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type) {
+ case TMS_EVENT_RINGTONE_OPEN_COMPLETE:
+ qDebug("RT Open Complete");
+ break;
+ case TMS_EVENT_RINGTONE_PLAY_COMPLETE:
+ qDebug("RT Play Complete");
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsCsTest::DTMFEvent(const QTMSDTMF& /*dtmf*/, QTMSSignalEvent event)
+{
+ if (event.reason != QTMS_RESULT_SUCCESS) {
+ QEXPECT_FAIL("","Need to be in call, expect uplink dtmf to fail", Continue);
+ }
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ switch (event.type) {
+ case QTMS_EVENT_DTMF_TONE_STARTED:
+ qDebug("DTMF Started");
+ break;
+ case QTMS_EVENT_DTMF_TONE_STOPPED:
+ qDebug("DTMF Stopped");
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsCsTest::InbandToneEvent(const QTMSInbandTone& /*inbandtone*/, QTMSSignalEvent event)
+{
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type) {
+ case QTMS_EVENT_INBAND_TONE_STARTED:
+ qDebug("Inband Tone Started");
+ break;
+ case QTMS_EVENT_INBAND_TONE_STOPPED:
+ qDebug("Inband Tone Stopped");
+ break;
+ default:
+ break;
+ }
+}
+
+QTEST_MAIN_S60(QTmsCsTest)
+
+#include "qtmscstest.moc"
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.pro Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,43 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Project specification file for tsrc.
+#
+
+
+CONFIG += qtestlib
+TEMPLATE = app
+TARGET =
+TARGET.CAPABILITY = CAP_APPLICATION MultimediaDD
+TARGET.EPOCALLOWDLLDATA = 1
+
+
+LIBS += -lqtmsapi \
+ -llibglib \
+ -llibgobject \
+ -llibgmodule \
+ -llibstdcpp
+
+DEPENDPATH += .
+INCLUDEPATH += .
+
+
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
+ $$OS_LAYER_LIBC_SYSTEMINCLUDE \
+ $$OS_LAYER_GLIB_SYSTEMINCLUDE \
+ ..\..\..\qt_telephony_multimedia_service_api\inc
+
+# Input
+HEADERS += qtestmains60.h
+SOURCES += qtmscstest.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtestmains60.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,39 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef QTESTMAINS60
+#define QTESTMAINS60
+
+#define QTEST_MAIN_S60(QTmsVoipTest) \
+int main(int argc, char *argv[]) \
+{ \
+char *new_argv[3]; \
+QCoreApplication app(argc, argv); \
+\
+QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \
+QByteArray bytes = str.toAscii(); \
+\
+char arg1[] = "-o"; \
+\
+new_argv[0] = argv[0]; \
+new_argv[1] = arg1; \
+new_argv[2] = bytes.data(); \
+\
+QTmsVoipTest tc; \
+return QTest::qExec(&tc, 3, new_argv); \
+}
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,1770 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QTMS Voip test
+ *
+ */
+#include <QObject>
+#include <QtTest/QtTest>
+#include "qtestmains60.h"
+
+#include <qtms.h>
+#include <qtmsfactory.h>
+#include <qtmscall.h>
+#include <qtmsstream.h>
+#include <tmsstreamobsrvr.h>
+#include <qtmsformat.h>
+
+#include <qtmspcmformat.h>
+#include <qtmsamrformat.h>
+#include <qtmsilbcformat.h>
+#include <qtmsg711format.h>
+#include <qtmsg729format.h>
+
+#include <qtmsclientsink.h>
+#include <qtmsclientsource.h>
+#include <qtmsvolumeeffect.h>
+#include <qtmsgaineffect.h>
+#include <qtmsglobalvoleffect.h>
+#include <qtmsglobalgaineffect.h>
+#include <qtmsglobalrouting.h>
+
+#include <qtmsbuffer.h>
+#include <qtmsdtmf.h>
+#include <qtmsringtone.h>
+#include <qtmsinbandtone.h>
+#include <tmsbuffer.h>
+
+// CONSTANTS
+#define __TEST_CODE_COVERAGE__
+
+using namespace QTMS;
+
+
+class QTmsVoipTest: public QObject
+{
+Q_OBJECT
+private slots:
+ void initTestCase();
+ void init();
+ void cleanup();
+ void SupportedFormats();
+ void CreateRouting_data();
+ void CreateRouting();
+ void CreateGlobalVol();
+ void CreateGlobalGain();
+ void CreateFormat_data();
+ void CreateFormat();
+ void CreateStreamVol();
+ void CreateStreamGain();
+ void CreateDnlinkDtmf();
+ void CreateBuffer();
+
+ void cleanupTestCase();
+public slots:
+ //From TMSClientSourceObserver
+ void FillBuffer(QTMSBuffer& buffer);
+ void BufferProcessed(QTMSBuffer* buffer, gint reason);
+ //From TMSClientSinkObserver
+ void ProcessBuffer(const QTMSBuffer* buffer);
+ //From TMSStreamObserver
+ void TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event);
+ //From TMSClientSinkObserver
+ void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event);
+ //From TMSGlobalRoutingObserver
+ void GlobalRoutingEvent(const QTMSGlobalRouting& routing, QTMSSignalEvent event,
+ QTMSAudioOutput output);
+ //From TMSRingToneObserver
+ void RingtoneEvent(const QTMSRingTone& rt, QTMSSignalEvent event);
+ //From TMSDTMFObserver
+ void DTMFEvent(const QTMSDTMF& dtmf, QTMSSignalEvent event);
+
+private:
+
+ void VoipCallSetup();
+
+ void SupportedUplinkFormats();
+ void SupportedDnlinkFormats();
+
+ void CreateUplink();
+ void CreateDnlink();
+
+ void CreateMicSource();
+ void AddMicSourceToStream();
+
+ void CreateClientSink();
+ void AddClientSinkToStream();
+
+ void CreateClientSource();
+ void AddClientSourceToStream();
+
+ void CreateSpeakerSink();
+ void AddSpeakerSinkToStream();
+
+ void InitUplink();
+ void InitDnlink();
+
+ void DeinitUplink();
+ void DeinitDnlink();
+
+ void StartUplink();
+ void StopUplink();
+ void StartDnlink();
+
+ void ResetUplnkFormat();
+ void ResetDnlnkFormat();
+
+ void StreamVol();
+ void StreamGain();
+
+ void CloseUplink();
+ void CloseDownlink();
+
+ void DisplayFormat(QTMSFormatType format);
+ void StopDnlink();
+ void CreateRingTone();
+
+ void ToggleVad();
+ void GetVad();
+ void ToggleCng();
+ void GetCng();
+ void TogglePlc();
+ void GetPlc();
+
+ void SelectMinBitrate();
+ void SelectMaxBitrate();
+ void SetBitrate(guint bitrate);
+ void GetSupportedBitrates();
+ gint GetSupportedBitrates(BitRateVector& aBrArr);
+ void GetBitrate();
+
+ void SetDnLinkG711ALAW();
+ void SetDnLinkG711uLAW();
+ void SetDnLinkILBC20MS();
+ void SetDnLinkILBC30MS();
+ void SetUpLinkG711ALAW();
+ void SetUpLinkG711uLAW();
+ void SetUpLinkILBC20MS();
+ void SetUpLinkILBC30MS();
+ void GetDnLinkG711Mode();
+ void GetDnLinkILBCMode();
+ void GetUpLinkG711Mode();
+ void GetUpLinkILBCMode();
+
+ void DisplayDevice(QTMSAudioOutput device);
+
+private:
+ QTMSFactory *m_Factory;
+ QTMSCall *m_Call;
+ QTMSDTMF *m_Dnlnkdtmf;
+ QTMSStream *m_Dnlink;
+ QTMSStream *m_Uplink;
+
+ QTMSSource *m_MicSource;
+ QTMSSource *m_ClientSource;
+ QTMSSink *m_ClientSink;
+ QTMSSink *m_SpeakerSink;
+
+ QTMSFormat *m_G711EncFormatIntfc;
+ QTMSFormat *m_G711DecFormatIntfc;
+ QTMSFormat *m_G729EncFormatIntfc;
+ QTMSFormat *m_G729DecFormatIntfc;
+ QTMSFormat *m_ILBCEncFormatIntfc;
+ QTMSFormat *m_ILBCDecFormatIntfc;
+ QTMSFormat *m_AMRNBEncFormatIntfc;
+ QTMSFormat *m_AMRNBDecFormatIntfc;
+ QTMSFormat *m_PCM16EncFormatIntfc;
+ QTMSFormat *m_PCM16DecFormatIntfc;
+
+ QTMS::FormatVector m_UplCodecs;
+ QTMS::FormatVector m_DnlCodecs;
+
+ BitRateVector m_BitratesVector;
+ guint iBitrate;
+
+ QTMSEffect *m_Vol;
+ QTMSEffect *m_Gain;
+ QTMSEffect *m_GlobalVol;
+ QTMSEffect *m_GlobalGain;
+ QTMSGlobalRouting *m_Routing;
+
+ QTMSFormatType m_DnLinkCodec;
+ QTMSFormatType m_UpLinkCodec;
+
+ QSignalSpy *m_UplinkSpy;
+ QSignalSpy *m_DnlinkSpy;
+ QSignalSpy *m_RoutingSpy;
+
+ gboolean m_Vad;
+ gboolean m_Cng;
+ gboolean m_Plc;
+
+};
+
+void QTmsVoipTest::initTestCase()
+{
+ qDebug("Start QTms Voip tests");
+
+ g_setenv("G_SLICE", "always-malloc", 1);
+
+ qRegisterMetaType<QTMSSignalEvent> ("QTMSSignalEvent");
+ qRegisterMetaType<QTMSAudioOutput> ("QTMSAudioOutput");
+}
+
+void QTmsVoipTest::cleanupTestCase()
+{
+ qDebug("End QTms tests");
+}
+
+void QTmsVoipTest::init()
+{
+ qDebug("****NEW TEST****");
+ m_Factory = NULL;
+ m_Call = NULL;
+ m_Dnlink = NULL;
+ m_Uplink = NULL;
+ m_MicSource = NULL;
+ m_ClientSource = NULL;
+ m_SpeakerSink = NULL;
+ m_ClientSink = NULL;
+ m_Vol = NULL;
+ m_Gain = NULL;
+ m_GlobalVol = NULL;
+ m_GlobalGain = NULL;
+ m_Routing = NULL;
+ m_Dnlnkdtmf = NULL;
+
+ m_G711EncFormatIntfc = NULL;
+ m_G711DecFormatIntfc = NULL;
+ m_G729EncFormatIntfc = NULL;
+ m_G729DecFormatIntfc = NULL;
+ m_ILBCEncFormatIntfc = NULL;
+ m_ILBCDecFormatIntfc = NULL;
+ m_AMRNBEncFormatIntfc = NULL;
+ m_AMRNBDecFormatIntfc = NULL;
+ m_PCM16EncFormatIntfc = NULL;
+ m_PCM16DecFormatIntfc = NULL;
+
+ m_UplinkSpy = NULL;
+ m_DnlinkSpy = NULL;
+
+ QTMSVer *ver(NULL);
+ gint status;
+ status = QTMSFactory::CreateFactory(m_Factory, *ver);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ VoipCallSetup();
+
+ CreateUplink();
+ CreateDnlink();
+
+ CreateMicSource();
+ AddMicSourceToStream();
+
+ CreateClientSink();
+ AddClientSinkToStream();
+
+ CreateClientSource();
+ AddClientSourceToStream();
+
+ CreateSpeakerSink();
+ AddSpeakerSinkToStream();
+
+}
+void QTmsVoipTest::cleanup()
+{
+ qDebug("****END TEST******");
+
+ ResetUplnkFormat();
+ ResetDnlnkFormat();
+
+ CloseUplink();
+ CloseDownlink();
+
+ if (m_MicSource) {
+ m_Factory->DeleteSource(m_MicSource);
+ }
+ if (m_ClientSource) {
+ m_Factory->DeleteSource(m_ClientSource);
+ }
+ if (m_ClientSink) {
+ m_Factory->DeleteSink(m_ClientSink);
+ }
+ if (m_SpeakerSink) {
+ m_Factory->DeleteSink(m_SpeakerSink);
+ }
+
+ if (m_Dnlnkdtmf) {
+ m_Factory->DeleteDTMF(m_Dnlnkdtmf);
+ }
+
+ if (m_Vol) {
+ m_Factory->DeleteEffect(m_Vol);
+ }
+ if (m_Gain) {
+ m_Factory->DeleteEffect(m_Gain);
+ }
+ if (m_GlobalVol) {
+ m_Factory->DeleteEffect(m_GlobalVol);
+ }
+ if (m_GlobalGain) {
+ m_Factory->DeleteEffect(m_GlobalGain);
+ }
+
+ if (m_Routing) {
+ m_Factory->DeleteGlobalRouting(m_Routing);
+ }
+
+ if (m_PCM16EncFormatIntfc) {
+ m_Factory->DeleteFormat(m_PCM16EncFormatIntfc);
+ }
+ if (m_ILBCEncFormatIntfc) {
+ m_Factory->DeleteFormat(m_ILBCEncFormatIntfc);
+ }
+ if (m_AMRNBEncFormatIntfc) {
+ m_Factory->DeleteFormat(m_AMRNBEncFormatIntfc);
+ }
+ if (m_G711EncFormatIntfc) {
+ m_Factory->DeleteFormat(m_G711EncFormatIntfc);
+ }
+ if (m_G729EncFormatIntfc) {
+ m_Factory->DeleteFormat(m_G729EncFormatIntfc);
+ }
+ if (m_PCM16DecFormatIntfc) {
+ m_Factory->DeleteFormat(m_PCM16DecFormatIntfc);
+ }
+ if (m_ILBCDecFormatIntfc) {
+ m_Factory->DeleteFormat(m_ILBCDecFormatIntfc);
+ }
+ if (m_AMRNBDecFormatIntfc) {
+ m_Factory->DeleteFormat(m_AMRNBDecFormatIntfc);
+ }
+ if (m_G711DecFormatIntfc) {
+
+ m_Factory->DeleteFormat(m_G711DecFormatIntfc);
+ }
+ if (m_G729DecFormatIntfc) {
+ m_Factory->DeleteFormat(m_G729DecFormatIntfc);
+ }
+
+ if (m_Uplink) {
+ m_Call->DeleteStream(m_Uplink);
+ }
+ if (m_Dnlink) {
+ m_Call->DeleteStream(m_Dnlink);
+ }
+
+ if (m_Call) {
+ m_Factory->DeleteCall(m_Call);
+ }
+
+ if (m_Factory) {
+ delete m_Factory;
+ }
+
+}
+
+void QTmsVoipTest::VoipCallSetup()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory && !m_Call) {
+ gboolean issupported(FALSE);
+ m_Factory->IsCallTypeSupported(QTMS_CALL_IP, issupported);
+ QVERIFY(issupported == TRUE);
+ status = m_Factory->CreateCall(QTMS_CALL_IP, m_Call, 0);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ guint ctxid;
+ m_Call->GetCallContextId(ctxid);
+ }
+
+}
+
+void QTmsVoipTest::SupportedFormats()
+{
+ SupportedUplinkFormats();
+ SupportedDnlinkFormats();
+}
+
+void QTmsVoipTest::SupportedUplinkFormats()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ status = m_Factory->GetSupportedFormats(QTMS_STREAM_UPLINK, m_UplCodecs);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ qDebug("Supported UPL codecs");
+ std::vector<QTMSFormat*>::iterator codecs = m_UplCodecs.begin();
+ QTMSFormatType fmttype;
+ for (; codecs < m_UplCodecs.end(); codecs++) {
+ (*codecs)->GetType(fmttype);
+ DisplayFormat(fmttype);
+ }
+ gint size = m_UplCodecs.size();
+ for (gint i = 0; i < size; i++) {
+ codecs = m_UplCodecs.begin();
+ m_Factory->DeleteFormat(*codecs);
+ m_UplCodecs.erase(codecs);
+ }
+
+}
+
+void QTmsVoipTest::SupportedDnlinkFormats()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ status = m_Factory->GetSupportedFormats(QTMS_STREAM_DOWNLINK, m_DnlCodecs);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ qDebug("Supported DNL codecs");
+ std::vector<QTMSFormat*>::iterator codecs = m_DnlCodecs.begin();
+ QTMSFormatType fmttype;
+ for (; codecs < m_DnlCodecs.end(); codecs++) {
+ (*codecs)->GetType(fmttype);
+ DisplayFormat(fmttype);
+ }
+ gint size = m_DnlCodecs.size();
+ for (gint i = 0; i < size; i++) {
+ codecs = m_DnlCodecs.begin();
+ m_Factory->DeleteFormat(*codecs);
+ m_DnlCodecs.erase(codecs);
+ }
+}
+
+void QTmsVoipTest::DisplayFormat(QTMSFormatType format)
+{
+ switch (format) {
+ case QTMS_FORMAT_AMR:
+ qDebug("AMR-NB");
+ break;
+ case QTMS_FORMAT_G711:
+ qDebug("G.711");
+ break;
+ case QTMS_FORMAT_G729:
+ qDebug("G.729");
+ break;
+ case QTMS_FORMAT_ILBC:
+ qDebug("iLBC");
+ break;
+ case QTMS_FORMAT_PCM:
+ qDebug("PCM-16");
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsVoipTest::CreateUplink()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Call) {
+ status = m_Call->CreateStream(QTMS_STREAM_UPLINK, m_Uplink);
+
+ m_UplinkSpy = new QSignalSpy(m_Uplink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ QVERIFY( m_UplinkSpy->isValid() );
+
+ // QCOMPARE(m_UplinkSpy->count(), 0 );
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ connect(m_Uplink, SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), this,
+ SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+ }
+}
+
+void QTmsVoipTest::CreateDnlink()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Call) {
+ status = m_Call->CreateStream(QTMS_STREAM_DOWNLINK, m_Dnlink);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_DnlinkSpy = new QSignalSpy(m_Dnlink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ QVERIFY( m_DnlinkSpy->isValid() );
+
+ // QCOMPARE(m_DnlinkSpy->count(), 0 );
+
+ connect(m_Dnlink, SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), this,
+ SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+ }
+}
+
+void QTmsVoipTest::CreateClientSource()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory && !m_ClientSource) {
+ status = m_Factory->CreateSource(QTMS_SOURCE_CLIENT, m_ClientSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsVoipTest::AddClientSourceToStream()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Dnlink && m_ClientSource) {
+ connect(static_cast<QTMSClientSource*> (m_ClientSource),
+ SIGNAL(FillBuffer(QTMSBuffer&)), this, SLOT(FillBuffer(QTMSBuffer&)));
+ status = m_Dnlink->AddSource(m_ClientSource);
+
+#ifdef __TEST_CODE_COVERAGE__
+ QTMSSourceType st;
+ static_cast<QTMSClientSource*> (m_ClientSource)->GetType(st);
+ gboolean enqueue(FALSE);
+ static_cast<QTMSClientSource*> (m_ClientSource)->GetEnqueueMode(enqueue);
+ static_cast<QTMSClientSource*> (m_ClientSource)->SetEnqueueMode(FALSE);
+ static_cast<QTMSClientSource*> (m_ClientSource)->Flush();
+#endif //__TEST_CODE_COVERAGE__
+ }
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsVoipTest::CreateClientSink()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_ClientSink) {
+ status = m_Factory->CreateSink(QTMS_SINK_CLIENT, m_ClientSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsVoipTest::AddClientSinkToStream()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Uplink && m_ClientSink) {
+ connect(static_cast<QTMSClientSink*> (m_ClientSink),
+ SIGNAL(ProcessBuffer(const QTMSBuffer*)), this,
+ SLOT(ProcessBuffer(const QTMSBuffer*)));
+ status = m_Uplink->AddSink(m_ClientSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsVoipTest::CreateMicSource()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_MicSource) {
+ status = m_Factory->CreateSource(TMS_SOURCE_MIC, m_MicSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsVoipTest::AddMicSourceToStream()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Uplink && m_MicSource) {
+ status = m_Uplink->AddSource(m_MicSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsVoipTest::CreateSpeakerSink()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_SpeakerSink) {
+ status = m_Factory->CreateSink(QTMS_SINK_SPEAKER, m_SpeakerSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsVoipTest::AddSpeakerSinkToStream()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Dnlink && m_SpeakerSink) {
+ status = m_Dnlink->AddSink(m_SpeakerSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+}
+
+void QTmsVoipTest::InitUplink()
+{
+ QVERIFY(m_Uplink->Init() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 1 );
+
+ GetSupportedBitrates();
+ SelectMinBitrate();
+ SelectMaxBitrate();
+ GetBitrate();
+
+ ToggleVad();
+ GetVad();
+
+ SetUpLinkG711ALAW();
+ SetUpLinkG711uLAW();
+ GetUpLinkG711Mode();
+
+ SetUpLinkILBC20MS();
+ SetUpLinkILBC30MS();
+ GetUpLinkILBCMode();
+
+}
+
+void QTmsVoipTest::InitDnlink()
+{
+ QVERIFY(m_Dnlink->Init() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 1 );
+ ToggleCng();
+ GetCng();
+ TogglePlc();
+ GetPlc();
+
+ SetDnLinkG711ALAW();
+ SetDnLinkG711uLAW();
+ GetDnLinkG711Mode();
+
+ SetDnLinkILBC20MS();
+ SetDnLinkILBC30MS();
+ GetDnLinkILBCMode();
+
+}
+void QTmsVoipTest::DeinitUplink()
+{
+ m_Uplink->Deinit();
+ QTest::qWait(1000);
+}
+
+void QTmsVoipTest::DeinitDnlink()
+{
+ m_Dnlink->Deinit();
+ QTest::qWait(1000);
+}
+
+void QTmsVoipTest::StartUplink()
+{
+ QVERIFY(m_Uplink->Start() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 2 );
+}
+
+void QTmsVoipTest::StartDnlink()
+{
+ QVERIFY(m_Dnlink->Start() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 2 );
+}
+void QTmsVoipTest::StopUplink()
+{
+#ifdef __TEST_CODE_COVERAGE__
+ QVERIFY(m_Uplink->Pause()== QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+#endif //__TEST_CODE_COVERAGE__
+ QVERIFY(m_Uplink->Stop() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 3 );
+}
+
+void QTmsVoipTest::StopDnlink()
+{
+#ifdef __TEST_CODE_COVERAGE__
+ QVERIFY(m_Dnlink->Pause() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+#endif //__TEST_CODE_COVERAGE__
+ QVERIFY(m_Dnlink->Stop() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 3 );
+}
+
+void QTmsVoipTest::CloseUplink()
+{
+ m_Uplink->Deinit();
+ QTest::qWait(1000);
+ if (m_Uplink) {
+ if (m_Gain) {
+ QVERIFY(m_Uplink->RemoveEffect(m_Gain)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_MicSource) {
+ QVERIFY(m_Uplink->RemoveSource(m_MicSource)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_ClientSink) {
+ QVERIFY(m_Uplink->RemoveSink(m_ClientSink)== QTMS_RESULT_SUCCESS);
+ }
+ }
+}
+
+void QTmsVoipTest::CloseDownlink()
+{
+ m_Dnlink->Deinit();
+ QTest::qWait(1000);
+ if (m_Dnlink) {
+ if (m_Vol) {
+ QVERIFY(m_Dnlink->RemoveEffect(m_Vol)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_ClientSource) {
+ QVERIFY(m_Dnlink->RemoveSource(m_ClientSource)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_SpeakerSink) {
+ QVERIFY(m_Dnlink->RemoveSink(m_SpeakerSink) == QTMS_RESULT_SUCCESS);
+ }
+ }
+
+}
+
+void QTmsVoipTest::ResetUplnkFormat()
+{
+ if (m_Uplink) {
+ switch (m_UpLinkCodec) {
+ case QTMS_FORMAT_PCM:
+ m_Uplink->ResetFormat(m_PCM16EncFormatIntfc);
+ break;
+ case QTMS_FORMAT_AMR:
+ m_Uplink->ResetFormat(m_AMRNBEncFormatIntfc);
+ break;
+ case QTMS_FORMAT_G711:
+ m_Uplink->ResetFormat(m_G711EncFormatIntfc);
+ break;
+ case QTMS_FORMAT_G729:
+ m_Uplink->ResetFormat(m_G729EncFormatIntfc);
+ break;
+ case QTMS_FORMAT_ILBC:
+ m_Uplink->ResetFormat(m_ILBCEncFormatIntfc);
+ break;
+ default:
+ break;
+ }
+ }
+
+}
+
+void QTmsVoipTest::ResetDnlnkFormat()
+{
+ if (m_Dnlink) {
+ switch (m_DnLinkCodec) {
+ case QTMS_FORMAT_PCM:
+ m_Dnlink->ResetFormat(m_PCM16DecFormatIntfc);
+ break;
+ case QTMS_FORMAT_AMR:
+ m_Dnlink->ResetFormat(m_AMRNBDecFormatIntfc);
+ break;
+ case QTMS_FORMAT_G711:
+ m_Dnlink->ResetFormat(m_G711DecFormatIntfc);
+ break;
+ case QTMS_FORMAT_G729:
+ m_Dnlink->ResetFormat(m_G729DecFormatIntfc);
+ break;
+ case QTMS_FORMAT_ILBC:
+ m_Dnlink->ResetFormat(m_ILBCDecFormatIntfc);
+ break;
+ default:
+ break;
+ }
+ }
+}
+
+void QTmsVoipTest::CreateFormat_data()
+{
+ QTest::addColumn<QTMSFormatType>("format");
+
+#ifndef __WINSCW__
+ QTest::newRow("G711")<<QTMS_FORMAT_G711;
+ QTest::newRow("G729")<<QTMS_FORMAT_G729;
+ QTest::newRow("iLBC")<<QTMS_FORMAT_ILBC;
+ QTest::newRow("AMR")<<QTMS_FORMAT_AMR;
+#endif
+ QTest::newRow("PCM") << QTMS_FORMAT_PCM;
+}
+
+void QTmsVoipTest::CreateFormat()
+{
+ gint decstatus(QTMS_RESULT_SUCCESS);
+ gint encstatus(QTMS_RESULT_SUCCESS);
+ gint setencstatus(QTMS_RESULT_SUCCESS);
+ gint setdecstatus(QTMS_RESULT_SUCCESS);
+ QFETCH(QTMSFormatType, format);
+
+ m_DnLinkCodec = format;
+ m_UpLinkCodec = format;
+
+ switch (format) {
+ case QTMS_FORMAT_G711:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_G711, m_G711DecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_G711, m_G711EncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_G711DecFormatIntfc);
+ setencstatus = m_Uplink->SetFormat(m_G711EncFormatIntfc);
+ qDebug("G.711 Set");
+
+ }
+ break;
+ case QTMS_FORMAT_G729:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_G729, m_G729DecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_G729, m_G729EncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_G729DecFormatIntfc);
+ setdecstatus = m_Uplink->SetFormat(m_G729EncFormatIntfc);
+ qDebug("G.729 Set");
+ }
+ break;
+ case QTMS_FORMAT_ILBC:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_ILBC, m_ILBCDecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_ILBC, m_ILBCEncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_ILBCDecFormatIntfc);
+ setencstatus = m_Uplink->SetFormat(m_ILBCEncFormatIntfc);
+ qDebug("iLBC Set");
+ }
+ break;
+ case QTMS_FORMAT_AMR:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_AMR, m_AMRNBDecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_AMR, m_AMRNBEncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_AMRNBDecFormatIntfc);
+ setencstatus = m_Uplink->SetFormat(m_AMRNBEncFormatIntfc);
+ qDebug("AMR-NB Set");
+ }
+ break;
+ case QTMS_FORMAT_PCM:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16EncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_PCM16DecFormatIntfc);
+ setencstatus = m_Uplink->SetFormat(m_PCM16EncFormatIntfc);
+ qDebug("PCM-16 Set");
+ }
+ break;
+ default:
+ break;
+ }
+
+ QVERIFY(decstatus == QTMS_RESULT_SUCCESS);
+ QVERIFY(encstatus == QTMS_RESULT_SUCCESS);
+ QVERIFY(setdecstatus == QTMS_RESULT_SUCCESS);
+ QVERIFY(setencstatus == QTMS_RESULT_SUCCESS);
+
+ InitUplink();
+ InitDnlink();
+}
+
+void QTmsVoipTest::ToggleVad()
+{
+ //m_Vad = (m_Vad) ? EFalse : ETrue;
+
+ m_Vad = ETrue;
+ switch (m_UpLinkCodec) {
+ case QTMS_FORMAT_G711:
+ static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->SetVADMode(m_Vad);
+ qDebug("G711 VAD set %d", m_Vad);
+ break;
+ case QTMS_FORMAT_G729:
+ static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->SetVADMode(m_Vad);
+ qDebug("G729 VAD set %d", m_Vad);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetVADMode(m_Vad);
+ qDebug("iLBC VAD set %d", m_Vad);
+ break;
+ case QTMS_FORMAT_AMR:
+ //static_cast<TMSAMRFormat*>(iAMRNBEncFormatIntfc)->SetVADMode(m_Vad);
+ break;
+ case QTMS_FORMAT_PCM:
+ // Not supported; just for testing failing condition
+ //static_cast<QTMSPCMFormat*>(iPCM16EncFormatIntfc)->SetVADMode(m_Vad);
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsVoipTest::GetVad()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ gboolean vad = EFalse;
+
+ switch (m_UpLinkCodec) {
+ case QTMS_FORMAT_G711:
+ status = static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->GetVADMode(vad);
+ qDebug("get G711 VAD: %d", vad);
+ break;
+ case QTMS_FORMAT_G729:
+ status = static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->GetVADMode(vad);
+ qDebug("get G729 VAD: %d", vad);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->GetVADMode(vad);
+ qDebug("get iLBC VAD: %d", vad);
+ break;
+ default:
+ return;
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ // QVERIFY(vad == m_Vad);
+
+
+}
+
+void QTmsVoipTest::ToggleCng()
+{
+ // m_Cng = (m_Cng) ? EFalse : ETrue;
+
+ m_Cng = ETrue;
+ switch (m_DnLinkCodec) {
+ case QTMS_FORMAT_G711:
+ //case EG711_10MS:
+ static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->SetCNG(m_Cng);
+ qDebug("G711 CNG set %d", m_Cng);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCDecFormatIntfc)->SetCNG(m_Cng);
+ qDebug("iLBC CNG set %d", m_Cng);
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsVoipTest::GetCng()
+{
+ gint status;
+ gboolean cng = EFalse;
+ switch (m_DnLinkCodec) {
+ case QTMS_FORMAT_G711:
+ status = static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->GetCNG(cng);
+ qDebug("G711 CNG: %d", cng);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = static_cast<QTMSILBCFormat*> (m_ILBCDecFormatIntfc)->GetCNG(cng);
+ qDebug("iLBC CNG: %d", cng);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ break;
+ default:
+ break;
+ }
+
+ // QVERIFY(cng == m_Cng);
+
+}
+
+void QTmsVoipTest::TogglePlc()
+{
+ // m_Plc = (m_Plc) ? EFalse : ETrue;
+ m_Plc = ETrue;
+ if (m_DnLinkCodec == QTMS_FORMAT_G711) {
+ static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->SetPlc(m_Plc);
+ qDebug("G711 PLC set %d", m_Plc);
+ }
+}
+
+void QTmsVoipTest::GetPlc()
+{
+ gboolean plc = EFalse;
+ if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) {
+ gint status = static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->GetPlc(plc);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("G711 PLC: %d", plc);
+ // QVERIFY(plc == m_Plc);
+ }
+}
+
+void QTmsVoipTest::SelectMinBitrate()
+{
+ if (m_BitratesVector.size() > 0) {
+ std::vector<guint>::iterator bitrate = m_BitratesVector.begin();
+ iBitrate = *bitrate;
+ SetBitrate(iBitrate);
+ qDebug("BR set %d", iBitrate);
+ }
+}
+
+void QTmsVoipTest::SelectMaxBitrate()
+{
+ if (m_BitratesVector.size() > 0) {
+ iBitrate = m_BitratesVector.back();
+ SetBitrate(iBitrate);
+ qDebug("BR set %d", iBitrate);
+ }
+}
+
+void QTmsVoipTest::SetBitrate(guint bitrate)
+{
+ switch (m_UpLinkCodec) {
+ case QTMS_FORMAT_G711:
+ static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->SetBitRate(bitrate);
+ qDebug("Set BR %d", bitrate);
+ break;
+ case QTMS_FORMAT_G729:
+ static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->SetBitRate(bitrate);
+ qDebug("Set BR %d", bitrate);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetBitRate(bitrate);
+ qDebug("Set BR %d", bitrate);
+ break;
+ case QTMS_FORMAT_AMR:
+ static_cast<QTMSAMRFormat*> (m_AMRNBEncFormatIntfc)->SetBitRate(bitrate);
+ qDebug("Set BR %d", bitrate);
+ break;
+ case QTMS_FORMAT_PCM:
+ default:
+ break;
+ }
+}
+
+void QTmsVoipTest::GetSupportedBitrates()
+{
+ gint numOfItems(0);
+ m_BitratesVector.clear();
+ gint status = GetSupportedBitrates(m_BitratesVector);
+
+ numOfItems = m_BitratesVector.size();
+ qDebug("BR Count %d", numOfItems);
+ std::vector<guint>::iterator itBitrates = m_BitratesVector.begin();
+ for (; itBitrates < m_BitratesVector.end(); itBitrates++) {
+ qDebug("BR %d", *itBitrates);
+ }
+}
+
+gint QTmsVoipTest::GetSupportedBitrates(BitRateVector& aBrArr)
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ switch (m_UpLinkCodec) {
+ case QTMS_FORMAT_G711:
+ status = m_G711EncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ case QTMS_FORMAT_G729:
+ status = m_G729EncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = m_ILBCEncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ case QTMS_FORMAT_AMR:
+ status = m_AMRNBEncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ case QTMS_FORMAT_PCM:
+ // not supported, but test for correct error handling
+ //status = m_PCM16EncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ default:
+ status = KErrNotSupported;
+ break;
+ }
+
+ return status;
+}
+
+void QTmsVoipTest::GetBitrate()
+{
+ guint bitrate;
+ switch (m_UpLinkCodec) {
+ case QTMS_FORMAT_G711:
+ static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->GetBitRate(bitrate);
+ qDebug("G711 bitrate: %d", bitrate);
+ break;
+ case QTMS_FORMAT_G729:
+ static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->GetBitRate(bitrate);
+ qDebug("G729 bitrate: %d", bitrate);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->GetBitRate(bitrate);
+ qDebug("iLBC bitrate: %d", bitrate);
+ break;
+ case QTMS_FORMAT_AMR:
+ static_cast<QTMSAMRFormat*> (m_AMRNBEncFormatIntfc)->GetBitRate(bitrate);
+ qDebug("AMR bitrate: %d", bitrate);
+ break;
+ case TMS_FORMAT_PCM:
+ default:
+ break;
+ }
+}
+
+void QTmsVoipTest::SetDnLinkG711ALAW()
+{
+ if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) {
+ gint status = static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->SetMode(
+ QTMS_G711_CODEC_MODE_ALAW);
+ qDebug("SetDnLinkG711ALAW status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("DNL G.711 Mode Set: [aLaw]");
+ }
+}
+
+void QTmsVoipTest::SetDnLinkG711uLAW()
+{
+ if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) {
+ gint status = static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->SetMode(
+ QTMS_G711_CODEC_MODE_MULAW);
+ qDebug("SetDnLinkG711uLAW status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("DNL G.711 Mode Set: [uLaw]");
+ }
+}
+
+void QTmsVoipTest::GetDnLinkG711Mode()
+{
+ QTMSG711CodecMode mode;
+ if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) {
+ gint status = static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->GetMode(mode);
+ qDebug("GetDnLinkG711Mode status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (mode == TMS_G711_CODEC_MODE_MULAW) {
+ qDebug("DNL G711 Mode: [uLaw]");
+ }
+ else {
+ qDebug("DNL G711 Mode: [aLaw]");
+ }
+ }
+}
+
+void QTmsVoipTest::SetDnLinkILBC20MS()
+{
+ if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC) {
+ gint status = static_cast<QTMSILBCFormat*> (m_ILBCDecFormatIntfc)->SetMode(
+ TMS_ILBC_CODEC_MODE_20MS_FRAME);
+ qDebug("SetDnLinkILBC20MS status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("DNL iLBC Mode Set: [20ms]");
+ }
+}
+
+void QTmsVoipTest::SetDnLinkILBC30MS()
+{
+ if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC) {
+ gint status = static_cast<QTMSILBCFormat*> (m_ILBCDecFormatIntfc)->SetMode(
+ TMS_ILBC_CODEC_MODE_30MS_FRAME);
+ qDebug("SetDnLinkILBC30MS status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("DNL iLBC Mode Set: [30ms]");
+ }
+}
+
+void QTmsVoipTest::GetDnLinkILBCMode()
+{
+ QTMSILBCCodecMode mode;
+ if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC) {
+ gint status = static_cast<QTMSILBCFormat*> (m_ILBCDecFormatIntfc)->GetMode(mode);
+ qDebug("GetDnLinkILBCMode status %d", status);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (mode == QTMS_ILBC_CODEC_MODE_30MS_FRAME) {
+ qDebug("DNL iLBC Mode: [30ms]");
+ }
+ else if (mode == QTMS_ILBC_CODEC_MODE_20MS_FRAME) {
+ qDebug("DNL iLBC Mode: [20ms]");
+ }
+ }
+}
+
+void QTmsVoipTest::SetUpLinkG711ALAW()
+{
+ if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711) {
+ gint status = static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->SetMode(
+ QTMS_G711_CODEC_MODE_ALAW);
+
+ qDebug("SetUpLinkG711ALAW status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("UPL G.711 Mode Set: [aLaw]");
+ }
+}
+
+void QTmsVoipTest::SetUpLinkG711uLAW()
+{
+ if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711) {
+ gint status = static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->SetMode(
+ QTMS_G711_CODEC_MODE_MULAW);
+ qDebug("SetUpLinkG711uLAW status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("UPL G.711 Mode Set: [uLaw]");
+ }
+}
+
+void QTmsVoipTest::GetUpLinkG711Mode()
+{
+ QTMSG711CodecMode mode;
+ if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711) {
+ gint status = static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->GetMode(mode);
+ qDebug("GetUpLinkG711Mode status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (mode == QTMS_G711_CODEC_MODE_MULAW) {
+ qDebug("UPL G.711 Mode: [uLaw]");
+ }
+ else if (mode == QTMS_G711_CODEC_MODE_ALAW) {
+ qDebug("UPL G.711 Mode: [aLaw]");
+ }
+ }
+
+}
+
+void QTmsVoipTest::SetUpLinkILBC20MS()
+{
+ if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC) {
+ gint status = static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetMode(
+ QTMS_ILBC_CODEC_MODE_20MS_FRAME);
+ qDebug("SetUpLinkILBC20MS status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("UPL iLBC Mode Set: [20ms]");
+ }
+}
+
+void QTmsVoipTest::SetUpLinkILBC30MS()
+{
+ if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC) {
+ gint status = static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetMode(
+ QTMS_ILBC_CODEC_MODE_30MS_FRAME);
+ qDebug("SetUpLinkILBC30MS status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("UPL iLBC Mode Set: [30ms]");
+ }
+}
+
+void QTmsVoipTest::GetUpLinkILBCMode()
+{
+ QTMSILBCCodecMode mode;
+ if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC) {
+ gint status = static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->GetMode(mode);
+ qDebug("GetUpLinkILBCMode status %d", status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (mode == QTMS_ILBC_CODEC_MODE_30MS_FRAME) {
+ qDebug("UPL iLBC Mode: [30ms]");
+ }
+ else if (mode == QTMS_ILBC_CODEC_MODE_20MS_FRAME) {
+ qDebug("UPL iLBC Mode: [20ms]");
+ }
+ }
+
+}
+
+void QTmsVoipTest::CreateStreamVol()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && m_Dnlink && !m_Vol) {
+ m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc);
+ m_Dnlink->SetFormat(m_PCM16DecFormatIntfc);
+
+ status = m_Factory->CreateEffect(QTMS_EFFECT_VOLUME, m_Vol);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSVolumeEffect*> (m_Vol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ if (m_Dnlink) {
+ status = m_Dnlink->AddEffect(m_Vol);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ InitDnlink();
+
+ StreamVol();
+
+ }
+}
+
+void QTmsVoipTest::StreamVol()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ guint maxvol(0);
+ if (m_Vol) {
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->GetMaxLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->SetLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->GetLevel(vol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(vol,maxvol);
+ }
+}
+
+void QTmsVoipTest::CreateStreamGain()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && m_Uplink && !m_Gain) {
+
+ m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16EncFormatIntfc);
+ m_Uplink->SetFormat(m_PCM16EncFormatIntfc);
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GAIN, m_Gain);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGainEffect*> (m_Gain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ status = m_Uplink->AddEffect(m_Gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ InitUplink();
+
+ StreamGain();
+ }
+}
+
+void QTmsVoipTest::StreamGain()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Gain) {
+ guint maxgain(0);
+ static_cast<QTMSGainEffect*> (m_Gain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ static_cast<QTMSGainEffect*> (m_Gain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGainEffect*> (m_Gain)->GetLevel(gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(gain,maxgain);
+ }
+
+}
+
+void QTmsVoipTest::CreateGlobalVol()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_GlobalVol) {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_VOL, m_GlobalVol);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGlobalVolEffect*> (m_GlobalVol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxvol(0);
+ status = static_cast<QTMSGlobalVolEffect*> (m_GlobalVol)->GetMaxLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global max vol %d", maxvol);
+
+ status = static_cast<QTMSGlobalVolEffect*> (m_GlobalVol)->SetLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSGlobalVolEffect*> (m_GlobalVol)->GetLevel(vol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global vol %d", vol);
+
+ QCOMPARE(vol,maxvol);
+
+ }
+}
+
+void QTmsVoipTest::CreateGlobalGain()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_GlobalGain) {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_GAIN, m_GlobalGain);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGlobalGainEffect*> (m_GlobalGain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxgain(0);
+ static_cast<QTMSGlobalGainEffect*> (m_GlobalGain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global max gain %d", maxgain);
+
+ static_cast<QTMSGlobalGainEffect*> (m_GlobalGain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGlobalGainEffect*> (m_GlobalGain)->GetLevel(gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global gain %d", gain);
+
+ QCOMPARE(gain,maxgain);
+
+ }
+}
+
+void QTmsVoipTest::CreateRouting_data()
+{
+
+ QTest::addColumn<QTMSAudioOutput>("routing");
+
+ QTest::newRow("Public") << QTMS_AUDIO_OUTPUT_PUBLIC;
+ QTest::newRow("Private") << QTMS_AUDIO_OUTPUT_PRIVATE;
+
+}
+
+void QTmsVoipTest::CreateRouting()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ QFETCH(QTMSAudioOutput, routing);
+
+ if (m_Factory && !m_Routing) {
+ m_UpLinkCodec = QTMS_FORMAT_PCM;
+ m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc);
+ m_Dnlink->SetFormat(m_PCM16DecFormatIntfc);
+
+ InitDnlink();
+ StartDnlink();
+
+ status = m_Factory->CreateGlobalRouting(m_Routing);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_RoutingSpy = new QSignalSpy(m_Routing,
+ SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,
+ QTMSSignalEvent,
+ QTMSAudioOutput)));
+
+ QVERIFY( m_RoutingSpy->isValid() );
+
+ //QCOMPARE(m_RoutingSpy->count(), 0 );
+ connect(m_Routing,
+ SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,QTMSSignalEvent,QTMSAudioOutput)),
+ this,
+ SLOT(GlobalRoutingEvent(const QTMSGlobalRouting&,QTMSSignalEvent,QTMSAudioOutput)));
+ }
+
+ if (m_Routing) {
+ status = m_Routing->SetOutput(routing);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+#ifndef __WINSCW__
+ QTest::qWait(1000);
+ //QCOMPARE(m_RoutingSpy->count(), 1 );
+#endif
+ QTMSAudioOutput current;
+ status = m_Routing->GetOutput(current);
+ DisplayDevice(current);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+#ifndef __WINSCW__
+ QCOMPARE(routing,current);
+#endif
+ StopDnlink();
+ }
+}
+
+void QTmsVoipTest::DisplayDevice(QTMSAudioOutput device)
+{
+ qDebug("Current Output:");
+
+ switch (device) {
+ case QTMS_AUDIO_OUTPUT_NONE:
+ {
+ qDebug("none");
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PUBLIC:
+ {
+ qDebug("Public");
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PRIVATE:
+ {
+ qDebug("Private");
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsVoipTest::CreateDnlinkDtmf()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ GString* dtmfstring(NULL);
+
+ if (m_Factory && m_Dnlink && !m_Dnlnkdtmf) {
+ m_UpLinkCodec = QTMS_FORMAT_PCM;
+ m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc);
+ m_Dnlink->SetFormat(m_PCM16DecFormatIntfc);
+
+ InitDnlink();
+
+ status = m_Factory->CreateDTMF(QTMS_STREAM_DOWNLINK, m_Dnlnkdtmf);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QSignalSpy dtmfspy(m_Dnlnkdtmf, SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ QVERIFY( dtmfspy.isValid() );
+
+ //QCOMPARE(dtmfspy.count(), 0 );
+
+ connect(m_Dnlnkdtmf, SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this,
+ SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ dtmfstring = g_string_new("4723");
+ status = m_Dnlnkdtmf->SetTone(dtmfstring);
+
+ m_Dnlnkdtmf->Start();
+ QTest::qWait(1000);
+ g_string_free(dtmfstring, TRUE);
+ //QCOMPARE(dtmfspy.count(), 1 );
+
+ status = m_Dnlnkdtmf->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(dtmfspy.count(), 2 );
+ }
+}
+
+void QTmsVoipTest::CreateRingTone()
+{
+
+}
+
+void QTmsVoipTest::CreateBuffer()
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory) {
+ QTMSBuffer* qtmsbuffer(NULL);
+ QTMSBufferType buftype(QTMS_BUFFER_MEMORY);
+ guint size(100);
+ status = m_Factory->CreateBuffer(QTMS_BUFFER_MEMORY, size, qtmsbuffer);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (qtmsbuffer) {
+ qtmsbuffer->GetType(buftype);
+ qtmsbuffer->GetDataSize(size);
+ qtmsbuffer->SetDataSize(size);
+ guint8* pbuf(NULL);
+ qtmsbuffer->GetDataPtr(pbuf);
+ guint64 ts(0);
+ qtmsbuffer->GetTimeStamp(ts);
+ qtmsbuffer->SetTimeStamp(ts);
+ m_Factory->DeleteBuffer(qtmsbuffer);
+ }
+ }
+}
+
+void QTmsVoipTest::FillBuffer(QTMSBuffer& buffer)
+{
+ //TODO: add loopback test and file playback
+#ifdef __TEST_CODE_COVERAGE__
+ if (m_ClientSource) {
+ static_cast<QTMSClientSource*> (m_ClientSource)->BufferFilled(buffer);
+ }
+#endif
+
+}
+
+void QTmsVoipTest::BufferProcessed(QTMSBuffer* /*buffer*/, gint /*reason*/)
+{
+}
+
+void QTmsVoipTest::ProcessBuffer(const QTMSBuffer* buffer)
+{
+ //TODO: add loopback test
+#ifdef __TEST_CODE_COVERAGE__
+ QTMSBuffer* recBuf(NULL);
+ recBuf = const_cast<QTMS::QTMSBuffer*> (buffer);
+ if (m_ClientSink) {
+ static_cast<QTMSClientSink*> (m_ClientSink)->BufferProcessed(recBuf);
+ }
+#endif
+}
+
+void QTmsVoipTest::EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event)
+{
+ QTMSEffectType effecttype;
+ const_cast<QTMSEffect&> (tmseffect).GetType(effecttype);
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ switch (effecttype) {
+ case QTMS_EFFECT_GLOBAL_VOL:
+ {
+ switch (event.type) {
+ case QTMS_EVENT_EFFECT_VOL_CHANGED:
+ qDebug("Global vol effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case QTMS_EFFECT_GLOBAL_GAIN:
+ {
+ switch (event.type) {
+ case QTMS_EVENT_EFFECT_GAIN_CHANGED:
+ qDebug("Global gain effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case QTMS_EFFECT_VOLUME:
+ {
+ switch (event.type) {
+ case QTMS_EVENT_EFFECT_GAIN_CHANGED:
+ qDebug("Stream vol effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case QTMS_EFFECT_GAIN:
+ {
+ switch (event.type) {
+ case QTMS_EVENT_EFFECT_GAIN_CHANGED:
+ qDebug("Stream gain effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsVoipTest::GlobalRoutingEvent(const QTMSGlobalRouting& /*routing*/, QTMSSignalEvent event,
+ QTMSAudioOutput /*output*/)
+{
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type) {
+ case QTMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED:
+ qDebug("Available outputs changed");
+ break;
+ case QTMS_EVENT_ROUTING_OUTPUT_CHANGED:
+ qDebug("output changed");
+ break;
+ case QTMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE:
+ qDebug("set output complete");
+ break;
+ default:
+ break;
+ }
+
+}
+
+void QTmsVoipTest::TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event)
+{
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ gint streamId;
+ streamId = const_cast<QTMSStream&> (stream).GetStreamId();
+ qDebug("StreamID %d", streamId);
+ gint state;
+ state = const_cast<QTMSStream&> (stream).GetState();
+ QVERIFY(state == event.curr_state);
+
+ switch (const_cast<QTMSStream&> (stream).GetStreamType()) {
+ case QTMS_STREAM_UPLINK:
+ {
+ switch (event.type) {
+ case QTMS_EVENT_STREAM_STATE_CHANGED:
+ {
+ switch (event.curr_state) {
+ case QTMS_STREAM_INITIALIZED:
+ {
+ qDebug("Uplink initialized ");
+ break;
+ }
+ case QTMS_STREAM_UNINITIALIZED:
+ qDebug("Uplink uninitialized ");
+ break;
+ case QTMS_STREAM_PAUSED:
+ qDebug("Uplink paused ");
+ break;
+ case QTMS_STREAM_STARTED:
+ qDebug("Uplink started ");
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ case QTMS_STREAM_DOWNLINK:
+ {
+ switch (event.type) {
+ case QTMS_EVENT_STREAM_STATE_CHANGED:
+ {
+ switch (event.curr_state) {
+ case QTMS_STREAM_INITIALIZED:
+ qDebug("Downlink initialized ");
+ break;
+ case QTMS_STREAM_UNINITIALIZED:
+ qDebug("Downlink uninitialized ");
+ break;
+ case QTMS_STREAM_PAUSED:
+ qDebug("Downlink paused ");
+ break;
+ case QTMS_STREAM_STARTED:
+ qDebug("Downlink started ");
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+void QTmsVoipTest::RingtoneEvent(const QTMSRingTone& /*rt*/, QTMSSignalEvent event)
+{
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type) {
+ case QTMS_EVENT_RINGTONE_OPEN_COMPLETE:
+ qDebug("RT Open Complete");
+ break;
+ case QTMS_EVENT_RINGTONE_PLAY_COMPLETE:
+ qDebug("RT Play Complete");
+ break;
+ default:
+ break;
+ }
+}
+
+void QTmsVoipTest::DTMFEvent(const QTMSDTMF& /*dtmf*/, QTMSSignalEvent event)
+{
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type) {
+ case QTMS_EVENT_DTMF_TONE_STARTED:
+ qDebug("DTMF Started");
+ break;
+ case QTMS_EVENT_DTMF_TONE_STOPPED:
+ qDebug("DTMF Stopped");
+ break;
+ default:
+ break;
+ }
+}
+
+QTEST_MAIN_S60(QTmsVoipTest)
+
+#include "qtmsvoiptest.moc"
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.pro Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,42 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+# Project specification file for tsrc.
+#
+
+TEMPLATE = app
+TARGET =
+QT += testlib
+
+
+TARGET.CAPABILITY = CAP_APPLICATION MultimediaDD
+TARGET.EPOCALLOWDLLDATA = 1
+
+
+LIBS += -lqtmsapi \
+ -llibglib \
+ -llibgobject \
+ -llibgmodule \
+ -llibstdcpp
+
+DEPENDPATH += .
+INCLUDEPATH += .
+
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
+ $$OS_LAYER_LIBC_SYSTEMINCLUDE \
+ $$OS_LAYER_GLIB_SYSTEMINCLUDE \
+ ..\..\..\qt_telephony_multimedia_service_api\inc
+# Input
+HEADERS += qtestmains60.h
+SOURCES += qtmsvoiptest.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/tsrc.pro Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,26 @@
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+
+#include <platform_paths.hrh>
+
+TEMPLATE = subdirs
+
+BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>"
+
+
+SUBDIRS = qtmscstest \
+ qtmsvoiptest
+
+
+SYMBIAN_PLATFORMS = DEFAULT
--- a/mmappfw_plat/videoplaylist_utility_api/tsrc/videoplaylistutilitytest/group/videoplaylistutilitytest.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mmappfw_plat/videoplaylist_utility_api/tsrc/videoplaylistutilitytest/group/videoplaylistutilitytest.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -15,7 +15,7 @@
*
*/
-// Version : %version: 3 %
+// Version : %version: 5 %
#include <platform_paths.hrh>
--- a/mpx/collectionframework/collectionengine/group/mpxcollectionengine.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/collectionframework/collectionengine/group/mpxcollectionengine.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -48,3 +48,5 @@
deffile ../bwinscw/
#endif
+SMPSAFE
+
--- a/mpx/collectionframework/collectionengine/src/mpxcollectioncache.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/collectionframework/collectionengine/src/mpxcollectioncache.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -28,6 +28,7 @@
#include <mpxcollectionopenlresultdef.h>
#include <mpxlog.h>
#include "mpxcollectioncache.h"
+#include <mmf/common/mmfcontrollerpluginresolver.h>
// CONSTANTS
const TInt KMPXRootNodeId = 0;
@@ -589,6 +590,7 @@
void CMPXCollectionCacheNode::HandleChangeL( TMPXItemId aChangeItemId,
RPointerArray<CMPXCollectionCacheNode>& aArray )
{
+ CleanupResetAndDestroyPushL(aArray);
// This node is affected
// All child nodes are invalid!
//
@@ -647,6 +649,7 @@
} // for
} // if iResults
} // if no children
+ CleanupStack::Pop(&aArray);
}
// ----------------------------------------------------------------------------
@@ -827,6 +830,7 @@
// O(n^2) complexity here is OK, Merging keeps the number of items
// very small. Less than 3 items are alive at a time
//
+ CleanupClosePushL( aArray );
RArray<TMPXOpenDataBlock> newArray;
CleanupClosePushL( newArray );
@@ -869,6 +873,7 @@
MPX_DEBUG3("Order: %i %i", newArray[i].iOffset, newArray[i].iSize );
}
CleanupStack::PopAndDestroy( &newArray );
+ CleanupStack::Pop();
}
#ifdef _DEBUG
--- a/mpx/collectionframework/collectionengine/src/mpxcollectionclientcontext.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/collectionframework/collectionengine/src/mpxcollectionclientcontext.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -2483,7 +2483,10 @@
{
iCacheMedia = AttributesCacheableL( iBrowsePath->OpenAttributes(), *iBrowsePath );
}
- plugin->OpenL(*iBrowsePath, iBrowsePath->OpenAttributes(), iFilter);
+ if( iBrowsePath )
+ {
+ plugin->OpenL(*iBrowsePath, iBrowsePath->OpenAttributes(), iFilter);
+ }
}
}
--- a/mpx/collectionframework/collectionengine/src/mpxcollectionengine.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/collectionframework/collectionengine/src/mpxcollectionengine.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -36,6 +36,7 @@
#include <mpxmessagegeneraldefs.h>
#include <mpxmessagecontainerdefs.h>
#include <mpxmessagepluginupdatedefs.h>
+#include <mmf/common/mmfcontrollerpluginresolver.h>
#include "mpxcollectionpluginhandler.h"
#include "mpxcollectioncache.h"
@@ -211,12 +212,21 @@
break;
}
case EMcMsgDiskInserted:
+ {
+ // inverting the notification order, this to get the message to
+ // the UI faster.
for( TInt i=0; i<count; ++i )
{
context = iContexts[i];
context->NotifyL( aMsg, aData );
}
notify = EFalse;
+ command = EMcReOpenCollection;
+ data = aData;
+ // Clear the cache
+ clearCache = ETrue;
+ break;
+ }
case EMcMsgFormatEnd:
case EMcMsgUSBMassStorageEnd:
{
@@ -224,7 +234,7 @@
data = aData;
// Clear the cache
- clearCache = ETrue;
+ clearCache = ETrue;
break;
}
case EMcMsgUSBMTPStart:
@@ -316,6 +326,7 @@
EXPORT_C void CMPXCollectionEngine::GetSupportedTypesL(
RPointerArray<CMPXCollectionType>& aArray )
{
+ CleanupResetAndDestroyPushL(aArray);
RArray<TUid> uids;
CleanupClosePushL(uids);
iPluginHandler->GetPluginUids(uids);
@@ -340,6 +351,7 @@
CleanupStack::Pop(type);
}
CleanupStack::PopAndDestroy(&uids);
+ CleanupStack::Pop(&aArray);
}
// ----------------------------------------------------------------------------
--- a/mpx/collectionframework/collectionserver/group/mpxcollectionserver.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/collectionframework/collectionserver/group/mpxcollectionserver.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -49,3 +49,5 @@
LIBRARY mpxcollectionengine.lib
LIBRARY mpxcommon.lib
+SMPSAFE
+
--- a/mpx/collectionframework/collectionutility/group/mpxcollectionutility.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/collectionframework/collectionutility/group/mpxcollectionutility.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -47,3 +47,5 @@
deffile ../bwinscw/
#endif
+SMPSAFE
+
--- a/mpx/collectionframework/collectionutility/src/mpxcollectionopenutility.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/collectionframework/collectionutility/src/mpxcollectionopenutility.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -221,8 +221,8 @@
EXPORT_C void CMPXCollectionOpenUtility::SetDirection( TDirection aDirection )
{
iFetchDirection = aDirection;
-
- if( iFetchStep == EFetchItems || iFetchStep == EFetchCommand )
+
+ if( iFetchStep == EFetchItems || iFetchStep == EFetchCommand || iFetchStep == EFetchCount )
{
TBool skipFirst = iFetchStep == EFetchCommand ? ETrue : EFalse;
@@ -602,10 +602,8 @@
MPX_DEBUG1("CMPXCollectionOpenUtility::DoHandleFetchItemsL <---" );
// Task is done, and compact the list
//
- TInt curOffset(0);
if( iIncrementalChunks.Count() )
{
- curOffset = iIncrementalChunks[0].iOffset;
iIncrementalChunks.Remove(0);
DoCompactTaskListL( aEntries );
}
@@ -651,12 +649,9 @@
iFetchStep = EFetchNone;
}
- // Callback to observer with some treshold to avoid over redrawing
- // Playlists need every handle open to update the path
+ // Callback to observer
//
- if( iObs &&
- (Abs<TInt>(aIndex-curOffset) < iFetchInfo.iSize ||
- iFirstOpen || iMode == KMcModePlaylist || complete ) )
+ if( iObs )
{
iFirstOpen = EFalse;
MPX_DEBUG1("CMPXCollectionOpenUtility::DoHandleFetchItemsL callback" );
--- a/mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -37,9 +37,9 @@
#include "mpxcollectionplaylist.h"
// CONSTANTS
-const TInt KIncrementalFetchSize = 400;
-
-const TInt KIncrementalDelay = 250000;
+const TInt KIncrementalFetchSize = 1000;
+const TInt KIncrementalDelayNone = 0;
+const TInt KIncrementalDelay = 100000; // 100 ms
// -----------------------------------------------------------------------------
// Two-phased constructor.
@@ -1412,13 +1412,11 @@
RArray<TMPXAttribute> attrs;
CleanupClosePushL( attrs );
TArray<TMPXAttribute> ary = attrs.Array();
-
- // Start the utility, 2 second delays so we don't flood the collection
- // Have some delay as playlists are often destroyed!
- //
- iIncOpenUtil->SetDelay( KIncrementalDelay );
- iIncOpenUtil->StartL( *copy, ary, KIncrementalFetchSize, iPath->Index() ,
- CMPXCollectionOpenUtility::EFetchNormal );
+
+ iIncOpenUtil->SetDelay( KIncrementalDelayNone );
+ iIncOpenUtil->StartL( *copy, ary, KIncrementalFetchSize, iPath->Index() ,
+ CMPXCollectionOpenUtility::EFetchDown );
+ iIncOpenUtil->SetDelay( KIncrementalDelay );
CleanupStack::PopAndDestroy( &attrs );
CleanupStack::PopAndDestroy( copy );
}
--- a/mpx/commonframework/common/group/mpxcommon.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/commonframework/common/group/mpxcommon.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -92,4 +92,6 @@
deffile ../bwinscw/
#endif
+SMPSAFE
+
// End of file
--- a/mpx/commonframework/common/src/mpxcollectionpath.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/commonframework/common/src/mpxcollectionpath.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -606,6 +606,7 @@
//
EXPORT_C void CMPXCollectionPath::SelectionL(RArray<TMPXItemId>& aIds) const
{
+ CleanupClosePushL(aIds);
aIds.Reset();
TInt idCount(iIds.Count());
TInt selCount(iSelection.Count());
@@ -617,6 +618,7 @@
aIds.AppendL(iIds[idIndex]);
}
}
+ CleanupStack::Pop();
}
// -----------------------------------------------------------------------------
--- a/mpx/commonframework/common/src/mpxdataarray.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/commonframework/common/src/mpxdataarray.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -43,7 +43,7 @@
d->Release(aClientHandle);
}
// Now free the actual buffer
- RMPXHeapManager& m=RMPXHeapManager::HeapManager(aClientHandle);
+ RMPXHeapManager::HeapManager(aClientHandle);
iUid=0;
iBufLen=0;
}
--- a/mpx/commonframework/common/src/mpxdrmmediawmaagent.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/commonframework/common/src/mpxdrmmediawmaagent.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -705,6 +705,8 @@
User::LeaveIfError( lex.Val( dateInt ) );
--dateInt;
// convert back to buffer
+ // coverity[size_error]
+ // coverity[buffer_alloc]
HBufC* datebuf = HBufC::NewLC( KMPXWmaDrmMaxTimeBufSize );
TPtr datebufPtr = datebuf->Des();
--- a/mpx/commonframework/common/src/mpxheapmanager.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/commonframework/common/src/mpxheapmanager.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -80,7 +80,7 @@
//
// Create first free heap cell
//
- RMPXHeapCell* cell=new(aChunk.Base()+hmSize)RMPXHeapCell(0,iEndOffset-hmSize);
+ new(aChunk.Base()+hmSize)RMPXHeapCell(0,iEndOffset-hmSize);
// set up free cell list header
iFree.iNextOffset = hmSize;
iFree.iLen = 0;
--- a/mpx/commonframework/common/src/mpxpluginhandlerbase.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/commonframework/common/src/mpxpluginhandlerbase.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -539,7 +539,7 @@
//
EXPORT_C const TDesC& CMPXPluginHandlerBase::PluginName(const TUid& aUid) const
{
- const TDesC* name=&KNullDesC;
+ const TDesC* name;
TInt index(IndexOf(aUid));
MPX_ASSERT(KErrNotFound!=index && index<iPluginInfoArray.Count());
name = &iPluginInfoArray[index]->DisplayName();
--- a/mpx/commonframework/common/src/mpxplugininfo.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/commonframework/common/src/mpxplugininfo.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -427,6 +427,7 @@
EXPORT_C void CMPXPluginInfo::ExtractUidsFromTextL( const TDesC8& aData,
RArray<TUid>& aArray )
{
+ CleanupClosePushL(aArray);
aArray.Reset();
const TUint8* p = aData.Ptr();
TInt startPos(0);
@@ -461,6 +462,7 @@
TaggedDataParser::ConvertText8ToTIntL(element, val);
aArray.AppendL(TUid::Uid(val));
}
+ CleanupStack::Pop();
}
// ---------------------------------------------------------------------------
--- a/mpx/commonframework/common/src/mpxuser.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/commonframework/common/src/mpxuser.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -256,6 +256,7 @@
const TArray<TMPXAttribute>& aSrc,
RArray<TMPXAttribute>& aDest)
{
+ CleanupClosePushL(aDest);
aDest.Reset();
for (TInt i = 0; i < aSrc.Count(); i++)
{
@@ -271,6 +272,7 @@
d = TMPXAttribute(d.ContentId(), d.AttributeId() | s.AttributeId());
}
}
+ CleanupStack::Pop();
}
// ----------------------------------------------------------------------------
@@ -384,6 +386,7 @@
//
EXPORT_C void MPXUser::InternalizeL(RArray<TMPXItemId>& aArray, RReadStream& aStream)
{
+ CleanupClosePushL(aArray);
TInt n=aStream.ReadInt32L();
for (TInt i=0;i<n;++i)
{
@@ -391,6 +394,7 @@
TUint32 id2(aStream.ReadUint32L());
aArray.AppendL(TMPXItemId(id1,id2));
}
+ CleanupStack::Pop();
}
// ----------------------------------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/bwins/mpxviewframeworkqt.def Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,30 @@
+EXPORTS
+ ?trUtf8@MpxViewPlugin@@SA?AVQString@@PBD0@Z @ 1 NONAME ; class QString MpxViewPlugin::trUtf8(char const *, char const *)
+ ?tr@MpxViewFramework@@SA?AVQString@@PBD0H@Z @ 2 NONAME ; class QString MpxViewFramework::tr(char const *, char const *, int)
+ ??0MpxViewFramework@@QAE@PAVQWidget@@V?$QFlags@W4WindowFlag@Hb@@@@@Z @ 3 NONAME ; MpxViewFramework::MpxViewFramework(class QWidget *, class QFlags<enum Hb::WindowFlag>)
+ ??1MpxViewPluginResolver@@UAE@XZ @ 4 NONAME ; MpxViewPluginResolver::~MpxViewPluginResolver(void)
+ ?tr@MpxViewPlugin@@SA?AVQString@@PBD0H@Z @ 5 NONAME ; class QString MpxViewPlugin::tr(char const *, char const *, int)
+ ??0MpxViewPluginResolver@@QAE@ABV?$QList@H@@@Z @ 6 NONAME ; MpxViewPluginResolver::MpxViewPluginResolver(class QList<int> const &)
+ ?tr@MpxViewFramework@@SA?AVQString@@PBD0@Z @ 7 NONAME ; class QString MpxViewFramework::tr(char const *, char const *)
+ ?qt_metacast@MpxViewFramework@@UAEPAXPBD@Z @ 8 NONAME ; void * MpxViewFramework::qt_metacast(char const *)
+ ?trUtf8@MpxViewFramework@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString MpxViewFramework::trUtf8(char const *, char const *, int)
+ ?getStaticMetaObject@MpxViewFramework@@SAABUQMetaObject@@XZ @ 10 NONAME ; struct QMetaObject const & MpxViewFramework::getStaticMetaObject(void)
+ ?staticMetaObject@MpxViewFramework@@2UQMetaObject@@B @ 11 NONAME ; struct QMetaObject const MpxViewFramework::staticMetaObject
+ ?qt_metacall@MpxViewFramework@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 12 NONAME ; int MpxViewFramework::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?trUtf8@MpxViewFramework@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString MpxViewFramework::trUtf8(char const *, char const *)
+ ?staticMetaObject@MpxViewPlugin@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const MpxViewPlugin::staticMetaObject
+ ?metaObject@MpxViewPlugin@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * MpxViewPlugin::metaObject(void) const
+ ?metaObject@MpxViewFramework@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * MpxViewFramework::metaObject(void) const
+ ?resolvePlugin@MpxViewPluginResolver@@QAEPAVMpxViewPlugin@@XZ @ 17 NONAME ; class MpxViewPlugin * MpxViewPluginResolver::resolvePlugin(void)
+ ?tr@MpxViewPlugin@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString MpxViewPlugin::tr(char const *, char const *)
+ ?getStaticMetaObject@MpxViewPlugin@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & MpxViewPlugin::getStaticMetaObject(void)
+ ??1MpxViewFramework@@UAE@XZ @ 20 NONAME ; MpxViewFramework::~MpxViewFramework(void)
+ ??_EMpxViewFramework@@UAE@I@Z @ 21 NONAME ; MpxViewFramework::~MpxViewFramework(unsigned int)
+ ?resolvePlugin@MpxViewFramework@@UAEPAVMpxViewPlugin@@ABV?$QList@H@@@Z @ 22 NONAME ; class MpxViewPlugin * MpxViewFramework::resolvePlugin(class QList<int> const &)
+ ?qt_metacast@MpxViewPlugin@@UAEPAXPBD@Z @ 23 NONAME ; void * MpxViewPlugin::qt_metacast(char const *)
+ ?viewPlugin@MpxViewPlugin@@UAEPAV1@XZ @ 24 NONAME ; class MpxViewPlugin * MpxViewPlugin::viewPlugin(void)
+ ??_EMpxViewPluginResolver@@UAE@I@Z @ 25 NONAME ; MpxViewPluginResolver::~MpxViewPluginResolver(unsigned int)
+ ?qt_metacall@MpxViewPlugin@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 26 NONAME ; int MpxViewPlugin::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?command@MpxViewPlugin@@IAEXH@Z @ 27 NONAME ; void MpxViewPlugin::command(int)
+ ?trUtf8@MpxViewPlugin@@SA?AVQString@@PBD0H@Z @ 28 NONAME ; class QString MpxViewPlugin::trUtf8(char const *, char const *, int)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/eabi/mpxviewframeworkqt.def Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,34 @@
+EXPORTS
+ _ZN13MpxViewPlugin11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
+ _ZN13MpxViewPlugin11qt_metacastEPKc @ 2 NONAME
+ _ZN13MpxViewPlugin16staticMetaObjectE @ 3 NONAME DATA 16
+ _ZN13MpxViewPlugin19getStaticMetaObjectEv @ 4 NONAME
+ _ZN13MpxViewPlugin7commandEi @ 5 NONAME
+ _ZN16MpxViewFramework11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME
+ _ZN16MpxViewFramework11qt_metacastEPKc @ 7 NONAME
+ _ZN16MpxViewFramework13resolvePluginERK5QListIiE @ 8 NONAME
+ _ZN16MpxViewFramework16staticMetaObjectE @ 9 NONAME DATA 16
+ _ZN16MpxViewFramework19getStaticMetaObjectEv @ 10 NONAME
+ _ZN16MpxViewFrameworkC1EP7QWidget6QFlagsIN2Hb10WindowFlagEE @ 11 NONAME
+ _ZN16MpxViewFrameworkC2EP7QWidget6QFlagsIN2Hb10WindowFlagEE @ 12 NONAME
+ _ZN16MpxViewFrameworkD0Ev @ 13 NONAME
+ _ZN16MpxViewFrameworkD1Ev @ 14 NONAME
+ _ZN16MpxViewFrameworkD2Ev @ 15 NONAME
+ _ZN21MpxViewPluginResolver13resolvePluginEv @ 16 NONAME
+ _ZN21MpxViewPluginResolverC1ERK5QListIiE @ 17 NONAME
+ _ZN21MpxViewPluginResolverC2ERK5QListIiE @ 18 NONAME
+ _ZN21MpxViewPluginResolverD0Ev @ 19 NONAME
+ _ZN21MpxViewPluginResolverD1Ev @ 20 NONAME
+ _ZN21MpxViewPluginResolverD2Ev @ 21 NONAME
+ _ZNK13MpxViewPlugin10metaObjectEv @ 22 NONAME
+ _ZNK16MpxViewFramework10metaObjectEv @ 23 NONAME
+ _ZTI13MpxViewPlugin @ 24 NONAME
+ _ZTI16MpxViewFramework @ 25 NONAME
+ _ZTI21MpxViewPluginResolver @ 26 NONAME
+ _ZTI22MpxPluginViewInterface @ 27 NONAME
+ _ZTV13MpxViewPlugin @ 28 NONAME
+ _ZTV16MpxViewFramework @ 29 NONAME
+ _ZTV21MpxViewPluginResolver @ 30 NONAME
+ _ZThn8_N16MpxViewFrameworkD0Ev @ 31 NONAME
+ _ZThn8_N16MpxViewFrameworkD1Ev @ 32 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/inc/mpxplugindata.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,105 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef MPXPLUGINDATA_H
+#define MPXPLUGINDATA_H
+
+// INCLUDES
+#include <QList>
+// CLASS DECLARATION
+
+/**
+ * QMpxPluginData
+ *
+ */
+class MpxPluginData
+ {
+public:
+ enum TMPXViewPluginPriorities{
+ EMPXViewPluginPriorityLowest = -20000,
+ EMPXViewPluginPriorityLow = -10000,
+ EMPXViewPluginPriorityNormal = 0,
+ EMPXViewPluginPriorityHigh = 10000,
+ EMPXViewPluginPriorityHighest = 20000
+ };
+
+ /**
+ * Constructor
+ */
+ MpxPluginData( );
+
+ /**
+ * Destructor.
+ */
+ ~MpxPluginData();
+
+ /**
+ * Plugin id geter
+ * @return plugin id
+ */
+ int id() const;
+
+ /**
+ * Plugin interface id geter
+ * @return interface id implemented by plugin
+ */
+ int type() const;
+
+ /**
+ * Plugin priority geter
+ * @return priority of plugin
+ */
+ TMPXViewPluginPriorities priority() const;
+
+ /**
+ * Plugin supported functionality geter
+ * @return list of functionality delivered by plugin
+ */
+ const QList< int >& supportedId() const;
+
+ /**
+ * Plugin id seter
+ * @param value - new value of plugin id
+ */
+ void setId( int value );
+
+ /**
+ * Plugin interface id seter
+ * @param value - new value of plugin interface id
+ */
+ void setType( int value );
+
+ /**
+ * Plugin priority seter
+ * @param value - new plugin priority
+ */
+ void setPriority( TMPXViewPluginPriorities value );
+
+ /**
+ * Plugin supporterd functionality seter
+ * @param value - new functionality supported by plugin
+ */
+ void addSupportedId( int value );
+
+private:
+ int pluginId;
+ int pluginType;
+ TMPXViewPluginPriorities pluginPriority;
+ QList< int > pluginSupportedId;
+ };
+
+#endif // MPXPLUGINDATA_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/inc/mpxplugindataparser.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,56 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef QMPXPLUDINDATAPARSER_H
+#define QMPXPLUDINDATAPARSER_H
+
+class MpxPluginData;
+class QString;
+class QStringRef;
+
+/**
+ * QMpxPluginDataParser
+ *
+ */
+class MpxPluginDataParser
+ {
+public:
+
+ /**
+ * Constructor
+ */
+ MpxPluginDataParser();
+
+ /**
+ * Destructor.
+ */
+ ~MpxPluginDataParser();
+
+ const MpxPluginData* data() const;
+
+ MpxPluginData* takeData();
+
+ void parse( const QString& aData );
+private:
+ bool findNextNode( const QString& aSrc, int& aOffset, QStringRef& aTagName, QStringRef& aTagContent ) const;
+ bool parseInt( int& aDst, const QString& aSrc ) const ;
+ void parseSupportedId( const QString& aValue );
+private:
+ MpxPluginData* dataPtr;
+ };
+
+#endif // QMPXPLUDINDATAPARSER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/inc/mpxviewpluginresolver.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+// This file defines the API for MpxViewPluginResolver.dll
+
+#ifndef __MPXVIEWPLUGINRESOLVER_H__
+#define __MPXVIEWPLUGINRESOLVER_H__
+
+#include <QList>
+
+#include <mpxviewpluginqt.h>
+
+#ifdef BUILD_VIEWFRAMEWORK
+#define VFDLL_EXPORT Q_DECL_EXPORT
+#else
+#define VFDLL_EXPORT Q_DECL_IMPORT
+#endif
+
+class MpxViewPluginResolverPrivate;
+
+class VFDLL_EXPORT MpxViewPluginResolver
+ {
+public:
+ // new functions
+ MpxViewPluginResolver( const QList<int>& );
+ virtual ~MpxViewPluginResolver();
+ MpxViewPlugin* resolvePlugin();
+private:
+ MpxViewPluginResolverPrivate* impl;
+ };
+
+#endif // __MPXVIEWPLUGINRESOLVER_H__
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/inc/mpxviewpluginresolver_p.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,43 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+// This file defines the API for MpxViewPluginResolver.dll
+
+#ifndef __MPXVIEWPLUGINRESOLVERPRIVATE_H__
+#define __MPXVIEWPLUGINRESOLVERPRIVATE_H__
+
+#include <QList>
+#include <xqpluginloader.h>
+#include <xqplugininfo.h>
+
+class MpxViewPlugin;
+class MpxPluginViewInterface;
+
+class MpxViewPluginResolverPrivate
+{
+public:
+ // new functions
+ MpxViewPluginResolverPrivate( const QList<int>& );
+ ~MpxViewPluginResolverPrivate();
+ MpxViewPlugin* resolvePlugin();
+private:
+ MpxPluginViewInterface* resolveAndLoadPlugins( const QList< XQPluginInfo >& impls );
+private:
+ const QList<int> requestedPlugins;
+};
+#endif // __MPXVIEWPLUGINRESOLVERPRIVATE_H__
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/mpxviewframeworkqt.pro Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,79 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+#
+
+TEMPLATE = lib
+
+TARGET = mpxviewframeworkqt
+CONFIG += qt hb
+
+TARGET.UID3 = 0x2002B33F
+
+# QT -= gui
+
+DEPENDPATH += inc \
+ include \
+ src
+
+INCLUDEPATH += . \
+ ./inc \
+ ./include \
+ ../viewframework/include \
+ /epoc32/include/mw/hb/hbcore \
+ /epoc32/include/mw/hb/hbinput \
+ /epoc32/include/mw/hb/hbwidgets \
+ /epoc32/include/mw/hb/hbfeedback \
+ /epoc32/include/mw/hb/tools
+
+LIBS+= -lhbcore -lhbwidgets -lxqplugins
+
+DEFINES += BUILD_VIEWFRAMEWORK
+
+
+HEADERS += inc/mpxplugindata.h \
+ inc/mpxplugindataparser.h \
+ inc/mpxviewpluginresolver_p.h \
+ inc/mpxviewpluginresolver.h \
+ ../../mmappfw_plat/mpx_view_utility_api/inc/mpxviewframeworkqt.h \
+ ../../mmappfw_plat/mpx_base_view_plugins_api/inc/mpxviewpluginqt.h
+
+SOURCES += \
+ src/mpxplugindata.cpp \
+ src/mpxplugindataparser.cpp \
+ src/mpxviewpluginresolver.cpp \
+ src/mpxviewpluginresolver_p.cpp \
+ src/mpxviewframework.cpp
+
+symbian {
+
+TARGET.CAPABILITY = All -TCB
+TARGET.EPOCALLOWDATA = 1
+MMP_RULES += EPOCALLOWDLLDATA
+
+include(rom/rom.pri)
+
+myDefInclude = "NOSTRICTDEF" \
+"$${LITERAL_HASH}if defined(WINS)"\
+"DEFFILE bwins/mpxviewframeworkqt.def "\
+"$${LITERAL_HASH}else "\
+"DEFFILE eabi/mpxviewframeworkqt.def "\
+"$${LITERAL_HASH}endif"
+
+MMP_RULES += myDefInclude
+
+
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/rom/mpxviewframeworkqt.iby Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef MPXVIEWFRAMEWORKQT_IBY
+#define MPXVIEWFRAMEWORKQT_IBY
+
+#include <bldvariant.hrh>
+#include <data_caging_paths_for_iby.hrh>
+
+file=ABI_DIR\BUILD_DIR\mpxviewframeworkqt.dll SHARED_LIB_DIR\mpxviewframeworkqt.dll
+
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/rom/rom.pri Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,21 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+symbian {
+MP_IBY_DIR = $$section(PWD,":",1)
+
+BLD_INF_RULES.prj_exports += "$$MP_IBY_DIR/mpxviewframeworkqt.iby CORE_MW_LAYER_IBY_EXPORT_PATH(mpxviewframeworkqt.iby)"
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/src/mpxplugindata.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,113 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "mpxplugindata.h"
+
+// -----------------------------------------------------------------------------
+// MpxPluginData
+// -----------------------------------------------------------------------------
+//
+MpxPluginData::MpxPluginData()
+:
+pluginId( 0 ),
+pluginType( 0 ),
+pluginPriority( EMPXViewPluginPriorityLowest ),
+pluginSupportedId()
+{
+ // No implementation required
+}
+
+// -----------------------------------------------------------------------------
+// ~MpxPluginData
+// -----------------------------------------------------------------------------
+//
+MpxPluginData::~MpxPluginData()
+{
+ pluginSupportedId.clear();
+}
+
+// -----------------------------------------------------------------------------
+// id
+// -----------------------------------------------------------------------------
+//
+int MpxPluginData::id()const
+{
+ return pluginId;
+}
+
+// -----------------------------------------------------------------------------
+// type
+// -----------------------------------------------------------------------------
+//
+int MpxPluginData::type()const
+{
+ return pluginType;
+}
+
+// -----------------------------------------------------------------------------
+// priority
+// -----------------------------------------------------------------------------
+//
+MpxPluginData::TMPXViewPluginPriorities MpxPluginData::priority() const
+{
+ return pluginPriority;
+}
+
+// -----------------------------------------------------------------------------
+// supportedId
+// -----------------------------------------------------------------------------
+//
+const QList<int>& MpxPluginData::supportedId() const
+{
+ return pluginSupportedId;
+}
+
+// -----------------------------------------------------------------------------
+// setId
+// -----------------------------------------------------------------------------
+//
+void MpxPluginData::setId( int value )
+{
+ pluginId = value;
+}
+
+// -----------------------------------------------------------------------------
+// setId
+// -----------------------------------------------------------------------------
+//
+void MpxPluginData::setType( int value )
+{
+ pluginType = value;
+}
+
+// -----------------------------------------------------------------------------
+// setType
+// -----------------------------------------------------------------------------
+//
+void MpxPluginData::setPriority( TMPXViewPluginPriorities value )
+{
+ pluginPriority = value;
+}
+
+// -----------------------------------------------------------------------------
+// addSupportedId
+// -----------------------------------------------------------------------------
+//
+void MpxPluginData::addSupportedId( int value )
+{
+ pluginSupportedId.append( value );
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/src/mpxplugindataparser.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,214 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "mpxplugindataparser.h"
+#include "mpxplugindata.h"
+#include <QString>
+
+
+
+const int gParserHexBase( 16 );
+const int gParserDecBase( 10 );
+
+static MpxPluginData::TMPXViewPluginPriorities parsePriority( const QStringRef& src );
+
+
+// ----------------------------------------------------------------------------
+// MpxPluginDataParser()
+// ----------------------------------------------------------------------------
+//
+MpxPluginDataParser::MpxPluginDataParser()
+:
+dataPtr( NULL )
+{
+ // No implementation required
+}
+
+// ----------------------------------------------------------------------------
+// ~MpxPluginDataParser()
+// ----------------------------------------------------------------------------
+//
+MpxPluginDataParser::~MpxPluginDataParser()
+{
+ if( NULL != dataPtr ){
+ delete dataPtr;
+ }
+}
+
+// ----------------------------------------------------------------------------
+// data()
+// ----------------------------------------------------------------------------
+//
+const MpxPluginData* MpxPluginDataParser::data() const
+{
+ return dataPtr;
+}
+
+// ----------------------------------------------------------------------------
+// takeData()
+// ----------------------------------------------------------------------------
+//
+MpxPluginData* MpxPluginDataParser::takeData()
+{
+ MpxPluginData* retVal( dataPtr );
+ if( NULL != dataPtr ){
+ dataPtr = NULL;
+ }
+ return retVal;
+}
+
+// ----------------------------------------------------------------------------
+// parse( const QString& data )
+// ----------------------------------------------------------------------------
+//
+void MpxPluginDataParser::parse( const QString& data )
+{
+ const QString PluginIdTag( "p" );
+ const QString PluginTypeTag( "t" );
+ const QString PluginPriorityTag( "i" );
+ const QString PluginSupportedTag( "f" );
+
+ QStringRef tagName,
+ tagContent;
+ int parserOffset( 0 );
+ if( NULL != dataPtr ){
+ delete dataPtr;
+ dataPtr = NULL;
+ }
+ int integerNodeRepresentation( 0 );
+ while( findNextNode( data, parserOffset, tagName, tagContent ) ){
+
+ if( NULL == dataPtr ){
+ dataPtr = new MpxPluginData();
+ }
+ if( PluginIdTag == tagName ){
+ if( parseInt( integerNodeRepresentation, tagContent.toString() ) )
+ dataPtr->setId( integerNodeRepresentation );
+ }else if( PluginTypeTag == tagName ){
+ if( parseInt( integerNodeRepresentation, tagContent.toString() ) ) {
+ dataPtr->setType( integerNodeRepresentation );
+ }
+ }else if( PluginPriorityTag == tagName ){
+ dataPtr->setPriority( parsePriority( tagContent ) );
+ }else if( PluginSupportedTag == tagName ){
+ parseSupportedId( tagContent.toString() );
+ }
+ }
+}
+
+// ----------------------------------------------------------------------------
+// findNextNode( const QString& src, int& offset, QStringRef& tagName, QStringRef& tagContent )
+// ----------------------------------------------------------------------------
+//
+bool MpxPluginDataParser::findNextNode( const QString& src, int& offset, QStringRef& tagName, QStringRef& tagContent ) const
+{
+ const QChar endOfTag( '>' );
+ const QString beginOfStopTag( "</" );
+
+
+ int nodeBeginOffset = src.indexOf( endOfTag, offset, Qt::CaseSensitive );
+ if( nodeBeginOffset <= offset ){
+ //next "start tag" wasn't found. skip parsing
+ return false;
+ }
+ ++nodeBeginOffset;
+ int nodeEndOffset = src.indexOf( endOfTag, nodeBeginOffset, Qt::CaseSensitive );
+ if( nodeEndOffset <= nodeBeginOffset ){
+ //next "stop tag" wasn't found. skip parsing
+ return false;
+ }
+ int nodeStopBegin = src.indexOf( beginOfStopTag, nodeBeginOffset, Qt::CaseSensitive );
+ offset = nodeEndOffset + 1;
+ if( nodeStopBegin <= nodeBeginOffset ){
+ //error invalid document format
+ return false;
+ }
+ const int nameBegin( nodeStopBegin + beginOfStopTag.length() );
+ tagName = src.midRef( nameBegin, nodeEndOffset - nameBegin );
+ tagContent = src.midRef( nodeBeginOffset, nodeStopBegin - nodeBeginOffset );
+ return true;
+}
+
+// ----------------------------------------------------------------------------
+// parseInt( int& aDst, const QString& src ) const
+// ----------------------------------------------------------------------------
+//
+bool MpxPluginDataParser::parseInt( int& aDst, const QString& src ) const
+{
+ const int parserBasesByPriority[] = { gParserHexBase, gParserDecBase },
+ parserSupportedBases( 2 );
+ bool retVal( false );
+ for( int iter( 0 ); !retVal && iter < parserSupportedBases; ++iter ){
+ aDst = src.toInt( &retVal, parserBasesByPriority[ iter ] );
+ }
+ return retVal;
+}
+
+// ----------------------------------------------------------------------------
+// parseSupportedId( const QString& value )
+// ----------------------------------------------------------------------------
+//
+void MpxPluginDataParser::parseSupportedId( const QString& value )
+{
+ if( NULL == dataPtr ) {
+ return;
+ }
+ int from( 0 ), to( 0 ), tagValue;
+ const QChar coma( ',' );
+ do{
+ if( from >= value.length() ){
+ break;
+ }
+ to = value.indexOf( coma, from );
+ if( to < from ){
+ to = value.length();
+ }
+ if( parseInt( tagValue, value.mid( from, to - from ) ) ){
+ dataPtr->addSupportedId( tagValue );
+ }
+ from = ( to + 1 );
+ }while( true );
+}
+
+// ----------------------------------------------------------------------------
+// parseSupportedId( const QString& value )
+// ----------------------------------------------------------------------------
+//
+MpxPluginData::TMPXViewPluginPriorities parsePriority( const QStringRef& src )
+{
+
+ const QString MPXViewPluginPriorityLowestTag( "EMPXViewPluginPriorityLowest" );
+ const QString MPXViewPluginPriorityLowTag( "EMPXViewPluginPriorityLow" );
+ const QString MPXViewPluginPriorityNormalTag( "EMPXViewPluginPriorityNormal" );
+ const QString MPXViewPluginPriorityHighTag( "EMPXViewPluginPriorityHigh" );
+ const QString MPXViewPluginPriorityHighestTag( "EMPXViewPluginPriorityHighest" );
+
+ MpxPluginData::TMPXViewPluginPriorities
+ retVal( MpxPluginData::EMPXViewPluginPriorityLowest );
+ if( MPXViewPluginPriorityLowTag == src ){
+ retVal = MpxPluginData::EMPXViewPluginPriorityLow;
+ }else if( MPXViewPluginPriorityNormalTag == src ){
+ retVal = MpxPluginData::EMPXViewPluginPriorityNormal;
+ }else if( MPXViewPluginPriorityHighTag == src ){
+ retVal = MpxPluginData::EMPXViewPluginPriorityHigh;
+ }else if( MPXViewPluginPriorityHighestTag == src ){
+ retVal = MpxPluginData::EMPXViewPluginPriorityHighest;
+ }
+ return retVal;
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/src/mpxviewframework.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include <hbmainwindow.h>
+#include <hbview.h>
+
+#include <mpxviewframeworkqt.h>
+#include <mpxviewpluginresolver.h>
+#include <mpxviewpluginqt.h>
+
+MpxViewFramework::MpxViewFramework(QWidget *parent, Hb::WindowFlags windowFlags)
+:
+HbMainWindow(parent, windowFlags)
+{
+}
+
+MpxViewFramework::~MpxViewFramework()
+{
+}
+
+MpxViewPlugin *MpxViewFramework::resolvePlugin(const QList<int>& requestedPlugins)
+{
+ MpxViewPlugin *viewPlugin = 0;
+ MpxViewPluginResolver *viewResolver = new MpxViewPluginResolver(requestedPlugins);
+ if (viewResolver!=0) {
+ viewPlugin = viewResolver->resolvePlugin();
+ delete viewResolver;
+ }
+ return viewPlugin;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/src/mpxviewpluginresolver.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "mpxviewpluginresolver.h" // MpxViewPluginResolver
+#include "mpxviewpluginresolver_p.h" // MpxViewPluginResolverPrivate
+
+// -----------------------------------------------------------------------------
+// MpxViewPluginResolver()
+// -----------------------------------------------------------------------------
+//
+MpxViewPluginResolver::MpxViewPluginResolver( const QList<int>& requestedPlugins )
+:
+impl ( new MpxViewPluginResolverPrivate( requestedPlugins ) )
+{}
+
+// -----------------------------------------------------------------------------
+// ~MpxViewPluginResolver()
+// -----------------------------------------------------------------------------
+//
+MpxViewPluginResolver::~MpxViewPluginResolver()
+{
+ if( impl ) {
+ delete impl;
+ }
+}
+// -----------------------------------------------------------------------------
+// resolvePlugin()
+// -----------------------------------------------------------------------------
+//
+MpxViewPlugin* MpxViewPluginResolver::resolvePlugin()
+{
+ return impl ? impl->resolvePlugin() : 0;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpx/mpxviewframeworkqt/src/mpxviewpluginresolver_p.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "mpxviewpluginresolver_p.h" // MpxViewPluginResolverPrivate
+#include "mpxplugindata.h"
+#include "mpxplugindataparser.h"
+
+#include <mpxviewpluginqt.h>
+#include <QHash>
+
+const char gRequestedPluginInterfaceName [] = "org.nokia.mmdt.MpxViewPlugin/1.0";
+
+const int gNoneScore( 0 );
+const int gSupportedScore( 5 );
+const int gImplementationScore( 100 );
+const int gTypeScore( 1 );
+
+// ----------------------------------------------------------------------------
+// score
+// ----------------------------------------------------------------------------
+//
+static int score( int , const MpxPluginData& );
+
+// -----------------------------------------------------------------------------
+//MpxViewPluginResolverPrivate
+// -----------------------------------------------------------------------------
+//
+MpxViewPluginResolverPrivate::MpxViewPluginResolverPrivate(
+ const QList<int>& request )
+:
+requestedPlugins( request )
+{
+ //No implementation needed
+}
+
+// -----------------------------------------------------------------------------
+// ~MpxViewPluginResolverPrivate
+// -----------------------------------------------------------------------------
+//
+MpxViewPluginResolverPrivate::~MpxViewPluginResolverPrivate()
+{
+ //No implementation needed
+}
+
+// -----------------------------------------------------------------------------
+// resolvePlugin()
+// -----------------------------------------------------------------------------
+//
+MpxViewPlugin* MpxViewPluginResolverPrivate::resolvePlugin()
+{
+ MpxPluginViewInterface* retVal = 0;
+ if( 0 < requestedPlugins.count() ){
+ XQPluginLoader loader;
+ QList< XQPluginInfo > impls;
+ if (loader.listImplementations(gRequestedPluginInterfaceName, impls)) {
+ retVal = resolveAndLoadPlugins( impls );
+ }
+ }
+ return (retVal!=0) ? retVal->viewPlugin() : 0;
+}
+
+// ----------------------------------------------------------------------------
+// resolveAndLoadPlugins( const QList< XQPluginInfo >& impls );
+// ----------------------------------------------------------------------------
+//
+MpxPluginViewInterface* MpxViewPluginResolverPrivate::resolveAndLoadPlugins(
+ const QList< XQPluginInfo >& impls )
+{
+ MpxPluginViewInterface* retVal = 0;
+
+ //parse plugin info data
+ QHash<const XQPluginInfo*, MpxPluginData* > parsedInfo;
+ QList< XQPluginInfo >::const_iterator iter( impls.begin() );
+ MpxPluginDataParser parser;
+ for( ; iter != impls.end(); ++iter ){
+ if( 0 < ( *iter ).opaqueData().length() ){
+ parser.parse( ( *iter ).opaqueData() );
+ if( parser.data() ){
+ parsedInfo.insert( &( *iter ), parser.takeData() );
+ }
+ }
+ }
+
+ //look for optimal plugin
+ QList<int> uids( requestedPlugins );
+ QList<int>::iterator currentUidIter,
+ optimalUidIter;
+ QHash<const XQPluginInfo*, MpxPluginData* >::iterator
+ currentInfoIter,
+ optimalInfoIter;
+ int currentPluginScore( 0 ),
+ optimalPluginScore( 0 );
+
+ do{
+ //initialize iterators with invalid objects
+ optimalInfoIter = parsedInfo.end();
+
+ for( currentUidIter = uids.begin();
+ uids.end() != currentUidIter;
+ ++currentUidIter )
+ {
+ for( currentInfoIter = parsedInfo.begin();
+ parsedInfo.end() != currentInfoIter;
+ ++currentInfoIter )
+ {
+ currentPluginScore = score( (*currentUidIter ),
+ (*(*currentInfoIter) ) );
+ if( gNoneScore < currentPluginScore ){
+ if( parsedInfo.end() == optimalInfoIter ){
+ //first plugin with no zero score. set as optimal
+ optimalPluginScore = currentPluginScore;
+ optimalInfoIter = currentInfoIter;
+ optimalUidIter = currentUidIter;
+ }
+ if( optimalPluginScore < currentPluginScore ||
+ ( ( currentPluginScore == optimalPluginScore ) &&
+ ( ( *currentInfoIter )->priority() > ( *optimalInfoIter )->priority() ) ) )
+ {
+ //current plugin fits better then "optimal" one
+ optimalPluginScore = currentPluginScore;
+ optimalInfoIter = currentInfoIter;
+ optimalUidIter = currentUidIter;
+ }
+ }
+ }
+ }
+ if( parsedInfo.end() == optimalInfoIter ){
+ //plugin was not found
+ break;
+ }
+ XQPluginLoader loader( optimalInfoIter.key()->uid() );
+ if( loader.load() ) {
+ retVal = qobject_cast<MpxPluginViewInterface*>(loader.instance());
+ }
+ //remove already loaded plugin description
+ delete ( *optimalInfoIter );
+ parsedInfo.erase( optimalInfoIter );
+ uids.erase( optimalUidIter );
+
+ }while( NULL == retVal );
+ uids.clear();
+
+ //clear parsed data structures
+ for( currentInfoIter = parsedInfo.begin();
+ parsedInfo.end() != currentInfoIter;
+ currentInfoIter = parsedInfo.erase( currentInfoIter ) ){
+ delete ( *currentInfoIter );
+ }
+ return retVal;
+}
+// ----------------------------------------------------------------------------
+// score
+// ----------------------------------------------------------------------------
+//
+int score( int uid, const MpxPluginData& pluginData )
+{
+ int retVal( gNoneScore );
+ QList< int >::const_iterator iter( pluginData.supportedId().begin() );
+ for( ; iter != pluginData.supportedId().end(); ++iter ){
+ if( ( *iter ) == uid ){
+ retVal += gSupportedScore;
+ }
+ }
+ if( pluginData.id() == uid ){
+ retVal += gImplementationScore;
+ }
+ if( pluginData.type() == uid ){
+ retVal += gTypeScore;
+ }
+
+ qDebug(QString("Score 0x%1: %2").arg(uid, 0, 16).arg(retVal).toLatin1().data());
+
+ return retVal;
+}
--- a/mpx/playbackframework/playbackengine/group/mpxplaybackengine.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/playbackframework/playbackengine/group/mpxplaybackengine.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -60,4 +60,6 @@
deffile ../bwinscw/
#endif
+SMPSAFE
+
// End of file
--- a/mpx/playbackframework/playbackengine/src/mpxautoresumehandler.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/playbackframework/playbackengine/src/mpxautoresumehandler.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -25,6 +25,7 @@
// CONSTANTS
const TInt KMPXErrDiedTimeout = 2000000;
+
// Time to wait before resume after call has ended.
const TInt KMPXResumeWaitTime = 3000000; // 3.0s
--- a/mpx/playbackframework/playbackengine/src/mpxplaybackmediahelper.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/playbackframework/playbackengine/src/mpxplaybackmediahelper.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -243,73 +243,33 @@
{
MPX_FUNC_EX("CMPXPlaybackMediaHelper::HandleCollectionMediaL");
MPX_DEBUG2("CMPXPlaybackMediaHelper::HandleCollectionMediaL(): error %d", aError);
-
- // First check if media attributes supported, if not, need to retrieve
- // from playback plugin
- TBool mediaOk( ETrue );
- // Note: The following block is for uPnP remote playlist which does not contain
- // metadata in the remote playlist. However, uPnP update to gurantee that titles
- // are available in the collection plugin. If KMPXMediaColDetailMediaNotAvailable
- // returned, UI can at least update title anyway anyway.
- //
- // We could not call MediaFromPluginL before the plugin initiliazed. uPnP made
- // changes so that it will call back media after the new track is initialized.
- // So we don't need call plugin API MediaL.
- /*if ( KErrNone == aError )
- { // media object is ok
- if ( aMedia.IsSupported( KMPXMediaColDetailMediaNotAvailable ))
- {
- TBool mediaNotSupported(
- aMedia.ValueTObjectL<TBool>( KMPXMediaColDetailMediaNotAvailable ));
- MPX_DEBUG2("HandleCollectionMediaL media not inCollection %d",
- mediaNotSupported);
- if ( mediaNotSupported)
- { // It must be uPnP remote playlist, media request can only be
- // sent to plugin at initialising, playing & pause state
- mediaOk = EFalse;
- // need to create a copy of buf since that will be delete when
- // this task is completed
- const TDesC8& data( iTaskQueue->BufData() );
- CBufBase* buf( MPXUser::CreateBufferLC( data.Size() ));
- buf->Write( 0, data );
- iEngine.MediaFromPluginL(
- static_cast<MMPXPlaybackEngineObserver*>(
- iTaskQueue->Callback() ),
- buf );
- CleanupStack::Pop( buf );
- } //otherwise, just send uri to clients.
- }
- }*/
-
- if ( mediaOk || aError )
+ MPX_DEBUG2("CMPXPlaybackMediaHelper::HandleCollectionMediaL task %d",
+ iTaskQueue->Task());
+
+ if ( iTaskQueue->Param() )
{
- MPX_DEBUG2("CMPXPlaybackMediaHelper::HandleCollectionMediaL task %d",
- iTaskQueue->Task());
-
- if ( iTaskQueue->Param() )
- {
- // Broadcast
- CMPXMessage* msg( CMPXMessage::NewL() );
- CleanupStack::PushL( msg );
- msg->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId,
- KMPXMessagePbMediaChanged );
- msg->SetCObjectValueL<CMPXMedia>( KMPXMessagePbMedia,
- const_cast<CMPXMedia*>( &aMedia ));
- CMPXClientList* clientList(
- static_cast<CMPXClientList*>( iTaskQueue->Callback() ));
- clientList->SendMsg(msg, KErrNone);
- CleanupStack::PopAndDestroy( msg );
- }
- else
- {
- // Callback
- MPX_DEBUG2("CMPXPlaybackMediaHelper::HandleCollectionMediaL task cb 0x%08x",
- iTaskQueue->Callback());
- MMPXPlaybackEngineObserver* callback(
- static_cast<MMPXPlaybackEngineObserver*>( iTaskQueue->Callback() ));
- callback->HandleMedia( aMedia, aError );
- }
+ // Broadcast
+ CMPXMessage* msg( CMPXMessage::NewL() );
+ CleanupStack::PushL( msg );
+ msg->SetTObjectValueL<TMPXMessageId>( KMPXMessageGeneralId,
+ KMPXMessagePbMediaChanged );
+ msg->SetCObjectValueL<CMPXMedia>( KMPXMessagePbMedia,
+ const_cast<CMPXMedia*>( &aMedia ));
+ CMPXClientList* clientList(
+ static_cast<CMPXClientList*>( iTaskQueue->Callback() ));
+ clientList->SendMsg(msg, KErrNone);
+ CleanupStack::PopAndDestroy( msg );
}
+ else
+ {
+ // Callback
+ MPX_DEBUG2("CMPXPlaybackMediaHelper::HandleCollectionMediaL task cb 0x%08x",
+ iTaskQueue->Callback());
+ MMPXPlaybackEngineObserver* callback(
+ static_cast<MMPXPlaybackEngineObserver*>( iTaskQueue->Callback() ));
+ callback->HandleMedia( aMedia, aError );
+ }
+
MPX_DEBUG1("CMPXPlaybackMediaHelper::HandleCollectionMediaL complete task");
iTaskQueue->CompleteTask();
}
--- a/mpx/playbackframework/playbackserver/group/mpxplaybackserver.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/playbackframework/playbackserver/group/mpxplaybackserver.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -49,5 +49,8 @@
#ifdef RD_TSP_CLIENT_MAPPER
LIBRARY tspclientmapper.lib
#endif
+
+SMPSAFE
+
// End of file
--- a/mpx/playbackframework/playbackutility/group/mpxplaybackutility.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/playbackframework/playbackutility/group/mpxplaybackutility.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -49,3 +49,5 @@
deffile ../bwinscw/
#endif
+SMPSAFE
+
--- a/mpx/viewframework/baseviewplugins/group/mpxviewplugin.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/viewframework/baseviewplugins/group/mpxviewplugin.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -50,4 +50,6 @@
deffile ../bwinscw/
#endif
+SMPSAFE
+
// End of File
--- a/mpx/viewframework/viewutility/group/mpxviewutility.mmp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/viewframework/viewutility/group/mpxviewutility.mmp Tue Aug 31 15:41:40 2010 +0300
@@ -55,4 +55,6 @@
deffile ../bwinscw/
#endif
+SMPSAFE
+
// End of File
--- a/mpx/viewframework/viewutility/src/mpxviewplugininfo.cpp Thu Aug 19 10:24:28 2010 +0300
+++ b/mpx/viewframework/viewutility/src/mpxviewplugininfo.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -189,6 +189,7 @@
const TDesC8& aData,
RArray<TUid>& aArray )
{
+ CleanupClosePushL(aArray);
aArray.Reset();
TInt nextPos( 0 );
@@ -205,6 +206,7 @@
aArray.AppendL( TUid::Uid( pluginUid ) );
}
} while ( KErrNotFound != nextPos );
+ CleanupStack::Pop();
}
// ---------------------------------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/SIS/QTMS_udeb_STUB_SIS.bat Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,64 @@
+rem
+rem Copyright (c) 2010 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 "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
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description: Create QTMS UDEB SIS package
+rem
+
+@echo off
+echo ----------------------------
+echo Configuring for RnD SIS
+echo ----------------------------
+echo Start of configure time:
+time /t
+
+:CREATE_DIR
+echo.
+echo - create Sis folder (created only if needed)
+mkdir .\SIS
+
+:COPY_DLL
+echo.
+echo - Copy dlls [udeb]:
+copy %EPOCROOT%epoc32\release\armv5\udeb\qtmsapi.dll .
+
+if errorlevel == 1 goto END_ERROR
+
+:CALL_ELFTRAIN
+echo - Updating Version No [10.1] (calling elftran)
+call elftran.exe -version 10.1 qtmsapi.dll
+
+:MAKESIS
+makesis ..\SIS\qtms.pkg ..\SIS\qtms.sis
+signsis ..\SIS\qtms.sis ..\SIS\qtms.sisx rd.crt rd.key
+if errorlevel == 1 goto END_ERROR
+
+:DELETE_DLL
+echo.
+echo - remove the copied dlls from current folder
+del qtmsapi.dll
+
+goto END
+
+:END_ERROR
+echo.
+echo Sis creation failed.
+goto FINAL_END
+
+:END
+echo.
+echo Sis file created succesfully
+echo ============================
+
+:FINAL_END
+echo End of configure time is:
+time /t
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/SIS/qtms.pkg Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,35 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: Telephony Multimedia Services (TMS) - UDEB build
+;
+;File: tms.pkg
+
+;Languages
+&EN
+
+;Header
+#{"QTMS"},(0x10207CB2),1,0,0, TYPE=SA, RU
+
+;Series 60 v5.0
+[0x101F7961], 0,0,0, {"Series60ProductID"}
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
+;Files To Copy...<src> <destination>
+"/epoc32/release/armv5/udeb/qtmsapi.dll"-"!:/sys/bin/qtmsapi.dll"
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/bwins/qtmsu.def Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,388 @@
+EXPORTS
+ ?qt_metacast@QTMSSpeakerSink@QTMS@@UAEPAXPBD@Z @ 1 NONAME ; void * QTMS::QTMSSpeakerSink::qt_metacast(char const *)
+ ?getStaticMetaObject@QTMSGainEffect@QTMS@@SAABUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const & QTMS::QTMSGainEffect::getStaticMetaObject(void)
+ ??0QTMSStream@QTMS@@IAE@XZ @ 3 NONAME ; QTMS::QTMSStream::QTMSStream(void)
+ ??0QTMSAMRFormat@QTMS@@IAE@XZ @ 4 NONAME ; QTMS::QTMSAMRFormat::QTMSAMRFormat(void)
+ ?tr@QTMSG729Format@QTMS@@SA?AVQString@@PBD0H@Z @ 5 NONAME ; class QString QTMS::QTMSG729Format::tr(char const *, char const *, int)
+ ?tr@QTMSModemSource@QTMS@@SA?AVQString@@PBD0@Z @ 6 NONAME ; class QString QTMS::QTMSModemSource::tr(char const *, char const *)
+ ?CreateRingTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSRingTone@2@@Z @ 7 NONAME ; int QTMS::QTMSFactory::CreateRingTonePlayer(class QTMS::QTMSRingTone * &)
+ ?qt_metacall@QTMSClientSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8 NONAME ; int QTMS::QTMSClientSource::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?trUtf8@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString QTMS::QTMSVolumeEffect::trUtf8(char const *, char const *, int)
+ ?trUtf8@QTMSG711Format@QTMS@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString QTMS::QTMSG711Format::trUtf8(char const *, char const *, int)
+ ??_EQTMSGlobalRouting@QTMS@@UAE@I@Z @ 11 NONAME ; QTMS::QTMSGlobalRouting::~QTMSGlobalRouting(unsigned int)
+ ?metaObject@QTMSGlobalRouting@QTMS@@UBEPBUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalRouting::metaObject(void) const
+ ?SetPlc@QTMSG711Format@QTMS@@QAEHH@Z @ 13 NONAME ; int QTMS::QTMSG711Format::SetPlc(int)
+ ?AddSink@QTMSStream@QTMS@@QAEHPAVQTMSSink@2@@Z @ 14 NONAME ; int QTMS::QTMSStream::AddSink(class QTMS::QTMSSink *)
+ ?tr@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString QTMS::QTMSPCMFormat::tr(char const *, char const *, int)
+ ??_EQTMSG729Format@QTMS@@UAE@I@Z @ 16 NONAME ; QTMS::QTMSG729Format::~QTMSG729Format(unsigned int)
+ ?Deinit@QTMSRingTone@QTMS@@QAEHXZ @ 17 NONAME ; int QTMS::QTMSRingTone::Deinit(void)
+ ?qt_metacast@QTMSClientSink@QTMS@@UAEPAXPBD@Z @ 18 NONAME ; void * QTMS::QTMSClientSink::qt_metacast(char const *)
+ ?tr@QTMSG729Format@QTMS@@SA?AVQString@@PBD0@Z @ 19 NONAME ; class QString QTMS::QTMSG729Format::tr(char const *, char const *)
+ ??_EQTMSSpeakerSink@QTMS@@UAE@I@Z @ 20 NONAME ; QTMS::QTMSSpeakerSink::~QTMSSpeakerSink(unsigned int)
+ ?getStaticMetaObject@QTMSInbandTone@QTMS@@SAABUQMetaObject@@XZ @ 21 NONAME ; struct QMetaObject const & QTMS::QTMSInbandTone::getStaticMetaObject(void)
+ ??0QTMSGainEffect@QTMS@@IAE@XZ @ 22 NONAME ; QTMS::QTMSGainEffect::QTMSGainEffect(void)
+ ?tr@QTMSRingTone@QTMS@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString QTMS::QTMSRingTone::tr(char const *, char const *)
+ ?tr@QTMSClientSink@QTMS@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString QTMS::QTMSClientSink::tr(char const *, char const *, int)
+ ?GetType@QTMSGlobalGainEffect@QTMS@@UAEHAAH@Z @ 25 NONAME ; int QTMS::QTMSGlobalGainEffect::GetType(int &)
+ ??1QTMSInbandTone@QTMS@@UAE@XZ @ 26 NONAME ; QTMS::QTMSInbandTone::~QTMSInbandTone(void)
+ ?trUtf8@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0H@Z @ 27 NONAME ; class QString QTMS::QTMSInbandTone::trUtf8(char const *, char const *, int)
+ ?GetType@QTMSModemSink@QTMS@@UAEHAAH@Z @ 28 NONAME ; int QTMS::QTMSModemSink::GetType(int &)
+ ?trUtf8@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0H@Z @ 29 NONAME ; class QString QTMS::QTMSSpeakerSink::trUtf8(char const *, char const *, int)
+ ?Stop@QTMSDTMF@QTMS@@QAEHXZ @ 30 NONAME ; int QTMS::QTMSDTMF::Stop(void)
+ ?DeleteRingTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSRingTone@2@@Z @ 31 NONAME ; int QTMS::QTMSFactory::DeleteRingTonePlayer(class QTMS::QTMSRingTone * &)
+ ?tr@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 32 NONAME ; class QString QTMS::QTMSVolumeEffect::tr(char const *, char const *, int)
+ ?AddSource@QTMSStream@QTMS@@QAEHPAVQTMSSource@2@@Z @ 33 NONAME ; int QTMS::QTMSStream::AddSource(class QTMS::QTMSSource *)
+ ??1QTMSGlobalVolEffect@QTMS@@UAE@XZ @ 34 NONAME ; QTMS::QTMSGlobalVolEffect::~QTMSGlobalVolEffect(void)
+ ?GetType@QTMSSpeakerSink@QTMS@@UAEHAAH@Z @ 35 NONAME ; int QTMS::QTMSSpeakerSink::GetType(int &)
+ ?getStaticMetaObject@QTMSGlobalVolEffect@QTMS@@SAABUQMetaObject@@XZ @ 36 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalVolEffect::getStaticMetaObject(void)
+ ??0QTMSModemSource@QTMS@@IAE@XZ @ 37 NONAME ; QTMS::QTMSModemSource::QTMSModemSource(void)
+ ?trUtf8@QTMSMicSource@QTMS@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString QTMS::QTMSMicSource::trUtf8(char const *, char const *)
+ ?Pause@QTMSRingTone@QTMS@@QAEHXZ @ 39 NONAME ; int QTMS::QTMSRingTone::Pause(void)
+ ?GetVADMode@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 40 NONAME ; int QTMS::QTMSILBCFormat::GetVADMode(int &)
+ ?qt_metacast@QTMSDTMF@QTMS@@UAEPAXPBD@Z @ 41 NONAME ; void * QTMS::QTMSDTMF::qt_metacast(char const *)
+ ?RingtoneEvent@QTMSRingTone@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 42 NONAME ; void QTMS::QTMSRingTone::RingtoneEvent(class QTMS::QTMSRingTone const &, struct QTMS::QTMSSignalEvent)
+ ??_EQTMSCall@QTMS@@UAE@I@Z @ 43 NONAME ; QTMS::QTMSCall::~QTMSCall(unsigned int)
+ ?trUtf8@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString QTMS::QTMSILBCFormat::trUtf8(char const *, char const *)
+ ?staticMetaObject@QTMSRingTone@QTMS@@2UQMetaObject@@B @ 45 NONAME ; struct QMetaObject const QTMS::QTMSRingTone::staticMetaObject
+ ?SetMode@QTMSILBCFormat@QTMS@@QAEHH@Z @ 46 NONAME ; int QTMS::QTMSILBCFormat::SetMode(int)
+ ?trUtf8@QTMSModemSink@QTMS@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString QTMS::QTMSModemSink::trUtf8(char const *, char const *, int)
+ ?GetVADMode@QTMSG711Format@QTMS@@QAEHAAH@Z @ 48 NONAME ; int QTMS::QTMSG711Format::GetVADMode(int &)
+ ?staticMetaObject@QTMSDTMF@QTMS@@2UQMetaObject@@B @ 49 NONAME ; struct QMetaObject const QTMS::QTMSDTMF::staticMetaObject
+ ??0QTMSMicSource@QTMS@@IAE@XZ @ 50 NONAME ; QTMS::QTMSMicSource::QTMSMicSource(void)
+ ?GetPreviousOutput@QTMSGlobalRouting@QTMS@@QAEHAAH@Z @ 51 NONAME ; int QTMS::QTMSGlobalRouting::GetPreviousOutput(int &)
+ ??1QTMSGainEffect@QTMS@@UAE@XZ @ 52 NONAME ; QTMS::QTMSGainEffect::~QTMSGainEffect(void)
+ ?trUtf8@QTMSClientSink@QTMS@@SA?AVQString@@PBD0@Z @ 53 NONAME ; class QString QTMS::QTMSClientSink::trUtf8(char const *, char const *)
+ ?EffectsEvent@QTMSGainEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 54 NONAME ; void QTMS::QTMSGainEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent)
+ ?qt_metacast@QTMSILBCFormat@QTMS@@UAEPAXPBD@Z @ 55 NONAME ; void * QTMS::QTMSILBCFormat::qt_metacast(char const *)
+ ?TMSStreamEvent@QTMSStream@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 56 NONAME ; void QTMS::QTMSStream::TMSStreamEvent(class QTMS::QTMSStream const &, struct QTMS::QTMSSignalEvent)
+ ?trUtf8@QTMSRingTone@QTMS@@SA?AVQString@@PBD0@Z @ 57 NONAME ; class QString QTMS::QTMSRingTone::trUtf8(char const *, char const *)
+ ??1QTMSModemSink@QTMS@@UAE@XZ @ 58 NONAME ; QTMS::QTMSModemSink::~QTMSModemSink(void)
+ ?metaObject@QTMSVolumeEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 59 NONAME ; struct QMetaObject const * QTMS::QTMSVolumeEffect::metaObject(void) const
+ ??_EQTMSClientSink@QTMS@@UAE@I@Z @ 60 NONAME ; QTMS::QTMSClientSink::~QTMSClientSink(unsigned int)
+ ?qt_metacast@QTMSModemSink@QTMS@@UAEPAXPBD@Z @ 61 NONAME ; void * QTMS::QTMSModemSink::qt_metacast(char const *)
+ ??1QTMSClientSource@QTMS@@UAE@XZ @ 62 NONAME ; QTMS::QTMSClientSource::~QTMSClientSource(void)
+ ?qt_metacall@QTMSGainEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 63 NONAME ; int QTMS::QTMSGainEffect::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?CreateSource@QTMSFactory@QTMS@@QAEHHAAPAVQTMSSource@2@@Z @ 64 NONAME ; int QTMS::QTMSFactory::CreateSource(int, class QTMS::QTMSSource * &)
+ ?trUtf8@QTMSFactory@QTMS@@SA?AVQString@@PBD0@Z @ 65 NONAME ; class QString QTMS::QTMSFactory::trUtf8(char const *, char const *)
+ ?FillBuffer@QTMSClientSource@QTMS@@IAEXAAVQTMSBuffer@2@@Z @ 66 NONAME ; void QTMS::QTMSClientSource::FillBuffer(class QTMS::QTMSBuffer &)
+ ?qt_metacall@QTMSGlobalVolEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 67 NONAME ; int QTMS::QTMSGlobalVolEffect::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?GetLevel@QTMSGlobalGainEffect@QTMS@@QAEHAAI@Z @ 68 NONAME ; int QTMS::QTMSGlobalGainEffect::GetLevel(unsigned int &)
+ ?trUtf8@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 69 NONAME ; class QString QTMS::QTMSGlobalVolEffect::trUtf8(char const *, char const *, int)
+ ?trUtf8@QTMSCall@QTMS@@SA?AVQString@@PBD0@Z @ 70 NONAME ; class QString QTMS::QTMSCall::trUtf8(char const *, char const *)
+ ?GetMaxLevel@QTMSGlobalGainEffect@QTMS@@QAEHAAI@Z @ 71 NONAME ; int QTMS::QTMSGlobalGainEffect::GetMaxLevel(unsigned int &)
+ ?RemoveSource@QTMSStream@QTMS@@QAEHPAVQTMSSource@2@@Z @ 72 NONAME ; int QTMS::QTMSStream::RemoveSource(class QTMS::QTMSSource *)
+ ?DTMFEvent@QTMSDTMF@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 73 NONAME ; void QTMS::QTMSDTMF::DTMFEvent(class QTMS::QTMSDTMF const &, struct QTMS::QTMSSignalEvent)
+ ?GetCNG@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 74 NONAME ; int QTMS::QTMSILBCFormat::GetCNG(int &)
+ ?qt_metacast@QTMSG729Format@QTMS@@UAEPAXPBD@Z @ 75 NONAME ; void * QTMS::QTMSG729Format::qt_metacast(char const *)
+ ?tr@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0@Z @ 76 NONAME ; class QString QTMS::QTMSILBCFormat::tr(char const *, char const *)
+ ?GetType@QTMSClientSink@QTMS@@UAEHAAH@Z @ 77 NONAME ; int QTMS::QTMSClientSink::GetType(int &)
+ ?tr@QTMSModemSink@QTMS@@SA?AVQString@@PBD0H@Z @ 78 NONAME ; class QString QTMS::QTMSModemSink::tr(char const *, char const *, int)
+ ?staticMetaObject@QTMSMicSource@QTMS@@2UQMetaObject@@B @ 79 NONAME ; struct QMetaObject const QTMS::QTMSMicSource::staticMetaObject
+ ?metaObject@QTMSModemSource@QTMS@@UBEPBUQMetaObject@@XZ @ 80 NONAME ; struct QMetaObject const * QTMS::QTMSModemSource::metaObject(void) const
+ ?ContinueDTMFStringSending@QTMSDTMF@QTMS@@QAEHH@Z @ 81 NONAME ; int QTMS::QTMSDTMF::ContinueDTMFStringSending(int)
+ ?GetCNG@QTMSG711Format@QTMS@@QAEHAAH@Z @ 82 NONAME ; int QTMS::QTMSG711Format::GetCNG(int &)
+ ?CreateGlobalRouting@QTMSFactory@QTMS@@QAEHAAPAVQTMSGlobalRouting@2@@Z @ 83 NONAME ; int QTMS::QTMSFactory::CreateGlobalRouting(class QTMS::QTMSGlobalRouting * &)
+ ?tr@QTMSRingTone@QTMS@@SA?AVQString@@PBD0H@Z @ 84 NONAME ; class QString QTMS::QTMSRingTone::tr(char const *, char const *, int)
+ ?trUtf8@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0H@Z @ 85 NONAME ; class QString QTMS::QTMSGlobalRouting::trUtf8(char const *, char const *, int)
+ ?tr@QTMSClientSink@QTMS@@SA?AVQString@@PBD0@Z @ 86 NONAME ; class QString QTMS::QTMSClientSink::tr(char const *, char const *)
+ ?trUtf8@QTMSModemSink@QTMS@@SA?AVQString@@PBD0@Z @ 87 NONAME ; class QString QTMS::QTMSModemSink::trUtf8(char const *, char const *)
+ ?qt_metacall@QTMSInbandTone@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 88 NONAME ; int QTMS::QTMSInbandTone::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?staticMetaObject@QTMSSpeakerSink@QTMS@@2UQMetaObject@@B @ 89 NONAME ; struct QMetaObject const QTMS::QTMSSpeakerSink::staticMetaObject
+ ?staticMetaObject@QTMSGainEffect@QTMS@@2UQMetaObject@@B @ 90 NONAME ; struct QMetaObject const QTMS::QTMSGainEffect::staticMetaObject
+ ?staticMetaObject@QTMSModemSink@QTMS@@2UQMetaObject@@B @ 91 NONAME ; struct QMetaObject const QTMS::QTMSModemSink::staticMetaObject
+ ?tr@QTMSModemSource@QTMS@@SA?AVQString@@PBD0H@Z @ 92 NONAME ; class QString QTMS::QTMSModemSource::tr(char const *, char const *, int)
+ ?tr@QTMSDTMF@QTMS@@SA?AVQString@@PBD0@Z @ 93 NONAME ; class QString QTMS::QTMSDTMF::tr(char const *, char const *)
+ ?tr@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 94 NONAME ; class QString QTMS::QTMSGlobalVolEffect::tr(char const *, char const *, int)
+ ?GetType@QTMSGainEffect@QTMS@@UAEHAAH@Z @ 95 NONAME ; int QTMS::QTMSGainEffect::GetType(int &)
+ ?trUtf8@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0@Z @ 96 NONAME ; class QString QTMS::QTMSSpeakerSink::trUtf8(char const *, char const *)
+ ??_EQTMSG711Format@QTMS@@UAE@I@Z @ 97 NONAME ; QTMS::QTMSG711Format::~QTMSG711Format(unsigned int)
+ ?qt_metacast@QTMSAMRFormat@QTMS@@UAEPAXPBD@Z @ 98 NONAME ; void * QTMS::QTMSAMRFormat::qt_metacast(char const *)
+ ?GlobalRoutingEvent@QTMSGlobalRouting@QTMS@@IAEXABV12@UQTMSSignalEvent@2@H@Z @ 99 NONAME ; void QTMS::QTMSGlobalRouting::GlobalRoutingEvent(class QTMS::QTMSGlobalRouting const &, struct QTMS::QTMSSignalEvent, int)
+ ?trUtf8@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 100 NONAME ; class QString QTMS::QTMSAMRFormat::trUtf8(char const *, char const *, int)
+ ?getStaticMetaObject@QTMSRingTone@QTMS@@SAABUQMetaObject@@XZ @ 101 NONAME ; struct QMetaObject const & QTMS::QTMSRingTone::getStaticMetaObject(void)
+ ?metaObject@QTMSMicSource@QTMS@@UBEPBUQMetaObject@@XZ @ 102 NONAME ; struct QMetaObject const * QTMS::QTMSMicSource::metaObject(void) const
+ ??1QTMSSpeakerSink@QTMS@@UAE@XZ @ 103 NONAME ; QTMS::QTMSSpeakerSink::~QTMSSpeakerSink(void)
+ ??0QTMSVolumeEffect@QTMS@@IAE@XZ @ 104 NONAME ; QTMS::QTMSVolumeEffect::QTMSVolumeEffect(void)
+ ?staticMetaObject@QTMSAMRFormat@QTMS@@2UQMetaObject@@B @ 105 NONAME ; struct QMetaObject const QTMS::QTMSAMRFormat::staticMetaObject
+ ?GetVADMode@QTMSG729Format@QTMS@@QAEHAAH@Z @ 106 NONAME ; int QTMS::QTMSG729Format::GetVADMode(int &)
+ ??1QTMSGlobalGainEffect@QTMS@@UAE@XZ @ 107 NONAME ; QTMS::QTMSGlobalGainEffect::~QTMSGlobalGainEffect(void)
+ ??_EQTMSInbandTone@QTMS@@UAE@I@Z @ 108 NONAME ; QTMS::QTMSInbandTone::~QTMSInbandTone(unsigned int)
+ ?trUtf8@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0@Z @ 109 NONAME ; class QString QTMS::QTMSAMRFormat::trUtf8(char const *, char const *)
+ ?qt_metacast@QTMSRingTone@QTMS@@UAEPAXPBD@Z @ 110 NONAME ; void * QTMS::QTMSRingTone::qt_metacast(char const *)
+ ?GetType@QTMSClientSource@QTMS@@UAEHAAH@Z @ 111 NONAME ; int QTMS::QTMSClientSource::GetType(int &)
+ ?metaObject@QTMSPCMFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 112 NONAME ; struct QMetaObject const * QTMS::QTMSPCMFormat::metaObject(void) const
+ ?tr@QTMSMicSource@QTMS@@SA?AVQString@@PBD0@Z @ 113 NONAME ; class QString QTMS::QTMSMicSource::tr(char const *, char const *)
+ ??1QTMSGlobalRouting@QTMS@@UAE@XZ @ 114 NONAME ; QTMS::QTMSGlobalRouting::~QTMSGlobalRouting(void)
+ ?getStaticMetaObject@QTMSStream@QTMS@@SAABUQMetaObject@@XZ @ 115 NONAME ; struct QMetaObject const & QTMS::QTMSStream::getStaticMetaObject(void)
+ ?trUtf8@QTMSClientSource@QTMS@@SA?AVQString@@PBD0@Z @ 116 NONAME ; class QString QTMS::QTMSClientSource::trUtf8(char const *, char const *)
+ ?tr@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 117 NONAME ; class QString QTMS::QTMSAMRFormat::tr(char const *, char const *, int)
+ ?qt_metacast@QTMSModemSource@QTMS@@UAEPAXPBD@Z @ 118 NONAME ; void * QTMS::QTMSModemSource::qt_metacast(char const *)
+ ?getStaticMetaObject@QTMSG711Format@QTMS@@SAABUQMetaObject@@XZ @ 119 NONAME ; struct QMetaObject const & QTMS::QTMSG711Format::getStaticMetaObject(void)
+ ??_EQTMSClientSource@QTMS@@UAE@I@Z @ 120 NONAME ; QTMS::QTMSClientSource::~QTMSClientSource(unsigned int)
+ ?GetLevel@QTMSGainEffect@QTMS@@QAEHAAI@Z @ 121 NONAME ; int QTMS::QTMSGainEffect::GetLevel(unsigned int &)
+ ?tr@QTMSFactory@QTMS@@SA?AVQString@@PBD0@Z @ 122 NONAME ; class QString QTMS::QTMSFactory::tr(char const *, char const *)
+ ?qt_metacast@QTMSGlobalRouting@QTMS@@UAEPAXPBD@Z @ 123 NONAME ; void * QTMS::QTMSGlobalRouting::qt_metacast(char const *)
+ ?getStaticMetaObject@QTMSFactory@QTMS@@SAABUQMetaObject@@XZ @ 124 NONAME ; struct QMetaObject const & QTMS::QTMSFactory::getStaticMetaObject(void)
+ ??_EQTMSAMRFormat@QTMS@@UAE@I@Z @ 125 NONAME ; QTMS::QTMSAMRFormat::~QTMSAMRFormat(unsigned int)
+ ?getStaticMetaObject@QTMSPCMFormat@QTMS@@SAABUQMetaObject@@XZ @ 126 NONAME ; struct QMetaObject const & QTMS::QTMSPCMFormat::getStaticMetaObject(void)
+ ?Flush@QTMSClientSource@QTMS@@QAEHXZ @ 127 NONAME ; int QTMS::QTMSClientSource::Flush(void)
+ ?Stop@QTMSRingTone@QTMS@@QAEHXZ @ 128 NONAME ; int QTMS::QTMSRingTone::Stop(void)
+ ?DeleteGlobalRouting@QTMSFactory@QTMS@@QAEHAAPAVQTMSGlobalRouting@2@@Z @ 129 NONAME ; int QTMS::QTMSFactory::DeleteGlobalRouting(class QTMS::QTMSGlobalRouting * &)
+ ?tr@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0H@Z @ 130 NONAME ; class QString QTMS::QTMSGlobalRouting::tr(char const *, char const *, int)
+ ?SetMode@QTMSG711Format@QTMS@@QAEHH@Z @ 131 NONAME ; int QTMS::QTMSG711Format::SetMode(int)
+ ?GetMode@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 132 NONAME ; int QTMS::QTMSILBCFormat::GetMode(int &)
+ ?GetMode@QTMSG711Format@QTMS@@QAEHAAH@Z @ 133 NONAME ; int QTMS::QTMSG711Format::GetMode(int &)
+ ?GetAvailableOutputs@QTMSGlobalRouting@QTMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 134 NONAME ; int QTMS::QTMSGlobalRouting::GetAvailableOutputs(class std::vector<unsigned int, class std::allocator<unsigned int> > &)
+ ?staticMetaObject@QTMSFactory@QTMS@@2UQMetaObject@@B @ 135 NONAME ; struct QMetaObject const QTMS::QTMSFactory::staticMetaObject
+ ?DeleteFormat@QTMSFactory@QTMS@@QAEHAAPAVQTMSFormat@2@@Z @ 136 NONAME ; int QTMS::QTMSFactory::DeleteFormat(class QTMS::QTMSFormat * &)
+ ?tr@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 137 NONAME ; class QString QTMS::QTMSILBCFormat::tr(char const *, char const *, int)
+ ??1QTMSPCMFormat@QTMS@@UAE@XZ @ 138 NONAME ; QTMS::QTMSPCMFormat::~QTMSPCMFormat(void)
+ ?trUtf8@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 139 NONAME ; class QString QTMS::QTMSGainEffect::trUtf8(char const *, char const *)
+ ??0QTMSG711Format@QTMS@@IAE@XZ @ 140 NONAME ; QTMS::QTMSG711Format::QTMSG711Format(void)
+ ?staticMetaObject@QTMSILBCFormat@QTMS@@2UQMetaObject@@B @ 141 NONAME ; struct QMetaObject const QTMS::QTMSILBCFormat::staticMetaObject
+ ?metaObject@QTMSG729Format@QTMS@@UBEPBUQMetaObject@@XZ @ 142 NONAME ; struct QMetaObject const * QTMS::QTMSG729Format::metaObject(void) const
+ ?tr@QTMSFactory@QTMS@@SA?AVQString@@PBD0H@Z @ 143 NONAME ; class QString QTMS::QTMSFactory::tr(char const *, char const *, int)
+ ?tr@QTMSCall@QTMS@@SA?AVQString@@PBD0H@Z @ 144 NONAME ; class QString QTMS::QTMSCall::tr(char const *, char const *, int)
+ ?staticMetaObject@QTMSClientSink@QTMS@@2UQMetaObject@@B @ 145 NONAME ; struct QMetaObject const QTMS::QTMSClientSink::staticMetaObject
+ ?ProcessBuffer@QTMSClientSource@QTMS@@QAEHPAVQTMSBuffer@2@@Z @ 146 NONAME ; int QTMS::QTMSClientSource::ProcessBuffer(class QTMS::QTMSBuffer *)
+ ?EffectsEvent@QTMSGlobalVolEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 147 NONAME ; void QTMS::QTMSGlobalVolEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent)
+ ?CreateFormat@QTMSFactory@QTMS@@QAEHHAAPAVQTMSFormat@2@@Z @ 148 NONAME ; int QTMS::QTMSFactory::CreateFormat(int, class QTMS::QTMSFormat * &)
+ ?SetCNG@QTMSILBCFormat@QTMS@@QAEHH@Z @ 149 NONAME ; int QTMS::QTMSILBCFormat::SetCNG(int)
+ ??1QTMSAMRFormat@QTMS@@UAE@XZ @ 150 NONAME ; QTMS::QTMSAMRFormat::~QTMSAMRFormat(void)
+ ?metaObject@QTMSClientSink@QTMS@@UBEPBUQMetaObject@@XZ @ 151 NONAME ; struct QMetaObject const * QTMS::QTMSClientSink::metaObject(void) const
+ ?trUtf8@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0@Z @ 152 NONAME ; class QString QTMS::QTMSInbandTone::trUtf8(char const *, char const *)
+ ?staticMetaObject@QTMSG711Format@QTMS@@2UQMetaObject@@B @ 153 NONAME ; struct QMetaObject const QTMS::QTMSG711Format::staticMetaObject
+ ?trUtf8@QTMSDTMF@QTMS@@SA?AVQString@@PBD0H@Z @ 154 NONAME ; class QString QTMS::QTMSDTMF::trUtf8(char const *, char const *, int)
+ ?InbandToneEvent@QTMSInbandTone@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 155 NONAME ; void QTMS::QTMSInbandTone::InbandToneEvent(class QTMS::QTMSInbandTone const &, struct QTMS::QTMSSignalEvent)
+ ?tr@QTMSModemSink@QTMS@@SA?AVQString@@PBD0@Z @ 156 NONAME ; class QString QTMS::QTMSModemSink::tr(char const *, char const *)
+ ?tr@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 157 NONAME ; class QString QTMS::QTMSGainEffect::tr(char const *, char const *, int)
+ ?qt_metacast@QTMSG711Format@QTMS@@UAEPAXPBD@Z @ 158 NONAME ; void * QTMS::QTMSG711Format::qt_metacast(char const *)
+ ?GetMaxLevel@QTMSVolumeEffect@QTMS@@QAEHAAI@Z @ 159 NONAME ; int QTMS::QTMSVolumeEffect::GetMaxLevel(unsigned int &)
+ ??0QTMSSpeakerSink@QTMS@@IAE@XZ @ 160 NONAME ; QTMS::QTMSSpeakerSink::QTMSSpeakerSink(void)
+ ??_EQTMSMicSource@QTMS@@UAE@I@Z @ 161 NONAME ; QTMS::QTMSMicSource::~QTMSMicSource(unsigned int)
+ ?metaObject@QTMSModemSink@QTMS@@UBEPBUQMetaObject@@XZ @ 162 NONAME ; struct QMetaObject const * QTMS::QTMSModemSink::metaObject(void) const
+ ?DeleteCall@QTMSFactory@QTMS@@QAEHAAPAVQTMSCall@2@@Z @ 163 NONAME ; int QTMS::QTMSFactory::DeleteCall(class QTMS::QTMSCall * &)
+ ?tr@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 164 NONAME ; class QString QTMS::QTMSGlobalGainEffect::tr(char const *, char const *, int)
+ ?qt_metacall@QTMSMicSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 165 NONAME ; int QTMS::QTMSMicSource::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?GetType@QTMSFormat@QTMS@@UAEHAAH@Z @ 166 NONAME ; int QTMS::QTMSFormat::GetType(int &)
+ ?DeleteStream@QTMSCall@QTMS@@QAEHAAPAVQTMSStream@2@@Z @ 167 NONAME ; int QTMS::QTMSCall::DeleteStream(class QTMS::QTMSStream * &)
+ ?trUtf8@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0@Z @ 168 NONAME ; class QString QTMS::QTMSVolumeEffect::trUtf8(char const *, char const *)
+ ?CreateInbandTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSInbandTone@2@@Z @ 169 NONAME ; int QTMS::QTMSFactory::CreateInbandTonePlayer(class QTMS::QTMSInbandTone * &)
+ ?trUtf8@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0@Z @ 170 NONAME ; class QString QTMS::QTMSGlobalRouting::trUtf8(char const *, char const *)
+ ??1QTMSG711Format@QTMS@@UAE@XZ @ 171 NONAME ; QTMS::QTMSG711Format::~QTMSG711Format(void)
+ ?BufferProcessed@QTMSClientSink@QTMS@@QAEHPAVQTMSBuffer@2@@Z @ 172 NONAME ; int QTMS::QTMSClientSink::BufferProcessed(class QTMS::QTMSBuffer *)
+ ?tr@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 173 NONAME ; class QString QTMS::QTMSGainEffect::tr(char const *, char const *)
+ ??_EQTMSModemSource@QTMS@@UAE@I@Z @ 174 NONAME ; QTMS::QTMSModemSource::~QTMSModemSource(unsigned int)
+ ?qt_metacall@QTMSPCMFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 175 NONAME ; int QTMS::QTMSPCMFormat::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??0QTMSILBCFormat@QTMS@@IAE@XZ @ 176 NONAME ; QTMS::QTMSILBCFormat::QTMSILBCFormat(void)
+ ?trUtf8@QTMSStream@QTMS@@SA?AVQString@@PBD0H@Z @ 177 NONAME ; class QString QTMS::QTMSStream::trUtf8(char const *, char const *, int)
+ ?qt_metacast@QTMSPCMFormat@QTMS@@UAEPAXPBD@Z @ 178 NONAME ; void * QTMS::QTMSPCMFormat::qt_metacast(char const *)
+ ?qt_metacall@QTMSSpeakerSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 179 NONAME ; int QTMS::QTMSSpeakerSink::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?GetLevel@QTMSVolumeEffect@QTMS@@QAEHAAI@Z @ 180 NONAME ; int QTMS::QTMSVolumeEffect::GetLevel(unsigned int &)
+ ?trUtf8@QTMSFactory@QTMS@@SA?AVQString@@PBD0H@Z @ 181 NONAME ; class QString QTMS::QTMSFactory::trUtf8(char const *, char const *, int)
+ ??_EQTMSGainEffect@QTMS@@UAE@I@Z @ 182 NONAME ; QTMS::QTMSGainEffect::~QTMSGainEffect(unsigned int)
+ ?tr@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0@Z @ 183 NONAME ; class QString QTMS::QTMSGlobalRouting::tr(char const *, char const *)
+ ?tr@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0@Z @ 184 NONAME ; class QString QTMS::QTMSAMRFormat::tr(char const *, char const *)
+ ?getStaticMetaObject@QTMSSpeakerSink@QTMS@@SAABUQMetaObject@@XZ @ 185 NONAME ; struct QMetaObject const & QTMS::QTMSSpeakerSink::getStaticMetaObject(void)
+ ?CreateDTMF@QTMSFactory@QTMS@@QAEHHAAPAVQTMSDTMF@2@@Z @ 186 NONAME ; int QTMS::QTMSFactory::CreateDTMF(int, class QTMS::QTMSDTMF * &)
+ ?trUtf8@QTMSStream@QTMS@@SA?AVQString@@PBD0@Z @ 187 NONAME ; class QString QTMS::QTMSStream::trUtf8(char const *, char const *)
+ ?Init@QTMSStream@QTMS@@QAEHH@Z @ 188 NONAME ; int QTMS::QTMSStream::Init(int)
+ ?tr@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0@Z @ 189 NONAME ; class QString QTMS::QTMSInbandTone::tr(char const *, char const *)
+ ?tr@QTMSStream@QTMS@@SA?AVQString@@PBD0@Z @ 190 NONAME ; class QString QTMS::QTMSStream::tr(char const *, char const *)
+ ??1QTMSMicSource@QTMS@@UAE@XZ @ 191 NONAME ; QTMS::QTMSMicSource::~QTMSMicSource(void)
+ ?BufferFilled@QTMSClientSource@QTMS@@QAEHAAVQTMSBuffer@2@@Z @ 192 NONAME ; int QTMS::QTMSClientSource::BufferFilled(class QTMS::QTMSBuffer &)
+ ??_EQTMSFactory@QTMS@@UAE@I@Z @ 193 NONAME ; QTMS::QTMSFactory::~QTMSFactory(unsigned int)
+ ??1QTMSCall@QTMS@@UAE@XZ @ 194 NONAME ; QTMS::QTMSCall::~QTMSCall(void)
+ ?staticMetaObject@QTMSG729Format@QTMS@@2UQMetaObject@@B @ 195 NONAME ; struct QMetaObject const QTMS::QTMSG729Format::staticMetaObject
+ ??0QTMSClientSource@QTMS@@IAE@XZ @ 196 NONAME ; QTMS::QTMSClientSource::QTMSClientSource(void)
+ ?Stop@QTMSInbandTone@QTMS@@QAEHXZ @ 197 NONAME ; int QTMS::QTMSInbandTone::Stop(void)
+ ?tr@QTMSCall@QTMS@@SA?AVQString@@PBD0@Z @ 198 NONAME ; class QString QTMS::QTMSCall::tr(char const *, char const *)
+ ?qt_metacall@QTMSCall@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 199 NONAME ; int QTMS::QTMSCall::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?metaObject@QTMSSpeakerSink@QTMS@@UBEPBUQMetaObject@@XZ @ 200 NONAME ; struct QMetaObject const * QTMS::QTMSSpeakerSink::metaObject(void) const
+ ?SetTone@QTMSDTMF@QTMS@@QAEHPAU_GString@@@Z @ 201 NONAME ; int QTMS::QTMSDTMF::SetTone(struct _GString *)
+ ?SetEnqueueMode@QTMSClientSource@QTMS@@QAEHH@Z @ 202 NONAME ; int QTMS::QTMSClientSource::SetEnqueueMode(int)
+ ?staticMetaObject@QTMSClientSource@QTMS@@2UQMetaObject@@B @ 203 NONAME ; struct QMetaObject const QTMS::QTMSClientSource::staticMetaObject
+ ?trUtf8@QTMSModemSource@QTMS@@SA?AVQString@@PBD0@Z @ 204 NONAME ; class QString QTMS::QTMSModemSource::trUtf8(char const *, char const *)
+ ?trUtf8@QTMSG729Format@QTMS@@SA?AVQString@@PBD0H@Z @ 205 NONAME ; class QString QTMS::QTMSG729Format::trUtf8(char const *, char const *, int)
+ ?GetType@QTMSVolumeEffect@QTMS@@UAEHAAH@Z @ 206 NONAME ; int QTMS::QTMSVolumeEffect::GetType(int &)
+ ?qt_metacall@QTMSVolumeEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 207 NONAME ; int QTMS::QTMSVolumeEffect::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?tr@QTMSG711Format@QTMS@@SA?AVQString@@PBD0H@Z @ 208 NONAME ; class QString QTMS::QTMSG711Format::tr(char const *, char const *, int)
+ ??1QTMSILBCFormat@QTMS@@UAE@XZ @ 209 NONAME ; QTMS::QTMSILBCFormat::~QTMSILBCFormat(void)
+ ?Play@QTMSRingTone@QTMS@@QAEHXZ @ 210 NONAME ; int QTMS::QTMSRingTone::Play(void)
+ ?qt_metacall@QTMSILBCFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 211 NONAME ; int QTMS::QTMSILBCFormat::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?tr@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0H@Z @ 212 NONAME ; class QString QTMS::QTMSSpeakerSink::tr(char const *, char const *, int)
+ ?GetBitRate@QTMSFormat@QTMS@@QAEHAAI@Z @ 213 NONAME ; int QTMS::QTMSFormat::GetBitRate(unsigned int &)
+ ?GetType@QTMSModemSource@QTMS@@UAEHAAH@Z @ 214 NONAME ; int QTMS::QTMSModemSource::GetType(int &)
+ ?staticMetaObject@QTMSGlobalVolEffect@QTMS@@2UQMetaObject@@B @ 215 NONAME ; struct QMetaObject const QTMS::QTMSGlobalVolEffect::staticMetaObject
+ ??1QTMSFormat@QTMS@@UAE@XZ @ 216 NONAME ; QTMS::QTMSFormat::~QTMSFormat(void)
+ ?GetPlc@QTMSG711Format@QTMS@@QAEHAAH@Z @ 217 NONAME ; int QTMS::QTMSG711Format::GetPlc(int &)
+ ?Start@QTMSInbandTone@QTMS@@QAEHH@Z @ 218 NONAME ; int QTMS::QTMSInbandTone::Start(int)
+ ?trUtf8@QTMSClientSink@QTMS@@SA?AVQString@@PBD0H@Z @ 219 NONAME ; class QString QTMS::QTMSClientSink::trUtf8(char const *, char const *, int)
+ ?tr@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0H@Z @ 220 NONAME ; class QString QTMS::QTMSInbandTone::tr(char const *, char const *, int)
+ ??_EQTMSPCMFormat@QTMS@@UAE@I@Z @ 221 NONAME ; QTMS::QTMSPCMFormat::~QTMSPCMFormat(unsigned int)
+ ?metaObject@QTMSAMRFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 222 NONAME ; struct QMetaObject const * QTMS::QTMSAMRFormat::metaObject(void) const
+ ?metaObject@QTMSStream@QTMS@@UBEPBUQMetaObject@@XZ @ 223 NONAME ; struct QMetaObject const * QTMS::QTMSStream::metaObject(void) const
+ ?getStaticMetaObject@QTMSGlobalGainEffect@QTMS@@SAABUQMetaObject@@XZ @ 224 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalGainEffect::getStaticMetaObject(void)
+ ?tr@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0@Z @ 225 NONAME ; class QString QTMS::QTMSGlobalVolEffect::tr(char const *, char const *)
+ ?staticMetaObject@QTMSInbandTone@QTMS@@2UQMetaObject@@B @ 226 NONAME ; struct QMetaObject const QTMS::QTMSInbandTone::staticMetaObject
+ ?trUtf8@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 227 NONAME ; class QString QTMS::QTMSGlobalGainEffect::trUtf8(char const *, char const *, int)
+ ?qt_metacast@QTMSClientSource@QTMS@@UAEPAXPBD@Z @ 228 NONAME ; void * QTMS::QTMSClientSource::qt_metacast(char const *)
+ ?metaObject@QTMSCall@QTMS@@UBEPBUQMetaObject@@XZ @ 229 NONAME ; struct QMetaObject const * QTMS::QTMSCall::metaObject(void) const
+ ?qt_metacall@QTMSClientSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 230 NONAME ; int QTMS::QTMSClientSink::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?BufferProcessed@QTMSClientSource@QTMS@@IAEXPBVQTMSBuffer@2@H@Z @ 231 NONAME ; void QTMS::QTMSClientSource::BufferProcessed(class QTMS::QTMSBuffer const *, int)
+ ?CreateStream@QTMSCall@QTMS@@QAEHHAAPAVQTMSStream@2@@Z @ 232 NONAME ; int QTMS::QTMSCall::CreateStream(int, class QTMS::QTMSStream * &)
+ ?DeleteInbandTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSInbandTone@2@@Z @ 233 NONAME ; int QTMS::QTMSFactory::DeleteInbandTonePlayer(class QTMS::QTMSInbandTone * &)
+ ?SetLevel@QTMSGlobalGainEffect@QTMS@@QAEHI@Z @ 234 NONAME ; int QTMS::QTMSGlobalGainEffect::SetLevel(unsigned int)
+ ?GetStreamType@QTMSStream@QTMS@@QAEHXZ @ 235 NONAME ; int QTMS::QTMSStream::GetStreamType(void)
+ ?getStaticMetaObject@QTMSGlobalRouting@QTMS@@SAABUQMetaObject@@XZ @ 236 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalRouting::getStaticMetaObject(void)
+ ??0QTMSGlobalVolEffect@QTMS@@IAE@XZ @ 237 NONAME ; QTMS::QTMSGlobalVolEffect::QTMSGlobalVolEffect(void)
+ ?CreateSink@QTMSFactory@QTMS@@QAEHHAAPAVQTMSSink@2@@Z @ 238 NONAME ; int QTMS::QTMSFactory::CreateSink(int, class QTMS::QTMSSink * &)
+ ?EffectsEvent@QTMSVolumeEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 239 NONAME ; void QTMS::QTMSVolumeEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent)
+ ?getStaticMetaObject@QTMSG729Format@QTMS@@SAABUQMetaObject@@XZ @ 240 NONAME ; struct QMetaObject const & QTMS::QTMSG729Format::getStaticMetaObject(void)
+ ??1QTMSDTMF@QTMS@@UAE@XZ @ 241 NONAME ; QTMS::QTMSDTMF::~QTMSDTMF(void)
+ ?DeleteDTMF@QTMSFactory@QTMS@@QAEHAAPAVQTMSDTMF@2@@Z @ 242 NONAME ; int QTMS::QTMSFactory::DeleteDTMF(class QTMS::QTMSDTMF * &)
+ ??_EQTMSFormat@QTMS@@UAE@I@Z @ 243 NONAME ; QTMS::QTMSFormat::~QTMSFormat(unsigned int)
+ ?staticMetaObject@QTMSGlobalGainEffect@QTMS@@2UQMetaObject@@B @ 244 NONAME ; struct QMetaObject const QTMS::QTMSGlobalGainEffect::staticMetaObject
+ ?SetVADMode@QTMSILBCFormat@QTMS@@QAEHH@Z @ 245 NONAME ; int QTMS::QTMSILBCFormat::SetVADMode(int)
+ ??0QTMSCall@QTMS@@IAE@XZ @ 246 NONAME ; QTMS::QTMSCall::QTMSCall(void)
+ ?GetEnqueueMode@QTMSClientSource@QTMS@@QAEHAAH@Z @ 247 NONAME ; int QTMS::QTMSClientSource::GetEnqueueMode(int &)
+ ?metaObject@QTMSGlobalVolEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 248 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalVolEffect::metaObject(void) const
+ ?staticMetaObject@QTMSGlobalRouting@QTMS@@2UQMetaObject@@B @ 249 NONAME ; struct QMetaObject const QTMS::QTMSGlobalRouting::staticMetaObject
+ ?qt_metacast@QTMSFactory@QTMS@@UAEPAXPBD@Z @ 250 NONAME ; void * QTMS::QTMSFactory::qt_metacast(char const *)
+ ?SetCNG@QTMSG711Format@QTMS@@QAEHH@Z @ 251 NONAME ; int QTMS::QTMSG711Format::SetCNG(int)
+ ?qt_metacall@QTMSG729Format@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 252 NONAME ; int QTMS::QTMSG729Format::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?tr@QTMSStream@QTMS@@SA?AVQString@@PBD0H@Z @ 253 NONAME ; class QString QTMS::QTMSStream::tr(char const *, char const *, int)
+ ?SetLevel@QTMSVolumeEffect@QTMS@@QAEHI@Z @ 254 NONAME ; int QTMS::QTMSVolumeEffect::SetLevel(unsigned int)
+ ?DeleteEffect@QTMSFactory@QTMS@@QAEHAAPAVQTMSEffect@2@@Z @ 255 NONAME ; int QTMS::QTMSFactory::DeleteEffect(class QTMS::QTMSEffect * &)
+ ?qt_metacast@QTMSCall@QTMS@@UAEPAXPBD@Z @ 256 NONAME ; void * QTMS::QTMSCall::qt_metacast(char const *)
+ ?SetFormat@QTMSStream@QTMS@@QAEHPAVQTMSFormat@2@@Z @ 257 NONAME ; int QTMS::QTMSStream::SetFormat(class QTMS::QTMSFormat *)
+ ?getStaticMetaObject@QTMSDTMF@QTMS@@SAABUQMetaObject@@XZ @ 258 NONAME ; struct QMetaObject const & QTMS::QTMSDTMF::getStaticMetaObject(void)
+ ?getStaticMetaObject@QTMSMicSource@QTMS@@SAABUQMetaObject@@XZ @ 259 NONAME ; struct QMetaObject const & QTMS::QTMSMicSource::getStaticMetaObject(void)
+ ?qt_metacall@QTMSRingTone@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 260 NONAME ; int QTMS::QTMSRingTone::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?trUtf8@QTMSClientSource@QTMS@@SA?AVQString@@PBD0H@Z @ 261 NONAME ; class QString QTMS::QTMSClientSource::trUtf8(char const *, char const *, int)
+ ?qt_metacall@QTMSGlobalGainEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 262 NONAME ; int QTMS::QTMSGlobalGainEffect::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?CreateCall@QTMSFactory@QTMS@@QAEHHAAPAVQTMSCall@2@I@Z @ 263 NONAME ; int QTMS::QTMSFactory::CreateCall(int, class QTMS::QTMSCall * &, unsigned int)
+ ?SetVADMode@QTMSG729Format@QTMS@@QAEHH@Z @ 264 NONAME ; int QTMS::QTMSG729Format::SetVADMode(int)
+ ?DeleteBuffer@QTMSFactory@QTMS@@QAEHAAPAVQTMSBuffer@2@@Z @ 265 NONAME ; int QTMS::QTMSFactory::DeleteBuffer(class QTMS::QTMSBuffer * &)
+ ?trUtf8@QTMSG711Format@QTMS@@SA?AVQString@@PBD0@Z @ 266 NONAME ; class QString QTMS::QTMSG711Format::trUtf8(char const *, char const *)
+ ?qt_metacall@QTMSDTMF@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 267 NONAME ; int QTMS::QTMSDTMF::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?qt_metacall@QTMSModemSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 268 NONAME ; int QTMS::QTMSModemSource::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?CreateFactory@QTMSFactory@QTMS@@SAHAAPAV12@AAVQTMSVer@2@@Z @ 269 NONAME ; int QTMS::QTMSFactory::CreateFactory(class QTMS::QTMSFactory * &, class QTMS::QTMSVer &)
+ ?tr@QTMSClientSource@QTMS@@SA?AVQString@@PBD0H@Z @ 270 NONAME ; class QString QTMS::QTMSClientSource::tr(char const *, char const *, int)
+ ??1QTMSStream@QTMS@@UAE@XZ @ 271 NONAME ; QTMS::QTMSStream::~QTMSStream(void)
+ ?Init@QTMSRingTone@QTMS@@QAEHHPAU_GString@@0@Z @ 272 NONAME ; int QTMS::QTMSRingTone::Init(int, struct _GString *, struct _GString *)
+ ?qt_metacast@QTMSVolumeEffect@QTMS@@UAEPAXPBD@Z @ 273 NONAME ; void * QTMS::QTMSVolumeEffect::qt_metacast(char const *)
+ ??1QTMSRingTone@QTMS@@UAE@XZ @ 274 NONAME ; QTMS::QTMSRingTone::~QTMSRingTone(void)
+ ??_EQTMSStream@QTMS@@UAE@I@Z @ 275 NONAME ; QTMS::QTMSStream::~QTMSStream(unsigned int)
+ ?tr@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0@Z @ 276 NONAME ; class QString QTMS::QTMSSpeakerSink::tr(char const *, char const *)
+ ?RemoveSink@QTMSStream@QTMS@@QAEHPAVQTMSSink@2@@Z @ 277 NONAME ; int QTMS::QTMSStream::RemoveSink(class QTMS::QTMSSink *)
+ ?trUtf8@QTMSModemSource@QTMS@@SA?AVQString@@PBD0H@Z @ 278 NONAME ; class QString QTMS::QTMSModemSource::trUtf8(char const *, char const *, int)
+ ?metaObject@QTMSILBCFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 279 NONAME ; struct QMetaObject const * QTMS::QTMSILBCFormat::metaObject(void) const
+ ?staticMetaObject@QTMSPCMFormat@QTMS@@2UQMetaObject@@B @ 280 NONAME ; struct QMetaObject const QTMS::QTMSPCMFormat::staticMetaObject
+ ?getStaticMetaObject@QTMSClientSource@QTMS@@SAABUQMetaObject@@XZ @ 281 NONAME ; struct QMetaObject const & QTMS::QTMSClientSource::getStaticMetaObject(void)
+ ??1QTMSFactory@QTMS@@UAE@XZ @ 282 NONAME ; QTMS::QTMSFactory::~QTMSFactory(void)
+ ?DeleteSource@QTMSFactory@QTMS@@QAEHAAPAVQTMSSource@2@@Z @ 283 NONAME ; int QTMS::QTMSFactory::DeleteSource(class QTMS::QTMSSource * &)
+ ?qt_metacall@QTMSGlobalRouting@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 284 NONAME ; int QTMS::QTMSGlobalRouting::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??0QTMSGlobalGainEffect@QTMS@@IAE@XZ @ 285 NONAME ; QTMS::QTMSGlobalGainEffect::QTMSGlobalGainEffect(void)
+ ?trUtf8@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0@Z @ 286 NONAME ; class QString QTMS::QTMSPCMFormat::trUtf8(char const *, char const *)
+ ??0QTMSDTMF@QTMS@@IAE@XZ @ 287 NONAME ; QTMS::QTMSDTMF::QTMSDTMF(void)
+ ?GetLevel@QTMSGlobalVolEffect@QTMS@@QAEHAAI@Z @ 288 NONAME ; int QTMS::QTMSGlobalVolEffect::GetLevel(unsigned int &)
+ ?GetType@QTMSGlobalVolEffect@QTMS@@UAEHAAH@Z @ 289 NONAME ; int QTMS::QTMSGlobalVolEffect::GetType(int &)
+ ?getStaticMetaObject@QTMSILBCFormat@QTMS@@SAABUQMetaObject@@XZ @ 290 NONAME ; struct QMetaObject const & QTMS::QTMSILBCFormat::getStaticMetaObject(void)
+ ??_EQTMSGlobalGainEffect@QTMS@@UAE@I@Z @ 291 NONAME ; QTMS::QTMSGlobalGainEffect::~QTMSGlobalGainEffect(unsigned int)
+ ?trUtf8@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0@Z @ 292 NONAME ; class QString QTMS::QTMSGlobalVolEffect::trUtf8(char const *, char const *)
+ ?qt_metacast@QTMSGlobalGainEffect@QTMS@@UAEPAXPBD@Z @ 293 NONAME ; void * QTMS::QTMSGlobalGainEffect::qt_metacast(char const *)
+ ??_EQTMSModemSink@QTMS@@UAE@I@Z @ 294 NONAME ; QTMS::QTMSModemSink::~QTMSModemSink(unsigned int)
+ ??0QTMSModemSink@QTMS@@IAE@XZ @ 295 NONAME ; QTMS::QTMSModemSink::QTMSModemSink(void)
+ ?tr@QTMSG711Format@QTMS@@SA?AVQString@@PBD0@Z @ 296 NONAME ; class QString QTMS::QTMSG711Format::tr(char const *, char const *)
+ ?GetState@QTMSStream@QTMS@@QAEHXZ @ 297 NONAME ; int QTMS::QTMSStream::GetState(void)
+ ?qt_metacall@QTMSG711Format@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 298 NONAME ; int QTMS::QTMSG711Format::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?getStaticMetaObject@QTMSClientSink@QTMS@@SAABUQMetaObject@@XZ @ 299 NONAME ; struct QMetaObject const & QTMS::QTMSClientSink::getStaticMetaObject(void)
+ ?qt_metacast@QTMSInbandTone@QTMS@@UAEPAXPBD@Z @ 300 NONAME ; void * QTMS::QTMSInbandTone::qt_metacast(char const *)
+ ?getStaticMetaObject@QTMSModemSource@QTMS@@SAABUQMetaObject@@XZ @ 301 NONAME ; struct QMetaObject const & QTMS::QTMSModemSource::getStaticMetaObject(void)
+ ?metaObject@QTMSGainEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 302 NONAME ; struct QMetaObject const * QTMS::QTMSGainEffect::metaObject(void) const
+ ??0QTMSGlobalRouting@QTMS@@IAE@XZ @ 303 NONAME ; QTMS::QTMSGlobalRouting::QTMSGlobalRouting(void)
+ ?metaObject@QTMSClientSource@QTMS@@UBEPBUQMetaObject@@XZ @ 304 NONAME ; struct QMetaObject const * QTMS::QTMSClientSource::metaObject(void) const
+ ?qt_metacast@QTMSStream@QTMS@@UAEPAXPBD@Z @ 305 NONAME ; void * QTMS::QTMSStream::qt_metacast(char const *)
+ ?DeleteSink@QTMSFactory@QTMS@@QAEHAAPAVQTMSSink@2@@Z @ 306 NONAME ; int QTMS::QTMSFactory::DeleteSink(class QTMS::QTMSSink * &)
+ ?getStaticMetaObject@QTMSModemSink@QTMS@@SAABUQMetaObject@@XZ @ 307 NONAME ; struct QMetaObject const & QTMS::QTMSModemSink::getStaticMetaObject(void)
+ ?tr@QTMSClientSource@QTMS@@SA?AVQString@@PBD0@Z @ 308 NONAME ; class QString QTMS::QTMSClientSource::tr(char const *, char const *)
+ ?Mute@QTMSRingTone@QTMS@@QAEHXZ @ 309 NONAME ; int QTMS::QTMSRingTone::Mute(void)
+ ??_EQTMSDTMF@QTMS@@UAE@I@Z @ 310 NONAME ; QTMS::QTMSDTMF::~QTMSDTMF(unsigned int)
+ ?Start@QTMSStream@QTMS@@QAEHH@Z @ 311 NONAME ; int QTMS::QTMSStream::Start(int)
+ ?qt_metacall@QTMSStream@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 312 NONAME ; int QTMS::QTMSStream::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?tr@QTMSDTMF@QTMS@@SA?AVQString@@PBD0H@Z @ 313 NONAME ; class QString QTMS::QTMSDTMF::tr(char const *, char const *, int)
+ ?qt_metacast@QTMSGainEffect@QTMS@@UAEPAXPBD@Z @ 314 NONAME ; void * QTMS::QTMSGainEffect::qt_metacast(char const *)
+ ?GetCallContextId@QTMSCall@QTMS@@QAEHAAI@Z @ 315 NONAME ; int QTMS::QTMSCall::GetCallContextId(unsigned int &)
+ ?GetCallType@QTMSCall@QTMS@@QAEHXZ @ 316 NONAME ; int QTMS::QTMSCall::GetCallType(void)
+ ?Start@QTMSDTMF@QTMS@@QAEHXZ @ 317 NONAME ; int QTMS::QTMSDTMF::Start(void)
+ ?trUtf8@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 318 NONAME ; class QString QTMS::QTMSGlobalGainEffect::trUtf8(char const *, char const *)
+ ?SetOutput@QTMSGlobalRouting@QTMS@@QAEHH@Z @ 319 NONAME ; int QTMS::QTMSGlobalRouting::SetOutput(int)
+ ??0QTMSClientSink@QTMS@@IAE@XZ @ 320 NONAME ; QTMS::QTMSClientSink::QTMSClientSink(void)
+ ?SetLevel@QTMSGlobalVolEffect@QTMS@@QAEHI@Z @ 321 NONAME ; int QTMS::QTMSGlobalVolEffect::SetLevel(unsigned int)
+ ?metaObject@QTMSRingTone@QTMS@@UBEPBUQMetaObject@@XZ @ 322 NONAME ; struct QMetaObject const * QTMS::QTMSRingTone::metaObject(void) const
+ ?ProcessBuffer@QTMSClientSink@QTMS@@IAEXPBVQTMSBuffer@2@@Z @ 323 NONAME ; void QTMS::QTMSClientSink::ProcessBuffer(class QTMS::QTMSBuffer const *)
+ ?IsCallTypeSupported@QTMSFactory@QTMS@@QAEHHAAH@Z @ 324 NONAME ; int QTMS::QTMSFactory::IsCallTypeSupported(int, int &)
+ ?qt_metacast@QTMSGlobalVolEffect@QTMS@@UAEPAXPBD@Z @ 325 NONAME ; void * QTMS::QTMSGlobalVolEffect::qt_metacast(char const *)
+ ?staticMetaObject@QTMSModemSource@QTMS@@2UQMetaObject@@B @ 326 NONAME ; struct QMetaObject const QTMS::QTMSModemSource::staticMetaObject
+ ?GetStreamId@QTMSStream@QTMS@@QAEHXZ @ 327 NONAME ; int QTMS::QTMSStream::GetStreamId(void)
+ ??0QTMSG729Format@QTMS@@IAE@XZ @ 328 NONAME ; QTMS::QTMSG729Format::QTMSG729Format(void)
+ ??_EQTMSGlobalVolEffect@QTMS@@UAE@I@Z @ 329 NONAME ; QTMS::QTMSGlobalVolEffect::~QTMSGlobalVolEffect(unsigned int)
+ ?getStaticMetaObject@QTMSAMRFormat@QTMS@@SAABUQMetaObject@@XZ @ 330 NONAME ; struct QMetaObject const & QTMS::QTMSAMRFormat::getStaticMetaObject(void)
+ ?staticMetaObject@QTMSVolumeEffect@QTMS@@2UQMetaObject@@B @ 331 NONAME ; struct QMetaObject const QTMS::QTMSVolumeEffect::staticMetaObject
+ ??_EQTMSRingTone@QTMS@@UAE@I@Z @ 332 NONAME ; QTMS::QTMSRingTone::~QTMSRingTone(unsigned int)
+ ??0QTMSFormat@QTMS@@IAE@XZ @ 333 NONAME ; QTMS::QTMSFormat::QTMSFormat(void)
+ ?GetSupportedFormats@QTMSFactory@QTMS@@QAEHHAAV?$vector@PAVQTMSFormat@QTMS@@V?$allocator@PAVQTMSFormat@QTMS@@@std@@@std@@@Z @ 334 NONAME ; int QTMS::QTMSFactory::GetSupportedFormats(int, class std::vector<class QTMS::QTMSFormat *, class std::allocator<class QTMS::QTMSFormat *> > &)
+ ?SetVADMode@QTMSG711Format@QTMS@@QAEHH@Z @ 335 NONAME ; int QTMS::QTMSG711Format::SetVADMode(int)
+ ?getStaticMetaObject@QTMSVolumeEffect@QTMS@@SAABUQMetaObject@@XZ @ 336 NONAME ; struct QMetaObject const & QTMS::QTMSVolumeEffect::getStaticMetaObject(void)
+ ?qt_metacall@QTMSModemSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 337 NONAME ; int QTMS::QTMSModemSink::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?trUtf8@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 338 NONAME ; class QString QTMS::QTMSILBCFormat::trUtf8(char const *, char const *, int)
+ ?trUtf8@QTMSDTMF@QTMS@@SA?AVQString@@PBD0@Z @ 339 NONAME ; class QString QTMS::QTMSDTMF::trUtf8(char const *, char const *)
+ ?tr@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 340 NONAME ; class QString QTMS::QTMSGlobalGainEffect::tr(char const *, char const *)
+ ?AddEffect@QTMSStream@QTMS@@QAEHPAVQTMSEffect@2@@Z @ 341 NONAME ; int QTMS::QTMSStream::AddEffect(class QTMS::QTMSEffect *)
+ ?ResetFormat@QTMSStream@QTMS@@QAEHPAVQTMSFormat@2@@Z @ 342 NONAME ; int QTMS::QTMSStream::ResetFormat(class QTMS::QTMSFormat *)
+ ?metaObject@QTMSG711Format@QTMS@@UBEPBUQMetaObject@@XZ @ 343 NONAME ; struct QMetaObject const * QTMS::QTMSG711Format::metaObject(void) const
+ ??1QTMSVolumeEffect@QTMS@@UAE@XZ @ 344 NONAME ; QTMS::QTMSVolumeEffect::~QTMSVolumeEffect(void)
+ ?EffectsEvent@QTMSGlobalGainEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 345 NONAME ; void QTMS::QTMSGlobalGainEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent)
+ ?GetSupportedBitRates@QTMSFormat@QTMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 346 NONAME ; int QTMS::QTMSFormat::GetSupportedBitRates(class std::vector<unsigned int, class std::allocator<unsigned int> > &)
+ ?staticMetaObject@QTMSCall@QTMS@@2UQMetaObject@@B @ 347 NONAME ; struct QMetaObject const QTMS::QTMSCall::staticMetaObject
+ ??1QTMSModemSource@QTMS@@UAE@XZ @ 348 NONAME ; QTMS::QTMSModemSource::~QTMSModemSource(void)
+ ??1QTMSClientSink@QTMS@@UAE@XZ @ 349 NONAME ; QTMS::QTMSClientSink::~QTMSClientSink(void)
+ ?metaObject@QTMSFactory@QTMS@@UBEPBUQMetaObject@@XZ @ 350 NONAME ; struct QMetaObject const * QTMS::QTMSFactory::metaObject(void) const
+ ?metaObject@QTMSInbandTone@QTMS@@UBEPBUQMetaObject@@XZ @ 351 NONAME ; struct QMetaObject const * QTMS::QTMSInbandTone::metaObject(void) const
+ ?trUtf8@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 352 NONAME ; class QString QTMS::QTMSGainEffect::trUtf8(char const *, char const *, int)
+ ?trUtf8@QTMSMicSource@QTMS@@SA?AVQString@@PBD0H@Z @ 353 NONAME ; class QString QTMS::QTMSMicSource::trUtf8(char const *, char const *, int)
+ ?GetMaxLevel@QTMSGlobalVolEffect@QTMS@@QAEHAAI@Z @ 354 NONAME ; int QTMS::QTMSGlobalVolEffect::GetMaxLevel(unsigned int &)
+ ??_EQTMSVolumeEffect@QTMS@@UAE@I@Z @ 355 NONAME ; QTMS::QTMSVolumeEffect::~QTMSVolumeEffect(unsigned int)
+ ??1QTMSG729Format@QTMS@@UAE@XZ @ 356 NONAME ; QTMS::QTMSG729Format::~QTMSG729Format(void)
+ ?tr@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0@Z @ 357 NONAME ; class QString QTMS::QTMSVolumeEffect::tr(char const *, char const *)
+ ?GetType@QTMSMicSource@QTMS@@UAEHAAH@Z @ 358 NONAME ; int QTMS::QTMSMicSource::GetType(int &)
+ ?CreateEffect@QTMSFactory@QTMS@@QAEHHAAPAVQTMSEffect@2@@Z @ 359 NONAME ; int QTMS::QTMSFactory::CreateEffect(int, class QTMS::QTMSEffect * &)
+ ?getStaticMetaObject@QTMSCall@QTMS@@SAABUQMetaObject@@XZ @ 360 NONAME ; struct QMetaObject const & QTMS::QTMSCall::getStaticMetaObject(void)
+ ?metaObject@QTMSGlobalGainEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 361 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalGainEffect::metaObject(void) const
+ ??0QTMSFactory@QTMS@@AAE@XZ @ 362 NONAME ; QTMS::QTMSFactory::QTMSFactory(void)
+ ?GetOutput@QTMSGlobalRouting@QTMS@@QAEHAAH@Z @ 363 NONAME ; int QTMS::QTMSGlobalRouting::GetOutput(int &)
+ ?tr@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0@Z @ 364 NONAME ; class QString QTMS::QTMSPCMFormat::tr(char const *, char const *)
+ ?CreateBuffer@QTMSFactory@QTMS@@QAEHHIAAPAVQTMSBuffer@2@@Z @ 365 NONAME ; int QTMS::QTMSFactory::CreateBuffer(int, unsigned int, class QTMS::QTMSBuffer * &)
+ ?trUtf8@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 366 NONAME ; class QString QTMS::QTMSPCMFormat::trUtf8(char const *, char const *, int)
+ ?qt_metacast@QTMSMicSource@QTMS@@UAEPAXPBD@Z @ 367 NONAME ; void * QTMS::QTMSMicSource::qt_metacast(char const *)
+ ??0QTMSRingTone@QTMS@@IAE@XZ @ 368 NONAME ; QTMS::QTMSRingTone::QTMSRingTone(void)
+ ?trUtf8@QTMSG729Format@QTMS@@SA?AVQString@@PBD0@Z @ 369 NONAME ; class QString QTMS::QTMSG729Format::trUtf8(char const *, char const *)
+ ?trUtf8@QTMSRingTone@QTMS@@SA?AVQString@@PBD0H@Z @ 370 NONAME ; class QString QTMS::QTMSRingTone::trUtf8(char const *, char const *, int)
+ ?qt_metacall@QTMSAMRFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 371 NONAME ; int QTMS::QTMSAMRFormat::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ??0QTMSInbandTone@QTMS@@IAE@XZ @ 372 NONAME ; QTMS::QTMSInbandTone::QTMSInbandTone(void)
+ ?RemoveEffect@QTMSStream@QTMS@@QAEHPAVQTMSEffect@2@@Z @ 373 NONAME ; int QTMS::QTMSStream::RemoveEffect(class QTMS::QTMSEffect *)
+ ?SetBitRate@QTMSFormat@QTMS@@QAEHI@Z @ 374 NONAME ; int QTMS::QTMSFormat::SetBitRate(unsigned int)
+ ?Stop@QTMSStream@QTMS@@QAEHXZ @ 375 NONAME ; int QTMS::QTMSStream::Stop(void)
+ ?trUtf8@QTMSCall@QTMS@@SA?AVQString@@PBD0H@Z @ 376 NONAME ; class QString QTMS::QTMSCall::trUtf8(char const *, char const *, int)
+ ??_EQTMSILBCFormat@QTMS@@UAE@I@Z @ 377 NONAME ; QTMS::QTMSILBCFormat::~QTMSILBCFormat(unsigned int)
+ ?qt_metacall@QTMSFactory@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 378 NONAME ; int QTMS::QTMSFactory::qt_metacall(enum QMetaObject::Call, int, void * *)
+ ?staticMetaObject@QTMSStream@QTMS@@2UQMetaObject@@B @ 379 NONAME ; struct QMetaObject const QTMS::QTMSStream::staticMetaObject
+ ??0QTMSPCMFormat@QTMS@@IAE@XZ @ 380 NONAME ; QTMS::QTMSPCMFormat::QTMSPCMFormat(void)
+ ?tr@QTMSMicSource@QTMS@@SA?AVQString@@PBD0H@Z @ 381 NONAME ; class QString QTMS::QTMSMicSource::tr(char const *, char const *, int)
+ ?SetLevel@QTMSGainEffect@QTMS@@QAEHI@Z @ 382 NONAME ; int QTMS::QTMSGainEffect::SetLevel(unsigned int)
+ ?Pause@QTMSStream@QTMS@@QAEHXZ @ 383 NONAME ; int QTMS::QTMSStream::Pause(void)
+ ?Deinit@QTMSStream@QTMS@@QAEXXZ @ 384 NONAME ; void QTMS::QTMSStream::Deinit(void)
+ ?metaObject@QTMSDTMF@QTMS@@UBEPBUQMetaObject@@XZ @ 385 NONAME ; struct QMetaObject const * QTMS::QTMSDTMF::metaObject(void) const
+ ?GetMaxLevel@QTMSGainEffect@QTMS@@QAEHAAI@Z @ 386 NONAME ; int QTMS::QTMSGainEffect::GetMaxLevel(unsigned int &)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/data/create_qtms_stub_sis.bat Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,17 @@
+rem
+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 "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
+rem Initial Contributors:
+rem Nokia Corporation - initial contribution.
+rem
+rem Contributors:
+rem
+rem Description: PKG for QT Telephony Media Services (QTMS)
+rem
+
+makesis -s qtmsapi_stub.pkg qtmsapi_stub.sis
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/data/qtmsapi_stub.pkg Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,29 @@
+;
+; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: QT Telephony Multimedia Services (QTMS)
+;
+;File: qtms_stub.pkg
+
+;Languages
+&EN
+
+;Header
+#{"QTMS"},(0x10207CB3),1,0,0, TYPE=SA
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
Binary file qtms/data/qtmsapi_stub.sis has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/eabi/qtmsu.def Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,412 @@
+EXPORTS
+ _ZN4QTMS10QTMSFormat10GetBitRateERj @ 1 NONAME
+ _ZN4QTMS10QTMSFormat10SetBitRateEj @ 2 NONAME
+ _ZN4QTMS10QTMSFormat20GetSupportedBitRatesERSt6vectorIjSaIjEE @ 3 NONAME
+ _ZN4QTMS10QTMSFormat7GetTypeERi @ 4 NONAME
+ _ZN4QTMS10QTMSFormatC1Ev @ 5 NONAME
+ _ZN4QTMS10QTMSFormatC2Ev @ 6 NONAME
+ _ZN4QTMS10QTMSFormatD0Ev @ 7 NONAME
+ _ZN4QTMS10QTMSFormatD1Ev @ 8 NONAME
+ _ZN4QTMS10QTMSFormatD2Ev @ 9 NONAME
+ _ZN4QTMS10QTMSStream10RemoveSinkEPNS_8QTMSSinkE @ 10 NONAME
+ _ZN4QTMS10QTMSStream11GetStreamIdEv @ 11 NONAME
+ _ZN4QTMS10QTMSStream11ResetFormatEPNS_10QTMSFormatE @ 12 NONAME
+ _ZN4QTMS10QTMSStream11qt_metacallEN11QMetaObject4CallEiPPv @ 13 NONAME
+ _ZN4QTMS10QTMSStream11qt_metacastEPKc @ 14 NONAME
+ _ZN4QTMS10QTMSStream12RemoveEffectEPNS_10QTMSEffectE @ 15 NONAME
+ _ZN4QTMS10QTMSStream12RemoveSourceEPNS_10QTMSSourceE @ 16 NONAME
+ _ZN4QTMS10QTMSStream13GetStreamTypeEv @ 17 NONAME
+ _ZN4QTMS10QTMSStream14TMSStreamEventERKS0_NS_15QTMSSignalEventE @ 18 NONAME
+ _ZN4QTMS10QTMSStream16staticMetaObjectE @ 19 NONAME DATA 16
+ _ZN4QTMS10QTMSStream19getStaticMetaObjectEv @ 20 NONAME
+ _ZN4QTMS10QTMSStream4InitEi @ 21 NONAME
+ _ZN4QTMS10QTMSStream4StopEv @ 22 NONAME
+ _ZN4QTMS10QTMSStream5PauseEv @ 23 NONAME
+ _ZN4QTMS10QTMSStream5StartEi @ 24 NONAME
+ _ZN4QTMS10QTMSStream6DeinitEv @ 25 NONAME
+ _ZN4QTMS10QTMSStream7AddSinkEPNS_8QTMSSinkE @ 26 NONAME
+ _ZN4QTMS10QTMSStream8GetStateEv @ 27 NONAME
+ _ZN4QTMS10QTMSStream9AddEffectEPNS_10QTMSEffectE @ 28 NONAME
+ _ZN4QTMS10QTMSStream9AddSourceEPNS_10QTMSSourceE @ 29 NONAME
+ _ZN4QTMS10QTMSStream9SetFormatEPNS_10QTMSFormatE @ 30 NONAME
+ _ZN4QTMS10QTMSStreamC1Ev @ 31 NONAME
+ _ZN4QTMS10QTMSStreamC2Ev @ 32 NONAME
+ _ZN4QTMS10QTMSStreamD0Ev @ 33 NONAME
+ _ZN4QTMS10QTMSStreamD1Ev @ 34 NONAME
+ _ZN4QTMS10QTMSStreamD2Ev @ 35 NONAME
+ _ZN4QTMS11QTMSFactory10CreateCallEiRPNS_8QTMSCallEj @ 36 NONAME
+ _ZN4QTMS11QTMSFactory10CreateDTMFEiRPNS_8QTMSDTMFE @ 37 NONAME
+ _ZN4QTMS11QTMSFactory10CreateSinkEiRPNS_8QTMSSinkE @ 38 NONAME
+ _ZN4QTMS11QTMSFactory10DeleteCallERPNS_8QTMSCallE @ 39 NONAME
+ _ZN4QTMS11QTMSFactory10DeleteDTMFERPNS_8QTMSDTMFE @ 40 NONAME
+ _ZN4QTMS11QTMSFactory10DeleteSinkERPNS_8QTMSSinkE @ 41 NONAME
+ _ZN4QTMS11QTMSFactory11qt_metacallEN11QMetaObject4CallEiPPv @ 42 NONAME
+ _ZN4QTMS11QTMSFactory11qt_metacastEPKc @ 43 NONAME
+ _ZN4QTMS11QTMSFactory12CreateBufferEijRPNS_10QTMSBufferE @ 44 NONAME
+ _ZN4QTMS11QTMSFactory12CreateEffectEiRPNS_10QTMSEffectE @ 45 NONAME
+ _ZN4QTMS11QTMSFactory12CreateFormatEiRPNS_10QTMSFormatE @ 46 NONAME
+ _ZN4QTMS11QTMSFactory12CreateSourceEiRPNS_10QTMSSourceE @ 47 NONAME
+ _ZN4QTMS11QTMSFactory12DeleteBufferERPNS_10QTMSBufferE @ 48 NONAME
+ _ZN4QTMS11QTMSFactory12DeleteEffectERPNS_10QTMSEffectE @ 49 NONAME
+ _ZN4QTMS11QTMSFactory12DeleteFormatERPNS_10QTMSFormatE @ 50 NONAME
+ _ZN4QTMS11QTMSFactory12DeleteSourceERPNS_10QTMSSourceE @ 51 NONAME
+ _ZN4QTMS11QTMSFactory13CreateFactoryERPS0_RNS_7QTMSVerE @ 52 NONAME
+ _ZN4QTMS11QTMSFactory16staticMetaObjectE @ 53 NONAME DATA 16
+ _ZN4QTMS11QTMSFactory19CreateGlobalRoutingERPNS_17QTMSGlobalRoutingE @ 54 NONAME
+ _ZN4QTMS11QTMSFactory19DeleteGlobalRoutingERPNS_17QTMSGlobalRoutingE @ 55 NONAME
+ _ZN4QTMS11QTMSFactory19GetSupportedFormatsEiRSt6vectorIPNS_10QTMSFormatESaIS3_EE @ 56 NONAME
+ _ZN4QTMS11QTMSFactory19IsCallTypeSupportedEiRi @ 57 NONAME
+ _ZN4QTMS11QTMSFactory19getStaticMetaObjectEv @ 58 NONAME
+ _ZN4QTMS11QTMSFactory20CreateRingTonePlayerERPNS_12QTMSRingToneE @ 59 NONAME
+ _ZN4QTMS11QTMSFactory20DeleteRingTonePlayerERPNS_12QTMSRingToneE @ 60 NONAME
+ _ZN4QTMS11QTMSFactory22CreateInbandTonePlayerERPNS_14QTMSInbandToneE @ 61 NONAME
+ _ZN4QTMS11QTMSFactory22DeleteInbandTonePlayerERPNS_14QTMSInbandToneE @ 62 NONAME
+ _ZN4QTMS11QTMSFactoryC1Ev @ 63 NONAME
+ _ZN4QTMS11QTMSFactoryC2Ev @ 64 NONAME
+ _ZN4QTMS11QTMSFactoryD0Ev @ 65 NONAME
+ _ZN4QTMS11QTMSFactoryD1Ev @ 66 NONAME
+ _ZN4QTMS11QTMSFactoryD2Ev @ 67 NONAME
+ _ZN4QTMS12QTMSRingTone11qt_metacallEN11QMetaObject4CallEiPPv @ 68 NONAME
+ _ZN4QTMS12QTMSRingTone11qt_metacastEPKc @ 69 NONAME
+ _ZN4QTMS12QTMSRingTone13RingtoneEventERKS0_NS_15QTMSSignalEventE @ 70 NONAME
+ _ZN4QTMS12QTMSRingTone16staticMetaObjectE @ 71 NONAME DATA 16
+ _ZN4QTMS12QTMSRingTone19getStaticMetaObjectEv @ 72 NONAME
+ _ZN4QTMS12QTMSRingTone4InitEiP8_GStringS2_ @ 73 NONAME
+ _ZN4QTMS12QTMSRingTone4MuteEv @ 74 NONAME
+ _ZN4QTMS12QTMSRingTone4PlayEv @ 75 NONAME
+ _ZN4QTMS12QTMSRingTone4StopEv @ 76 NONAME
+ _ZN4QTMS12QTMSRingTone5PauseEv @ 77 NONAME
+ _ZN4QTMS12QTMSRingTone6DeinitEv @ 78 NONAME
+ _ZN4QTMS12QTMSRingToneC1Ev @ 79 NONAME
+ _ZN4QTMS12QTMSRingToneC2Ev @ 80 NONAME
+ _ZN4QTMS12QTMSRingToneD0Ev @ 81 NONAME
+ _ZN4QTMS12QTMSRingToneD1Ev @ 82 NONAME
+ _ZN4QTMS12QTMSRingToneD2Ev @ 83 NONAME
+ _ZN4QTMS13QTMSAMRFormat11qt_metacallEN11QMetaObject4CallEiPPv @ 84 NONAME
+ _ZN4QTMS13QTMSAMRFormat11qt_metacastEPKc @ 85 NONAME
+ _ZN4QTMS13QTMSAMRFormat16staticMetaObjectE @ 86 NONAME DATA 16
+ _ZN4QTMS13QTMSAMRFormat19getStaticMetaObjectEv @ 87 NONAME
+ _ZN4QTMS13QTMSAMRFormatC1Ev @ 88 NONAME
+ _ZN4QTMS13QTMSAMRFormatC2Ev @ 89 NONAME
+ _ZN4QTMS13QTMSAMRFormatD0Ev @ 90 NONAME
+ _ZN4QTMS13QTMSAMRFormatD1Ev @ 91 NONAME
+ _ZN4QTMS13QTMSAMRFormatD2Ev @ 92 NONAME
+ _ZN4QTMS13QTMSMicSource11qt_metacallEN11QMetaObject4CallEiPPv @ 93 NONAME
+ _ZN4QTMS13QTMSMicSource11qt_metacastEPKc @ 94 NONAME
+ _ZN4QTMS13QTMSMicSource16staticMetaObjectE @ 95 NONAME DATA 16
+ _ZN4QTMS13QTMSMicSource19getStaticMetaObjectEv @ 96 NONAME
+ _ZN4QTMS13QTMSMicSource7GetTypeERi @ 97 NONAME
+ _ZN4QTMS13QTMSMicSourceC1Ev @ 98 NONAME
+ _ZN4QTMS13QTMSMicSourceC2Ev @ 99 NONAME
+ _ZN4QTMS13QTMSMicSourceD0Ev @ 100 NONAME
+ _ZN4QTMS13QTMSMicSourceD1Ev @ 101 NONAME
+ _ZN4QTMS13QTMSMicSourceD2Ev @ 102 NONAME
+ _ZN4QTMS13QTMSModemSink11qt_metacallEN11QMetaObject4CallEiPPv @ 103 NONAME
+ _ZN4QTMS13QTMSModemSink11qt_metacastEPKc @ 104 NONAME
+ _ZN4QTMS13QTMSModemSink16staticMetaObjectE @ 105 NONAME DATA 16
+ _ZN4QTMS13QTMSModemSink19getStaticMetaObjectEv @ 106 NONAME
+ _ZN4QTMS13QTMSModemSink7GetTypeERi @ 107 NONAME
+ _ZN4QTMS13QTMSModemSinkC1Ev @ 108 NONAME
+ _ZN4QTMS13QTMSModemSinkC2Ev @ 109 NONAME
+ _ZN4QTMS13QTMSModemSinkD0Ev @ 110 NONAME
+ _ZN4QTMS13QTMSModemSinkD1Ev @ 111 NONAME
+ _ZN4QTMS13QTMSModemSinkD2Ev @ 112 NONAME
+ _ZN4QTMS13QTMSPCMFormat11qt_metacallEN11QMetaObject4CallEiPPv @ 113 NONAME
+ _ZN4QTMS13QTMSPCMFormat11qt_metacastEPKc @ 114 NONAME
+ _ZN4QTMS13QTMSPCMFormat16staticMetaObjectE @ 115 NONAME DATA 16
+ _ZN4QTMS13QTMSPCMFormat19getStaticMetaObjectEv @ 116 NONAME
+ _ZN4QTMS13QTMSPCMFormatC1Ev @ 117 NONAME
+ _ZN4QTMS13QTMSPCMFormatC2Ev @ 118 NONAME
+ _ZN4QTMS13QTMSPCMFormatD0Ev @ 119 NONAME
+ _ZN4QTMS13QTMSPCMFormatD1Ev @ 120 NONAME
+ _ZN4QTMS13QTMSPCMFormatD2Ev @ 121 NONAME
+ _ZN4QTMS14QTMSClientSink11qt_metacallEN11QMetaObject4CallEiPPv @ 122 NONAME
+ _ZN4QTMS14QTMSClientSink11qt_metacastEPKc @ 123 NONAME
+ _ZN4QTMS14QTMSClientSink13ProcessBufferEPKNS_10QTMSBufferE @ 124 NONAME
+ _ZN4QTMS14QTMSClientSink15BufferProcessedEPNS_10QTMSBufferE @ 125 NONAME
+ _ZN4QTMS14QTMSClientSink16staticMetaObjectE @ 126 NONAME DATA 16
+ _ZN4QTMS14QTMSClientSink19getStaticMetaObjectEv @ 127 NONAME
+ _ZN4QTMS14QTMSClientSink7GetTypeERi @ 128 NONAME
+ _ZN4QTMS14QTMSClientSinkC1Ev @ 129 NONAME
+ _ZN4QTMS14QTMSClientSinkC2Ev @ 130 NONAME
+ _ZN4QTMS14QTMSClientSinkD0Ev @ 131 NONAME
+ _ZN4QTMS14QTMSClientSinkD1Ev @ 132 NONAME
+ _ZN4QTMS14QTMSClientSinkD2Ev @ 133 NONAME
+ _ZN4QTMS14QTMSG711Format10GetVADModeERi @ 134 NONAME
+ _ZN4QTMS14QTMSG711Format10SetVADModeEi @ 135 NONAME
+ _ZN4QTMS14QTMSG711Format11qt_metacallEN11QMetaObject4CallEiPPv @ 136 NONAME
+ _ZN4QTMS14QTMSG711Format11qt_metacastEPKc @ 137 NONAME
+ _ZN4QTMS14QTMSG711Format16staticMetaObjectE @ 138 NONAME DATA 16
+ _ZN4QTMS14QTMSG711Format19getStaticMetaObjectEv @ 139 NONAME
+ _ZN4QTMS14QTMSG711Format6GetCNGERi @ 140 NONAME
+ _ZN4QTMS14QTMSG711Format6GetPlcERi @ 141 NONAME
+ _ZN4QTMS14QTMSG711Format6SetCNGEi @ 142 NONAME
+ _ZN4QTMS14QTMSG711Format6SetPlcEi @ 143 NONAME
+ _ZN4QTMS14QTMSG711Format7GetModeERi @ 144 NONAME
+ _ZN4QTMS14QTMSG711Format7SetModeEi @ 145 NONAME
+ _ZN4QTMS14QTMSG711FormatC1Ev @ 146 NONAME
+ _ZN4QTMS14QTMSG711FormatC2Ev @ 147 NONAME
+ _ZN4QTMS14QTMSG711FormatD0Ev @ 148 NONAME
+ _ZN4QTMS14QTMSG711FormatD1Ev @ 149 NONAME
+ _ZN4QTMS14QTMSG711FormatD2Ev @ 150 NONAME
+ _ZN4QTMS14QTMSG729Format10GetVADModeERi @ 151 NONAME
+ _ZN4QTMS14QTMSG729Format10SetVADModeEi @ 152 NONAME
+ _ZN4QTMS14QTMSG729Format11qt_metacallEN11QMetaObject4CallEiPPv @ 153 NONAME
+ _ZN4QTMS14QTMSG729Format11qt_metacastEPKc @ 154 NONAME
+ _ZN4QTMS14QTMSG729Format16staticMetaObjectE @ 155 NONAME DATA 16
+ _ZN4QTMS14QTMSG729Format19getStaticMetaObjectEv @ 156 NONAME
+ _ZN4QTMS14QTMSG729FormatC1Ev @ 157 NONAME
+ _ZN4QTMS14QTMSG729FormatC2Ev @ 158 NONAME
+ _ZN4QTMS14QTMSG729FormatD0Ev @ 159 NONAME
+ _ZN4QTMS14QTMSG729FormatD1Ev @ 160 NONAME
+ _ZN4QTMS14QTMSG729FormatD2Ev @ 161 NONAME
+ _ZN4QTMS14QTMSGainEffect11GetMaxLevelERj @ 162 NONAME
+ _ZN4QTMS14QTMSGainEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 163 NONAME
+ _ZN4QTMS14QTMSGainEffect11qt_metacastEPKc @ 164 NONAME
+ _ZN4QTMS14QTMSGainEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 165 NONAME
+ _ZN4QTMS14QTMSGainEffect16staticMetaObjectE @ 166 NONAME DATA 16
+ _ZN4QTMS14QTMSGainEffect19getStaticMetaObjectEv @ 167 NONAME
+ _ZN4QTMS14QTMSGainEffect7GetTypeERi @ 168 NONAME
+ _ZN4QTMS14QTMSGainEffect8GetLevelERj @ 169 NONAME
+ _ZN4QTMS14QTMSGainEffect8SetLevelEj @ 170 NONAME
+ _ZN4QTMS14QTMSGainEffectC1Ev @ 171 NONAME
+ _ZN4QTMS14QTMSGainEffectC2Ev @ 172 NONAME
+ _ZN4QTMS14QTMSGainEffectD0Ev @ 173 NONAME
+ _ZN4QTMS14QTMSGainEffectD1Ev @ 174 NONAME
+ _ZN4QTMS14QTMSGainEffectD2Ev @ 175 NONAME
+ _ZN4QTMS14QTMSILBCFormat10GetVADModeERi @ 176 NONAME
+ _ZN4QTMS14QTMSILBCFormat10SetVADModeEi @ 177 NONAME
+ _ZN4QTMS14QTMSILBCFormat11qt_metacallEN11QMetaObject4CallEiPPv @ 178 NONAME
+ _ZN4QTMS14QTMSILBCFormat11qt_metacastEPKc @ 179 NONAME
+ _ZN4QTMS14QTMSILBCFormat16staticMetaObjectE @ 180 NONAME DATA 16
+ _ZN4QTMS14QTMSILBCFormat19getStaticMetaObjectEv @ 181 NONAME
+ _ZN4QTMS14QTMSILBCFormat6GetCNGERi @ 182 NONAME
+ _ZN4QTMS14QTMSILBCFormat6SetCNGEi @ 183 NONAME
+ _ZN4QTMS14QTMSILBCFormat7GetModeERi @ 184 NONAME
+ _ZN4QTMS14QTMSILBCFormat7SetModeEi @ 185 NONAME
+ _ZN4QTMS14QTMSILBCFormatC1Ev @ 186 NONAME
+ _ZN4QTMS14QTMSILBCFormatC2Ev @ 187 NONAME
+ _ZN4QTMS14QTMSILBCFormatD0Ev @ 188 NONAME
+ _ZN4QTMS14QTMSILBCFormatD1Ev @ 189 NONAME
+ _ZN4QTMS14QTMSILBCFormatD2Ev @ 190 NONAME
+ _ZN4QTMS14QTMSInbandTone11qt_metacallEN11QMetaObject4CallEiPPv @ 191 NONAME
+ _ZN4QTMS14QTMSInbandTone11qt_metacastEPKc @ 192 NONAME
+ _ZN4QTMS14QTMSInbandTone15InbandToneEventERKS0_NS_15QTMSSignalEventE @ 193 NONAME
+ _ZN4QTMS14QTMSInbandTone16staticMetaObjectE @ 194 NONAME DATA 16
+ _ZN4QTMS14QTMSInbandTone19getStaticMetaObjectEv @ 195 NONAME
+ _ZN4QTMS14QTMSInbandTone4StopEv @ 196 NONAME
+ _ZN4QTMS14QTMSInbandTone5StartEi @ 197 NONAME
+ _ZN4QTMS14QTMSInbandToneC1Ev @ 198 NONAME
+ _ZN4QTMS14QTMSInbandToneC2Ev @ 199 NONAME
+ _ZN4QTMS14QTMSInbandToneD0Ev @ 200 NONAME
+ _ZN4QTMS14QTMSInbandToneD1Ev @ 201 NONAME
+ _ZN4QTMS14QTMSInbandToneD2Ev @ 202 NONAME
+ _ZN4QTMS15QTMSModemSource11qt_metacallEN11QMetaObject4CallEiPPv @ 203 NONAME
+ _ZN4QTMS15QTMSModemSource11qt_metacastEPKc @ 204 NONAME
+ _ZN4QTMS15QTMSModemSource16staticMetaObjectE @ 205 NONAME DATA 16
+ _ZN4QTMS15QTMSModemSource19getStaticMetaObjectEv @ 206 NONAME
+ _ZN4QTMS15QTMSModemSource7GetTypeERi @ 207 NONAME
+ _ZN4QTMS15QTMSModemSourceC1Ev @ 208 NONAME
+ _ZN4QTMS15QTMSModemSourceC2Ev @ 209 NONAME
+ _ZN4QTMS15QTMSModemSourceD0Ev @ 210 NONAME
+ _ZN4QTMS15QTMSModemSourceD1Ev @ 211 NONAME
+ _ZN4QTMS15QTMSModemSourceD2Ev @ 212 NONAME
+ _ZN4QTMS15QTMSSpeakerSink11qt_metacallEN11QMetaObject4CallEiPPv @ 213 NONAME
+ _ZN4QTMS15QTMSSpeakerSink11qt_metacastEPKc @ 214 NONAME
+ _ZN4QTMS15QTMSSpeakerSink16staticMetaObjectE @ 215 NONAME DATA 16
+ _ZN4QTMS15QTMSSpeakerSink19getStaticMetaObjectEv @ 216 NONAME
+ _ZN4QTMS15QTMSSpeakerSink7GetTypeERi @ 217 NONAME
+ _ZN4QTMS15QTMSSpeakerSinkC1Ev @ 218 NONAME
+ _ZN4QTMS15QTMSSpeakerSinkC2Ev @ 219 NONAME
+ _ZN4QTMS15QTMSSpeakerSinkD0Ev @ 220 NONAME
+ _ZN4QTMS15QTMSSpeakerSinkD1Ev @ 221 NONAME
+ _ZN4QTMS15QTMSSpeakerSinkD2Ev @ 222 NONAME
+ _ZN4QTMS16QTMSClientSource10FillBufferERNS_10QTMSBufferE @ 223 NONAME
+ _ZN4QTMS16QTMSClientSource11qt_metacallEN11QMetaObject4CallEiPPv @ 224 NONAME
+ _ZN4QTMS16QTMSClientSource11qt_metacastEPKc @ 225 NONAME
+ _ZN4QTMS16QTMSClientSource12BufferFilledERNS_10QTMSBufferE @ 226 NONAME
+ _ZN4QTMS16QTMSClientSource13ProcessBufferEPNS_10QTMSBufferE @ 227 NONAME
+ _ZN4QTMS16QTMSClientSource14GetEnqueueModeERi @ 228 NONAME
+ _ZN4QTMS16QTMSClientSource14SetEnqueueModeEi @ 229 NONAME
+ _ZN4QTMS16QTMSClientSource15BufferProcessedEPKNS_10QTMSBufferEi @ 230 NONAME
+ _ZN4QTMS16QTMSClientSource16staticMetaObjectE @ 231 NONAME DATA 16
+ _ZN4QTMS16QTMSClientSource19getStaticMetaObjectEv @ 232 NONAME
+ _ZN4QTMS16QTMSClientSource5FlushEv @ 233 NONAME
+ _ZN4QTMS16QTMSClientSource7GetTypeERi @ 234 NONAME
+ _ZN4QTMS16QTMSClientSourceC1Ev @ 235 NONAME
+ _ZN4QTMS16QTMSClientSourceC2Ev @ 236 NONAME
+ _ZN4QTMS16QTMSClientSourceD0Ev @ 237 NONAME
+ _ZN4QTMS16QTMSClientSourceD1Ev @ 238 NONAME
+ _ZN4QTMS16QTMSClientSourceD2Ev @ 239 NONAME
+ _ZN4QTMS16QTMSVolumeEffect11GetMaxLevelERj @ 240 NONAME
+ _ZN4QTMS16QTMSVolumeEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 241 NONAME
+ _ZN4QTMS16QTMSVolumeEffect11qt_metacastEPKc @ 242 NONAME
+ _ZN4QTMS16QTMSVolumeEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 243 NONAME
+ _ZN4QTMS16QTMSVolumeEffect16staticMetaObjectE @ 244 NONAME DATA 16
+ _ZN4QTMS16QTMSVolumeEffect19getStaticMetaObjectEv @ 245 NONAME
+ _ZN4QTMS16QTMSVolumeEffect7GetTypeERi @ 246 NONAME
+ _ZN4QTMS16QTMSVolumeEffect8GetLevelERj @ 247 NONAME
+ _ZN4QTMS16QTMSVolumeEffect8SetLevelEj @ 248 NONAME
+ _ZN4QTMS16QTMSVolumeEffectC1Ev @ 249 NONAME
+ _ZN4QTMS16QTMSVolumeEffectC2Ev @ 250 NONAME
+ _ZN4QTMS16QTMSVolumeEffectD0Ev @ 251 NONAME
+ _ZN4QTMS16QTMSVolumeEffectD1Ev @ 252 NONAME
+ _ZN4QTMS16QTMSVolumeEffectD2Ev @ 253 NONAME
+ _ZN4QTMS17QTMSGlobalRouting11qt_metacallEN11QMetaObject4CallEiPPv @ 254 NONAME
+ _ZN4QTMS17QTMSGlobalRouting11qt_metacastEPKc @ 255 NONAME
+ _ZN4QTMS17QTMSGlobalRouting16staticMetaObjectE @ 256 NONAME DATA 16
+ _ZN4QTMS17QTMSGlobalRouting17GetPreviousOutputERi @ 257 NONAME
+ _ZN4QTMS17QTMSGlobalRouting18GlobalRoutingEventERKS0_NS_15QTMSSignalEventEi @ 258 NONAME
+ _ZN4QTMS17QTMSGlobalRouting19GetAvailableOutputsERSt6vectorIjSaIjEE @ 259 NONAME
+ _ZN4QTMS17QTMSGlobalRouting19getStaticMetaObjectEv @ 260 NONAME
+ _ZN4QTMS17QTMSGlobalRouting9GetOutputERi @ 261 NONAME
+ _ZN4QTMS17QTMSGlobalRouting9SetOutputEi @ 262 NONAME
+ _ZN4QTMS17QTMSGlobalRoutingC1Ev @ 263 NONAME
+ _ZN4QTMS17QTMSGlobalRoutingC2Ev @ 264 NONAME
+ _ZN4QTMS17QTMSGlobalRoutingD0Ev @ 265 NONAME
+ _ZN4QTMS17QTMSGlobalRoutingD1Ev @ 266 NONAME
+ _ZN4QTMS17QTMSGlobalRoutingD2Ev @ 267 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffect11GetMaxLevelERj @ 268 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 269 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffect11qt_metacastEPKc @ 270 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 271 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffect16staticMetaObjectE @ 272 NONAME DATA 16
+ _ZN4QTMS19QTMSGlobalVolEffect19getStaticMetaObjectEv @ 273 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffect7GetTypeERi @ 274 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffect8GetLevelERj @ 275 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffect8SetLevelEj @ 276 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffectC1Ev @ 277 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffectC2Ev @ 278 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffectD0Ev @ 279 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffectD1Ev @ 280 NONAME
+ _ZN4QTMS19QTMSGlobalVolEffectD2Ev @ 281 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffect11GetMaxLevelERj @ 282 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 283 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffect11qt_metacastEPKc @ 284 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 285 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffect16staticMetaObjectE @ 286 NONAME DATA 16
+ _ZN4QTMS20QTMSGlobalGainEffect19getStaticMetaObjectEv @ 287 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffect7GetTypeERi @ 288 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffect8GetLevelERj @ 289 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffect8SetLevelEj @ 290 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffectC1Ev @ 291 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffectC2Ev @ 292 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffectD0Ev @ 293 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffectD1Ev @ 294 NONAME
+ _ZN4QTMS20QTMSGlobalGainEffectD2Ev @ 295 NONAME
+ _ZN4QTMS8QTMSCall11GetCallTypeEv @ 296 NONAME
+ _ZN4QTMS8QTMSCall11qt_metacallEN11QMetaObject4CallEiPPv @ 297 NONAME
+ _ZN4QTMS8QTMSCall11qt_metacastEPKc @ 298 NONAME
+ _ZN4QTMS8QTMSCall12CreateStreamEiRPNS_10QTMSStreamE @ 299 NONAME
+ _ZN4QTMS8QTMSCall12DeleteStreamERPNS_10QTMSStreamE @ 300 NONAME
+ _ZN4QTMS8QTMSCall16GetCallContextIdERj @ 301 NONAME
+ _ZN4QTMS8QTMSCall16staticMetaObjectE @ 302 NONAME DATA 16
+ _ZN4QTMS8QTMSCall19getStaticMetaObjectEv @ 303 NONAME
+ _ZN4QTMS8QTMSCallC1Ev @ 304 NONAME
+ _ZN4QTMS8QTMSCallC2Ev @ 305 NONAME
+ _ZN4QTMS8QTMSCallD0Ev @ 306 NONAME
+ _ZN4QTMS8QTMSCallD1Ev @ 307 NONAME
+ _ZN4QTMS8QTMSCallD2Ev @ 308 NONAME
+ _ZN4QTMS8QTMSDTMF11qt_metacallEN11QMetaObject4CallEiPPv @ 309 NONAME
+ _ZN4QTMS8QTMSDTMF11qt_metacastEPKc @ 310 NONAME
+ _ZN4QTMS8QTMSDTMF16staticMetaObjectE @ 311 NONAME DATA 16
+ _ZN4QTMS8QTMSDTMF19getStaticMetaObjectEv @ 312 NONAME
+ _ZN4QTMS8QTMSDTMF25ContinueDTMFStringSendingEi @ 313 NONAME
+ _ZN4QTMS8QTMSDTMF4StopEv @ 314 NONAME
+ _ZN4QTMS8QTMSDTMF5StartEv @ 315 NONAME
+ _ZN4QTMS8QTMSDTMF7SetToneEP8_GString @ 316 NONAME
+ _ZN4QTMS8QTMSDTMF9DTMFEventERKS0_NS_15QTMSSignalEventE @ 317 NONAME
+ _ZN4QTMS8QTMSDTMFC1Ev @ 318 NONAME
+ _ZN4QTMS8QTMSDTMFC2Ev @ 319 NONAME
+ _ZN4QTMS8QTMSDTMFD0Ev @ 320 NONAME
+ _ZN4QTMS8QTMSDTMFD1Ev @ 321 NONAME
+ _ZN4QTMS8QTMSDTMFD2Ev @ 322 NONAME
+ _ZNK4QTMS10QTMSStream10metaObjectEv @ 323 NONAME
+ _ZNK4QTMS11QTMSFactory10metaObjectEv @ 324 NONAME
+ _ZNK4QTMS12QTMSRingTone10metaObjectEv @ 325 NONAME
+ _ZNK4QTMS13QTMSAMRFormat10metaObjectEv @ 326 NONAME
+ _ZNK4QTMS13QTMSMicSource10metaObjectEv @ 327 NONAME
+ _ZNK4QTMS13QTMSModemSink10metaObjectEv @ 328 NONAME
+ _ZNK4QTMS13QTMSPCMFormat10metaObjectEv @ 329 NONAME
+ _ZNK4QTMS14QTMSClientSink10metaObjectEv @ 330 NONAME
+ _ZNK4QTMS14QTMSG711Format10metaObjectEv @ 331 NONAME
+ _ZNK4QTMS14QTMSG729Format10metaObjectEv @ 332 NONAME
+ _ZNK4QTMS14QTMSGainEffect10metaObjectEv @ 333 NONAME
+ _ZNK4QTMS14QTMSILBCFormat10metaObjectEv @ 334 NONAME
+ _ZNK4QTMS14QTMSInbandTone10metaObjectEv @ 335 NONAME
+ _ZNK4QTMS15QTMSModemSource10metaObjectEv @ 336 NONAME
+ _ZNK4QTMS15QTMSSpeakerSink10metaObjectEv @ 337 NONAME
+ _ZNK4QTMS16QTMSClientSource10metaObjectEv @ 338 NONAME
+ _ZNK4QTMS16QTMSVolumeEffect10metaObjectEv @ 339 NONAME
+ _ZNK4QTMS17QTMSGlobalRouting10metaObjectEv @ 340 NONAME
+ _ZNK4QTMS19QTMSGlobalVolEffect10metaObjectEv @ 341 NONAME
+ _ZNK4QTMS20QTMSGlobalGainEffect10metaObjectEv @ 342 NONAME
+ _ZNK4QTMS8QTMSCall10metaObjectEv @ 343 NONAME
+ _ZNK4QTMS8QTMSDTMF10metaObjectEv @ 344 NONAME
+ _ZTIN4QTMS10QTMSFormatE @ 345 NONAME
+ _ZTIN4QTMS10QTMSStreamE @ 346 NONAME
+ _ZTIN4QTMS11QTMSFactoryE @ 347 NONAME
+ _ZTIN4QTMS12QTMSRingToneE @ 348 NONAME
+ _ZTIN4QTMS13QTMSAMRFormatE @ 349 NONAME
+ _ZTIN4QTMS13QTMSMicSourceE @ 350 NONAME
+ _ZTIN4QTMS13QTMSModemSinkE @ 351 NONAME
+ _ZTIN4QTMS13QTMSPCMFormatE @ 352 NONAME
+ _ZTIN4QTMS14QTMSClientSinkE @ 353 NONAME
+ _ZTIN4QTMS14QTMSG711FormatE @ 354 NONAME
+ _ZTIN4QTMS14QTMSG729FormatE @ 355 NONAME
+ _ZTIN4QTMS14QTMSGainEffectE @ 356 NONAME
+ _ZTIN4QTMS14QTMSILBCFormatE @ 357 NONAME
+ _ZTIN4QTMS14QTMSInbandToneE @ 358 NONAME
+ _ZTIN4QTMS15QTMSModemSourceE @ 359 NONAME
+ _ZTIN4QTMS15QTMSSpeakerSinkE @ 360 NONAME
+ _ZTIN4QTMS16QTMSClientSourceE @ 361 NONAME
+ _ZTIN4QTMS16QTMSVolumeEffectE @ 362 NONAME
+ _ZTIN4QTMS17QTMSGlobalRoutingE @ 363 NONAME
+ _ZTIN4QTMS19QTMSGlobalVolEffectE @ 364 NONAME
+ _ZTIN4QTMS20QTMSGlobalGainEffectE @ 365 NONAME
+ _ZTIN4QTMS8QTMSCallE @ 366 NONAME
+ _ZTIN4QTMS8QTMSDTMFE @ 367 NONAME
+ _ZTVN4QTMS10QTMSFormatE @ 368 NONAME
+ _ZTVN4QTMS10QTMSStreamE @ 369 NONAME
+ _ZTVN4QTMS11QTMSFactoryE @ 370 NONAME
+ _ZTVN4QTMS12QTMSRingToneE @ 371 NONAME
+ _ZTVN4QTMS13QTMSAMRFormatE @ 372 NONAME
+ _ZTVN4QTMS13QTMSMicSourceE @ 373 NONAME
+ _ZTVN4QTMS13QTMSModemSinkE @ 374 NONAME
+ _ZTVN4QTMS13QTMSPCMFormatE @ 375 NONAME
+ _ZTVN4QTMS14QTMSClientSinkE @ 376 NONAME
+ _ZTVN4QTMS14QTMSG711FormatE @ 377 NONAME
+ _ZTVN4QTMS14QTMSG729FormatE @ 378 NONAME
+ _ZTVN4QTMS14QTMSGainEffectE @ 379 NONAME
+ _ZTVN4QTMS14QTMSILBCFormatE @ 380 NONAME
+ _ZTVN4QTMS14QTMSInbandToneE @ 381 NONAME
+ _ZTVN4QTMS15QTMSModemSourceE @ 382 NONAME
+ _ZTVN4QTMS15QTMSSpeakerSinkE @ 383 NONAME
+ _ZTVN4QTMS16QTMSClientSourceE @ 384 NONAME
+ _ZTVN4QTMS16QTMSVolumeEffectE @ 385 NONAME
+ _ZTVN4QTMS17QTMSGlobalRoutingE @ 386 NONAME
+ _ZTVN4QTMS19QTMSGlobalVolEffectE @ 387 NONAME
+ _ZTVN4QTMS20QTMSGlobalGainEffectE @ 388 NONAME
+ _ZTVN4QTMS8QTMSCallE @ 389 NONAME
+ _ZTVN4QTMS8QTMSDTMFE @ 390 NONAME
+ _ZThn8_N4QTMS13QTMSAMRFormatD0Ev @ 391 NONAME
+ _ZThn8_N4QTMS13QTMSAMRFormatD1Ev @ 392 NONAME
+ _ZThn8_N4QTMS13QTMSMicSource7GetTypeERi @ 393 NONAME
+ _ZThn8_N4QTMS13QTMSModemSink7GetTypeERi @ 394 NONAME
+ _ZThn8_N4QTMS13QTMSPCMFormatD0Ev @ 395 NONAME
+ _ZThn8_N4QTMS13QTMSPCMFormatD1Ev @ 396 NONAME
+ _ZThn8_N4QTMS14QTMSClientSink7GetTypeERi @ 397 NONAME
+ _ZThn8_N4QTMS14QTMSG711FormatD0Ev @ 398 NONAME
+ _ZThn8_N4QTMS14QTMSG711FormatD1Ev @ 399 NONAME
+ _ZThn8_N4QTMS14QTMSG729FormatD0Ev @ 400 NONAME
+ _ZThn8_N4QTMS14QTMSG729FormatD1Ev @ 401 NONAME
+ _ZThn8_N4QTMS14QTMSGainEffect7GetTypeERi @ 402 NONAME
+ _ZThn8_N4QTMS14QTMSILBCFormatD0Ev @ 403 NONAME
+ _ZThn8_N4QTMS14QTMSILBCFormatD1Ev @ 404 NONAME
+ _ZThn8_N4QTMS15QTMSModemSource7GetTypeERi @ 405 NONAME
+ _ZThn8_N4QTMS15QTMSSpeakerSink7GetTypeERi @ 406 NONAME
+ _ZThn8_N4QTMS16QTMSClientSource7GetTypeERi @ 407 NONAME
+ _ZThn8_N4QTMS16QTMSVolumeEffect7GetTypeERi @ 408 NONAME
+ _ZThn8_N4QTMS19QTMSGlobalVolEffect7GetTypeERi @ 409 NONAME
+ _ZThn8_N4QTMS20QTMSGlobalGainEffect7GetTypeERi @ 410 NONAME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsamrimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_AMR_FORMAT_IMPL_H
+#define QTMS_AMR_FORMAT_IMPL_H
+
+#include <qtms.h>
+#include <qtmsamrformat.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+// Class declaration
+class QTMSAMRFormatImpl: public QTMSAMRFormat
+{
+public:
+
+ static gint Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat);
+ virtual ~QTMSAMRFormatImpl();
+
+ gint GetFormat(TMS::TMSFormat*& fmt);
+
+ // From QTMSFormat
+ gint GetType(QTMSFormatType& fmttype);
+
+private:
+ QTMSAMRFormatImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_AMR_FORMAT_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsbufferimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_BUFFER_IMPL_H
+#define QTMS_BUFFER_IMPL_H
+
+#include <qtms.h>
+
+// FORWARD DECLARATION
+namespace TMS
+{
+class TMSBuffer;
+}
+
+namespace QTMS
+{
+
+// FORWARD DECLARATIONS
+class QTMSBuffer;
+
+// TMSBufferImpl class
+class QTMSBufferImpl
+{
+public:
+ static gint Create(QTMSBufferType ctype, QTMSBuffer*& buffer, TMS::TMSBuffer*& tmsbuffer);
+ static gint Delete(QTMSBuffer*& buffer);
+};
+
+} //namespace QTMS
+
+#endif // QTMS_BUFFER_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmscallimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_CALL_IMPL_H
+#define QTMS_CALL_IMPL_H
+
+#include <glib.h>
+#include <qtmscall.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSCall;
+}
+
+namespace QTMS
+{
+
+// FORWARD DECLARATIONS
+class QTMSStream;
+class QTMSDTMF;
+class QTMSRingTone;
+
+// QTMSCallImpl class
+class QTMSCallImpl: public QTMSCall
+{
+public:
+ static gint Create(QTMSCall*& qtmscall, TMS::TMSCall*& tmscall);
+
+ virtual ~QTMSCallImpl();
+
+ // From QTMSCallBody
+ // QTMSCallType GetCallType();
+ // gint GetCallContextId(guint& ctxid);
+ // gint CreateStream(QTMSStreamType type, QTMSStream*& strm);
+ // gint DeleteStream(QTMSStream*& strm);
+
+private:
+ // TMS::TMSCall* iTmsCall;
+ QTMSCallImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_CALL_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsclientsinkimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_CLIENT_SINK_IMPL_H
+#define QTMS_CLIENT_SINK_IMPL_H
+
+#include <qtms.h>
+#include <qtmsclientsink.h>
+#include <tmsclientsinkobsrvr.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSBuffer;
+class TMSSink;
+}
+
+namespace QTMS
+{
+
+// QTMSClientSinkImpl class
+class QTMSClientSinkImpl: public QTMSClientSink, public TMS::TMSClientSinkObserver
+{
+public:
+ static gint Create(QTMSSink*& qsink, TMS::TMSSink*& tmsclientsink);
+ virtual ~QTMSClientSinkImpl();
+
+ gint AddObserver(TMS::TMSClientSinkObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSClientSinkObserver& obsrvr);
+
+ gint GetSink(TMS::TMSSink*& tmssink);
+
+ // From TMSClientSinkObserver
+ void ProcessBuffer(const TMS::TMSBuffer* buffer);
+
+private:
+ QTMSClientSinkImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_CLIENT_SINK_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsclientsourceimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_CLIENT_SOURCE_IMPL_H
+#define QTMS_CLIENT_SOURCE_IMPL_H
+
+#include <qtms.h>
+#include <qtmsclientsource.h>
+#include <tmsclientsourceobsrvr.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSBuffer;
+class TMSSource;
+}
+
+namespace QTMS
+{
+
+// QTMSClientSourceImpl class
+class QTMSClientSourceImpl: public QTMSClientSource, public TMS::TMSClientSourceObserver
+{
+public:
+
+ static gint Create(QTMSSource*& qsource, TMS::TMSSource*& tmssource);
+ virtual ~QTMSClientSourceImpl();
+
+ gint AddObserver(TMS::TMSClientSourceObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSClientSourceObserver& obsrvr);
+
+ gint GetSource(TMS::TMSSource*& tmssource);
+
+ //From TMSClientSourceObserver
+ void FillBuffer(TMS::TMSBuffer& buffer);
+ void BufferProcessed(const TMS::TMSBuffer* buffer, gint reason);
+
+private:
+ QTMSClientSourceImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_CLIENT_SOURCE_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsdtmfimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_DTMF_IMPL_H
+#define QTMS_DTMF_IMPL_H
+
+#include <tms.h>
+#include <tmsdtmfobsrvr.h>
+#include <qtms.h>
+#include <qtmsdtmf.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSDTMF;
+}
+
+namespace QTMS
+{
+
+// QTMSDTMFImpl class
+class QTMSDTMFImpl: public QTMSDTMF, public TMS::TMSDTMFObserver
+{
+public:
+ static gint Create(QTMSDTMF*& qdtmf, TMS::TMSDTMF*& tmsdtmf);
+ virtual ~QTMSDTMFImpl();
+
+ gint AddObserver(TMS::TMSDTMFObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSDTMFObserver& obsrvr);
+
+ //from TMS::TMSDTMFObserver
+ void DTMFEvent(const TMS::TMSDTMF& dtmf, TMS::TMSSignalEvent event);
+
+private:
+ QTMSDTMFImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_DTMF_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsfactoryimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMSFACTORYIMPL_H_
+#define QTMSFACTORYIMPL_H_
+
+#include <e32cmn.h>
+#include <qtms.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFactory;
+}
+
+namespace QTMS
+{
+
+// FORWARD DECLARATIONS
+class QTMSCall;
+class QTMSFormat;
+class QTMSEffect;
+class QTMSBuffer;
+class QTMSSource;
+class QTMSSink;
+class QTMSGlobalRouting;
+class QTMSRTPSession;
+class QTMSDTMF;
+class QTMSRingTone;
+class QTMSInbandTone;
+
+// CLASS DECLARATION
+class QTMSFactoryImpl
+{
+public:
+ QTMSFactoryImpl();
+ virtual ~QTMSFactoryImpl();
+
+ gint CreateCall(QTMSCallType ctype, QTMSCall*& QTMScall, guint ctxid);
+ gint DeleteCall(QTMSCall*& QTMSct);
+ gint IsCallTypeSupported(QTMSCallType ctype, gboolean& flag);
+ gint GetSupportedFormats(const QTMSStreamType strmtype, FormatVector& fmtlist);
+ gint CreateFormat(QTMSFormatType fmttype, QTMSFormat*& QTMSfmt);
+ gint DeleteFormat(QTMSFormat*& QTMSfmt);
+ gint CreateEffect(QTMSEffectType QTMSeffecttype, QTMSEffect*& QTMSeffect);
+ gint DeleteEffect(QTMSEffect*& QTMSeffect);
+ gint CreateBuffer(QTMSBufferType buffertype, guint size, QTMSBuffer*& QTMSbuffer);
+ gint DeleteBuffer(QTMSBuffer*& QTMSbuffer);
+ gint CreateSource(QTMSSourceType srctype, QTMSSource*& QTMSsrc);
+ gint DeleteSource(QTMSSource*& QTMSsrc);
+ gint CreateSink(QTMSSinkType sinktype, QTMSSink*& QTMSsink);
+ gint DeleteSink(QTMSSink*& QTMSsink);
+ gint CreateGlobalRouting(QTMSGlobalRouting*& globrouting);
+ gint DeleteGlobalRouting(QTMSGlobalRouting*& globrouting);
+ gint CreateDTMF(QTMSStreamType streamid, QTMSDTMF*& dtmf);
+ gint DeleteDTMF(QTMSDTMF*& dtmf);
+ gint CreateRingTonePlayer(QTMSRingTone*& rt);
+ gint DeleteRingTonePlayer(QTMSRingTone*& rt);
+ gint CreateInbandTonePlayer(QTMSInbandTone*& inbandtone);
+ gint DeleteInbandTonePlayer(QTMSInbandTone*& inbandtone);
+
+private:
+ TMS::TMSFactory *iFactory;
+};
+
+} //namespace QTMS
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsg711impl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_G711_FORMAT_IMPL_H
+#define QTMS_G711_FORMAT_IMPL_H
+
+#include <qtms.h>
+#include <qtmsg711format.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+// QTMSG711FormatImpl class
+class QTMSG711FormatImpl: public QTMSG711Format
+{
+public:
+ static gint Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat);
+ virtual ~QTMSG711FormatImpl();
+
+ gint GetFormat(TMS::TMSFormat*& fmt);
+
+ // From QTMSFormat
+ gint GetType(QTMSFormatType& fmttype);
+
+private:
+ QTMSG711FormatImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_G711_FORMAT_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsg729impl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_G729_FORMAT_IMPL_H
+#define QTMS_G729_FORMAT_IMPL_H
+
+#include <qtms.h>
+#include <qtmsg729format.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+// QTMSG729FormatImpl class
+class QTMSG729FormatImpl: public QTMSG729Format
+{
+public:
+
+ static gint Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat);
+ virtual ~QTMSG729FormatImpl();
+
+ gint GetFormat(TMS::TMSFormat*& fmt);
+
+ // From QTMSFormat
+ gint GetType(QTMSFormatType& fmttype);
+
+private:
+ QTMSG729FormatImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_G729_FORMAT_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsgaineffectimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_GAIN_EFFECT_IMPL_H
+#define QTMS_GAIN_EFFECT_IMPL_H
+
+#include <qtms.h>
+#include <tms.h>
+#include <qtmsgaineffect.h>
+#include <tmseffectobsrvr.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSEffect;
+}
+
+namespace QTMS
+{
+
+// QTMSGainEffectImpl class
+class QTMSGainEffectImpl: public QTMSGainEffect, public TMS::TMSEffectObserver
+{
+public:
+ static gint Create(QTMSEffect*& qvol, TMS::TMSEffect*& tmsvol);
+ virtual ~QTMSGainEffectImpl();
+
+ gint AddObserver(TMS::TMSEffectObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSEffectObserver& obsrvr);
+
+ gint GetEffect(TMS::TMSEffect*& tmseffect);
+
+ //From TMSEffectObserver
+ void EffectsEvent(const TMS::TMSEffect& tmseffect, TMS::TMSSignalEvent event);
+
+private:
+ QTMSGainEffectImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_GAIN_EFFECT_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsglobalgaineffectimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_GLOBAL_GAIN_EFFECT_IMPL_H
+#define QTMS_GLOBAL_GAIN_EFFECT_IMPL_H
+
+#include <qtms.h>
+#include <qtmsglobalgaineffect.h>
+#include <tmseffectobsrvr.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSEffect;
+}
+
+namespace QTMS
+{
+
+// FORWARD DECLARATIONS
+class QTMSEffect;
+
+// QTMSGlobalGainEffectImpl class
+class QTMSGlobalGainEffectImpl: public QTMSGlobalGainEffect, public TMS::TMSEffectObserver
+{
+public:
+ static gint Create(QTMSEffect*& qglobalgain, TMS::TMSEffect*& tmsglobalgain);
+ virtual ~QTMSGlobalGainEffectImpl();
+
+ gint AddObserver(TMS::TMSEffectObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSEffectObserver& obsrvr);
+
+ //from TMSEffectObserver
+ void EffectsEvent(const TMS::TMSEffect& tmseffect, TMS::TMSSignalEvent event);
+
+private:
+ QTMSGlobalGainEffectImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_GLOBAL_GAIN_EFFECT_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsglobalroutingimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_GLOBAL_ROUTING_IMPL_H
+#define QTMS_GLOBAL_ROUTING_IMPL_H
+
+#include <tms.h>
+#include <qtms.h>
+#include <qtmsglobalrouting.h>
+#include <tmsglobalroutingobsrvr.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSGlobalRouting;
+}
+
+namespace QTMS
+{
+
+// QTMSGlobalRoutingImpl class
+class QTMSGlobalRoutingImpl: public QTMSGlobalRouting, public TMS::TMSGlobalRoutingObserver
+{
+public:
+
+ static gint Create(QTMSGlobalRouting*& qrouting, TMS::TMSGlobalRouting*& tmsrouting);
+ virtual ~QTMSGlobalRoutingImpl();
+
+ gint AddObserver(TMS::TMSGlobalRoutingObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSGlobalRoutingObserver& obsrvr);
+
+ //from TMSGlobalRoutingObserver
+ void GlobalRoutingEvent(const TMS::TMSGlobalRouting& routing, TMS::TMSSignalEvent event,
+ TMS::TMSAudioOutput output);
+
+private:
+ QTMSGlobalRoutingImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_GLOBAL_ROUTING_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsglobalvoleffectimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_GLOBAL_VOLUME_EFFECT_IMPL_H
+#define QTMS_GLOBAL_VOLUME_EFFECT_IMPL_H
+
+#include <qtms.h>
+#include <qtmsglobalvoleffect.h>
+#include <tmseffectobsrvr.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSEffect;
+}
+
+namespace QTMS
+{
+
+// FORWARD DECLARATIONS
+class QTMSEffect;
+
+// QTMSGlobalVolEffectImpl class
+class QTMSGlobalVolEffectImpl: public QTMSGlobalVolEffect, public TMS::TMSEffectObserver
+{
+public:
+
+ static gint Create(QTMSEffect*& qglobalvol, TMS::TMSEffect*& tmsglobalvol);
+ virtual ~QTMSGlobalVolEffectImpl();
+
+ gint AddObserver(TMS::TMSEffectObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSEffectObserver& obsrvr);
+
+ //from TMSEffectObserver
+ void EffectsEvent(const TMS::TMSEffect& tmseffect, TMS::TMSSignalEvent event);
+
+private:
+ QTMSGlobalVolEffectImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_GLOBAL_VOLUME_EFFECT_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsilbcimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_ILBC_FORMAT_IMPL_H
+#define QTMS_ILBC_FORMAT_IMPL_H
+
+#include <qtms.h>
+#include <qtmsilbcformat.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+// QTMSILBCFormatImpl class
+class QTMSILBCFormatImpl: public QTMSILBCFormat
+{
+public:
+ static gint Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat);
+ virtual ~QTMSILBCFormatImpl();
+
+ gint GetFormat(TMS::TMSFormat*& fmt);
+
+ // From QTMSFormat
+ gint GetType(QTMSFormatType& fmttype);
+
+private:
+ QTMSILBCFormatImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_ILBC_FORMAT_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsinbandtoneimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_INBAND_IMPL_H
+#define QTMS_INBAND_IMPL_H
+
+#include <tmsinbandtoneobsrvr.h>
+#include <qtms.h>
+#include <qtmsinbandtone.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSInbandTone;
+}
+
+namespace QTMS
+{
+
+// QTMSInbandImpl class
+class QTMSInbandToneImpl: public QTMSInbandTone, public TMS::TMSInbandToneObserver
+{
+public:
+ static gint Create(QTMSInbandTone*& qinband, TMS::TMSInbandTone*& tmsinband);
+ virtual ~QTMSInbandToneImpl();
+
+ gint AddObserver(TMS::TMSInbandToneObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSInbandToneObserver& obsrvr);
+
+ //from TMS::TMSInbandToneObserver
+ void InbandToneEvent(const TMS::TMSInbandTone& inbandtone, TMS::TMSSignalEvent event);
+
+private:
+ QTMSInbandToneImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_DTMF_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsmembuffer.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_MEM_BUFFER_H
+#define QTMS_MEM_BUFFER_H
+
+#include <qtmsbuffer.h>
+
+// FORWARD DECLARATION
+namespace TMS
+{
+class TMSBuffer;
+}
+
+namespace QTMS
+{
+
+// QTMSMemBuffer class
+class QTMSMemBuffer: public QTMSBuffer
+{
+public:
+ virtual ~QTMSMemBuffer();
+
+ /**
+ * Factory methods
+ */
+ static gint Create(QTMSBuffer*& buffer, TMS::TMSBuffer*& tmsbuffer);
+
+ /**
+ * Return buffer type.
+ *
+ * @param buftype
+ * Type of the buffer object (QTMS_BUFFER_MEMORY).
+ *
+ * @return
+ * QTMS_RESULT_SUCCESS if the operation was successful.
+ *
+ */
+ virtual gint GetType(QTMSBufferType& buftype);
+
+ /**
+ Gets the timestamp on the Buffer so that the framework can
+ determine the time at which this buffer has to be rendered
+ by the output device sink.
+
+ @param ts
+ timestamp in microseconds
+ */
+ virtual gint GetTimeStamp(guint64& ts);
+
+ /**
+ Sets the timestamp on the Buffer so that the framework can
+ determine the time at which this buffer has to be rendered
+ by the output device sink.
+
+ @param ts
+ timestamp in milliseconds
+ */
+ virtual gint SetTimeStamp(const guint64 ts);
+
+ /**
+ Gets the size of data in the buffer specified by the client.
+
+ @param size
+ size of data in bytes
+ */
+ virtual gint GetDataSize(guint& size);
+
+ /**
+ Sets the size of data in the buffer after the client
+ fill it.
+
+ @param size
+ size of data in bytes
+ */
+ virtual gint SetDataSize(const guint size);
+
+ /**
+ Gets the pointer to the memory location associated with this
+ buffer where the data is stored.
+
+ @param bufptr
+ ptr to the data stored in the buffer.
+ */
+ virtual gint GetDataPtr(guint8*& bufptr);
+
+private:
+ QTMSMemBuffer();
+ gint PostConstruct(guint size, TMS::TMSBuffer*& tmsbuffer);
+
+protected:
+ TMS::TMSBuffer* iTmsBuffer;
+
+private:
+ guint iBufferSize;
+ guint64 iTimeStamp;
+ guint8* iDataPtr;
+ gboolean iOwnsBuffer;
+};
+
+} //namespace QTMS
+
+#endif //QTMS_MEM_BUFFER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsmicsourceimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_MIC_SOURCE_IMPL_H
+#define QTMS_MIC_SOURCE_IMPL_H
+
+#include <qtms.h>
+#include <qtmsmicsource.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSource;
+}
+
+namespace QTMS
+{
+
+// QTMSMicSourceImpl class
+class QTMSMicSourceImpl: public QTMSMicSource
+{
+public:
+ static gint Create(QTMSSource*& qsource, TMS::TMSSource*& tmssource);
+ virtual ~QTMSMicSourceImpl();
+ gint GetSource(TMS::TMSSource*& tmssource);
+
+private:
+ QTMSMicSourceImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_MIC_SOURCE_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsmodemsinkimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_MODEM_SINK_IMPL_H
+#define QTMS_MODEM_SINK_IMPL_H
+
+#include <qtms.h>
+#include <qtmsmodemsink.h>
+#include <qtmssink.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSink;
+}
+
+namespace QTMS
+{
+
+// QTMSModemSinkImpl class
+class QTMSModemSinkImpl: public QTMSModemSink
+{
+public:
+ static gint Create(QTMSSink*& qsink, TMS::TMSSink*& tmssink);
+ virtual ~QTMSModemSinkImpl();
+
+ gint GetSink(TMS::TMSSink*& tmssink);
+
+private:
+ QTMSModemSinkImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_MODEM_SINK_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsmodemsourceimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_MODEM_SOURCE_IMPL_H
+#define QTMS_MODEM_SOURCE_IMPL_H
+
+#include <qtms.h>
+#include <qtmsmodemsource.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSource;
+}
+
+namespace QTMS
+{
+
+// QTMSModemSourceImpl class
+class QTMSModemSourceImpl: public QTMSModemSource
+{
+public:
+ static gint Create(QTMSSource*& qsource, TMS::TMSSource*& tmssource);
+ virtual ~QTMSModemSourceImpl();
+
+ gint GetSource(TMS::TMSSource*& tmssource);
+
+private:
+ QTMSModemSourceImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_MODEM_SOURCE_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmspcmimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_PCM_FORMAT_IMPL_H
+#define QTMS_PCM_FORMAT_IMPL_H
+
+#include <qtms.h>
+#include <qtmspcmformat.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSFormat;
+}
+
+namespace QTMS
+{
+
+// QTMSPCMFormatImpl class
+class QTMSPCMFormatImpl: public QTMSPCMFormat
+{
+public:
+ static gint Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat);
+ virtual ~QTMSPCMFormatImpl();
+
+ gint GetFormat(TMS::TMSFormat*& fmt);
+
+ // From QTMSFormat
+ gint GetType(QTMSFormatType& Formattype);
+
+private:
+ QTMSPCMFormatImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_PCM_FORMAT_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsringtoneimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMSRINGTONEBODYIMPL_H
+#define QTMSRINGTONEBODYIMPL_H
+
+#include <tms.h>
+#include <tmsringtoneobsrvr.h>
+#include <qtms.h>
+#include <qtmsringtone.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSRingTone;
+}
+
+namespace QTMS
+{
+
+// QTMSRingToneImpl class
+class QTMSRingToneImpl: public QTMSRingTone, public TMS::TMSRingToneObserver
+{
+public:
+ static gint Create(QTMSRingTone*& qrt, TMS::TMSRingTone*& tmsrt);
+ virtual ~QTMSRingToneImpl();
+
+ gint AddObserver(TMS::TMSRingToneObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSRingToneObserver& obsrvr);
+
+ //from TMS::TMSRingToneObserver
+ void RingtoneEvent(const TMS::TMSRingTone& rt, TMS::TMSSignalEvent event);
+
+private:
+ QTMSRingToneImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif //QTMSRINGTONEBODYIMPL_H
+// End of file
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmssinkimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_SINK_IMPL_H
+#define QTMS_SINK_IMPL_H
+
+#include <qtms.h>
+
+namespace QTMS
+{
+
+// FORWARD DECLARATIONS
+class QTMSSink;
+
+// TMSSinkImpl class
+class QTMSSinkImpl
+{
+public:
+ static gint Create(QTMSSinkType sinktype, QTMSSink*& tmssink);
+ static gint Delete(QTMSSink*& tmssink);
+};
+
+} //namespace QTMS
+
+#endif // QTMS_SINK_IMPL_H
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmssourceimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_SOURCE_IMPL_H
+#define QTMS_SOURCE_IMPL_H
+
+#include <qtms.h>
+
+namespace QTMS {
+
+// FORWARD DECLARATIONS
+class QTMSSource;
+
+// TMSSourceImpl class
+class QTMSSourceImpl
+{
+public:
+ static gint Create(QTMSSourceType sourcetype, QTMSSource*& tmssource);
+ static gint Delete(QTMSSource*& tmssource);
+};
+
+} //namespace QTMS
+
+#endif // QTMS_SOURCE_IMPL_H
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsspeakersinkimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_SPEAKER_SINK_IMPL_H
+#define QTMS_SPEAKER_SINK_IMPL_H
+
+#include <qtms.h>
+#include <qtmsspeakersink.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSSink;
+}
+
+namespace QTMS
+{
+
+// QTMSSpeakerSinkImpl class
+class QTMSSpeakerSinkImpl: public QTMSSpeakerSink
+{
+public:
+ static gint Create(QTMSSink*& qsink, TMS::TMSSink*& tmssink);
+ virtual ~QTMSSpeakerSinkImpl();
+
+ gint GetSink(TMS::TMSSink*& tmssink);
+
+private:
+ QTMSSpeakerSinkImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_SPEAKER_SINK_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsstreamimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_STREAM_IMPL_H
+#define QTMS_STREAM_IMPL_H
+
+#include <qtms.h>
+#include <qtmsstream.h>
+#include <tmsstreamobsrvr.h>
+#include <QObject>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSStream;
+}
+
+namespace QTMS
+{
+
+// QTMSStreamImpl class
+class QTMSStreamImpl: public QTMSStream, public TMS::TMSStreamObserver
+{
+public:
+ static gint Create(QTMSCallType callType, QTMSStreamType stype, QTMSStream*& qstrm,
+ TMS::TMSStream*& tmsstrm);
+
+ virtual ~QTMSStreamImpl();
+
+ // From QTMSStreamBody
+ gint AddObserver(TMS::TMSStreamObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSStreamObserver& obsrvr);
+
+ // From TMSStreamObserver
+ void TMSStreamEvent(const TMS::TMSStream& stream, TMS::TMSSignalEvent event);
+
+protected:
+ QTMSStreamImpl();
+
+ gint PostConstruct(QTMSCallType callType, QTMSStreamType stype, QTMSStream& parent);
+
+ gint CreateQueue(const gint aNumSlots);
+ void ReceiveMsgQHandlerEventsL();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_STREAM_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmsvolumeeffectimpl.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef QTMS_VOLUME_EFFECT_IMPL_H
+#define QTMS_VOLUME_EFFECT_IMPL_H
+
+#include <qtms.h>
+#include <tms.h>
+#include <qtmsvolumeeffect.h>
+#include <tmseffectobsrvr.h>
+
+// FORWARD DECLARATIONS
+namespace TMS
+{
+class TMSEffect;
+}
+
+namespace QTMS
+{
+
+// QTMSVolumeEffectImpl class
+class QTMSVolumeEffectImpl: public QTMSVolumeEffect, public TMS::TMSEffectObserver
+{
+public:
+ static gint Create(QTMSEffect*& qvol, TMS::TMSEffect*& tmsvol);
+ virtual ~QTMSVolumeEffectImpl();
+
+ gint AddObserver(TMS::TMSEffectObserver& obsrvr, gpointer user_data);
+ gint RemoveObserver(TMS::TMSEffectObserver& obsrvr);
+
+ gint GetEffect(TMS::TMSEffect*& tmseffect);
+
+ //From TMSEffectObserver
+ void EffectsEvent(const TMS::TMSEffect& tmseffect, TMS::TMSSignalEvent event);
+
+private:
+ QTMSVolumeEffectImpl();
+ gint PostConstruct();
+};
+
+} //namespace QTMS
+
+#endif // QTMS_VOLUME_EFFECT_IMPL_H
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/qtmswrapperexport.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the License "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+#ifndef QTMS_WRAPPER_EXPORT_H_
+#define QTMS_WRAPPER_EXPORT_H_
+
+// System includes
+#include <qglobal.h>
+
+#ifdef BUILD_TMS_WRAPPER_DLL
+#define QTMS_WRAPPER_DLL_EXPORT Q_DECL_EXPORT
+#else
+#define QTMS_WRAPPER_DLL_EXPORT Q_DECL_IMPORT
+#endif
+
+#endif // QTMS_WRAPPER_EXPORT_H_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/inc/tmsutility.h Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#ifndef __TMSUTILITY_H__
+#define __TMSUTILITY_H__
+
+#include <e32std.h>
+#include <tms.h>
+#include <TelephonyAudioRouting.h>
+#ifdef _DEBUG
+#include <e32debug.h>
+#endif
+
+namespace TMS {
+
+// DEBUG TRACE DEFINITIONS
+#ifdef _DEBUG
+#define TRACE_PRN_FN_ENT RDebug::Printf("%s>ENTER", __PRETTY_FUNCTION__)
+#define TRACE_PRN_FN_EXT RDebug::Printf("%s>EXIT", __PRETTY_FUNCTION__)
+#define TRACE_PRN_IF_ERR(err) if (err != KErrNone) RDebug::Printf( "%s>BREAK[%d]", __PRETTY_FUNCTION__, err )
+
+#define TRACE_PRN_0(str) RDebug::Print(str, this)
+#define TRACE_PRN_1(str, val1) RDebug::Print(str, this, val1)
+#define TRACE_PRN_2(str, val1, val2) RDebug::Print(str, this, val1, val2)
+
+#define TRACE_PRN_N(str) RDebug::Print(str)
+#define TRACE_PRN_N1(str, val1) RDebug::Print(str, val1)
+#define TRACE_PRN_N2(str, val1, val2) RDebug::Print(str, val1, val2)
+#else
+#define TRACE_PRN_FN_ENT
+#define TRACE_PRN_FN_EXT
+#define TRACE_PRN_IF_ERR(err)
+#define TRACE_PRN_0(str)
+#define TRACE_PRN_1(str, val1)
+#define TRACE_PRN_2(str, val1, val2)
+#define TRACE_PRN_N(str)
+#define TRACE_PRN_N1(str, val1)
+#define TRACE_PRN_N2(str, val1, val2)
+#endif //_DEBUG
+
+
+// MACRO DEFINITIONS
+#define RET_ERR_IF_ERR(err) if ( err != 0) return err;
+#define RET_REASON_IF_ERR(s) if(s!=0) return s
+
+#define TMSRESULT(result) TMSUtility::TMSResult(result)
+#define TOTMSOUTPUT(output) TMSUtility::ToTMSOutput(output)
+#define TOTAROUTPUT(output) TMSUtility::ToTAROutput(output)
+#define TOFOURCC(format) TMSUtility::ToFourCC(format)
+#define TOTMSFORMAT(fourcc) TMSUtility::FourCCToTMSFormat(fourcc)
+
+_LIT(KQTMSPanic, "QTMS Panic!" );
+#define PANIC(reason) User::Panic(KQTMSPanic, reason)
+
+// TMSUtility class
+class TMSUtility
+ {
+public:
+ IMPORT_C static gint TMSResult(const gint error);
+ IMPORT_C static gint EtelToTMSResult(const gint error);
+ IMPORT_C static TMSAudioOutput ToTMSOutput(
+ CTelephonyAudioRouting::TAudioOutput taroutput);
+ IMPORT_C static CTelephonyAudioRouting::TAudioOutput ToTAROutput(
+ TMSAudioOutput output);
+ IMPORT_C static TUint32 ToFourCC(TMSFormatType frmtType);
+ IMPORT_C static TMSFormatType FourCCToTMSFormat(TUint32 fourcc);
+ };
+
+} //namespace TMS
+
+#endif //__TMSUTILITY_H__
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/qtmsapi.pro Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,144 @@
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: QTMS API project description
+#
+
+TEMPLATE = lib
+TARGET = qtmsapi
+CONFIG += dll
+DEFINES += BUILD_TMS_WRAPPER_DLL
+
+QT = core
+CONFIG -= gui
+
+DEFINES += SYMBIAN
+TARGET.CAPABILITY = All -tcb
+TARGET.EPOCALLOWDLLDATA = 1
+TARGET.UID2 = 0x10009D8D
+TARGET.UID3 = 0x10207CA5
+
+BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
+ "rom/qtms.iby CORE_MW_LAYER_IBY_EXPORT_PATH(qtms.iby)" \
+ "data/qtmsapi_stub.sis /epoc32/data/z/system/install/qtmsapi_stub.sis"
+
+DEPENDPATH += . inc
+INCLUDEPATH += . \
+ ./inc
+
+defBlock = \
+ "$${LITERAL_HASH}if defined(EABI)" \
+ "DEFFILE eabi/qtms.def" \
+ "$${LITERAL_HASH}else" \
+ "DEFFILE bwins/qtms.def" \
+ "$${LITERAL_HASH}endif"
+MMP_RULES += defBlock
+
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
+ $$OS_LAYER_LIBC_SYSTEMINCLUDE \
+ $$OS_LAYER_GLIB_SYSTEMINCLUDE
+
+LIBS += -ltmsfactory \
+ -ltmsapi \
+ -ltmsutility \
+ -llibglib \
+ -llibgobject \
+ -llibgmodule \
+ -llibstdcpp
+
+# $$_PRO_FILE_PWD_ points to the directory of the pro file
+MOC_DIR = ./tmp
+
+INCLUDEPATH += . \
+ . inc \
+ ../ \
+ ../mmappfw_plat/qt_telephony_multimedia_service_api/inc/
+
+DEPENDPATH += $$INCLUDEPATH src
+
+# Headers
+HEADERS += qtmsfactory.h \
+ qtmscall.h \
+ qtmsstream.h \
+ qtmsbuffer.h \
+ qtmsclientsource.h \
+ qtmsclientsink.h \
+ qtmsvolumeeffect.h \
+ qtmsgaineffect.h \
+ qtmsglobalgaineffect.h \
+ qtmsglobalvoleffect.h \
+ qtmsglobalrouting.h \
+ qtmsamrformat.h \
+ qtmspcmformat.h \
+ qtmsilbcformat.h \
+ qtmsg711format.h \
+ qtmsg729format.h \
+ qtmsformat.h \
+ qtmsmodemsink.h \
+ qtmsspeakersink.h \
+ qtmsmodemsource.h \
+ qtmsmicsource.h \
+ qtmsringtone.h \
+ qtmsdtmf.h \
+ qtmsinbandtone.h
+
+# Source
+SOURCES += qtmsfactory.cpp \
+ qtmsfactoryimpl.cpp \
+ qtmsbufferimpl.cpp \
+ qtmsmembuffer.cpp \
+ qtmscall.cpp \
+ qtmscallimpl.cpp \
+ qtmsstream.cpp \
+ qtmsstreamimpl.cpp \
+ qtmsclientsource.cpp \
+ qtmsclientsourceimpl.cpp \
+ qtmsclientsink.cpp \
+ qtmsclientsinkimpl.cpp \
+ qtmsvolumeeffect.cpp \
+ qtmsvolumeeffectimpl.cpp \
+ qtmsgaineffect.cpp \
+ qtmsgaineffectimpl.cpp \
+ qtmsglobalgaineffect.cpp \
+ qtmsglobalgaineffectimpl.cpp \
+ qtmsglobalvoleffect.cpp \
+ qtmsglobalvoleffectimpl.cpp \
+ qtmsglobalrouting.cpp \
+ qtmsglobalroutingimpl.cpp \
+ qtmspcm.cpp \
+ qtmspcmimpl.cpp \
+ qtmsilbc.cpp \
+ qtmsilbcimpl.cpp \
+ qtmsamr.cpp \
+ qtmsamrimpl.cpp \
+ qtmsg711.cpp \
+ qtmsg711impl.cpp \
+ qtmsg729.cpp \
+ qtmsg729impl.cpp \
+ qtmsformat.cpp \
+ qtmsmodemsink.cpp \
+ qtmsmodemsinkimpl.cpp \
+ qtmsspeakersink.cpp \
+ qtmsspeakersinkimpl.cpp \
+ qtmsmodemsource.cpp \
+ qtmsmodemsourceimpl.cpp \
+ qtmsmicsource.cpp \
+ qtmsmicsourceimpl.cpp \
+ qtmsringtone.cpp \
+ qtmsringtoneimpl.cpp \
+ qtmsdtmf.cpp \
+ qtmsdtmfimpl.cpp \
+ qtmsinbandtone.cpp \
+ qtmsinbandtoneimpl.cpp
+
+SYMBIAN_PLATFORMS = DEFAULT
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/rom/qtms.iby Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Iby file for QTMS
+*
+*/
+
+#ifndef QTMS_IBY
+#define QTMS_IBY
+
+// Use standard macros
+#include <data_caging_paths_for_iby.hrh>
+
+#ifdef FF_TMS
+file=ABI_DIR\BUILD_DIR\qtmsapi.dll SHARED_LIB_DIR\qtmsapi.dll
+
+//QTMS_Stub
+data=ZSYSTEM/install/qtmsapi_stub.sis System/Install/qtmsapi_stub.sis
+
+#endif //FF_TMS
+#endif //QTMS_IBY
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsamr.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtmsamrformat.h>
+
+using namespace QTMS;
+
+QTMSAMRFormat::QTMSAMRFormat()
+{
+}
+
+QTMSAMRFormat::~QTMSAMRFormat()
+{
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsamrimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsamrformat.h>
+#include "tmsutility.h"
+#include "qtmsamrimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSAMRFormatImpl::QTMSAMRFormatImpl()
+{
+}
+
+QTMSAMRFormatImpl::~QTMSAMRFormatImpl()
+{
+ TRACE_PRN_FN_ENT;
+ TRACE_PRN_FN_EXT;
+}
+
+gint QTMSAMRFormatImpl::Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat)
+{
+ gint ret(TMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSAMRFormatImpl* self = new QTMSAMRFormatImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != TMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iFormat = tmsformat;
+ }
+ qformat = self;
+ return ret;
+}
+
+gint QTMSAMRFormatImpl::PostConstruct()
+{
+ gint ret(TMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSAMRFormatImpl::GetFormat(TMS::TMSFormat*& fmt)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iFormat) {
+ fmt = iFormat;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+gint QTMSAMRFormatImpl::GetType(QTMSFormatType& fmttype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = iFormat->GetType(fmttype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsbufferimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Telephony Multimedia Service
+ *
+ */
+
+#include <qtms.h>
+#include "tmsutility.h"
+#include "qtmsmembuffer.h"
+#include "qtmsbufferimpl.h"
+
+using namespace QTMS;
+
+gint QTMSBufferImpl::Create(QTMSBufferType buffertype, QTMSBuffer*& buffer,
+ TMS::TMSBuffer*& tmsbuffer)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ TRACE_PRN_FN_ENT;
+ switch (buffertype) {
+ case QTMS_BUFFER_MEMORY:
+ ret = QTMSMemBuffer::Create(buffer, tmsbuffer);
+ break;
+ default:
+ ret = QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED;
+ break;
+ }
+
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSBufferImpl::Delete(QTMSBuffer*& buffer)
+{
+ gint ret(QTMS_RESULT_INVALID_ARGUMENT);
+ TRACE_PRN_FN_ENT;
+ QTMSBufferType buffertype;
+ ret = buffer->GetType(buffertype);
+ switch (buffertype) {
+ case QTMS_BUFFER_MEMORY:
+ delete (static_cast<QTMSMemBuffer*> (buffer));
+ buffer = NULL;
+ ret = QTMS_RESULT_SUCCESS;
+ break;
+ default:
+ ret = QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED;
+ break;
+ }
+
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmscall.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmscall.h>
+#include <qtmscall.h>
+#include <tmsstream.h>
+#include "qtmscallimpl.h"
+#include "qtmsstreamimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSCall::QTMSCall() :
+ iTmsCall(NULL)
+{
+}
+
+QTMSCall::~QTMSCall()
+{
+}
+
+QTMSCallType QTMSCall::GetCallType()
+{
+ QTMSCallType calltype(-1);
+ if (iTmsCall) {
+ calltype = iTmsCall->GetCallType();
+ }
+ return calltype;
+}
+
+gint QTMSCall::GetCallContextId(guint& ctxid)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iTmsCall) {
+ status = iTmsCall->GetCallContextId(ctxid);
+ }
+ return status;
+}
+
+gint QTMSCall::CreateStream(const QTMSStreamType type, QTMSStream*& qstrm)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ TMSStream* tmsstrm(NULL);
+ if (iTmsCall) {
+ status = iTmsCall->CreateStream(type, tmsstrm);
+ }
+
+ if (status == TMS_RESULT_SUCCESS) {
+ QTMSCallType calltype = iTmsCall->GetCallType();
+ switch (type) {
+ case TMS_STREAM_UPLINK:
+ case TMS_STREAM_DOWNLINK:
+ status = QTMSStreamImpl::Create(calltype, type, qstrm, tmsstrm);
+ break;
+ default:
+ status = QTMS_RESULT_STREAM_TYPE_NOT_SUPPORTED;
+ break;
+ }
+ }
+ return status;
+}
+
+gint QTMSCall::DeleteStream(QTMSStream*& strm)
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ delete strm;
+ strm = NULL;
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmscallimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmscall.h>
+#include <qtms.h>
+#include "qtmscallimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSCallImpl::QTMSCallImpl()
+{
+}
+
+QTMSCallImpl::~QTMSCallImpl()
+{
+}
+
+gint QTMSCallImpl::Create(QTMSCall*& qtmscall, TMS::TMSCall*& tmscall)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSCallImpl* self = new QTMSCallImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iTmsCall = tmscall;
+ }
+ qtmscall = self;
+ return ret;
+}
+
+gint QTMSCallImpl::PostConstruct()
+ {
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+ }
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsclientsink.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsclientsink.h>
+#include <tmsbuffer.h>
+#include <qtmsclientsink.h>
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSClientSink::QTMSClientSink() :
+ iSink(NULL)
+{
+}
+
+QTMSClientSink::~QTMSClientSink()
+{
+ delete iSink;
+}
+
+gint QTMSClientSink::BufferProcessed(QTMSBuffer* buffer)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSink) {
+ TMSBuffer* buf(reinterpret_cast<TMSBuffer*> (buffer));
+ status = static_cast<TMSClientSink*> (iSink)->BufferProcessed(buf);
+ }
+ return status;
+}
+
+gint QTMSClientSink::GetType(QTMSSinkType& sinktype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSink) {
+ status = static_cast<TMSClientSink*> (iSink)->GetType(sinktype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsclientsinkimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsbuffer.h>
+#include <tmsclientsink.h>
+#include <qtmsbuffer.h>
+#include "qtmsclientsinkimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSClientSinkImpl::QTMSClientSinkImpl()
+{
+}
+
+QTMSClientSinkImpl::~QTMSClientSinkImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSClientSinkImpl::Create(QTMSSink*& qsink, TMS::TMSSink*& tmssink)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSClientSinkImpl* self = new QTMSClientSinkImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iSink = tmssink;
+ self->AddObserver(*self, NULL);
+ }
+ qsink = self;
+ return ret;
+}
+
+gint QTMSClientSinkImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSClientSinkImpl::AddObserver(TMS::TMSClientSinkObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ if (iSink) {
+ ret = static_cast<TMSClientSink*> (iSink)->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSClientSinkImpl::RemoveObserver(TMS::TMSClientSinkObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSink) {
+ ret = static_cast<TMSClientSink*> (iSink)->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+gint QTMSClientSinkImpl::GetSink(TMS::TMSSink*& tmssink)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iSink) {
+ tmssink = iSink;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+void QTMSClientSinkImpl::ProcessBuffer(const TMS::TMSBuffer* buffer)
+{
+ TMSBuffer* buf(const_cast<TMSBuffer*> (buffer));
+ QTMSBuffer* qtbuf(reinterpret_cast<QTMSBuffer*> (buf));
+ emit QTMSClientSink::ProcessBuffer(qtbuf);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsclientsource.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsclientsource.h>
+#include <tmsbuffer.h>
+#include <qtmsclientsource.h>
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSClientSource::QTMSClientSource() :
+ iSource(NULL)
+{
+}
+
+QTMSClientSource::~QTMSClientSource()
+{
+ delete iSource;
+}
+
+gint QTMSClientSource::SetEnqueueMode(const gboolean enable)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ status = static_cast<TMSClientSource*> (iSource)->SetEnqueueMode(enable);
+ }
+ return status;
+}
+
+gint QTMSClientSource::GetEnqueueMode(gboolean& enable)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ status = static_cast<TMSClientSource*> (iSource)->GetEnqueueMode(enable);
+ }
+ return status;
+}
+
+gint QTMSClientSource::Flush()
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ status = static_cast<TMSClientSource*> (iSource)->Flush();
+ }
+ return status;
+}
+
+gint QTMSClientSource::GetType(QTMSSourceType& sourcetype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ status = static_cast<TMSClientSource*> (iSource)->GetType(sourcetype);
+ }
+ return status;
+}
+
+gint QTMSClientSource::BufferFilled(QTMSBuffer& buffer)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ TMSBuffer& buf(reinterpret_cast<TMSBuffer&> (buffer));
+ status = static_cast<TMSClientSource*> (iSource)->BufferFilled(buf);
+ }
+ return status;
+}
+
+// Push mode
+gint QTMSClientSource::ProcessBuffer(QTMSBuffer* buffer)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ TMSBuffer* buf(reinterpret_cast<TMSBuffer*> (buffer));
+ status = static_cast<TMSClientSource*> (iSource)->ProcessBuffer(buf);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsclientsourceimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <qtmsbuffer.h>
+#include <tmsbuffer.h>
+#include <tmsclientsource.h>
+#include "qtmsclientsourceimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSClientSourceImpl::QTMSClientSourceImpl()
+{
+}
+
+QTMSClientSourceImpl::~QTMSClientSourceImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSClientSourceImpl::Create(QTMSSource*& qsource, TMSSource*& tmssource)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSClientSourceImpl* self = new QTMSClientSourceImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iSource = tmssource;
+ self->AddObserver(*self, NULL);
+ }
+ qsource = self;
+ return ret;
+}
+
+gint QTMSClientSourceImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSClientSourceImpl::AddObserver(TMS::TMSClientSourceObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ ret = static_cast<TMSClientSource*> (iSource)->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSClientSourceImpl::RemoveObserver(TMS::TMSClientSourceObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ ret = static_cast<TMSClientSource*> (iSource)->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+gint QTMSClientSourceImpl::GetSource(TMS::TMSSource*& tmssource)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iSource) {
+ tmssource = iSource;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+void QTMSClientSourceImpl::FillBuffer(TMS::TMSBuffer& buffer)
+{
+ emit QTMSClientSource::FillBuffer(reinterpret_cast<QTMSBuffer&> (buffer));
+}
+
+void QTMSClientSourceImpl::BufferProcessed(const TMS::TMSBuffer* buffer, gint reason)
+{
+ TMSBuffer* buf(const_cast<TMSBuffer*> (buffer));
+ emit QTMSClientSource::BufferProcessed(reinterpret_cast<QTMSBuffer*> (buf), reason);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsdtmf.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsdtmf.h>
+#include <qtmsdtmf.h>
+#include "qtmsdtmfimpl.h"
+//#include "qtmswrapperexport.h"
+
+using namespace QTMS;
+
+QTMSDTMF::QTMSDTMF(void) :
+ iDtmf(NULL)
+{
+}
+
+QTMSDTMF::~QTMSDTMF(void)
+{
+ delete iDtmf;
+}
+
+gint QTMSDTMF::Start()
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iDtmf) {
+ status = iDtmf->Start();
+ }
+ return status;
+}
+
+gint QTMSDTMF::Stop()
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iDtmf) {
+ status = iDtmf->Stop();
+ }
+ return status;
+}
+
+gint QTMSDTMF::SetTone(GString* string)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iDtmf) {
+ status = iDtmf->SetTone(string);
+ }
+ return status;
+}
+
+gint QTMSDTMF::ContinueDTMFStringSending(gboolean aContinue)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iDtmf) {
+ status = iDtmf->ContinueDTMFStringSending(aContinue);
+ }
+ return status;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsdtmfimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsdtmf.h>
+#include "tmsutility.h"
+#include "qtmsdtmfimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSDTMFImpl::QTMSDTMFImpl()
+{
+}
+
+QTMSDTMFImpl::~QTMSDTMFImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSDTMFImpl::Create(QTMSDTMF*& qdtmf, TMS::TMSDTMF*& tmsdtmf)
+{
+ gint ret(TMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSDTMFImpl* self = new QTMSDTMFImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iDtmf = tmsdtmf;
+ ret = self->AddObserver(*self, NULL);
+ }
+ qdtmf = self;
+ return ret;
+}
+
+gint QTMSDTMFImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSDTMFImpl::AddObserver(TMS::TMSDTMFObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iDtmf) {
+ ret = iDtmf->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSDTMFImpl::RemoveObserver(TMS::TMSDTMFObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iDtmf) {
+ ret = iDtmf->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+void QTMSDTMFImpl::DTMFEvent(const TMS::TMSDTMF& /*dtmf*/, TMS::TMSSignalEvent event)
+{
+ QTMSSignalEvent qevent;
+
+ qevent.type = event.type;
+ qevent.reason = event.reason;
+ qevent.curr_state = event.curr_state;
+ qevent.prev_state = event.prev_state;
+ qevent.event_data = event.event_data;
+ qevent.user_data = event.user_data;
+
+ emit QTMS::QTMSDTMF::DTMFEvent(static_cast<QTMSDTMF&> (*this), qevent);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmseffect.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include "qtmseffectimpl.h"
+#include "qtmseffect.h"
+#include "qtmswrapperexport.h"
+
+
+void QTMSEffect::Construct(QTMSEffectImpl* impl)
+{
+ QTMSeffectimpl = impl;
+}
+
+QTMSEffect::QTMSEffect(void)
+{
+
+}
+
+ QTMSEffect::~QTMSEffect(void)
+{
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsfactory.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,240 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tms.h>
+#include <QObject>
+#include <qtmsfactory.h>
+#include "qtmswrapperexport.h"
+#include "qtmsfactoryimpl.h"
+
+using namespace QTMS;
+
+QTMSFactory::QTMSFactory()
+{
+ impl = new QTMSFactoryImpl();
+}
+
+QTMSFactory::~QTMSFactory()
+{
+ delete impl;
+}
+
+gint QTMSFactory::CreateFactory(QTMSFactory*& tmsfactory, QTMSVer& /*ver*/)
+{
+ QTMSFactory* self = new QTMSFactory();
+ tmsfactory = self;
+ return QTMS_RESULT_SUCCESS;
+}
+
+gint QTMSFactory::CreateCall(QTMSCallType ctype, QTMSCall*& tmscall, guint ctxid)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateCall(ctype, tmscall, ctxid);
+ }
+ return status;
+}
+
+gint QTMSFactory::DeleteCall(QTMSCall*& tmscall)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->DeleteCall(tmscall);
+ }
+ return status;
+}
+
+gint QTMSFactory::IsCallTypeSupported(QTMSCallType ctype, gboolean& flag)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->IsCallTypeSupported(ctype, flag);
+ }
+ return status;
+}
+
+gint QTMSFactory::GetSupportedFormats(const QTMSStreamType strmtype, FormatVector& fmtlist)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->GetSupportedFormats(strmtype, fmtlist);
+ }
+ return status;
+}
+
+gint QTMSFactory::CreateFormat(QTMSFormatType qfmttype, QTMSFormat*& qfmt)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateFormat(qfmttype, qfmt);
+ }
+ return status;
+
+}
+
+gint QTMSFactory::DeleteFormat(QTMSFormat*& qfmt)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->DeleteFormat(qfmt);
+ }
+ return status;
+}
+
+gint QTMSFactory::CreateEffect(QTMSEffectType tmseffecttype, QTMSEffect*& tmseffect)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateEffect(tmseffecttype, tmseffect);
+ }
+ return status;
+}
+
+gint QTMSFactory::DeleteEffect(QTMSEffect*& qtmseffect)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ impl->DeleteEffect(qtmseffect);
+ }
+ return status;
+}
+
+gint QTMSFactory::CreateBuffer(QTMSBufferType buffertype, guint size, QTMSBuffer*& qbuffer)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateBuffer(buffertype, size, qbuffer);
+ }
+ return status;
+}
+
+gint QTMSFactory::DeleteBuffer(QTMSBuffer*& qbuffer)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->DeleteBuffer(qbuffer);
+ }
+ return status;
+}
+
+gint QTMSFactory::CreateSource(QTMSSourceType srctype, QTMSSource*& qtmssrc)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateSource(srctype, qtmssrc);
+ }
+ return status;
+}
+
+gint QTMSFactory::DeleteSource(QTMSSource*& qtmssrc)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->DeleteSource(qtmssrc);
+ }
+ return status;
+}
+
+gint QTMSFactory::CreateSink(QTMSSinkType sinktype, QTMSSink*& qtmssink)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateSink(sinktype, qtmssink);
+ }
+ return status;
+}
+
+gint QTMSFactory::DeleteSink(QTMSSink*& qtmssink)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->DeleteSink(qtmssink);
+ }
+ return status;
+}
+
+gint QTMSFactory::CreateGlobalRouting(QTMSGlobalRouting*& globalrouting)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateGlobalRouting(globalrouting);
+ }
+ return status;
+}
+
+gint QTMSFactory::DeleteGlobalRouting(QTMSGlobalRouting*& globrouting)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->DeleteGlobalRouting(globrouting);
+ }
+ return status;
+}
+
+gint QTMSFactory::CreateDTMF(QTMSStreamType streamtype, QTMSDTMF*& dtmf)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateDTMF(streamtype, dtmf);
+ }
+ return status;
+}
+
+gint QTMSFactory::DeleteDTMF(QTMSDTMF*& dtmf)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->DeleteDTMF(dtmf);
+ }
+ return status;
+}
+
+gint QTMSFactory::CreateRingTonePlayer(QTMSRingTone*& rt)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateRingTonePlayer(rt);
+ }
+ return status;
+}
+
+gint QTMSFactory::DeleteRingTonePlayer(QTMSRingTone*& rt)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->DeleteRingTonePlayer(rt);
+ }
+ return status;
+}
+
+gint QTMSFactory::CreateInbandTonePlayer(QTMSInbandTone*& inbandtone)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->CreateInbandTonePlayer(inbandtone);
+ }
+ return status;
+}
+
+gint QTMSFactory::DeleteInbandTonePlayer(QTMSInbandTone*& inbandtone)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (impl) {
+ status = impl->DeleteInbandTonePlayer(inbandtone);
+ }
+ return status;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsfactoryimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,570 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tms.h>
+#include <tmsfactory.h>
+#include <tmsformat.h>
+#include <qtms.h>
+#include <qtmscall.h>
+#include <qtmsformat.h>
+#include <qtmseffect.h>
+#include <qtmsbuffer.h>
+#include <qtmssource.h>
+#include <qtmssink.h>
+#include <qtmsringtone.h>
+#include <qtmsdtmf.h>
+#include <qtmsinbandtone.h>
+#include "tmsutility.h"
+#include "qtmscallimpl.h"
+#include "qtmsglobalroutingimpl.h"
+#include "qtmsglobalvoleffectimpl.h"
+#include "qtmsglobalgaineffectimpl.h"
+#include "qtmsvolumeeffectimpl.h"
+#include "qtmsgaineffectimpl.h"
+#include "qtmsclientsinkimpl.h"
+#include "qtmsmodemsinkimpl.h"
+#include "qtmsspeakersinkimpl.h"
+#include "qtmsclientsourceimpl.h"
+#include "qtmsmodemsourceimpl.h"
+#include "qtmsmicsourceimpl.h"
+#include "qtmsringtoneimpl.h"
+#include "qtmsdtmfimpl.h"
+#include "qtmsinbandtoneimpl.h"
+#include "qtmsfactoryimpl.h"
+#include "qtmspcmimpl.h"
+#include "qtmsamrimpl.h"
+#include "qtmsg711impl.h"
+#include "qtmsg729impl.h"
+#include "qtmsilbcimpl.h"
+#include "qtmsbufferimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSFactoryImpl::QTMSFactoryImpl()
+{
+ TRACE_PRN_FN_ENT;
+ TMSVer* ver = NULL;
+ TMSFactory::CreateFactory(iFactory, *ver);
+ TRACE_PRN_FN_EXT;
+}
+
+QTMSFactoryImpl::~QTMSFactoryImpl()
+{
+ TRACE_PRN_FN_ENT;
+ delete iFactory;
+ TRACE_PRN_FN_EXT;
+}
+
+gint QTMSFactoryImpl::CreateCall(QTMSCallType ctype, QTMSCall*& qtmscall, guint /*ctxid*/)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ TMSCall* tmscall(NULL);
+ if (iFactory) {
+ ret = iFactory->CreateCall((TMSCallType) ctype, tmscall);
+
+ if (ret == TMS_RESULT_SUCCESS) {
+ ret = QTMSCallImpl::Create(qtmscall, tmscall);
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteCall(QTMSCall*& qtmscall)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_SUCCESS);
+ delete qtmscall;
+ qtmscall = NULL;
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::IsCallTypeSupported(QTMSCallType ctype, gboolean& flag)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ switch (ctype) {
+ case QTMS_CALL_CS:
+ case QTMS_CALL_IP:
+ flag = ETrue;
+ break;
+ case QTMS_CALL_ECS: //from TB 10.1
+ default:
+ flag = EFalse;
+ break;
+ }
+ return ret;
+}
+
+gint QTMSFactoryImpl::GetSupportedFormats(const QTMSStreamType strmtype, FormatVector& fmtlist)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ TMS::FormatVector tmsfmtlist;
+ if (iFactory) {
+ ret = iFactory->GetSupportedFormats((TMSStreamType) strmtype, tmsfmtlist);
+ }
+
+ std::vector<TMSFormat*>::iterator itCodecs = tmsfmtlist.begin();
+ TMSFormatType fmttype;
+ for (; itCodecs < tmsfmtlist.end(); itCodecs++) {
+ (*itCodecs)->GetType(fmttype);
+ QTMSFormat* qtmsfmt(NULL);
+ switch (fmttype) {
+ case QTMS_FORMAT_PCM:
+ ret = QTMSPCMFormatImpl::Create(qtmsfmt, *itCodecs);
+ break;
+ case QTMS_FORMAT_AMR:
+ ret = QTMSAMRFormatImpl::Create(qtmsfmt, *itCodecs);
+ break;
+ case QTMS_FORMAT_G711:
+ ret = QTMSG711FormatImpl::Create(qtmsfmt, *itCodecs);
+ break;
+ case QTMS_FORMAT_G729:
+ ret = QTMSG729FormatImpl::Create(qtmsfmt, *itCodecs);
+ break;
+ case QTMS_FORMAT_ILBC:
+ ret = QTMSILBCFormatImpl::Create(qtmsfmt, *itCodecs);
+ break;
+ default:
+ break;
+ }
+
+ if (qtmsfmt) {
+ fmtlist.push_back(qtmsfmt);
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::CreateFormat(QTMSFormatType fmttype, QTMSFormat*& qtmsfmt)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ TMSFormat* tmsformat(NULL);
+
+ if (iFactory) {
+ ret = iFactory->CreateFormat((TMSFormatType) fmttype, tmsformat);
+
+ if (ret == TMS_RESULT_SUCCESS) {
+ switch (fmttype) {
+ case QTMS_FORMAT_PCM:
+ ret = QTMSPCMFormatImpl::Create(qtmsfmt, tmsformat);
+ break;
+ case QTMS_FORMAT_AMR:
+ ret = QTMSAMRFormatImpl::Create(qtmsfmt, tmsformat);
+ break;
+ case QTMS_FORMAT_G711:
+ ret = QTMSG711FormatImpl::Create(qtmsfmt, tmsformat);
+ break;
+ case QTMS_FORMAT_G729:
+ ret = QTMSG729FormatImpl::Create(qtmsfmt, tmsformat);
+ break;
+ case QTMS_FORMAT_ILBC:
+ ret = QTMSILBCFormatImpl::Create(qtmsfmt, tmsformat);
+ break;
+ default:
+ ret = QTMS_RESULT_FORMAT_TYPE_NOT_SUPPORTED;
+ break;
+ }
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteFormat(QTMSFormat*& qtmsfmt)
+{
+ TRACE_PRN_FN_ENT;
+ __ASSERT_ALWAYS(qtmsfmt, PANIC(QTMS_RESULT_NULL_ARGUMENT));
+
+ gint ret(QTMS_RESULT_SUCCESS);
+ QTMSFormatType fmttype;
+ ret = qtmsfmt->GetType(fmttype);
+ switch (fmttype) {
+ case QTMS_FORMAT_PCM:
+ delete (static_cast<QTMSPCMFormatImpl*> (qtmsfmt));
+ qtmsfmt = NULL;
+ break;
+ case QTMS_FORMAT_AMR:
+ delete (static_cast<QTMSAMRFormatImpl*> (qtmsfmt));
+ qtmsfmt = NULL;
+ break;
+ case QTMS_FORMAT_G711:
+ delete (static_cast<QTMSG711FormatImpl*> (qtmsfmt));
+ qtmsfmt = NULL;
+ break;
+ case QTMS_FORMAT_G729:
+ delete (static_cast<QTMSG729FormatImpl*> (qtmsfmt));
+ qtmsfmt = NULL;
+ break;
+ case QTMS_FORMAT_ILBC:
+ delete (static_cast<QTMSILBCFormatImpl*> (qtmsfmt));
+ qtmsfmt = NULL;
+ break;
+ default:
+ ret = QTMS_RESULT_FORMAT_TYPE_NOT_SUPPORTED;
+ break;
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::CreateEffect(QTMSEffectType tmseffecttype, QTMSEffect*& qtmseffect)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ TMSEffect* tmseffect(NULL);
+
+ if (iFactory) {
+ ret = iFactory->CreateEffect((TMSEffectType) tmseffecttype, tmseffect);
+
+ if (ret == TMS_RESULT_SUCCESS) {
+ switch (tmseffecttype) {
+ case TMS_EFFECT_VOLUME:
+ ret = QTMSVolumeEffectImpl::Create(qtmseffect, tmseffect);
+ break;
+ case TMS_EFFECT_GAIN:
+ ret = QTMSGainEffectImpl::Create(qtmseffect, tmseffect);
+ break;
+ case TMS_EFFECT_GLOBAL_VOL:
+ ret = QTMSGlobalVolEffectImpl::Create(qtmseffect, tmseffect);
+ break;
+ case TMS_EFFECT_GLOBAL_GAIN:
+ ret = QTMSGlobalGainEffectImpl::Create(qtmseffect, tmseffect);
+ break;
+ default:
+ ret = TMS_RESULT_EFFECT_TYPE_NOT_SUPPORTED;
+ break;
+ }
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteEffect(QTMSEffect*& qtmseffect)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ QTMSEffectType effecttype;
+ ret = qtmseffect->GetType(effecttype);
+ switch (effecttype) {
+ case QTMS_EFFECT_VOLUME:
+ delete (static_cast<QTMSVolumeEffectImpl*> (qtmseffect));
+ qtmseffect = NULL;
+ break;
+ case QTMS_EFFECT_GAIN:
+ delete (static_cast<QTMSGainEffectImpl*> (qtmseffect));
+ qtmseffect = NULL;
+ break;
+ case QTMS_EFFECT_GLOBAL_VOL:
+ delete (static_cast<QTMSGlobalVolEffectImpl*> (qtmseffect));
+ qtmseffect = NULL;
+ break;
+ case QTMS_EFFECT_GLOBAL_GAIN:
+ delete (static_cast<QTMSGlobalGainEffectImpl*> (qtmseffect));
+ qtmseffect = NULL;
+ break;
+ default:
+ ret = QTMS_RESULT_EFFECT_TYPE_NOT_SUPPORTED;
+ break;
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::CreateBuffer(QTMSBufferType buffertype, guint size, QTMSBuffer*& buffer)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ TMSBuffer* tmsbuffer(NULL);
+ if (iFactory) {
+ ret = iFactory->CreateBuffer((TMSBufferType) buffertype, size, tmsbuffer);
+ if (ret == TMS_RESULT_SUCCESS) {
+ switch (buffertype) {
+ case QTMS_BUFFER_MEMORY:
+ ret = QTMSBufferImpl::Create(buffertype, buffer, tmsbuffer);
+ break;
+ default:
+ ret = QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED;
+ break;
+ }
+ }
+ }
+
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteBuffer(QTMSBuffer*& qtmsbuffer)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_SUCCESS);
+ delete qtmsbuffer;
+ qtmsbuffer = NULL;
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::CreateSource(QTMSSourceType srctype, QTMSSource*& qtmssrc)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ TMS::TMSSource* tmssource(NULL);
+ if (iFactory) {
+ ret = iFactory->CreateSource((TMSSourceType) srctype, tmssource);
+
+ if (ret == TMS_RESULT_SUCCESS) {
+ switch (srctype) {
+ case QTMS_SOURCE_CLIENT:
+ ret = QTMSClientSourceImpl::Create(qtmssrc, tmssource);
+ break;
+ case QTMS_SOURCE_MODEM:
+ ret = QTMSModemSourceImpl::Create(qtmssrc, tmssource);
+ break;
+ case QTMS_SOURCE_MIC:
+ ret = QTMSMicSourceImpl::Create(qtmssrc, tmssource);
+ break;
+ default:
+ ret = TMS_RESULT_SOURCE_TYPE_NOT_SUPPORTED;
+ break;
+ }
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteSource(QTMSSource*& qtmssrc)
+{
+ TRACE_PRN_FN_ENT;
+ __ASSERT_ALWAYS(qtmssrc, PANIC(QTMS_RESULT_NULL_ARGUMENT));
+
+ gint ret(QTMS_RESULT_SUCCESS);
+ QTMSSourceType sourcetype;
+ ret = qtmssrc->GetType(sourcetype);
+ switch (sourcetype) {
+ case QTMS_SOURCE_CLIENT:
+ delete (static_cast<QTMSClientSourceImpl*> (qtmssrc));
+ qtmssrc = NULL;
+ break;
+ case QTMS_SOURCE_MODEM:
+ {
+ delete (static_cast<QTMSModemSourceImpl*> (qtmssrc));
+ qtmssrc = NULL;
+ }
+ break;
+ case TMS_SOURCE_MIC:
+ {
+ delete (static_cast<QTMSMicSourceImpl*> (qtmssrc));
+ qtmssrc = NULL;
+ }
+ break;
+ default:
+ ret = TMS_RESULT_SOURCE_TYPE_NOT_SUPPORTED;
+ break;
+ }
+
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::CreateSink(QTMSSinkType sinktype, QTMSSink*& qtmssink)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ TMS::TMSSink* tmssink(NULL);
+
+ if (iFactory) {
+ ret = iFactory->CreateSink((TMSSinkType) sinktype, tmssink);
+
+ if (ret == TMS_RESULT_SUCCESS) {
+ switch (sinktype) {
+ case QTMS_SINK_CLIENT:
+ ret = QTMSClientSinkImpl::Create(qtmssink, tmssink);
+ break;
+ case QTMS_SINK_MODEM:
+ ret = QTMSModemSinkImpl::Create(qtmssink, tmssink);
+ break;
+ case QTMS_SINK_SPEAKER:
+ ret = QTMSSpeakerSinkImpl::Create(qtmssink, tmssink);
+ break;
+ default:
+ ret = TMS_RESULT_SINK_TYPE_NOT_SUPPORTED;
+ break;
+ }
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteSink(QTMSSink*& qtmssink)
+{
+ TRACE_PRN_FN_ENT;
+ __ASSERT_ALWAYS(qtmssink, PANIC(QTMS_RESULT_NULL_ARGUMENT));
+
+ gint ret(QTMS_RESULT_SUCCESS);
+ QTMSSinkType sinktype;
+ ret = qtmssink->GetType(sinktype);
+ switch (sinktype) {
+ case QTMS_SINK_CLIENT:
+ {
+ delete (static_cast<QTMSClientSinkImpl*> (qtmssink));
+ qtmssink = NULL;
+ }
+ break;
+ case QTMS_SINK_MODEM:
+ {
+ delete (static_cast<QTMSModemSinkImpl*> (qtmssink));
+ qtmssink = NULL;
+ }
+ break;
+ case QTMS_SINK_SPEAKER:
+ {
+ delete (static_cast<QTMSSpeakerSinkImpl*> (qtmssink));
+ qtmssink = NULL;
+ }
+ break;
+ default:
+ ret = QTMS_RESULT_SINK_TYPE_NOT_SUPPORTED;
+ break;
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::CreateGlobalRouting(QTMSGlobalRouting*& qrouting)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ TMS::TMSGlobalRouting* tmsrouting(NULL);
+ if (iFactory) {
+ ret = iFactory->CreateGlobalRouting(tmsrouting);
+
+ if (ret == TMS_RESULT_SUCCESS) {
+ ret = QTMSGlobalRoutingImpl::Create(qrouting, tmsrouting);
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteGlobalRouting(QTMSGlobalRouting*& globalrouting)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_SUCCESS);
+ delete (static_cast<QTMSGlobalRoutingImpl*> (globalrouting));
+ globalrouting = NULL;
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::CreateDTMF(QTMSStreamType streamtype, QTMSDTMF*& qdtmf)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ TMS::TMSDTMF* tmsdtmf = NULL;
+
+ if (iFactory) {
+ ret = iFactory->CreateDTMF((TMSStreamType) streamtype, tmsdtmf);
+
+ if (ret == TMS_RESULT_SUCCESS) {
+ ret = QTMSDTMFImpl::Create(qdtmf, tmsdtmf);
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteDTMF(QTMSDTMF*& dtmf)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_SUCCESS);
+ delete (static_cast<QTMSDTMFImpl*> (dtmf));
+ dtmf = NULL;
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::CreateRingTonePlayer(QTMSRingTone*& rt)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ TMS::TMSRingTone* tmsrt = NULL;
+
+ if (iFactory) {
+ ret = iFactory->CreateRingTonePlayer(tmsrt);
+
+ if (ret == TMS_RESULT_SUCCESS) {
+ ret = QTMSRingToneImpl::Create(rt, tmsrt);
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteRingTonePlayer(QTMSRingTone*& rt)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_SUCCESS);
+ delete (static_cast<QTMSRingToneImpl*> (rt));
+ rt = NULL;
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::CreateInbandTonePlayer(QTMSInbandTone*& qinbandtone)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ TMS::TMSInbandTone* tmsinband = NULL;
+ if (iFactory) {
+ ret = iFactory->CreateInbandTonePlayer(tmsinband);
+
+ if (ret == TMS_RESULT_SUCCESS) {
+ ret = QTMSInbandToneImpl::Create(qinbandtone, tmsinband);
+ }
+ }
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSFactoryImpl::DeleteInbandTonePlayer(QTMSInbandTone*& inbandtone)
+{
+ TRACE_PRN_FN_ENT;
+ gint ret(QTMS_RESULT_SUCCESS);
+ delete (static_cast<QTMSInbandToneImpl*> (inbandtone));
+ inbandtone = NULL;
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsformat.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsformat.h>
+#include <qtmsformat.h>
+
+using namespace QTMS;
+
+QTMSFormat::QTMSFormat() :
+ iFormat(NULL)
+{
+}
+
+QTMSFormat::~QTMSFormat()
+{
+ delete iFormat;
+}
+
+gint QTMSFormat::GetSupportedBitRates(BitRateVector& aVector)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = iFormat->GetSupportedBitRates(aVector);
+ }
+ return status;
+}
+
+gint QTMSFormat::SetBitRate(const guint aBitrate)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = iFormat->SetBitRate(aBitrate);
+ }
+ return status;
+}
+
+gint QTMSFormat::GetBitRate(guint& aBitrate)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = iFormat->GetBitRate(aBitrate);
+ }
+ return status;
+}
+
+gint QTMSFormat::GetType(QTMSFormatType& fmttype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = iFormat->GetType(fmttype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsg711.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsg711format.h>
+#include <qtmsg711format.h>
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSG711Format::QTMSG711Format()
+{
+}
+
+QTMSG711Format::~QTMSG711Format()
+{
+}
+
+gint QTMSG711Format::SetMode(const QTMSG711CodecMode aMode)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG711Format*> (iFormat)->SetMode(aMode);
+ }
+ return status;
+}
+
+gint QTMSG711Format::GetMode(QTMSG711CodecMode& aMode)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG711Format*> (iFormat)->GetMode(aMode);
+ }
+ return status;
+}
+
+gint QTMSG711Format::SetCNG(const gboolean aCng)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG711Format*> (iFormat)->SetCNG(aCng);
+ }
+ return status;
+}
+
+gint QTMSG711Format::GetCNG(gboolean& aCng)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG711Format*> (iFormat)->GetCNG(aCng);
+ }
+ return status;
+}
+
+gint QTMSG711Format::SetPlc(const gboolean aPlc)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG711Format*> (iFormat)->SetPlc(aPlc);
+ }
+ return status;
+}
+
+gint QTMSG711Format::GetPlc(gboolean& aPlc)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG711Format*> (iFormat)->GetPlc(aPlc);
+ }
+ return status;
+}
+
+gint QTMSG711Format::SetVADMode(const gboolean aVad)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG711Format*> (iFormat)->SetVADMode(aVad);
+ }
+ return status;
+}
+
+gint QTMSG711Format::GetVADMode(gboolean& aVad)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG711Format*> (iFormat)->GetVADMode(aVad);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsg711impl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsg711format.h>
+#include "qtmsg711impl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSG711FormatImpl::QTMSG711FormatImpl()
+{
+}
+
+QTMSG711FormatImpl::~QTMSG711FormatImpl()
+{
+}
+
+gint QTMSG711FormatImpl::Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSG711FormatImpl* self = new QTMSG711FormatImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iFormat = tmsformat;
+ }
+ qformat = self;
+ return ret;
+}
+
+gint QTMSG711FormatImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSG711FormatImpl::GetFormat(TMS::TMSFormat*& fmt)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iFormat) {
+ fmt = iFormat;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+gint QTMSG711FormatImpl::GetType(QTMSFormatType& fmttype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = iFormat->GetType(fmttype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsg729.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsg729format.h>
+#include <qtmsg729format.h>
+#include "tmsutility.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSG729Format::QTMSG729Format()
+{
+}
+
+QTMSG729Format::~QTMSG729Format()
+{
+}
+
+gint QTMSG729Format::SetVADMode(const gboolean aVad)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG729Format*> (iFormat)->SetVADMode(aVad);
+ }
+ return status;
+}
+
+gint QTMSG729Format::GetVADMode(gboolean& aVad)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSG729Format*> (iFormat)->GetVADMode(aVad);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsg729impl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsilbcformat.h>
+#include "tmsutility.h"
+#include "qtmsg729impl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSG729FormatImpl::QTMSG729FormatImpl()
+{
+}
+
+QTMSG729FormatImpl::~QTMSG729FormatImpl()
+{
+ TRACE_PRN_FN_ENT;
+ TRACE_PRN_FN_EXT;
+}
+
+gint QTMSG729FormatImpl::Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSG729FormatImpl* self = new QTMSG729FormatImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iFormat = tmsformat;
+ }
+ qformat = self;
+ return ret;
+}
+
+gint QTMSG729FormatImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSG729FormatImpl::GetFormat(TMS::TMSFormat*& fmt)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iFormat) {
+ fmt = iFormat;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+gint QTMSG729FormatImpl::GetType(QTMSFormatType& fmttype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = iFormat->GetType(fmttype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsgaineffect.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsgaineffect.h>
+#include <qtmsgaineffect.h>
+#include "qtmsgaineffectimpl.h"
+#include "qtmswrapperexport.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSGainEffect::QTMSGainEffect() :
+ iEffect(NULL)
+{
+}
+
+QTMSGainEffect::~QTMSGainEffect()
+{
+ delete iEffect;
+}
+
+gint QTMSGainEffect::GetLevel(guint& level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGainEffect*> (iEffect)->GetLevel(level);
+ }
+ return status;
+}
+
+gint QTMSGainEffect::SetLevel(const guint level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGainEffect*> (iEffect)->SetLevel(level);
+ }
+ return status;
+}
+
+gint QTMSGainEffect::GetMaxLevel(guint& level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGainEffect*> (iEffect)->GetMaxLevel(level);
+ }
+ return status;
+}
+
+gint QTMSGainEffect::GetType(QTMSSourceType& sourcetype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGainEffect*> (iEffect)->GetType(sourcetype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsgaineffectimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsgaineffect.h>
+#include "qtmsgaineffectimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSGainEffectImpl::QTMSGainEffectImpl()
+{
+}
+
+QTMSGainEffectImpl::~QTMSGainEffectImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSGainEffectImpl::Create(QTMSEffect*& qgain, TMS::TMSEffect*& tmsgain)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSGainEffectImpl* self = new QTMSGainEffectImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iEffect = tmsgain;
+ ret = self->AddObserver(*self, NULL);
+ }
+ qgain = self;
+ return ret;
+}
+
+gint QTMSGainEffectImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSGainEffectImpl::AddObserver(TMS::TMSEffectObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iEffect) {
+ ret = static_cast<TMSGainEffect*> (iEffect)->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSGainEffectImpl::RemoveObserver(TMS::TMSEffectObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iEffect) {
+ ret = static_cast<TMSGainEffect*> (iEffect)->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+gint QTMSGainEffectImpl::GetEffect(TMS::TMSEffect*& tmseffect)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iEffect) {
+ tmseffect = iEffect;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+void QTMSGainEffectImpl::EffectsEvent(const TMS::TMSEffect& /*tmseffect*/,
+ TMS::TMSSignalEvent event)
+{
+ QTMSSignalEvent qevent;
+
+ qevent.type = event.type;
+ qevent.reason = event.reason;
+ qevent.curr_state = event.curr_state;
+ qevent.prev_state = event.prev_state;
+ qevent.event_data = event.event_data;
+ qevent.user_data = event.user_data;
+
+ emit QTMS::QTMSGainEffect::EffectsEvent(static_cast<QTMSEffect&> (*this), qevent);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsglobalgaineffect.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsglobalgaineffect.h>
+#include <qtmsglobalgaineffect.h>
+#include "qtmsglobalgaineffectimpl.h"
+#include "qtmswrapperexport.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSGlobalGainEffect::QTMSGlobalGainEffect() :
+ iEffect(NULL)
+{
+}
+
+QTMSGlobalGainEffect::~QTMSGlobalGainEffect()
+{
+ delete (static_cast<TMSGlobalGainEffect*> (iEffect));
+}
+
+gint QTMSGlobalGainEffect::GetLevel(guint& level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGlobalGainEffect*> (iEffect)->GetLevel(level);
+ }
+ return status;
+}
+
+gint QTMSGlobalGainEffect::SetLevel(const guint level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGlobalGainEffect*> (iEffect)->SetLevel(level);
+ }
+ return status;
+}
+
+gint QTMSGlobalGainEffect::GetMaxLevel(guint& level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGlobalGainEffect*> (iEffect)->GetMaxLevel(level);
+ }
+ return status;
+}
+
+gint QTMSGlobalGainEffect::GetType(QTMSSourceType& sourcetype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGlobalGainEffect*> (iEffect)->GetType(sourcetype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsglobalgaineffectimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsglobalgaineffect.h>
+#include "tmsutility.h"
+#include "qtmsglobalgaineffectimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSGlobalGainEffectImpl::QTMSGlobalGainEffectImpl()
+{
+}
+
+QTMSGlobalGainEffectImpl::~QTMSGlobalGainEffectImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSGlobalGainEffectImpl::Create(QTMSEffect*& qglobalgain, TMS::TMSEffect*& tmsglobalgain)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSGlobalGainEffectImpl* self = new QTMSGlobalGainEffectImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iEffect = tmsglobalgain;
+ ret = self->AddObserver(*self, NULL);
+ }
+ qglobalgain = self;
+ return ret;
+}
+
+gint QTMSGlobalGainEffectImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSGlobalGainEffectImpl::AddObserver(TMS::TMSEffectObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iEffect) {
+ ret = static_cast<TMSGlobalGainEffect*> (iEffect)->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSGlobalGainEffectImpl::RemoveObserver(TMS::TMSEffectObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iEffect) {
+ ret = static_cast<TMSGlobalGainEffect*> (iEffect)->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+void QTMSGlobalGainEffectImpl::EffectsEvent(const TMS::TMSEffect& /*tmseffect*/,
+ TMS::TMSSignalEvent event)
+{
+ QTMSSignalEvent qevent;
+
+ qevent.type = event.type;
+ qevent.reason = event.reason;
+ qevent.curr_state = event.curr_state;
+ qevent.prev_state = event.prev_state;
+ qevent.event_data = event.event_data;
+ qevent.user_data = event.user_data;
+
+ emit QTMS::QTMSGlobalGainEffect::EffectsEvent(static_cast<QTMSEffect&> (*this), qevent);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsglobalrouting.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsglobalrouting.h>
+#include <qtmsglobalrouting.h>
+#include "qtmsglobalroutingimpl.h"
+#include "qtmswrapperexport.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSGlobalRouting::QTMSGlobalRouting() :
+ iRouting(NULL)
+{
+}
+
+QTMSGlobalRouting::~QTMSGlobalRouting()
+{
+ delete iRouting;
+}
+
+gint QTMSGlobalRouting::SetOutput(const QTMSAudioOutput output)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRouting) {
+ status = iRouting->SetOutput(output);
+ }
+ return status;
+}
+
+gint QTMSGlobalRouting::GetOutput(QTMSAudioOutput& output)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRouting) {
+ status = iRouting->GetOutput(output);
+ }
+ return status;
+}
+
+gint QTMSGlobalRouting::GetPreviousOutput(QTMSAudioOutput& output)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRouting) {
+ status = iRouting->GetPreviousOutput(output);
+ }
+ return status;
+}
+
+gint QTMSGlobalRouting::GetAvailableOutputs(OutputVector& outputs)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRouting) {
+ status = iRouting->GetAvailableOutputs(outputs);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsglobalroutingimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsglobalrouting.h>
+#include "tmsutility.h"
+#include "qtmsglobalroutingimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSGlobalRoutingImpl::QTMSGlobalRoutingImpl()
+{
+}
+
+QTMSGlobalRoutingImpl::~QTMSGlobalRoutingImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSGlobalRoutingImpl::Create(QTMSGlobalRouting*& qrouting, TMS::TMSGlobalRouting*& tmsrouting)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSGlobalRoutingImpl* self = new QTMSGlobalRoutingImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iRouting = tmsrouting;
+ ret = self->AddObserver(*self, NULL);
+ }
+ qrouting = self;
+ return ret;
+}
+
+gint QTMSGlobalRoutingImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSGlobalRoutingImpl::AddObserver(TMS::TMSGlobalRoutingObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iRouting) {
+ ret = iRouting->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSGlobalRoutingImpl::RemoveObserver(TMS::TMSGlobalRoutingObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iRouting) {
+ ret = iRouting->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+void QTMSGlobalRoutingImpl::GlobalRoutingEvent(const TMS::TMSGlobalRouting& /*routing*/,
+ TMS::TMSSignalEvent event, TMS::TMSAudioOutput output)
+{
+ QTMSSignalEvent qevent;
+ QTMSAudioOutput qoutput;
+
+ qevent.type = event.type;
+ qevent.reason = event.reason;
+ qevent.curr_state = event.curr_state;
+ qevent.prev_state = event.prev_state;
+ qevent.event_data = event.event_data;
+ qevent.user_data = event.user_data;
+ qoutput = output;
+
+ emit QTMS::QTMSGlobalRouting::GlobalRoutingEvent(static_cast<QTMSGlobalRouting&> (*this),
+ qevent, qoutput);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsglobalvoleffect.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include<tmsglobalvoleffect.h>
+#include <qtmsglobalvoleffect.h>
+#include "qtmsglobalvoleffectimpl.h"
+#include "qtmswrapperexport.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSGlobalVolEffect::QTMSGlobalVolEffect() :
+ iEffect(NULL)
+{
+}
+
+QTMSGlobalVolEffect::~QTMSGlobalVolEffect()
+{
+ delete (static_cast<TMSGlobalVolEffect*> (iEffect));
+}
+
+gint QTMSGlobalVolEffect::GetLevel(guint& level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGlobalVolEffect*> (iEffect)->GetLevel(level);
+ }
+ return status;
+}
+
+gint QTMSGlobalVolEffect::SetLevel(const guint level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGlobalVolEffect*> (iEffect)->SetLevel(level);
+ }
+ return status;
+}
+
+gint QTMSGlobalVolEffect::GetMaxLevel(guint& level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGlobalVolEffect*> (iEffect)->GetMaxLevel(level);
+ }
+ return status;
+}
+
+gint QTMSGlobalVolEffect::GetType(QTMSSourceType& sourcetype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSGlobalVolEffect*> (iEffect)->GetType(sourcetype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsglobalvoleffectimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsglobalvoleffect.h>
+#include "tmsutility.h"
+#include "qtmsglobalvoleffectimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSGlobalVolEffectImpl::QTMSGlobalVolEffectImpl()
+{
+}
+
+QTMSGlobalVolEffectImpl::~QTMSGlobalVolEffectImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSGlobalVolEffectImpl::Create(QTMSEffect*& qglobalvol, TMS::TMSEffect*& tmsglobalvol)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSGlobalVolEffectImpl* self = new QTMSGlobalVolEffectImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iEffect = tmsglobalvol;
+ ret = self->AddObserver(*self, NULL);
+ }
+ qglobalvol = self;
+ return ret;
+}
+
+gint QTMSGlobalVolEffectImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSGlobalVolEffectImpl::AddObserver(TMS::TMSEffectObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iEffect) {
+ ret = static_cast<TMSGlobalVolEffect*> (iEffect)->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSGlobalVolEffectImpl::RemoveObserver(TMS::TMSEffectObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iEffect) {
+ ret = static_cast<TMSGlobalVolEffect*> (iEffect)->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+void QTMSGlobalVolEffectImpl::EffectsEvent(const TMS::TMSEffect& /*tmseffect*/,
+ TMS::TMSSignalEvent event)
+{
+ QTMSSignalEvent qevent;
+
+ qevent.type = event.type;
+ qevent.reason = event.reason;
+ qevent.curr_state = event.curr_state;
+ qevent.prev_state = event.prev_state;
+ qevent.event_data = event.event_data;
+ qevent.user_data = event.user_data;
+
+ emit QTMS::QTMSGlobalVolEffect::EffectsEvent(static_cast<QTMSEffect&> (*this), qevent);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsilbc.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsilbcformat.h>
+#include <qtmsilbcformat.h>
+#include "tmsutility.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSILBCFormat::QTMSILBCFormat()
+{
+}
+
+QTMSILBCFormat::~QTMSILBCFormat()
+{
+}
+
+gint QTMSILBCFormat::SetMode(const QTMSG711CodecMode aMode)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSILBCFormat*> (iFormat)->SetMode(aMode);
+ }
+ return status;
+}
+
+gint QTMSILBCFormat::GetMode(QTMSG711CodecMode& aMode)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSILBCFormat*> (iFormat)->GetMode(aMode);
+ }
+ return status;
+}
+
+gint QTMSILBCFormat::SetCNG(const gboolean aCng)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSILBCFormat*> (iFormat)->SetCNG(aCng);
+ }
+ return status;
+}
+
+gint QTMSILBCFormat::GetCNG(gboolean& aCng)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSILBCFormat*> (iFormat)->GetCNG(aCng);
+ }
+ return status;
+}
+
+gint QTMSILBCFormat::SetVADMode(const gboolean aVad)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSILBCFormat*> (iFormat)->SetVADMode(aVad);
+ }
+ return status;
+}
+
+gint QTMSILBCFormat::GetVADMode(gboolean& aVad)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = static_cast<TMSILBCFormat*> (iFormat)->GetVADMode(aVad);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsilbcimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsilbcformat.h>
+#include "qtmsilbcimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSILBCFormatImpl::QTMSILBCFormatImpl()
+{
+}
+
+QTMSILBCFormatImpl::~QTMSILBCFormatImpl()
+{
+}
+
+gint QTMSILBCFormatImpl::Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSILBCFormatImpl* self = new QTMSILBCFormatImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iFormat = tmsformat;
+ }
+ qformat = self;
+ return ret;
+}
+
+gint QTMSILBCFormatImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSILBCFormatImpl::GetFormat(TMS::TMSFormat*& fmt)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iFormat) {
+ fmt = iFormat;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+gint QTMSILBCFormatImpl::GetType(QTMSFormatType& fmttype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = iFormat->GetType(fmttype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsinbandtone.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtmsinbandtone.h>
+#include <tmsinbandtone.h>
+#include "qtmswrapperexport.h"
+#include "qtmsinbandtoneimpl.h"
+
+using namespace QTMS;
+
+QTMSInbandTone::QTMSInbandTone(void) :
+ iInbandTone(NULL)
+{
+}
+
+QTMSInbandTone::~QTMSInbandTone(void)
+{
+ delete iInbandTone;
+}
+
+gint QTMSInbandTone::Start(QTMSInbandToneType inbandtonetype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iInbandTone) {
+ status = iInbandTone->Start(inbandtonetype);
+ }
+ return status;
+}
+
+gint QTMSInbandTone::Stop()
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iInbandTone) {
+ status = iInbandTone->Stop();
+ }
+ return status;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsinbandtoneimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsinbandtone.h>
+#include "tmsutility.h"
+#include "qtmsinbandtoneimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSInbandToneImpl::QTMSInbandToneImpl()
+{
+}
+
+QTMSInbandToneImpl::~QTMSInbandToneImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSInbandToneImpl::Create(QTMSInbandTone*& qinband, TMS::TMSInbandTone*& tmsinband)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSInbandToneImpl* self = new QTMSInbandToneImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iInbandTone = tmsinband;
+ self->AddObserver(*self, NULL);
+ }
+ qinband = self;
+ return ret;
+}
+
+gint QTMSInbandToneImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSInbandToneImpl::AddObserver(TMS::TMSInbandToneObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iInbandTone) {
+ ret = iInbandTone->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSInbandToneImpl::RemoveObserver(TMS::TMSInbandToneObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iInbandTone) {
+ ret = iInbandTone->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+void QTMSInbandToneImpl::InbandToneEvent(const TMS::TMSInbandTone& /*inbandtone*/,
+ TMS::TMSSignalEvent event)
+{
+ QTMSSignalEvent qevent;
+ qevent.type = event.type;
+ qevent.reason = event.reason;
+ qevent.curr_state = event.curr_state;
+ qevent.prev_state = event.prev_state;
+ qevent.event_data = event.event_data;
+ qevent.user_data = event.user_data;
+
+ emit QTMS::QTMSInbandTone::InbandToneEvent(static_cast<QTMSInbandTone&> (*this), qevent);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsmembuffer.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,135 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsbuffer.h>
+#include "tmsutility.h"
+#include "qtmsmembuffer.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSMemBuffer::QTMSMemBuffer()
+{
+ iTmsBuffer = NULL;
+ iOwnsBuffer = FALSE;
+}
+
+QTMSMemBuffer::~QTMSMemBuffer()
+{
+ if (iOwnsBuffer) {
+ free(iDataPtr);
+ }
+}
+
+gint QTMSMemBuffer::Create(QTMSBuffer*& buffer, TMS::TMSBuffer*& tmsbuffer)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ TRACE_PRN_FN_ENT;
+ QTMSMemBuffer* self = new QTMSMemBuffer();
+ if (self) {
+ self->iTmsBuffer = tmsbuffer;
+ tmsbuffer->GetDataPtr(self->iDataPtr);
+ tmsbuffer->GetDataSize(self->iBufferSize);
+ tmsbuffer->GetTimeStamp(self->iTimeStamp);
+ self->iOwnsBuffer = FALSE;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ buffer = self;
+ TRACE_PRN_FN_EXT;
+ return ret;
+}
+
+gint QTMSMemBuffer::GetType(QTMSBufferType& buffertype)
+{
+ gint ret(TMS_RESULT_SUCCESS);
+ buffertype = QTMS_BUFFER_MEMORY;
+ return ret;
+}
+
+/**
+ * Gets the timestamp on the Buffer so that the framework can
+ * determine the time at which this buffer has to be rendered
+ * by the output device sink.
+ *
+ * @param ts timestamp in microseconds
+ *
+ */
+gint QTMSMemBuffer::GetTimeStamp(guint64& ts)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ ts = iTimeStamp;
+ return ret;
+}
+
+/**
+ * Sets the timestamp on the Buffer so that the framework can
+ * determine the time at which this buffer has to be rendered
+ * by the output device sink.
+ *
+ * @param ts timestamp in milliseconds
+ *
+ */
+gint QTMSMemBuffer::SetTimeStamp(const guint64 ts)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ iTimeStamp = ts;
+ ret = iTmsBuffer->SetTimeStamp(ts);
+ return ret;
+}
+
+/**
+ * Gets the size of data in the buffer specified by the client.
+ *
+ * @param size size of data in bytes
+ *
+ */
+gint QTMSMemBuffer::GetDataSize(guint& size)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ size = iBufferSize;
+ return ret;
+}
+
+/**
+ * Sets the size of data in the buffer after the client fill it.
+ *
+ * @param size size of data in bytes
+ *
+ */
+gint QTMSMemBuffer::SetDataSize(const guint size)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ ret = iTmsBuffer->SetDataSize(size);
+ iBufferSize = size; //TODO: should realloc when new size > old size (?)
+ return ret;
+}
+
+/**
+ * Gets the pointer to the memory location associated with this
+ * buffer where the data is stored.
+ *
+ * @param bufptr ptr to the data stored in the buffer.
+ *
+ */
+gint QTMSMemBuffer::GetDataPtr(guint8*& bufptr)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ bufptr = iDataPtr;
+ return ret;
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsmicsource.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsmicsource.h>
+#include <qtmsmicsource.h>
+#include "qtmsmicsourceimpl.h"
+#include "qtmswrapperexport.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSMicSource::QTMSMicSource() :
+ iSource(NULL)
+{
+}
+
+QTMSMicSource::~QTMSMicSource()
+{
+ delete (static_cast<TMSMicSource*> (iSource));
+}
+
+gint QTMSMicSource::GetType(QTMSSourceType& sourcetype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ //status = iSource->GetType(sourcetype);
+ status = static_cast<TMSMicSource*> (iSource)->GetType(sourcetype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsmicsourceimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsmicsource.h>
+#include "qtmsmicsourceimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSMicSourceImpl::QTMSMicSourceImpl()
+{
+}
+
+QTMSMicSourceImpl::~QTMSMicSourceImpl()
+{
+}
+
+gint QTMSMicSourceImpl::Create(QTMSSource*& qsource, TMS::TMSSource*& tmssource)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSMicSourceImpl* self = new QTMSMicSourceImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iSource = tmssource;
+ }
+ qsource = self;
+ return ret;
+}
+
+gint QTMSMicSourceImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSMicSourceImpl::GetSource(TMS::TMSSource*& tmssource)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ tmssource = iSource;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsmodemsink.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtmsmodemsink.h>
+#include <tmsmodemsink.h>
+#include "qtmsmodemsinkimpl.h"
+#include "qtmswrapperexport.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSModemSink::QTMSModemSink() :
+ iSink(NULL)
+{
+}
+
+QTMSModemSink::~QTMSModemSink()
+{
+ delete (static_cast<TMSModemSink*> (iSink));
+}
+
+gint QTMSModemSink::GetType(QTMSSinkType& sinktype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSink) {
+ //status = iSink->GetType(sinktype);
+ status = static_cast<TMSModemSink*> (iSink)->GetType(sinktype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsmodemsinkimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsmodemsink.h>
+#include "qtmsmodemsinkimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSModemSinkImpl::QTMSModemSinkImpl()
+{
+}
+
+QTMSModemSinkImpl::~QTMSModemSinkImpl()
+{
+}
+
+gint QTMSModemSinkImpl::Create(QTMSSink*& qsink, TMS::TMSSink*& tmssink)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSModemSinkImpl* self = new QTMSModemSinkImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iSink = tmssink;
+ }
+ qsink = self;
+ return ret;
+}
+
+gint QTMSModemSinkImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSModemSinkImpl::GetSink(TMS::TMSSink*& tmssink)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSink) {
+ tmssink = iSink;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsmodemsource.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtmsmodemsource.h>
+#include <tmsmodemsource.h>
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSModemSource::QTMSModemSource() :
+ iSource(NULL)
+{
+}
+
+QTMSModemSource::~QTMSModemSource()
+{
+ delete (static_cast<TMSModemSource*> (iSource));
+}
+
+gint QTMSModemSource::GetType(QTMSSourceType& sourcetype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ //status = iSource->GetType(sourcetype);
+ status = static_cast<TMSModemSource*> (iSource)->GetType(sourcetype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsmodemsourceimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsmodemsource.h>
+#include "qtmsmodemsourceimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSModemSourceImpl::QTMSModemSourceImpl()
+{
+}
+
+QTMSModemSourceImpl::~QTMSModemSourceImpl()
+{
+}
+
+gint QTMSModemSourceImpl::Create(QTMSSource*& qsource, TMS::TMSSource*& tmssource)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSModemSourceImpl* self = new QTMSModemSourceImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iSource = tmssource;
+ }
+ qsource = self;
+ return ret;
+}
+
+gint QTMSModemSourceImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSModemSourceImpl::GetSource(TMS::TMSSource*& tmssource)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSource) {
+ tmssource = iSource;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmspcm.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtmspcmformat.h>
+
+using namespace QTMS;
+
+QTMSPCMFormat::QTMSPCMFormat()
+{
+}
+
+QTMSPCMFormat::~QTMSPCMFormat()
+{
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmspcmimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmspcmformat.h>
+#include "tmsutility.h"
+#include "qtmspcmimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSPCMFormatImpl::QTMSPCMFormatImpl()
+{
+}
+
+QTMSPCMFormatImpl::~QTMSPCMFormatImpl()
+{
+ TRACE_PRN_FN_ENT;
+ TRACE_PRN_FN_EXT;
+}
+
+gint QTMSPCMFormatImpl::Create(QTMSFormat*& qformat, TMS::TMSFormat*& tmsformat)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSPCMFormatImpl* self = new QTMSPCMFormatImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iFormat = tmsformat;
+ }
+ qformat = self;
+ return ret;
+}
+
+gint QTMSPCMFormatImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSPCMFormatImpl::GetFormat(TMS::TMSFormat*& fmt)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iFormat) {
+ fmt = iFormat;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+gint QTMSPCMFormatImpl::GetType(QTMSFormatType& fmttype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iFormat) {
+ status = iFormat->GetType(fmttype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsringtone.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsringtone.h>
+#include <qtmsringtone.h>
+#include "qtmsringtoneimpl.h"
+
+using namespace QTMS;
+
+QTMSRingTone::QTMSRingTone() :
+ iRingTone(NULL)
+{
+}
+
+QTMSRingTone::~QTMSRingTone()
+{
+ delete iRingTone;
+}
+
+gint QTMSRingTone::Init(const QTMSRingToneType type, GString* str, GString* tts)
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRingTone) {
+ status = iRingTone->Init(type, str, tts);
+ }
+ return status;
+}
+
+gint QTMSRingTone::Deinit()
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRingTone) {
+ status = iRingTone->Deinit();
+ }
+ return status;
+}
+
+gint QTMSRingTone::Play()
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRingTone) {
+ status = iRingTone->Play();
+ }
+ return status;
+}
+
+gint QTMSRingTone::Stop()
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRingTone) {
+ status = iRingTone->Stop();
+ }
+ return status;
+}
+
+gint QTMSRingTone::Pause()
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRingTone) {
+ status = iRingTone->Pause();
+ }
+ return status;
+}
+
+gint QTMSRingTone::Mute()
+{
+ gint status(TMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRingTone) {
+ status = iRingTone->Mute();
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsringtoneimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsringtone.h>
+#include <qtmseffect.h>
+#include "tmsutility.h"
+#include "qtmsringtoneimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSRingToneImpl::QTMSRingToneImpl()
+{
+}
+
+QTMSRingToneImpl::~QTMSRingToneImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSRingToneImpl::Create(QTMSRingTone*& qrt, TMS::TMSRingTone*& tmsrt)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSRingToneImpl* self = new QTMSRingToneImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iRingTone = tmsrt;
+ ret = self->AddObserver(*self, NULL);
+ }
+ qrt = self;
+ return ret;
+}
+
+gint QTMSRingToneImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSRingToneImpl::AddObserver(TMS::TMSRingToneObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRingTone) {
+ ret = iRingTone->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSRingToneImpl::RemoveObserver(TMS::TMSRingToneObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iRingTone) {
+ ret = iRingTone->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+void QTMSRingToneImpl::RingtoneEvent(const TMS::TMSRingTone& /*rt*/, TMS::TMSSignalEvent event)
+{
+ QTMSSignalEvent qevent;
+ qevent.type = event.type;
+ qevent.reason = event.reason;
+ qevent.curr_state = event.curr_state;
+ qevent.prev_state = event.prev_state;
+ qevent.event_data = event.event_data;
+ qevent.user_data = event.user_data;
+
+ emit QTMS::QTMSRingTone::RingtoneEvent(static_cast<QTMSRingTone&> (*this), qevent);
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsspeakersink.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtmsspeakersink.h>
+#include <tmsspeakersink.h>
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSSpeakerSink::QTMSSpeakerSink() :
+ iSink(NULL)
+{
+}
+
+QTMSSpeakerSink::~QTMSSpeakerSink()
+{
+ delete (static_cast<TMSSpeakerSink*> (iSink));
+}
+
+gint QTMSSpeakerSink::GetType(QTMSSinkType& sinktype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iSink) {
+ //status = iSink->GetType(sinktype); //should be ok
+ status = static_cast<TMSSpeakerSink*> (iSink)->GetType(sinktype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsspeakersinkimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsspeakersink.h>
+#include "qtmsspeakersinkimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSSpeakerSinkImpl::QTMSSpeakerSinkImpl()
+{
+}
+
+QTMSSpeakerSinkImpl::~QTMSSpeakerSinkImpl()
+{
+}
+
+gint QTMSSpeakerSinkImpl::Create(QTMSSink*& qsink, TMS::TMSSink*& tmssink)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSSpeakerSinkImpl* self = new QTMSSpeakerSinkImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iSink = tmssink;
+ }
+ qsink = self;
+ return ret;
+}
+
+gint QTMSSpeakerSinkImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSSpeakerSinkImpl::GetSink(TMS::TMSSink*& tmssink)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iSink) {
+ tmssink = iSink;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsstream.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,357 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmssource.h>
+#include <tmsformat.h>
+#include <tmsstream.h>
+#include <qtmseffect.h>
+#include <qtmsstream.h>
+#include "qtmsstreamimpl.h"
+#include "qtmssource.h"
+#include "qtmsclientsourceimpl.h"
+#include "qtmsmodemsourceimpl.h"
+#include "qtmsmicsourceimpl.h"
+#include "qtmsclientsinkimpl.h"
+#include "qtmsmodemsinkimpl.h"
+#include "qtmsspeakersinkimpl.h"
+#include "qtmspcmimpl.h"
+#include "qtmsamrimpl.h"
+#include "qtmsg711impl.h"
+#include "qtmsg729impl.h"
+#include "qtmsilbcimpl.h"
+#include "qtmsvolumeeffectimpl.h"
+#include "qtmsgaineffectimpl.h"
+#include "qtmswrapperexport.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSStream::QTMSStream(void) :
+ iStream(NULL)
+{
+}
+
+QTMSStream::~QTMSStream()
+{
+ //delete iStream;
+ //delete (static_cast<QTMSStreamImpl*> (iStream));
+}
+
+gint QTMSStream::AddSource(QTMSSource* qsource)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iStream && qsource) {
+ QTMSSourceType qsrctype;
+ TMSSource* tmssource(NULL);
+
+ qsource->GetType(qsrctype);
+
+ switch (qsrctype) {
+ case QTMS_SOURCE_CLIENT:
+ status = static_cast<QTMSClientSourceImpl*> (qsource)->GetSource(tmssource);
+ break;
+ case QTMS_SOURCE_MODEM:
+ status = static_cast<QTMSModemSourceImpl*> (qsource)->GetSource(tmssource);
+ break;
+ case QTMS_SOURCE_MIC:
+ status = static_cast<QTMSMicSourceImpl*> (qsource)->GetSource(tmssource);
+ break;
+ default:
+ break;
+ }
+ if (status == QTMS_RESULT_SUCCESS && tmssource) {
+ status = iStream->AddSource(tmssource);
+ }
+ }
+ return status;
+}
+
+gint QTMSStream::RemoveSource(QTMSSource* qsource)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iStream && qsource) {
+ QTMSSourceType qsrctype;
+ TMSSource* tmssource(NULL);
+
+ qsource->GetType(qsrctype);
+
+ switch (qsrctype) {
+ case QTMS_SOURCE_CLIENT:
+ status = static_cast<QTMSClientSourceImpl*> (qsource)->GetSource(tmssource);
+ break;
+ case QTMS_SOURCE_MODEM:
+ status = static_cast<QTMSModemSourceImpl*> (qsource)->GetSource(tmssource);
+ break;
+ case QTMS_SOURCE_MIC:
+ status = static_cast<QTMSMicSourceImpl*> (qsource)->GetSource(tmssource);
+ break;
+ default:
+ break;
+ }
+ if (status == QTMS_RESULT_SUCCESS && tmssource) {
+ status = iStream->RemoveSource(tmssource);
+ }
+ }
+
+ return status;
+}
+
+gint QTMSStream::AddSink(QTMSSink* qsink)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iStream && qsink) {
+ QTMSSinkType qsinktype;
+ TMSSink* tmssink(NULL);
+
+ qsink->GetType(qsinktype);
+
+ switch (qsinktype) {
+ case QTMS_SINK_CLIENT:
+ status = static_cast<QTMSClientSinkImpl*> (qsink)->GetSink(tmssink);
+ break;
+ case QTMS_SINK_MODEM:
+ status = static_cast<QTMSModemSinkImpl*> (qsink)->GetSink(tmssink);
+ break;
+ case QTMS_SINK_SPEAKER:
+ status = static_cast<QTMSSpeakerSinkImpl*> (qsink)->GetSink(tmssink);
+ break;
+ default:
+ break;
+ }
+ if (status == QTMS_RESULT_SUCCESS && tmssink) {
+ status = iStream->AddSink(tmssink);
+ }
+ }
+ return status;
+}
+
+gint QTMSStream::RemoveSink(QTMSSink* qsink)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iStream && qsink) {
+ QTMSSinkType qsinktype;
+ TMSSink* tmssink(NULL);
+
+ qsink->GetType(qsinktype);
+
+ switch (qsinktype) {
+ case QTMS_SINK_CLIENT:
+ status = static_cast<QTMSClientSinkImpl*> (qsink)->GetSink(tmssink);
+ break;
+ case QTMS_SINK_MODEM:
+ status = static_cast<QTMSModemSinkImpl*> (qsink)->GetSink(tmssink);
+ break;
+ case QTMS_SINK_SPEAKER:
+ status = static_cast<QTMSSpeakerSinkImpl*> (qsink)->GetSink(tmssink);
+ break;
+ default:
+ break;
+ }
+ if (status == QTMS_RESULT_SUCCESS && tmssink) {
+ status = iStream->RemoveSink(tmssink);
+ }
+ }
+
+ return status;
+}
+
+gint QTMSStream::SetFormat(QTMSFormat* qformat)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iStream && qformat) {
+ QTMSFormatType fmttype;
+ TMSFormat* tmsformat(NULL);
+ qformat->GetType(fmttype);
+ switch (fmttype) {
+ case QTMS_FORMAT_PCM:
+ status = static_cast<QTMSPCMFormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ case QTMS_FORMAT_AMR:
+ status = static_cast<QTMSAMRFormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ case QTMS_FORMAT_G711:
+ status = static_cast<QTMSG711FormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ case QTMS_FORMAT_G729:
+ status = static_cast<QTMSG729FormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = static_cast<QTMSILBCFormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ default:
+ break;
+ }
+
+ status = iStream->SetFormat(tmsformat);
+ }
+ return status;
+}
+
+gint QTMSStream::ResetFormat(QTMSFormat* qformat)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iStream && qformat) {
+ QTMSFormatType fmttype;
+ TMSFormat* tmsformat(NULL);
+ qformat->GetType(fmttype);
+ switch (fmttype) {
+ case QTMS_FORMAT_PCM:
+ status = static_cast<QTMSPCMFormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ case QTMS_FORMAT_AMR:
+ status = static_cast<QTMSAMRFormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ case QTMS_FORMAT_G711:
+ status = static_cast<QTMSG711FormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ case QTMS_FORMAT_G729:
+ status = static_cast<QTMSG729FormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = static_cast<QTMSILBCFormatImpl*> (qformat)->GetFormat(tmsformat);
+ break;
+ default:
+ break;
+ }
+
+ status = iStream->ResetFormat(tmsformat);
+ }
+ return status;
+}
+
+gint QTMSStream::AddEffect(QTMSEffect* qeffect)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iStream && qeffect) {
+ QTMSEffectType effecttype;
+ TMSEffect* tmseffect(NULL);
+ qeffect->GetType(effecttype);
+
+ switch (effecttype) {
+ case QTMS_EFFECT_VOLUME:
+ status = static_cast<QTMSVolumeEffectImpl*> (qeffect)->GetEffect(tmseffect);
+ break;
+ case QTMS_EFFECT_GAIN:
+ status = static_cast<QTMSGainEffectImpl*> (qeffect)->GetEffect(tmseffect);
+ break;
+ default:
+ break;
+ }
+ status = iStream->AddEffect(tmseffect);
+ }
+ return status;
+}
+
+gint QTMSStream::RemoveEffect(QTMSEffect* qeffect)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iStream && qeffect) {
+ QTMSEffectType effecttype;
+ TMSEffect* tmseffect(NULL);
+ qeffect->GetType(effecttype);
+
+ switch (effecttype) {
+ case QTMS_EFFECT_VOLUME:
+ status = static_cast<QTMSVolumeEffectImpl*> (qeffect)->GetEffect(tmseffect);
+ break;
+ case QTMS_EFFECT_GAIN:
+ status = static_cast<QTMSGainEffectImpl*> (qeffect)->GetEffect(tmseffect);
+ break;
+ default:
+ break;
+ }
+ status = iStream->RemoveEffect(tmseffect);
+ }
+ return status;
+}
+
+gint QTMSStream::GetState()
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iStream) {
+ status = iStream->GetState();
+ }
+ return status;
+}
+
+gint QTMSStream::GetStreamType()
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iStream) {
+ status = iStream->GetStreamType();
+ }
+ return status;
+}
+
+gint QTMSStream::GetStreamId()
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iStream) {
+ status = iStream->GetStreamId();
+ }
+ return status;
+}
+
+gint QTMSStream::Init(gint retrytime)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iStream) {
+ status = iStream->Init(retrytime);
+ }
+ return status;
+}
+
+gint QTMSStream::Pause()
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iStream) {
+ status = iStream->Pause();
+ }
+ return status;
+}
+
+gint QTMSStream::Start(gint retrytime)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iStream) {
+ status = iStream->Start(retrytime);
+ }
+ return status;
+}
+
+gint QTMSStream::Stop()
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iStream) {
+ status = iStream->Stop();
+ }
+ return status;
+}
+
+void QTMSStream::Deinit()
+{
+ if (iStream) {
+ iStream->Deinit();
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsstreamimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <qtmseffect.h>
+#include <tmsstream.h>
+#include "tmsutility.h"
+#include "qtmsstreamimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSStreamImpl::QTMSStreamImpl()
+{
+}
+
+QTMSStreamImpl::~QTMSStreamImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSStreamImpl::Create(QTMSCallType callType, QTMSStreamType stype, QTMSStream*& qstrm,
+ TMS::TMSStream*& tmsstrm)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSStreamImpl* self = new QTMSStreamImpl();
+ if (self) {
+ ret = self->PostConstruct(callType, stype, *self);
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iStream = tmsstrm;
+ self->AddObserver(*self, NULL);
+ }
+ qstrm = self;
+ return ret;
+}
+
+gint QTMSStreamImpl::PostConstruct(QTMSCallType /*callType*/, QTMSStreamType /*stype*/, QTMSStream& /*parent*/)
+{
+ gint status(QTMS_RESULT_SUCCESS);
+ return status;
+}
+
+gint QTMSStreamImpl::AddObserver(TMS::TMSStreamObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iStream) {
+ iStream->AddObserver(obsrvr, user_data);
+ }
+
+ return ret;
+}
+
+gint QTMSStreamImpl::RemoveObserver(TMS::TMSStreamObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iStream) {
+ ret = iStream->RemoveObserver(obsrvr);
+ }
+
+ return ret;
+}
+
+void QTMSStreamImpl::TMSStreamEvent(const TMS::TMSStream& /*stream*/, TMS::TMSSignalEvent event)
+{
+ QTMSSignalEvent qevent;
+
+ qevent.type = event.type;
+ qevent.reason = event.reason;
+ qevent.curr_state = event.curr_state;
+ qevent.prev_state = event.prev_state;
+ qevent.event_data = event.event_data;
+ qevent.user_data = event.user_data;
+
+ emit QTMS::QTMSStream::TMSStreamEvent(static_cast<QTMSStream&> (*this), qevent);
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsvolumeeffect.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <tmsvolumeeffect.h>
+#include <qtmsvolumeeffect.h>
+#include "qtmsvolumeeffectimpl.h"
+#include "qtmswrapperexport.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSVolumeEffect::QTMSVolumeEffect() :
+ iEffect(NULL)
+{
+}
+
+QTMSVolumeEffect::~QTMSVolumeEffect()
+{
+ delete (static_cast<TMSVolumeEffect*> (iEffect));
+}
+
+gint QTMSVolumeEffect::GetLevel(guint& level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSVolumeEffect*> (iEffect)->GetLevel(level);
+ }
+ return status;
+}
+
+gint QTMSVolumeEffect::SetLevel(const guint level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSVolumeEffect*> (iEffect)->SetLevel(level);
+ }
+ return status;
+}
+
+gint QTMSVolumeEffect::GetMaxLevel(guint& level)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSVolumeEffect*> (iEffect)->GetMaxLevel(level);
+ }
+ return status;
+}
+
+gint QTMSVolumeEffect::GetType(QTMSSourceType& sourcetype)
+{
+ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT);
+ if (iEffect) {
+ status = static_cast<TMSVolumeEffect*> (iEffect)->GetType(sourcetype);
+ }
+ return status;
+}
+
+// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtms/src/qtmsvolumeeffectimpl.cpp Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: QT Bindings for TMS
+ *
+ */
+
+#include <qtms.h>
+#include <tmsvolumeeffect.h>
+#include "qtmsvolumeeffectimpl.h"
+
+using namespace QTMS;
+using namespace TMS;
+
+QTMSVolumeEffectImpl::QTMSVolumeEffectImpl()
+{
+}
+
+QTMSVolumeEffectImpl::~QTMSVolumeEffectImpl()
+{
+ RemoveObserver(*this);
+}
+
+gint QTMSVolumeEffectImpl::Create(QTMSEffect*& qvol, TMS::TMSEffect*& tmsvol)
+{
+ gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY);
+ QTMSVolumeEffectImpl* self = new QTMSVolumeEffectImpl();
+ if (self) {
+ ret = self->PostConstruct();
+ if (ret != QTMS_RESULT_SUCCESS) {
+ delete self;
+ self = NULL;
+ }
+ self->iEffect = tmsvol;
+ ret = self->AddObserver(*self, NULL);
+ }
+ qvol = self;
+ return ret;
+}
+
+gint QTMSVolumeEffectImpl::PostConstruct()
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+ return ret;
+}
+
+gint QTMSVolumeEffectImpl::AddObserver(TMS::TMSEffectObserver& obsrvr, gpointer user_data)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iEffect) {
+ ret = static_cast<TMSVolumeEffect*> (iEffect)->AddObserver(obsrvr, user_data);
+ }
+ return ret;
+}
+
+gint QTMSVolumeEffectImpl::RemoveObserver(TMS::TMSEffectObserver& obsrvr)
+{
+ gint ret(QTMS_RESULT_SUCCESS);
+
+ if (iEffect) {
+ ret = static_cast<TMSVolumeEffect*> (iEffect)->RemoveObserver(obsrvr);
+ }
+ return ret;
+}
+
+gint QTMSVolumeEffectImpl::GetEffect(TMS::TMSEffect*& tmseffect)
+{
+ gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+
+ if (iEffect) {
+ tmseffect = iEffect;
+ ret = QTMS_RESULT_SUCCESS;
+ }
+ return ret;
+}
+
+void QTMSVolumeEffectImpl::EffectsEvent(const TMS::TMSEffect& /*tmseffect*/,
+ TMS::TMSSignalEvent event)
+{
+ QTMSSignalEvent qevent;
+
+ qevent.type = event.type;
+ qevent.reason = event.reason;
+ qevent.curr_state = event.curr_state;
+ qevent.prev_state = event.prev_state;
+ qevent.event_data = event.event_data;
+ qevent.user_data = event.user_data;
+
+ emit QTMS::QTMSVolumeEffect::EffectsEvent(static_cast<QTMSEffect&> (*this), qevent);
+}
+
+// End of file
--- a/sysdef_1_4_0.dtd Thu Aug 19 10:24:28 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
- <!ELEMENT SystemDefinition (systemModel?, build?)>
- <!ATTLIST SystemDefinition
- name CDATA #REQUIRED
- schema CDATA #REQUIRED>
- <!ELEMENT systemModel (layer+)>
- <!ELEMENT layer (logicalset* | module*)*>
- <!ATTLIST layer
- name CDATA #REQUIRED
- levels CDATA #IMPLIED
- span CDATA #IMPLIED>
- <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalset name CDATA #REQUIRED>
- <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalsubset name CDATA #REQUIRED>
- <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
- <!ATTLIST module
- name CDATA #REQUIRED
- level CDATA #IMPLIED>
- <!ELEMENT component (unit* | package* | prebuilt*)*>
- <!ATTLIST component name CDATA #REQUIRED>
- <!ELEMENT unit EMPTY>
- <!ATTLIST unit
- unitID ID #REQUIRED
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- bldFile CDATA #REQUIRED
- priority CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT package EMPTY>
- <!ATTLIST package
- name CDATA #REQUIRED
- mrp CDATA #REQUIRED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT prebuilt EMPTY>
- <!ATTLIST prebuilt
- name CDATA #REQUIRED
- version CDATA #REQUIRED
- late (Y|N) #IMPLIED
- filter CDATA #IMPLIED
- contract CDATA #IMPLIED>
- <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
- <!ELEMENT unitList (unitRef+)>
- <!ATTLIST unitList
- name ID #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT unitRef EMPTY>
- <!ATTLIST unitRef unit IDREF #REQUIRED>
- <!ELEMENT targetList EMPTY>
- <!ATTLIST targetList
- name ID #REQUIRED
- description CDATA #REQUIRED
- target IDREFS #REQUIRED>
- <!ELEMENT target EMPTY>
- <!ATTLIST target
- name ID #REQUIRED
- abldTarget CDATA #REQUIRED
- description CDATA #REQUIRED>
- <!ELEMENT option EMPTY>
- <!ATTLIST option
- name ID #REQUIRED
- abldOption CDATA #REQUIRED
- description CDATA #REQUIRED
- enable (Y | N | y | n) #REQUIRED>
- <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
- <!ATTLIST configuration
- name ID #REQUIRED
- description CDATA #REQUIRED
- filter CDATA #REQUIRED>
- <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
- <!ELEMENT unitListRef EMPTY>
- <!ATTLIST unitListRef unitList IDREF #REQUIRED>
- <!ELEMENT layerRef EMPTY>
- <!ATTLIST layerRef layerName CDATA #REQUIRED>
- <!ELEMENT buildLayer EMPTY>
- <!ATTLIST buildLayer
- command CDATA #REQUIRED
- targetList IDREFS #IMPLIED
- unitParallel (Y | N | y | n) #REQUIRED
- targetParallel (Y | N | y | n) #IMPLIED>
- <!ELEMENT specialInstructions EMPTY>
- <!ATTLIST specialInstructions
- name CDATA #REQUIRED
- cwd CDATA #REQUIRED
- command CDATA #REQUIRED>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysdef_1_5_1.dtd Tue Aug 31 15:41:40 2010 +0300
@@ -0,0 +1,88 @@
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+ name CDATA #REQUIRED
+ schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+ name CDATA #REQUIRED
+ levels CDATA #IMPLIED
+ span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset name CDATA #REQUIRED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+ name CDATA #REQUIRED
+ level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+ unitID ID #REQUIRED
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ bldFile CDATA #REQUIRED
+ priority CDATA #IMPLIED
+ contract CDATA #IMPLIED
+ proFile CDATA #IMPLIED
+ qmakeArgs CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+ name CDATA #REQUIRED
+ mrp CDATA #REQUIRED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+ name CDATA #REQUIRED
+ version CDATA #REQUIRED
+ late (Y|N) #IMPLIED
+ filter CDATA #IMPLIED
+ contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+ name ID #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+ name ID #REQUIRED
+ abldTarget CDATA #REQUIRED
+ description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+ name ID #REQUIRED
+ abldOption CDATA #REQUIRED
+ description CDATA #REQUIRED
+ enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+ name ID #REQUIRED
+ description CDATA #REQUIRED
+ filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+ command CDATA #REQUIRED
+ targetList IDREFS #IMPLIED
+ unitParallel (Y | N | y | n) #REQUIRED
+ targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+ name CDATA #REQUIRED
+ cwd CDATA #REQUIRED
+ command CDATA #REQUIRED>