bthci/bthci2/initialisor/interface/ControllerInitialisationInterface.h
changeset 0 29b1cd4cb562
equal deleted inserted replaced
-1:000000000000 0:29b1cd4cb562
       
     1 // Copyright (c) 2006-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 //
       
    15 
       
    16 /**
       
    17  @file
       
    18  @publishedPartner
       
    19  @released
       
    20 */
       
    21 
       
    22 #ifndef CONTROLLERINITIALISATIONINTERFACE_H
       
    23 #define CONTROLLERINITIALISATIONINTERFACE_H
       
    24 
       
    25 #include <e32def.h>
       
    26 
       
    27 /**
       
    28 The UID of the Controller Initialisation API. If the Controller Initialisation API ever 
       
    29 has to change, a new UID and associated M- class will be created. New implementations of 
       
    30 CControllerInitialisationPlugin may implement the new API. Old (non-updated) Controller Initialisation Plugins 
       
    31 will still work as long as the stack supports the old API.
       
    32 */
       
    33 const TInt KControllerInitialisationInterfaceUid = 0x1027407C;
       
    34 
       
    35 /**
       
    36 The UID of the Controller Initialisation Abort Extension API.
       
    37 */
       
    38 const TInt KControllerInitialisationAbortExtenstionInterfaceUid = 0x10286A7F;
       
    39 
       
    40 class MHCICommandQueue;
       
    41 class MControllerInitialisationObserver;
       
    42 class MCoreHci;
       
    43 
       
    44 /**
       
    45 Mixin for the Controller Initialisation API.
       
    46 This interface is to be used via the Controller Initialisation Plugin.
       
    47 @see CControllerInitialisationPlugin::Interface(TUid)
       
    48 */
       
    49 class MControllerInitialisationInterface
       
    50 	{
       
    51 public:
       
    52 	/**
       
    53 	The function that shall be called immediately before calling the reset command.
       
    54 	*/
       
    55 	virtual void MciiPreResetCommand() = 0;
       
    56 
       
    57 	/**
       
    58 	The function to be called immediately after calling the reset command.
       
    59 	*/
       
    60 	virtual void MciiPostResetCommand() = 0;
       
    61 	
       
    62 	/**
       
    63 	The initialisation interface uses this function to be given a reference to MHCICommandQueue 
       
    64 	which allows it to reset the command queue
       
    65 
       
    66 	@param aHCICommandQueue provides interface to command queue
       
    67 	*/
       
    68 	virtual void MciiSetHCICommandQueue(MHCICommandQueue& aHCICommandQueue) = 0;
       
    69 
       
    70 	/**
       
    71 	The initialisation interface uses the supplied reference to notify
       
    72 	the stack when initialisation is complete.
       
    73 
       
    74 	@param aObserver Reference to the initialisation observer
       
    75 	*/
       
    76 	virtual void MciiSetControllerInitialisationObserver(MControllerInitialisationObserver& aObserver) = 0;
       
    77 
       
    78 	/**
       
    79 	Allows the initiator access to the Core HCI.  It can then request any of
       
    80 	the interface the Core HCI exposes.
       
    81 	
       
    82 	@param aCoreHci Reference to the Core HCI
       
    83 	*/
       
    84 	virtual void MciiSetCoreHci(MCoreHci& aCoreHci) = 0;
       
    85 	};
       
    86 
       
    87 /**
       
    88 Mixin for the Controller Initialisation Abort Extension API.
       
    89 This interface is to be used via the Controller Initialisation Plugin.
       
    90 @see CControllerInitialisationPlugin::Interface(TUid)
       
    91 */
       
    92 class MControllerInitialisationAbortExtensionInterface
       
    93 	{
       
    94 public:
       
    95 	/**
       
    96 	This function will be called if either MciiPreResetCommand or MciiPostResetCommand have
       
    97 	been called previously but the associated callback from MControllerInitialisationObserver has not 
       
    98 	yet been called and the stack has to abort the initialisation sequence, due to another power 
       
    99 	request for example. After this function has been called any outstanding callback must not 
       
   100 	be made until a new call to either MciiPreResetCommand or MciiPostResetCommand. 
       
   101 	*/
       
   102 	virtual void MciaeiAbortInitialisation() = 0;
       
   103 	};
       
   104 
       
   105 #endif // CONTROLLERINITIALISATIONINTERFACE_H