diff -r 786b94c6f0a4 -r 5b153be919d4 bluetooth/gavdp/test/tavsrc.h --- a/bluetooth/gavdp/test/tavsrc.h Thu Aug 19 11:01:00 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,305 +0,0 @@ -// Copyright (c) 2007-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 TAVSRC_H -#define TAVSRC_H - -//only use define CHANNEL_BINDING_DEBUG_CHECK when checking channel binding -//#define CHANNEL_BINDING_DEBUG_CHECK - -#define __PRINT iActiveConsole->Console().Printf -#define __LOG iLogConsole->Console().Printf /*RDebug::Print*/ - -#include "tavsrcConsole.h" -#include "tavsrcStreamerUser.h" -#include "tavsrcOperations.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include -#include - -#include -#include - -enum TRemConInterfaces - { - ECoreApiTarget = 1 << 0, - ECoreApiController = 1 << 1, - EGroupNavigation = 1 << 2, - EMediaInformation = 1 << 3, - EBatteryStatus = 1 << 4, - EAbsoluteVolumeTarget = 1 << 5, - EAbsoluteVolumeController = 1 << 6, - EPlayerInformation = 1 << 7, - ENowPlaying = 1 << 8, - EMediaBrowse = 1 << 9, - EDatabaseAware = 1 << 10, - ESeparateThreadForBrowse = 1 << 11, - EVendorTrackInfoTarget = 1 << 12, - EVendorAbsoluteVolumeTarget = 1 << 13, - }; - - -typedef TFixedArray RSocketArray; - -class CActivePacketDropIoctl; -class CActiveSockReader; -class CActiveSockWriter; -class CRemMetadataTransferTarget; -class CAVTestApp; -class CActiveStreamer; -class CTavsrcController; -class CRemConInterfaceSelector; -class CRemConCoreApiTarget; -class CRemConTrackInfoTarget; -class CRemConAbsVolTarget; -class CTavsrcMtUpdater; -class CTavsrcAbsoluteVolume; -class CAVTestApp : public CBase, public MActiveConsoleNotify, - public MGavdpUser, public MBluetoothPhysicalLinksNotifier, - public MRemConCoreApiTargetObserver, - public MActiveStreamerUser, - public MRemConMediaInformationTargetObserver, - public MRemConGroupNavigationTargetObserver, - public MRemConBatteryTargetObserver, - public MRemConTrackInfoTargetObserver, - public MRemConAbsVolTargetObserver - { -private: - enum TTavsrcServiceCategory - { - ETavsrcServiceCategoryNull =0x00, - ETavsrcServiceCategoryMediaTransport =0x01, - ETavsrcServiceCategoryReporting =0x02, - ETavsrcServiceCategoryRecovery =0x04, - ETavsrcServiceCategoryContentProtection =0x08, - ETavsrcServiceCategoryHeaderCompression =0x10, - ETavsrcServiceCategoryMultiplexing =0x20, - ETavsrcServiceCategoryMediaCodec =0x40, - }; -public: - static CAVTestApp* NewL(); - void EchoStorm(); - - void StartL(); - void Stop(); - ~CAVTestApp(); - void TestMenu(); - - void KeyPressed(TChar aKey); - - TInt StartSrc(); - void StopSrc(); - void DisconnectSrc(); - - // echo test - virtual void HandleCreateConnectionCompleteL(TInt aErr); - virtual void HandleDisconnectCompleteL(TInt aErr); - virtual void HandleDisconnectAllCompleteL(TInt aErr); - -private: - void PreventLowPowerModes(); - void AllowLowPowerModes(); - void CreateBearers(); - void CloseBearers(); - void ConfigureSEPL(); - void Abort(); - void DiscoverSEPs(); - void StartStreams(); - void SuspendStreams(); - void GetCapabilities(); - void SendSecurityControl(); - TSBCCodecCapabilities InteractiveSBCMediaCodecConfig(TSBCCodecCapabilities& caps); - - void PrintCommandOption(TChar aOperation, TPtrC aDesc); - - void CreateStreamerL(RSocketArray aSockets); - void CreateRemConInterfacesL(); - - void Connect(); - TInt Listen(); - TInt RegisterSEP(); - - CAVTestApp(); - void ConstructL(); - - //return ETrue if current SEP is sink, EFalse otherwise - TBool CurrentSEIDIsSink(); - - void DisplayHelp(); - void ParseCommandLineL(); - -private: - // GAVDP callbacks - virtual void GAVDP_SEPDiscovered(const TAvdtpSEPInfo& aSEP); - virtual void GAVDP_SEPDiscoveryComplete(); - virtual void GAVDP_SEPCapability(TAvdtpServiceCapability* aCapability); - virtual void GAVDP_SEPCapabilityComplete(); - virtual void GAVDP_AbortStreamConfirm(); - virtual void GAVDP_StartStreamsConfirm(); - virtual void GAVDP_SuspendStreamsConfirm(); - virtual void GAVDP_SecurityControlConfirm(const TDesC8& aResponseData); - virtual void GAVDP_ConfigurationConfirm(); // configuration complete and SEP selected *AND* reconfigure confirm - virtual void GAVDP_Error(TInt aError, const TDesC8& aErrorData); - virtual void GAVDP_ConnectConfirm(const TBTDevAddr& aAddr); - - virtual void GAVDP_ConfigurationStartIndication(TSEID aLocalSEID, TSEID aRemoteSEID); - virtual TInt GAVDP_ConfigurationIndication(TAvdtpServiceCapability* aCapability); - virtual TInt GAVDP_ConfigurationEndIndication(); - - virtual TInt GAVDP_StartIndication(TSEID aSEID); - virtual TInt GAVDP_SuspendIndication(TSEID aSEID); - virtual TInt GAVDP_SecurityControlIndication(TSEID aSEID, TDes8& aSecurityData); - virtual void GAVDP_AbortIndication(TSEID aSEID); - virtual void GAVDP_ReleaseIndication(TSEID aSEID); - virtual void GAVDP_BearerReady(RSocket aNewSocket, const TAvdtpSockAddr& aAddr); - - void PrettyPrint(TAvdtpServiceCapability& aCapability); - -private: - // RemConCoreApiTarget callbacks - virtual void MrccatoCommand(TRemConCoreApiOperationId aOperationId, TRemConCoreApiButtonAction aButtonAct); - virtual void MrccatoPlay(TRemConCoreApiPlaybackSpeed aSpeed, TRemConCoreApiButtonAction aButtonAct); - -private: - // from MActiveStreamerUser - virtual void MediaCodecConfigurationRequired(TSBCCodecCapabilities& aConfig); - - virtual TInt MrcmtcGetElementAttributes(TUint64 aElement, TUint32 aAttribute, HBufC8*& aOutValueOwnershipTransferred); - - // from MRemConGroupNavigationTargetObserver - virtual void MrcgntoNextGroup(TRemConCoreApiButtonAction aButtonAct); - virtual void MrcgntoPreviousGroup(TRemConCoreApiButtonAction aButtonAct); - virtual void MrcbstoBatteryStatus(TControllerBatteryStatus& aBatteryStatus); - - // from MRemConMediaInformationTargetObserver - virtual void MrcmitoGetCurrentlyPlayingMetadata( TMediaAttributeIter& aAttributeIter ); - - virtual void MrcncRegisterPlaybackStatusChangedNotification(); - virtual void MrcncRegisterTrackChangedNotification(); - virtual void MrcncRegisterTrackReachedEndNotification(); - virtual void MrcncRegisterTrackReachedStartNotification(); - virtual void MrcncRegisterPositionChangedNotification(TUint32 aInterval); - virtual void MrcncRegisterBatteryStatusChangedNotification(); - virtual void MrcncRegisterSystemStatusChangedNotification(); - virtual void MrcncRegisterPlayerApplicationStatusChangedNotification(); - - virtual void MrcavtoGetAbsoluteVolume(); - virtual void MrcavtoSetAbsoluteVolume(TUint /*aAbsVol*/, TUint /*aMaxVol*/); - - virtual void MrctitoGetTrackName(); - virtual void MrctitoGetArtist(); - virtual void MrctitoGetTrackDuration(); - -private: - CActiveConsole* iActiveConsole; - CActiveConsole* iLogConsole; - CTavsrcMtUpdater* iMtUpdater; - - RSocketServ iSockServ; - -#ifdef CHANNEL_BINDING_DEBUG_CHECK - CActiveSockReader* iRepReader; - CActiveSockWriter* iRepWriter; - CActiveSockReader* iRecvReader; - CActiveSockWriter* iRecvWriter; -#endif - - CActivePacketDropIoctl* iPacketDropIoctl; - - RGavdp iGavdp; - - TSEID iCurrentSEID; // Current Remote SEID - TSEID iCurrentLocalSEID; // Current Local SEID - - RPointerArray iSEPCapabilities; // only held for one SEP at a time in this test code - - RArray iShortlistedSEIDs; // for finding good remote SEP - TBool iChosenSEP; - - RArray iLocallyRegisteredSEPs; - TBool iRegisteringLocalSEP; - - CActiveStreamer* iStreamer; - RSocketArray iPendingSockets; - - CRemConInterfaceSelector* iRemConInterfaceSelector; - CRemConCoreApiTarget* iRemConTarget; - CRemConGroupNavigationApiTarget* iGroupNavigation; - CRemConMediaInformationTarget* iMediaInformation; - CRemConBatteryApiTarget* iBatteryStatus; - CRemConTrackInfoTarget* iTrackInfo; - CRemConAbsVolTarget* iAbsoluteVolume; - CTavsrcAbsoluteVolume* iTavsrcAbsoluteVolume; - - RSdp iSdp; - RSdpDatabase iSdpDB; - TSdpServRecordHandle iSrcHandle; - TSdpServRecordHandle iSnkHandle; - - TBool iAutoStream; - - enum TGavdpState - { - ENoClientOpen, - EIdle, - ESigConnected, - EOpen, - ESuspended, - ERemoteReconfiguring, - }; - - enum TStreamState - { - EClosed, - EStreaming, - EPaused, - EStopped, - }; - - TGavdpState iGavdpState; - TStreamState iStreamState; - - TSBCCodecCapabilities iReconfigInfo; - TBool iLocalReconfigure; - - TUint iDisplayMode; - TBool iPreloadFile; - - CTavsrcController* iController; - TBTDevAddr iDevAddr; - - CTavsrcOperations* iOperations; - - RBuf iFilename; - RBTPhysicalLinkAdapter iPhy; - - TUint iRemConInterfaces; - }; - -#endif // TAVSRC_H