bluetooth/btstack/inc/codman.h
changeset 0 29b1cd4cb562
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetooth/btstack/inc/codman.h	Fri Jan 15 08:13:17 2010 +0200
@@ -0,0 +1,68 @@
+// Copyright (c) 2005-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 _CodMan_H
+#define _CodMan_H
+
+#include <btdevice.h>
+
+	
+static const TUint16 KBTCodBitsRegdFlag = 0x8000;
+static const TUint KBTMaxCodServices = 11;
+static const TUint KBTCodServiceOffset = 13;	// require left shift for processing   
+static const TUint KBTCodServiceLSB = 1;
+static const TUint KBTCodValidServiceBits = 0x7F9;	// the valid Service class, when shifted down
+static const TUint KBTCodDeviceField = 0x1FFF;	// the lower 13 bits are Device class
+static const TUint32 KBTCodMask = 0x00FFFFFF;	// mask for lower 3 bytes
+
+
+class CLinkMgrProtocol;
+
+/***************************************************************************
+CoD Service Manager.
+Manages the Service bit settings in the composite CoD word.
+***************************************************************************/
+NONSHARABLE_CLASS(CBTCodServiceMan) : public CBase
+	{
+public:
+	static CBTCodServiceMan* NewL();
+	~CBTCodServiceMan();
+	void Initialise();
+	TInt RegisterCodService(TUint16 aCodService);
+	TInt RemoveCodService(TUint16 aCodService);
+	TInt PandSCodHandler(TUint32 aCod);
+	CLinkMgrProtocol* iLinkMgr;
+	
+private:
+	CBTCodServiceMan();
+	void ConstructL();
+	TUint16 ResolveServiceBits();
+	void WriteCoDL();
+
+	TUint32	iPandSCod;			// P&S record of Cod 
+	TFixedArray <TUint,KBTMaxCodServices> iServRefCount;	// Each Service bit has a counter
+	};
+
+_LIT(KBTCodPanic, "BT CoD Service Manager");
+enum TBTCodPanic
+	{
+	EBTCodBadCount,
+	EBTCodServiceBits,
+	EBTCodBadLinkmgr,
+	EBTCodBadDeregister,
+	};
+
+
+#endif //_CodMan_H