# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1283258500 -10800 # Node ID 6c1dfe4da5dded133eb51408cd1ef452a1abbc58 # Parent e42293e811d87ec3a8d334f0ef354de31345d2aa Revision: 201033 Kit: 201035 diff -r e42293e811d8 -r 6c1dfe4da5dd layers.sysdef.xml --- 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 @@ - ]> - + + + @@ -27,6 +29,8 @@ + + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/asxparser/group/asxparser.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/asxparser/inc/AsxParser_debug.h --- 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__ diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/asxparser/src/asxparser.cpp --- 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 #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include "AsxParser_debug.h" @@ -421,7 +421,7 @@ { iVersion = KErrNotFound; - TInt size; + TInt size = 0; User::LeaveIfError( aFile.Size( size ) ); if ( size > KMaxAsxFileSize ) diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/asxparser/test/test.cpp --- 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 #include diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/asxparser/test/test.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/audiofetcher/src/audiofetcherdialog.cpp --- 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(); diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/collectionhelper/group/mpxcollectionhelper.mmp --- 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) diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/collectionhelper/inc/mpxcollectioncachedhelper.h --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp --- 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 +#include // for SetMissingMetadataL +#include // 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/collectionhelper/src/mpxcollectionhelperimp.cpp --- 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( - KMPXMediaGeneralCollectionId, TUid::Uid(col) ); - CleanupStack::Pop(foundMedia); - break; - } - default: - User::Leave(KErrCorrupt); + foundMedia = CMPXMedia::NewL(*ary->AtL(0)); + CleanupStack::PushL(foundMedia); + foundMedia->SetTObjectValueL( KMPXMediaGeneralCollectionId, TUid::Uid(col) ); + CleanupStack::Pop(foundMedia); } - + else + { + User::Leave(KErrNotFound); + } + CleanupStack::PopAndDestroy(result); - return foundMedia; } diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/collectionmediator/group/mpxcollectionmediator.mmp --- 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/filehandler/group/mpxfilehandler.mmp --- 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/filehandler/inc/mpxdbcommon.h --- 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" ); diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/filehandler/inc/mpxharvesterdbmanager.h --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/filehandler/src/mpxfolderscanner.cpp --- 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); diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp --- 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; diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp --- 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(currentDriveNumber)); - iFilteredOutOfDisk = ETrue; } } diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/filehandler/src/mpxmetadatascanner.cpp --- 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 % * */ diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/metadataextractor/group/mpxmetadataextractor.mmp --- 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp --- 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. */ diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp --- 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( 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; iValueText( 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( 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( 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( 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( 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(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 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( KMPXMediaDrmProtected, prot ); iMedia->SetTObjectValueL( KMPXMediaMTPDrmStatus, (TUint16)prot ); } - else + else { // DRM file // DRM Rights @@ -1206,20 +1232,20 @@ iMedia->SetTObjectValueL( KMPXMediaDrmProtected, prot ); iMedia->SetTObjectValueL( 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 ); - + } diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/server/group/mpxharvester.mmp --- 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/server/src/mpxusbeventhandler.cpp --- 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 ) { diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/harvester/utility/group/mpxharvesterutility.mmp --- 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidergetobjectproplist.cpp --- 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 ); diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidergetobjectpropvalue.cpp --- 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 ); diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp --- 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; diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp --- 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; diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp --- 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(); diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/mmmtpdataprovider/tsrc/mtpdataprovidertestmodule/src/ctestobjectmanager.cpp --- 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& 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( "& aArray ) const { + CleanupClosePushL( aArray ); PRINTF1( ">CTestObserver::GetArrayValue aParam = %d", aParam ); switch (aParam) { @@ -751,4 +752,5 @@ User::Leave( KErrArgument ); } PRINTF0( "& aDrives ) const { + CleanupClosePushL( aDrives ); PRINTF0( ">CTestStorageMgr::GetAvailableDrivesL" ); aDrives.Reset(); for ( TUint i = 0; ( i < iMapDriveToStorage.Count() ); i++ ) @@ -443,6 +444,7 @@ } } PRINTF0( " diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/playbackhelper/inc/playbackhelper_log.h --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/playbackhelper/src/streaminglinkmodel.cpp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/playlistengine/group/mpxplaylistengine.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/playlistengine/group/mpxplaylistrecognizer.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/videoplaylistutility/group/videoplaylistutility.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/group/CollectionHelperTestClass.pkg --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/src/CollectionHelperTestClassBlocks.cpp --- 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 ); diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/collection_helper_api/tsrc/conf/CollectionHelperTestClass.cfg --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/collection_helper_api/tsrc/init/TestFramework.ini --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/group/bld.inf --- 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 -#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" diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/group/HarvesterCollectionMediatorTest.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/harvester_utility_api/tsrc/mpxharvestertest/src/mpxharvestertestBlocks.cpp --- 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 { diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_base_view_plugins_api/group/bld.inf --- 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) + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_base_view_plugins_api/inc/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 + +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_*/ + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_base_view_plugins_api/tsrc/conf/tcmpxbaseviewpluginstest.cfg --- 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] - diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_base_view_plugins_api/tsrc/conf/ui_mpxbaseviewpluginstest.cfg --- 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] diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_base_view_plugins_api/tsrc/init/TestFramework.ini --- 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] diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_base_view_plugins_api/tsrc/ui_mpxbaseviewpluginstest/group/ui_mpxbaseviewpluginstest.pkg --- 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" diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_common_api/inc/mpxmediamusicdefs.h --- 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 }; diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxpluginhandlerbase.cpp --- 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. diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_common_definition_api/group/bld.inf --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/conf/mpxplaybackutilitytest.cfg --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/group/bld.inf --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/inc/testcollectionplugintype.h --- /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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/inc/testcommonpluginuids.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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/inc/testplaybackplugintype.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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/inc/testviewplugintype.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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/group/bld.inf --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/group/mpxplaybackutilitytest.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/group/mpxplaybackutilitytest.pkg --- 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" diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/inc/mpxplaybackutilitytest.h --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/inc/mpxplaybackutilitytestdefs.h --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/mpxplaybackutilitytest/src/mpxplaybackutilitytestBlocks.cpp --- 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 +#include +#include + #include #include #include @@ -32,6 +36,9 @@ #include #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(KMPXMessageGeneralId)) ); TInt event( *aMessage->Value( KMPXMessageGeneralEvent ) ); TInt type( *aMessage->Value( KMPXMessageGeneralType ) ); TInt data( *aMessage->Value( 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( 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(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral); + cmd->SetTObjectValueL(KMPXCommandGeneralDoSync, ETrue); + cmd->SetTObjectValueL(KMPXCommandPlaybackGeneralType, EPbCmdPlay); + cmd->SetTObjectValueL(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(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral); + cmd->SetTObjectValueL(KMPXCommandGeneralDoSync, ETrue); + cmd->SetTObjectValueL(KMPXCommandPlaybackGeneralType, EPbCmdStop); + cmd->SetTObjectValueL(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(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral); + cmd->SetTObjectValueL(KMPXCommandGeneralDoSync, ETrue); + cmd->SetTObjectValueL(KMPXCommandPlaybackGeneralType, EPbCmdPause); + cmd->SetTObjectValueL(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(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral); + cmd->SetTObjectValueL(KMPXCommandGeneralDoSync, ETrue); + cmd->SetTObjectValueL(KMPXCommandPlaybackGeneralType, EPbCmdPlayPause); + cmd->SetTObjectValueL(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(KMPXCommandGeneralId, KMPXMessageStif); + cmd->SetTObjectValueL(KMPXCommandGeneralDoSync, ETrue); + cmd->SetTObjectValueL(KMPXCommandPlaybackGeneralData, 0); + + cmd->SetTObjectValueL( 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(KMPXCommandGeneralId, KMPXMessageStif); + cmd->SetTObjectValueL(KMPXCommandGeneralDoSync, ETrue); + cmd->SetTObjectValueL( KMPXStifPlaybackCommand, + EPbStifSeekForward ); + cmd->SetTObjectValueL(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(KMPXCommandGeneralId, KMPXMessageStif); + cmd->SetTObjectValueL(KMPXCommandGeneralDoSync, ETrue); + cmd->SetTObjectValueL( KMPXStifPlaybackCommand, + EPbStifSeekBackward ); + cmd->SetTObjectValueL(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(KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral); + cmd->SetTObjectValueL(KMPXCommandGeneralDoSync, ETrue); + cmd->SetTObjectValueL(KMPXCommandPlaybackGeneralType, EPbCmdClose); + cmd->SetTObjectValueL(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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/data/e0000201.rss --- /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. + * + *

