--- /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 <bluetoothav.h>
+
+#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