bluetooth/btstack/avdtp/avdtputil.h
changeset 0 29b1cd4cb562
--- /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