uid1;uid2;uid3

+ * uid*: Supported plugin types. + * E.g. if podcast plugin may support music plugin as well, + * KMPXColPluginMusic + * + * uid + * uid: plugin type uid. + * E.g. for music plugin will be: 0x101FFCDA + * + * flags [optional] + * flags: sum of the required feature flags, not used now + * + * priority [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 +#include +#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 = + "" + ""EPbUnknown"" + ""EMPXPlaybackPluginPriorityHighest"" + ""MPXPlaybackPluginVersion2""; + } + }; + } + }; +} + + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/group/bld.inf --- /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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/group/testvideoplaybackplugin.mmp --- /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 +#include +#include + +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/inc/testvideoplaybackplugin.h --- /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 + +#include +#include +#include +#include + +#include "mpxplaybackutilitytest.h" + + + + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include "mpxmediavideodefs.h" + +typedef struct +{ + TInt iEvent; + TInt iData; + TInt iError; +} TTestVideoPlaybackCallbackEvent; + +typedef CArrayPtrFlat 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& 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/src/testvideoplaybackplugin.cpp --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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( 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(aCmd.ValueTObjectL(KMPXStifPlaybackCommand)); + TMPXPlaybackState state = static_cast(aCmd.ValueTObjectL(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& /*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(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(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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_playback_utility_api/tsrc/testvideoplaybackplugin/src/testvideoplaybackpluginproxy.cpp --- /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 +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_view_utility_api/group/bld.inf --- 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) diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/mpx_view_utility_api/inc/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 +#include +#include +#include + +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& requestedPlugins); + +private: + + Q_DISABLE_COPY(MpxViewFramework) + + }; + +#endif //VIEWFRAMEWORK_H diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/group/bld.inf --- /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 + +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) diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtms.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 +#include + +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 FormatVector; +typedef std::vector BitRateVector; +typedef std::vector 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsamrformat.h --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsbuffer.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 + +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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmscall.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 +#include +#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: + * + * 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; + * ... + * + * + * @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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsink.h --- /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 +#include +#include +#include +#include +#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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsource.h --- /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 +#include +#include +#include +#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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsdtmf.h --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmseffect.h --- /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 +#include + +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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsfactory.h --- /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 +#include +#include +#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: + * + * QTMSFactory* iFactory; + * QTMSCall* iCall; + * gint err; + * err = QTMSFactory::CreateFactory(iFactory); + * err = iFactory->CreateCall(QTMS_CALL_IP, iCall); + * ... + * err = iFactory->DeleteCall(iCall); + * delete iFactory; + * ... + * + * + * @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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsformat.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 +#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: + * + * QTMSFactory* iFactory; + * QTMSFormat* iFormat + * gint err; + * err = QTMSFactory::CreateFactory(iFactory); + * err = iFactory->Create(QTMS_FORMAT_XXX,iFormat); + * ... + * + * + * @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 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsg711format.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 +#include +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsg729format.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 +#include +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsgaineffect.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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsglobalgaineffect.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 +#include +#include "qtmswrapperexport.h" +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsglobalrouting.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 +#include +#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 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsglobalvoleffect.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 +#include +#include +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsilbcformat.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 +#include +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsinbandtone.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 +#include +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsmicsource.h --- /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 +#include +#include +#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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsmodemsink.h --- /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 +#include +#include +#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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsmodemsource.h --- /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 +#include +#include +#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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmspcmformat.h --- /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 +#include +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsringtone.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 +#include +#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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmssink.h --- /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 + +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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmssource.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 + +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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsspeakersink.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 +#include +#include +#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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsstream.h --- /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 +#include +#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: + * + * 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; + * + * + * + * @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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsvolumeeffect.h --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmswrapperexport.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 + +#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_ diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtestmains60.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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.cpp --- /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 +#include +#include "qtestmains60.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +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"); + qRegisterMetaType ("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 (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 (m_Vol)->GetMaxLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + status = static_cast (m_Vol)->SetLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (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 (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 (m_Gain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + static_cast (m_Gain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast (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 (m_GlobalVol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxvol(0); + status = static_cast (m_GlobalVol)->GetMaxLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + status = static_cast (m_GlobalVol)->SetLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (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 (m_GlobalGain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxgain(0); + static_cast (m_GlobalGain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + static_cast (m_GlobalGain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast (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::iterator iteroutputs = m_Availableoutputs.begin(); + for (; iteroutputs < m_Availableoutputs.end(); iteroutputs++) { + DisplayDevice(*iteroutputs); + } + } +} + +void QTmsCsTest::DisplayDevice(QTMSAudioOutput device) +{ + QTest::addColumn("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("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 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 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 (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 (stream).GetStreamId(); + qDebug("StreamID %d", streamId); + gint state; + state = const_cast (stream).GetState(); + QVERIFY(state == event.curr_state); + + switch (const_cast (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" + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.pro --- /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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtestmains60.h --- /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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.cpp --- /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 +#include +#include "qtestmains60.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +// 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"); + qRegisterMetaType ("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::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::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 (m_ClientSource), + SIGNAL(FillBuffer(QTMSBuffer&)), this, SLOT(FillBuffer(QTMSBuffer&))); + status = m_Dnlink->AddSource(m_ClientSource); + +#ifdef __TEST_CODE_COVERAGE__ + QTMSSourceType st; + static_cast (m_ClientSource)->GetType(st); + gboolean enqueue(FALSE); + static_cast (m_ClientSource)->GetEnqueueMode(enqueue); + static_cast (m_ClientSource)->SetEnqueueMode(FALSE); + static_cast (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 (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("format"); + +#ifndef __WINSCW__ + QTest::newRow("G711")<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 (m_G711EncFormatIntfc)->SetVADMode(m_Vad); + qDebug("G711 VAD set %d", m_Vad); + break; + case QTMS_FORMAT_G729: + static_cast (m_G729EncFormatIntfc)->SetVADMode(m_Vad); + qDebug("G729 VAD set %d", m_Vad); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCEncFormatIntfc)->SetVADMode(m_Vad); + qDebug("iLBC VAD set %d", m_Vad); + break; + case QTMS_FORMAT_AMR: + //static_cast(iAMRNBEncFormatIntfc)->SetVADMode(m_Vad); + break; + case QTMS_FORMAT_PCM: + // Not supported; just for testing failing condition + //static_cast(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 (m_G711EncFormatIntfc)->GetVADMode(vad); + qDebug("get G711 VAD: %d", vad); + break; + case QTMS_FORMAT_G729: + status = static_cast (m_G729EncFormatIntfc)->GetVADMode(vad); + qDebug("get G729 VAD: %d", vad); + break; + case QTMS_FORMAT_ILBC: + status = static_cast (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 (m_G711DecFormatIntfc)->SetCNG(m_Cng); + qDebug("G711 CNG set %d", m_Cng); + break; + case QTMS_FORMAT_ILBC: + static_cast (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 (m_G711DecFormatIntfc)->GetCNG(cng); + qDebug("G711 CNG: %d", cng); + QVERIFY(status == QTMS_RESULT_SUCCESS); + break; + case QTMS_FORMAT_ILBC: + status = static_cast (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 (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 (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::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 (m_G711EncFormatIntfc)->SetBitRate(bitrate); + qDebug("Set BR %d", bitrate); + break; + case QTMS_FORMAT_G729: + static_cast (m_G729EncFormatIntfc)->SetBitRate(bitrate); + qDebug("Set BR %d", bitrate); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCEncFormatIntfc)->SetBitRate(bitrate); + qDebug("Set BR %d", bitrate); + break; + case QTMS_FORMAT_AMR: + static_cast (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::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 (m_G711EncFormatIntfc)->GetBitRate(bitrate); + qDebug("G711 bitrate: %d", bitrate); + break; + case QTMS_FORMAT_G729: + static_cast (m_G729EncFormatIntfc)->GetBitRate(bitrate); + qDebug("G729 bitrate: %d", bitrate); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCEncFormatIntfc)->GetBitRate(bitrate); + qDebug("iLBC bitrate: %d", bitrate); + break; + case QTMS_FORMAT_AMR: + static_cast (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (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 (m_Vol)->GetMaxLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + status = static_cast (m_Vol)->SetLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (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 (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 (m_Gain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + static_cast (m_Gain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast (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 (m_GlobalVol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxvol(0); + status = static_cast (m_GlobalVol)->GetMaxLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global max vol %d", maxvol); + + status = static_cast (m_GlobalVol)->SetLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (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 (m_GlobalGain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxgain(0); + static_cast (m_GlobalGain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global max gain %d", maxgain); + + static_cast (m_GlobalGain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast (m_GlobalGain)->GetLevel(gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global gain %d", gain); + + QCOMPARE(gain,maxgain); + + } +} + +void QTmsVoipTest::CreateRouting_data() +{ + + QTest::addColumn("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 (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 (buffer); + if (m_ClientSink) { + static_cast (m_ClientSink)->BufferProcessed(recBuf); + } +#endif +} + +void QTmsVoipTest::EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event) +{ + QTMSEffectType effecttype; + const_cast (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 (stream).GetStreamId(); + qDebug("StreamID %d", streamId); + gint state; + state = const_cast (stream).GetState(); + QVERIFY(state == event.curr_state); + + switch (const_cast (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" + diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.pro --- /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 diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/tsrc.pro --- /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 + +TEMPLATE = subdirs + +BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " + + +SUBDIRS = qtmscstest \ + qtmsvoiptest + + +SYMBIAN_PLATFORMS = DEFAULT diff -r e42293e811d8 -r 6c1dfe4da5dd mmappfw_plat/videoplaylist_utility_api/tsrc/videoplaylistutilitytest/group/videoplaylistutilitytest.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/collectionframework/collectionengine/group/mpxcollectionengine.mmp --- 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/collectionframework/collectionengine/src/mpxcollectioncache.cpp --- 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 #include #include "mpxcollectioncache.h" +#include // CONSTANTS const TInt KMPXRootNodeId = 0; @@ -589,6 +590,7 @@ void CMPXCollectionCacheNode::HandleChangeL( TMPXItemId aChangeItemId, RPointerArray& 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 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/collectionframework/collectionengine/src/mpxcollectionclientcontext.cpp --- 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); + } } } diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/collectionframework/collectionengine/src/mpxcollectionengine.cpp --- 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 #include #include +#include #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; iNotifyL( 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& aArray ) { + CleanupResetAndDestroyPushL(aArray); RArray uids; CleanupClosePushL(uids); iPluginHandler->GetPluginUids(uids); @@ -340,6 +351,7 @@ CleanupStack::Pop(type); } CleanupStack::PopAndDestroy(&uids); + CleanupStack::Pop(&aArray); } // ---------------------------------------------------------------------------- diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/collectionframework/collectionserver/group/mpxcollectionserver.mmp --- 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/collectionframework/collectionutility/group/mpxcollectionutility.mmp --- 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/collectionframework/collectionutility/src/mpxcollectionopenutility.cpp --- 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(aIndex-curOffset) < iFetchInfo.iSize || - iFirstOpen || iMode == KMcModePlaylist || complete ) ) + if( iObs ) { iFirstOpen = EFalse; MPX_DEBUG1("CMPXCollectionOpenUtility::DoHandleFetchItemsL callback" ); diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp --- 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 attrs; CleanupClosePushL( attrs ); TArray 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 ); } diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/commonframework/common/group/mpxcommon.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/commonframework/common/src/mpxcollectionpath.cpp --- 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& aIds) const { + CleanupClosePushL(aIds); aIds.Reset(); TInt idCount(iIds.Count()); TInt selCount(iSelection.Count()); @@ -617,6 +618,7 @@ aIds.AppendL(iIds[idIndex]); } } + CleanupStack::Pop(); } // ----------------------------------------------------------------------------- diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/commonframework/common/src/mpxdataarray.cpp --- 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; } diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/commonframework/common/src/mpxdrmmediawmaagent.cpp --- 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(); diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/commonframework/common/src/mpxheapmanager.cpp --- 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; diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/commonframework/common/src/mpxpluginhandlerbase.cpp --- 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 && indexDisplayName(); diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/commonframework/common/src/mpxplugininfo.cpp --- 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& 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(); } // --------------------------------------------------------------------------- diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/commonframework/common/src/mpxuser.cpp --- 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& aSrc, RArray& 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& aArray, RReadStream& aStream) { + CleanupClosePushL(aArray); TInt n=aStream.ReadInt32L(); for (TInt i=0;i) + ??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 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 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) + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/eabi/mpxviewframeworkqt.def --- /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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/inc/mpxplugindata.h --- /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 +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/inc/mpxplugindataparser.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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/inc/mpxviewpluginresolver.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 + +#include + +#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& ); + virtual ~MpxViewPluginResolver(); + MpxViewPlugin* resolvePlugin(); +private: + MpxViewPluginResolverPrivate* impl; + }; + +#endif // __MPXVIEWPLUGINRESOLVER_H__ + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/inc/mpxviewpluginresolver_p.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 +#include +#include + +class MpxViewPlugin; +class MpxPluginViewInterface; + +class MpxViewPluginResolverPrivate +{ +public: + // new functions + MpxViewPluginResolverPrivate( const QList& ); + ~MpxViewPluginResolverPrivate(); + MpxViewPlugin* resolvePlugin(); +private: + MpxPluginViewInterface* resolveAndLoadPlugins( const QList< XQPluginInfo >& impls ); +private: + const QList requestedPlugins; +}; +#endif // __MPXVIEWPLUGINRESOLVERPRIVATE_H__ + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/mpxviewframeworkqt.pro --- /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 + + + +} diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/rom/mpxviewframeworkqt.iby --- /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 +#include + +file=ABI_DIR\BUILD_DIR\mpxviewframeworkqt.dll SHARED_LIB_DIR\mpxviewframeworkqt.dll + + +#endif diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/rom/rom.pri --- /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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/src/mpxplugindata.cpp --- /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& 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 ); +} diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/src/mpxplugindataparser.cpp --- /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 + + + +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( "= 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; +} + + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/src/mpxviewframework.cpp --- /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 +#include + +#include +#include +#include + +MpxViewFramework::MpxViewFramework(QWidget *parent, Hb::WindowFlags windowFlags) +: +HbMainWindow(parent, windowFlags) +{ +} + +MpxViewFramework::~MpxViewFramework() +{ +} + +MpxViewPlugin *MpxViewFramework::resolvePlugin(const QList& requestedPlugins) +{ + MpxViewPlugin *viewPlugin = 0; + MpxViewPluginResolver *viewResolver = new MpxViewPluginResolver(requestedPlugins); + if (viewResolver!=0) { + viewPlugin = viewResolver->resolvePlugin(); + delete viewResolver; + } + return viewPlugin; +} + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/src/mpxviewpluginresolver.cpp --- /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& requestedPlugins ) +: +impl ( new MpxViewPluginResolverPrivate( requestedPlugins ) ) +{} + +// ----------------------------------------------------------------------------- +// ~MpxViewPluginResolver() +// ----------------------------------------------------------------------------- +// +MpxViewPluginResolver::~MpxViewPluginResolver() +{ + if( impl ) { + delete impl; + } +} +// ----------------------------------------------------------------------------- +// resolvePlugin() +// ----------------------------------------------------------------------------- +// +MpxViewPlugin* MpxViewPluginResolver::resolvePlugin() +{ + return impl ? impl->resolvePlugin() : 0; +} diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/mpxviewframeworkqt/src/mpxviewpluginresolver_p.cpp --- /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 +#include + +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& 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 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 uids( requestedPlugins ); + QList::iterator currentUidIter, + optimalUidIter; + QHash::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(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; +} diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/playbackframework/playbackengine/group/mpxplaybackengine.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/playbackframework/playbackengine/src/mpxautoresumehandler.cpp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/playbackframework/playbackengine/src/mpxplaybackmediahelper.cpp --- 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( 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( - 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( KMPXMessageGeneralId, - KMPXMessagePbMediaChanged ); - msg->SetCObjectValueL( KMPXMessagePbMedia, - const_cast( &aMedia )); - CMPXClientList* clientList( - static_cast( 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( iTaskQueue->Callback() )); - callback->HandleMedia( aMedia, aError ); - } + // Broadcast + CMPXMessage* msg( CMPXMessage::NewL() ); + CleanupStack::PushL( msg ); + msg->SetTObjectValueL( KMPXMessageGeneralId, + KMPXMessagePbMediaChanged ); + msg->SetCObjectValueL( KMPXMessagePbMedia, + const_cast( &aMedia )); + CMPXClientList* clientList( + static_cast( 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( iTaskQueue->Callback() )); + callback->HandleMedia( aMedia, aError ); + } + MPX_DEBUG1("CMPXPlaybackMediaHelper::HandleCollectionMediaL complete task"); iTaskQueue->CompleteTask(); } diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/playbackframework/playbackserver/group/mpxplaybackserver.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/playbackframework/playbackutility/group/mpxplaybackutility.mmp --- 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/viewframework/baseviewplugins/group/mpxviewplugin.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/viewframework/viewutility/group/mpxviewutility.mmp --- 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 diff -r e42293e811d8 -r 6c1dfe4da5dd mpx/viewframework/viewutility/src/mpxviewplugininfo.cpp --- 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& aArray ) { + CleanupClosePushL(aArray); aArray.Reset(); TInt nextPos( 0 ); @@ -205,6 +206,7 @@ aArray.AppendL( TUid::Uid( pluginUid ) ); } } while ( KErrNotFound != nextPos ); + CleanupStack::Pop(); } // --------------------------------------------------------------------------- diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/SIS/QTMS_udeb_STUB_SIS.bat --- /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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/SIS/qtms.pkg --- /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... +"/epoc32/release/armv5/udeb/qtmsapi.dll"-"!:/sys/bin/qtmsapi.dll" + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/bwins/qtmsu.def --- /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 > &) + ?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 > &) + ?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 > &) + ?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 &) + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/data/create_qtms_stub_sis.bat --- /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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/data/qtmsapi_stub.pkg --- /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" + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/data/qtmsapi_stub.sis Binary file qtms/data/qtmsapi_stub.sis has changed diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/eabi/qtmsu.def --- /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 + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsamrimpl.h --- /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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsbufferimpl.h --- /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 + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmscallimpl.h --- /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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsclientsinkimpl.h --- /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 +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsclientsourceimpl.h --- /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 +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsdtmfimpl.h --- /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 +#include +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsfactoryimpl.h --- /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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsg711impl.h --- /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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsg729impl.h --- /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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsgaineffectimpl.h --- /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 +#include +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsglobalgaineffectimpl.h --- /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 +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsglobalroutingimpl.h --- /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 +#include +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsglobalvoleffectimpl.h --- /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 +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsilbcimpl.h --- /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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsinbandtoneimpl.h --- /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 +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsmembuffer.h --- /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 + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsmicsourceimpl.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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsmodemsinkimpl.h --- /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 +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsmodemsourceimpl.h --- /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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmspcmimpl.h --- /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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsringtoneimpl.h --- /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 +#include +#include +#include + +// 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 + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmssinkimpl.h --- /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 + +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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmssourceimpl.h --- /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 + +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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsspeakersinkimpl.h --- /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 +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsstreamimpl.h --- /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 +#include +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmsvolumeeffectimpl.h --- /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 +#include +#include +#include + +// 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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/qtmswrapperexport.h --- /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 + +#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_ diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/inc/tmsutility.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 +#include +#include +#ifdef _DEBUG +#include +#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__ + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/qtmsapi.pro --- /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 " \ + "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 + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/rom/qtms.iby --- /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 + +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsamr.cpp --- /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 + +using namespace QTMS; + +QTMSAMRFormat::QTMSAMRFormat() +{ +} + +QTMSAMRFormat::~QTMSAMRFormat() +{ +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsamrimpl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsbufferimpl.cpp --- /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 +#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 (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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmscall.cpp --- /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 +#include +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmscallimpl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsclientsink.cpp --- /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 +#include +#include + +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 (buffer)); + status = static_cast (iSink)->BufferProcessed(buf); + } + return status; +} + +gint QTMSClientSink::GetType(QTMSSinkType& sinktype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSink) { + status = static_cast (iSink)->GetType(sinktype); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsclientsinkimpl.cpp --- /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 +#include +#include +#include +#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 (iSink)->AddObserver(obsrvr, user_data); + } + return ret; +} + +gint QTMSClientSinkImpl::RemoveObserver(TMS::TMSClientSinkObserver& obsrvr) +{ + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSink) { + ret = static_cast (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 (buffer)); + QTMSBuffer* qtbuf(reinterpret_cast (buf)); + emit QTMSClientSink::ProcessBuffer(qtbuf); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsclientsource.cpp --- /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 +#include +#include + +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 (iSource)->SetEnqueueMode(enable); + } + return status; +} + +gint QTMSClientSource::GetEnqueueMode(gboolean& enable) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSource) { + status = static_cast (iSource)->GetEnqueueMode(enable); + } + return status; +} + +gint QTMSClientSource::Flush() +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSource) { + status = static_cast (iSource)->Flush(); + } + return status; +} + +gint QTMSClientSource::GetType(QTMSSourceType& sourcetype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSource) { + status = static_cast (iSource)->GetType(sourcetype); + } + return status; +} + +gint QTMSClientSource::BufferFilled(QTMSBuffer& buffer) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSource) { + TMSBuffer& buf(reinterpret_cast (buffer)); + status = static_cast (iSource)->BufferFilled(buf); + } + return status; +} + +// Push mode +gint QTMSClientSource::ProcessBuffer(QTMSBuffer* buffer) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSource) { + TMSBuffer* buf(reinterpret_cast (buffer)); + status = static_cast (iSource)->ProcessBuffer(buf); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsclientsourceimpl.cpp --- /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 +#include +#include +#include +#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 (iSource)->AddObserver(obsrvr, user_data); + } + return ret; +} + +gint QTMSClientSourceImpl::RemoveObserver(TMS::TMSClientSourceObserver& obsrvr) +{ + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSource) { + ret = static_cast (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 (buffer)); +} + +void QTMSClientSourceImpl::BufferProcessed(const TMS::TMSBuffer* buffer, gint reason) +{ + TMSBuffer* buf(const_cast (buffer)); + emit QTMSClientSource::BufferProcessed(reinterpret_cast (buf), reason); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsdtmf.cpp --- /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 +#include +#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; +} diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsdtmfimpl.cpp --- /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 +#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 (*this), qevent); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmseffect.cpp --- /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) +{ + +} diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsfactory.cpp --- /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 +#include +#include +#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; +} diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsfactoryimpl.cpp --- /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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#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::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 (qtmsfmt)); + qtmsfmt = NULL; + break; + case QTMS_FORMAT_AMR: + delete (static_cast (qtmsfmt)); + qtmsfmt = NULL; + break; + case QTMS_FORMAT_G711: + delete (static_cast (qtmsfmt)); + qtmsfmt = NULL; + break; + case QTMS_FORMAT_G729: + delete (static_cast (qtmsfmt)); + qtmsfmt = NULL; + break; + case QTMS_FORMAT_ILBC: + delete (static_cast (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 (qtmseffect)); + qtmseffect = NULL; + break; + case QTMS_EFFECT_GAIN: + delete (static_cast (qtmseffect)); + qtmseffect = NULL; + break; + case QTMS_EFFECT_GLOBAL_VOL: + delete (static_cast (qtmseffect)); + qtmseffect = NULL; + break; + case QTMS_EFFECT_GLOBAL_GAIN: + delete (static_cast (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 (qtmssrc)); + qtmssrc = NULL; + break; + case QTMS_SOURCE_MODEM: + { + delete (static_cast (qtmssrc)); + qtmssrc = NULL; + } + break; + case TMS_SOURCE_MIC: + { + delete (static_cast (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 (qtmssink)); + qtmssink = NULL; + } + break; + case QTMS_SINK_MODEM: + { + delete (static_cast (qtmssink)); + qtmssink = NULL; + } + break; + case QTMS_SINK_SPEAKER: + { + delete (static_cast (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 (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 (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 (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 (inbandtone)); + inbandtone = NULL; + TRACE_PRN_FN_EXT; + return ret; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsformat.cpp --- /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 +#include + +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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsg711.cpp --- /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 +#include + +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 (iFormat)->SetMode(aMode); + } + return status; +} + +gint QTMSG711Format::GetMode(QTMSG711CodecMode& aMode) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->GetMode(aMode); + } + return status; +} + +gint QTMSG711Format::SetCNG(const gboolean aCng) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->SetCNG(aCng); + } + return status; +} + +gint QTMSG711Format::GetCNG(gboolean& aCng) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->GetCNG(aCng); + } + return status; +} + +gint QTMSG711Format::SetPlc(const gboolean aPlc) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->SetPlc(aPlc); + } + return status; +} + +gint QTMSG711Format::GetPlc(gboolean& aPlc) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->GetPlc(aPlc); + } + return status; +} + +gint QTMSG711Format::SetVADMode(const gboolean aVad) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->SetVADMode(aVad); + } + return status; +} + +gint QTMSG711Format::GetVADMode(gboolean& aVad) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->GetVADMode(aVad); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsg711impl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsg729.cpp --- /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 +#include +#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 (iFormat)->SetVADMode(aVad); + } + return status; +} + +gint QTMSG729Format::GetVADMode(gboolean& aVad) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->GetVADMode(aVad); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsg729impl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsgaineffect.cpp --- /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 +#include +#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 (iEffect)->GetLevel(level); + } + return status; +} + +gint QTMSGainEffect::SetLevel(const guint level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->SetLevel(level); + } + return status; +} + +gint QTMSGainEffect::GetMaxLevel(guint& level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetMaxLevel(level); + } + return status; +} + +gint QTMSGainEffect::GetType(QTMSSourceType& sourcetype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetType(sourcetype); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsgaineffectimpl.cpp --- /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 +#include +#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 (iEffect)->AddObserver(obsrvr, user_data); + } + return ret; +} + +gint QTMSGainEffectImpl::RemoveObserver(TMS::TMSEffectObserver& obsrvr) +{ + gint ret(QTMS_RESULT_SUCCESS); + + if (iEffect) { + ret = static_cast (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 (*this), qevent); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsglobalgaineffect.cpp --- /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 +#include +#include "qtmsglobalgaineffectimpl.h" +#include "qtmswrapperexport.h" + +using namespace QTMS; +using namespace TMS; + +QTMSGlobalGainEffect::QTMSGlobalGainEffect() : + iEffect(NULL) +{ +} + +QTMSGlobalGainEffect::~QTMSGlobalGainEffect() +{ + delete (static_cast (iEffect)); +} + +gint QTMSGlobalGainEffect::GetLevel(guint& level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetLevel(level); + } + return status; +} + +gint QTMSGlobalGainEffect::SetLevel(const guint level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->SetLevel(level); + } + return status; +} + +gint QTMSGlobalGainEffect::GetMaxLevel(guint& level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetMaxLevel(level); + } + return status; +} + +gint QTMSGlobalGainEffect::GetType(QTMSSourceType& sourcetype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetType(sourcetype); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsglobalgaineffectimpl.cpp --- /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 +#include +#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 (iEffect)->AddObserver(obsrvr, user_data); + } + return ret; +} + +gint QTMSGlobalGainEffectImpl::RemoveObserver(TMS::TMSEffectObserver& obsrvr) +{ + gint ret(QTMS_RESULT_SUCCESS); + + if (iEffect) { + ret = static_cast (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 (*this), qevent); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsglobalrouting.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsglobalroutingimpl.cpp --- /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 +#include +#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 (*this), + qevent, qoutput); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsglobalvoleffect.cpp --- /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 +#include +#include "qtmsglobalvoleffectimpl.h" +#include "qtmswrapperexport.h" + +using namespace QTMS; +using namespace TMS; + +QTMSGlobalVolEffect::QTMSGlobalVolEffect() : + iEffect(NULL) +{ +} + +QTMSGlobalVolEffect::~QTMSGlobalVolEffect() +{ + delete (static_cast (iEffect)); +} + +gint QTMSGlobalVolEffect::GetLevel(guint& level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetLevel(level); + } + return status; +} + +gint QTMSGlobalVolEffect::SetLevel(const guint level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->SetLevel(level); + } + return status; +} + +gint QTMSGlobalVolEffect::GetMaxLevel(guint& level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetMaxLevel(level); + } + return status; +} + +gint QTMSGlobalVolEffect::GetType(QTMSSourceType& sourcetype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetType(sourcetype); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsglobalvoleffectimpl.cpp --- /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 +#include +#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 (iEffect)->AddObserver(obsrvr, user_data); + } + return ret; +} + +gint QTMSGlobalVolEffectImpl::RemoveObserver(TMS::TMSEffectObserver& obsrvr) +{ + gint ret(QTMS_RESULT_SUCCESS); + + if (iEffect) { + ret = static_cast (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 (*this), qevent); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsilbc.cpp --- /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 +#include +#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 (iFormat)->SetMode(aMode); + } + return status; +} + +gint QTMSILBCFormat::GetMode(QTMSG711CodecMode& aMode) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->GetMode(aMode); + } + return status; +} + +gint QTMSILBCFormat::SetCNG(const gboolean aCng) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->SetCNG(aCng); + } + return status; +} + +gint QTMSILBCFormat::GetCNG(gboolean& aCng) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->GetCNG(aCng); + } + return status; +} + +gint QTMSILBCFormat::SetVADMode(const gboolean aVad) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->SetVADMode(aVad); + } + return status; +} + +gint QTMSILBCFormat::GetVADMode(gboolean& aVad) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iFormat) { + status = static_cast (iFormat)->GetVADMode(aVad); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsilbcimpl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsinbandtone.cpp --- /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 +#include +#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; +} + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsinbandtoneimpl.cpp --- /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 +#include +#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 (*this), qevent); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsmembuffer.cpp --- /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 +#include +#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; +} + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsmicsource.cpp --- /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 +#include +#include "qtmsmicsourceimpl.h" +#include "qtmswrapperexport.h" + +using namespace QTMS; +using namespace TMS; + +QTMSMicSource::QTMSMicSource() : + iSource(NULL) +{ +} + +QTMSMicSource::~QTMSMicSource() +{ + delete (static_cast (iSource)); +} + +gint QTMSMicSource::GetType(QTMSSourceType& sourcetype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSource) { + //status = iSource->GetType(sourcetype); + status = static_cast (iSource)->GetType(sourcetype); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsmicsourceimpl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsmodemsink.cpp --- /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 +#include +#include "qtmsmodemsinkimpl.h" +#include "qtmswrapperexport.h" + +using namespace QTMS; +using namespace TMS; + +QTMSModemSink::QTMSModemSink() : + iSink(NULL) +{ +} + +QTMSModemSink::~QTMSModemSink() +{ + delete (static_cast (iSink)); +} + +gint QTMSModemSink::GetType(QTMSSinkType& sinktype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSink) { + //status = iSink->GetType(sinktype); + status = static_cast (iSink)->GetType(sinktype); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsmodemsinkimpl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsmodemsource.cpp --- /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 +#include + +using namespace QTMS; +using namespace TMS; + +QTMSModemSource::QTMSModemSource() : + iSource(NULL) +{ +} + +QTMSModemSource::~QTMSModemSource() +{ + delete (static_cast (iSource)); +} + +gint QTMSModemSource::GetType(QTMSSourceType& sourcetype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSource) { + //status = iSource->GetType(sourcetype); + status = static_cast (iSource)->GetType(sourcetype); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsmodemsourceimpl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmspcm.cpp --- /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 + +using namespace QTMS; + +QTMSPCMFormat::QTMSPCMFormat() +{ +} + +QTMSPCMFormat::~QTMSPCMFormat() +{ +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmspcmimpl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsringtone.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsringtoneimpl.cpp --- /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 +#include +#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 (*this), qevent); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsspeakersink.cpp --- /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 +#include + +using namespace QTMS; +using namespace TMS; + +QTMSSpeakerSink::QTMSSpeakerSink() : + iSink(NULL) +{ +} + +QTMSSpeakerSink::~QTMSSpeakerSink() +{ + delete (static_cast (iSink)); +} + +gint QTMSSpeakerSink::GetType(QTMSSinkType& sinktype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iSink) { + //status = iSink->GetType(sinktype); //should be ok + status = static_cast (iSink)->GetType(sinktype); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsspeakersinkimpl.cpp --- /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 +#include +#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 diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsstream.cpp --- /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 +#include +#include +#include +#include +#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 (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 (qsource)->GetSource(tmssource); + break; + case QTMS_SOURCE_MODEM: + status = static_cast (qsource)->GetSource(tmssource); + break; + case QTMS_SOURCE_MIC: + status = static_cast (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 (qsource)->GetSource(tmssource); + break; + case QTMS_SOURCE_MODEM: + status = static_cast (qsource)->GetSource(tmssource); + break; + case QTMS_SOURCE_MIC: + status = static_cast (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 (qsink)->GetSink(tmssink); + break; + case QTMS_SINK_MODEM: + status = static_cast (qsink)->GetSink(tmssink); + break; + case QTMS_SINK_SPEAKER: + status = static_cast (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 (qsink)->GetSink(tmssink); + break; + case QTMS_SINK_MODEM: + status = static_cast (qsink)->GetSink(tmssink); + break; + case QTMS_SINK_SPEAKER: + status = static_cast (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 (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_AMR: + status = static_cast (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_G711: + status = static_cast (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_G729: + status = static_cast (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_ILBC: + status = static_cast (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 (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_AMR: + status = static_cast (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_G711: + status = static_cast (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_G729: + status = static_cast (qformat)->GetFormat(tmsformat); + break; + case QTMS_FORMAT_ILBC: + status = static_cast (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 (qeffect)->GetEffect(tmseffect); + break; + case QTMS_EFFECT_GAIN: + status = static_cast (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 (qeffect)->GetEffect(tmseffect); + break; + case QTMS_EFFECT_GAIN: + status = static_cast (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(); + } +} + diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsstreamimpl.cpp --- /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 +#include +#include +#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 (*this), qevent); +} diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsvolumeeffect.cpp --- /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 +#include +#include "qtmsvolumeeffectimpl.h" +#include "qtmswrapperexport.h" + +using namespace QTMS; +using namespace TMS; + +QTMSVolumeEffect::QTMSVolumeEffect() : + iEffect(NULL) +{ +} + +QTMSVolumeEffect::~QTMSVolumeEffect() +{ + delete (static_cast (iEffect)); +} + +gint QTMSVolumeEffect::GetLevel(guint& level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetLevel(level); + } + return status; +} + +gint QTMSVolumeEffect::SetLevel(const guint level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->SetLevel(level); + } + return status; +} + +gint QTMSVolumeEffect::GetMaxLevel(guint& level) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetMaxLevel(level); + } + return status; +} + +gint QTMSVolumeEffect::GetType(QTMSSourceType& sourcetype) +{ + gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); + if (iEffect) { + status = static_cast (iEffect)->GetType(sourcetype); + } + return status; +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd qtms/src/qtmsvolumeeffectimpl.cpp --- /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 +#include +#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 (iEffect)->AddObserver(obsrvr, user_data); + } + return ret; +} + +gint QTMSVolumeEffectImpl::RemoveObserver(TMS::TMSEffectObserver& obsrvr) +{ + gint ret(QTMS_RESULT_SUCCESS); + + if (iEffect) { + ret = static_cast (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 (*this), qevent); +} + +// End of file diff -r e42293e811d8 -r 6c1dfe4da5dd sysdef_1_4_0.dtd --- 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r e42293e811d8 -r 6c1dfe4da5dd sysdef_1_5_1.dtd --- /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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +