diff -r 000000000000 -r 29b1cd4cb562 bluetooth/btstack/avdtp/avdtputil.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetooth/btstack/avdtp/avdtputil.h Fri Jan 15 08:13:17 2010 +0200 @@ -0,0 +1,166 @@ +// Copyright (c) 2004-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: +// Utility functions for AVDTP +// +// + +/** + @file + @internalComponent +*/ + + +#ifndef AVDTPUTIL_H +#define AVDTPUTIL_H + +#include + +#define __SYMBIAN_AVDTP_HIDE_MUX + +#ifndef __SYMBIAN_AVDTP_HIDE_MUX +#pragma message("Note: MUX support is untested") +#endif + +using namespace SymbianBluetoothAV; + +_LIT(KAvdtpPanicName, "AVDTP Panic"); + +enum TAvdtpPanic + { + EAVDTPBadSessionCount, + EAVDTPBadSessionSet, + EAVDTPBadDropSession, + EAVDTPBadRemoveStream, + EAvdtpStreamAlreadyExists, + EAVDTPCorruptMessage, + EAVDTPBadSessionDetachFromTransportChannel, + EAVDTPBadSessionAttachToTransportChannel, + EAVDTPBadMuxConfiguration, + EAVDTPBadMuxSetConfigPacket, + EAVDTPBadStreamConstitution, + EAVDTPSAPInitiatedServiceCompleteNoIoctlOutstanding, + EAvdtpInvalidResponseInUse, + EAvdtpBadIoctl, + EAvdtpBadSEPCount, + ERGAVDPSequenceFailure, + EAvdtpSAPIndicationEngineFailure, + EAvdtpBadErrorCase, + EAvdtpBadSignallingUserQueue, + EAvdtpBadLocalSEPUpdate, + EAvdtpBadSessionAttachingToStream, + EAvdtpSearchingForDirectChannel, + EAvdtpIncorrectlyFoundDirectChannel, + EAvdtpProtocolUsingWrongListeningMechanism, + EAvdtpGavdpHasNotCheckedSEID, + EAvdtpConfirmAddressedToWrongRequester, + EAvdtpStackIssuedBadSEID, + EAvdtpIndicationResult_Accepted_NotChecked, + EAvdtpOutboundMessageNewDataCalled, + EAvdtpTransactionLabelUnionMisused, + EAvdtpBadLocalSEPInstructingStreamRelease, + EAvdtpProtocolDyingWithTransportChannelsOnQueue, + EAvdtpProtocolDyingWithSignallingChannelsOnQueue, + EAvdtpProtocolDyingWithStreamsOnQueue, + EAvdtpSignallingChannelShouldExist, + EAvdtpProtocolReceivingControlFromUnexpectedProtocol, + EAvdtpProtocolReceivingControlFromUnexpectedPort, + EAvdtpProtocolReceivingBadlyFormedControlMessage, + EAvdtpProtocolAskedForSecondarySAPWhenNonExist, + EAvdtpConfiguratorsMultiplexingUnexpectedlySet, + EAvdtpSEIDHasWrongDomain, + EAvdtpReconfigurationCapabilitiesNotChecked, + EAvdtpLogicalChannelFactoryJobHasNoLogicalChannels, + EAvdtpLogicalChannelFactoryBadClaimLogicalChannel, + EAvdtpLogicalChannelFactoryBadSequenceNumber, + EAvdtpUnexpectedErrorFromL2CAP, + EAvdtpBadlyFormattedOutboundSignallingMessage, + EAvdtpGotBadDataFromL2CAP, + EAvdtpSignallingChannelDrainingFaulty, + EAvdtpSignallingChannelDyingWithDraftMessagesOnQueue, + EAvdtpSignallingChannelDyingWithTransactionsOnQueue, + EAvdtpSignallingChannelDyingWithMessagesOnQueue, + EAvdtpSignallingChannelGotBadSyncResponseFromSignallingSession, + EAvdtpSignallingChannelLogicalChannelNotReady, + EAvdtpSignallingMessageResponseNoTrailingDataExpected, + EAvdtpSignallingMessageResponseTrailingDataExpected, + EAvdtpSignallingSessionReceivedBadIndication, + EAvdtpSignallingSessionFoundWrongStream, + EAvdtpTransportSessionPacketPoolNotZeroSize, + EAvdtpTransportSessionPacketBalkingNotSet, + EAvdtpBadTransportSessionUpcallFromTransportChannel, + EAvdtpBadSessionAccessingMuxChannel, + EAvdtpTransportSessionBaseNotCheckStream, + EAvdtpStreamStateMachineFailed, + EAvdtpUnknownPostSendAction, + EAvdtpSignallingMessageHandlerLeft, + EAvdtpProtocolToldToRemoveUnknownTransportChannel, + EAvdtpSignallingChannelNotifiedOfWrongJob, + EAvdtpProtocolDeletionWhilstIdling, + EAvdtpInvalidTimeout, + EAvdtpLogicalChannelArrayMismatchesIndexAndSequence, + EAvdtpUnexpectedAwaitLogicalChannelsEvent, + EAvdtpUnexpectedLogicalChannelsAvailableEvent, + EAvdtpUnexpectedWatchdogFiredEvent, + EAvdtpUnexpectedConfiguredEvent, + EAvdtpUnexpectedSetConfigurationEvent, + EAvdtpUnexpectedAddSessionEvent, + EAvdtpUnexpectedDropSession, + EAvdtpUnexpectedStartedEvent, + EAvdtpUnexpectedSuspendedEvent, + EAvdtpPassingSapOwnershipToChannelThatAlreadyHasASap, + EAvdtpJobCompleteForUnknownCloseChannelJob, + EAvdtpTransferSapCalledForMuxChannel, + EAvdtpManagedChannelToldToShutdownWithNoSAP, + EAvdtpStartedListeningAgain, + EAvdtpNotListening, + EAvdtpStillListening, + EAvdtpInconsistentPendingConfigurationState, + EAvdtpInconsistentPendingReconfigurationState, + EAvdtpPassingNullSapOwnershipToChannel, + EAvdtpMuxerStateOutOfBounds, + EAvdtpInvalidLogicalChannel, + EAvdtpNotifyCompleteCancelledRequest, + EAvdtpUnexpectedIndicationsInQueue, + EAvdtpLogicalChannelFactoryDeletionWhileJobPending, + EUnexpectedEncryptionKeyRefreshPrevent, + EAvdtpInvalidReservedValueInOutboundSignallingMessage + }; + +/** +Panics raised by state machine default behaviour are multiplied by this +factor. The less signifigant digits are then available to carry a state +index, allowing more information when fixing defects. + +For example, the Avdtp stream state machine failing may raise +panic 'AVDTP Panic 631000' if it occurs in the 'Idle' state. +*/ +const TInt KAvdtpStatePanicMultiplier = 10000; + +/** +A delimiter to prevent a panic code of 0 creating ambigious panics. +Without this panic code 0 in state 8 and panic code 8 (not in the state +machine) would be identical. +*/ +const TInt KAvdtpStatePanicDelimiter = 1000; // '1' is the delimiter + +/** +If for any reason the current state cannot be found, this value is placed +in the state field of a panic. +*/ +const TInt KAvdtpUnknownState = KAvdtpStatePanicDelimiter - 1; + +void Panic(TAvdtpPanic aPanic); +void Panic(TAvdtpPanic aPanic, TInt aState); + +#endif