examples/sfexamples/RockPaperScissorsGameSourceCode_S60/RPS/inc/BluetoothManager.h

00001 /*
00002 Copyright (c) 2002-2011 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.
00003 
00004 Redistribution and use in source and binary forms, with or without
00005 modification, are permitted provided that the following conditions are met:
00006 
00007 * Redistributions of source code must retain the above copyright notice, this
00008   list of conditions and the following disclaimer.
00009 * Redistributions in binary form must reproduce the above copyright notice,
00010   this list of conditions and the following disclaimer in the documentation
00011   and/or other materials provided with the distribution.
00012 * Neither the name of Nokia Corporation nor the names of its contributors
00013   may be used to endorse or promote products derived from this software
00014   without specific prior written permission.
00015 
00016 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00017 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00018 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00019 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00020 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00021 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00022 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00023 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00024 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00025 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00026 
00027 Description:  CRpsGameEngine is responsible for managing the Bluetooth piconet, updating the view,
00028              and controlling the logic of the game. CRpsGameEngine acts either as a Master or Slave.
00029              The connection between a Master and a Slave is represented by the CBluetoothConnector
00030              class while the Slave is represented by the CBluetoothResponder class.  
00031 
00032 */ 
00033 
00034 #ifndef __RPSBLUETOOTHMANAGER_H__
00035 #define __RPSBLUETOOTHMANAGER_H__
00036 
00037 // INCLUDES
00038 #include <bttypes.h> 
00039 #include <es_sock.h>
00040 #include <btdevice.h>
00041 #include <bt_sock.h>
00042 #include <btsdp.h>
00043 #include <btmanclient.h>
00044 #include <btextnotifiers.h>
00045 #include "commoninterfaces.h"
00046 #include "BluetoothResponder.h"
00047 
00048 class CBluetoothDeviceDiscoverer;
00049 class CBluetoothConnector;
00050 
00051 class CBluetoothManager : public CBase, public MBluetoothDeviceDiscovererObserver,
00052                                                                                 public MBluetoothObserver
00053         {
00054 public:
00055         static CBluetoothManager* NewL(CGameScreenManager& aGameScreenMgr);
00056         ~CBluetoothManager();
00057 public:
00061         void StartBtMaster();
00062         
00066         void StartBtSlave();
00067         
00072         void SendData(TRoshambo::TElement aElement);
00073         
00078         void QuitMultiplayerGame();
00079         
00083         void StartGame();
00084         
00088         void ReplayGame();
00089         
00094         TBool Connected();
00095                 
00096 public: //From MBluetoothDeviceDiscovererObserver,
00101         void OnDeviceDiscoveryErr(const TInt aError);
00102         
00107         void OnDeviceDiscoveryComplete(const TBTDeviceResponseParamsPckg& aResponse);
00108         
00109 public: //From MBluetoothObserver,
00115         void ConnectionErr(const TInt aConnHandle, const TInt aError);
00116         
00122         void DataReceived(const TInt aConnHandle, const TDesC8& aData);
00123         
00128         void SendDataComplete(const TInt aConnHandle);
00129 
00130 private:
00134         void DisplayError(const TInt aError);
00135         
00139         void StartConnectorL();
00140 private: // Construction        
00141         
00142         CBluetoothManager(CGameScreenManager& aGameScreenMgr);
00143         
00144         void ConstructL();
00145 
00146 private:
00150         TBool iConnected;
00151         
00155         CBluetoothDeviceDiscoverer* iBtDeviceDiscoverer;
00156         
00160         TBTDevAddr iBtDevAddr;
00161         
00165         TBTDeviceSelectionParams iDevSelFilter;
00166         
00170         RSocketServ iSocketServer;      
00171         
00175         CBluetoothConnectionBase* iBtConnBase;
00176         
00180         CGameScreenManager& iGameScreenMgr;
00181         
00206         };
00207 
00208 #endif // __RPSBLUETOOTHMANAGER_H__
00209 
00210 // End of File

Generated by  doxygen 1.6.2