bluetoothmgmt/bluetoothclientlib/inc/bthci.h
changeset 0 29b1cd4cb562
equal deleted inserted replaced
-1:000000000000 0:29b1cd4cb562
       
     1 // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // HCI Direct Access Types
       
    15 // 
       
    16 //
       
    17 
       
    18 #ifndef BTHCI_H
       
    19 #define BTHCI_H
       
    20 
       
    21 #include <btsocketoptionlevels.h>
       
    22 #include <es_sock.h>
       
    23 
       
    24 NONSHARABLE_CLASS(RBluetoothPowerSwitch)
       
    25 /** This is intended for controlling whether the Bluetooth hardware is switched on or not.
       
    26 
       
    27 @publishedPartner
       
    28 @deprecated
       
    29 @see HCI_v2 documentation
       
    30 */
       
    31 	{
       
    32 	public:
       
    33 
       
    34 	IMPORT_C RBluetoothPowerSwitch();
       
    35 	IMPORT_C void RequestSwitchOn();
       
    36 	IMPORT_C void RequestSwitchOff();
       
    37 	};
       
    38 
       
    39 
       
    40 class RHCIServerSession;
       
    41 class RSocketBasedHciDirectAccess;
       
    42 
       
    43 NONSHARABLE_CLASS(RHCIDirectAccess)
       
    44 /**
       
    45 API used for licensee-specific direct HCI access
       
    46 
       
    47 This class allows vendor-specific messages to be passed through to the HCI for
       
    48 customised (licensee-specific) HCI functionality.
       
    49 
       
    50 Note: No use of this class should be required by default. It is provided to
       
    51 assist with hardware workarounds, or link policy not implemented by the
       
    52 Bluetooth stack.
       
    53 
       
    54 Do not use unless entirely familar with this API and the specific HCI in use!!!!
       
    55 
       
    56 @publishedPartner
       
    57 @released
       
    58 */
       
    59 	{
       
    60 public:
       
    61 	IMPORT_C RHCIDirectAccess();
       
    62 	//API used for licensee-specific direct HCI access
       
    63 	IMPORT_C TInt Open();
       
    64 	IMPORT_C TInt Open(RSocketServ& aSocketServ);
       
    65 	IMPORT_C void Close();
       
    66 
       
    67 	IMPORT_C void Ioctl(TUint aCommand, TRequestStatus &aStatus, TDes8* aDesc=NULL,TUint aLevel = KSolBtHCI); 
       
    68 	IMPORT_C void CancelIoctl();
       
    69 
       
    70 	IMPORT_C void AsyncMessage(TUint aCommand, TRequestStatus &aStatus, TDes8* aDesc); 
       
    71 	IMPORT_C void CancelAsyncMessage();
       
    72 
       
    73 	IMPORT_C TInt SubSessionHandle();
       
    74 private:
       
    75 	RHCIServerSession* iHCIServerSession;
       
    76 	RSocketBasedHciDirectAccess* iSocketAccess;
       
    77 	TUint32 iReserved; // Padding for possible future "per-copy" state.
       
    78 	};
       
    79 
       
    80 #endif // BTHCI_H