public override bool Disconnect(uint disposition)
        {
            if (connexionState != ConnexionState.NotConnected)
            {
                return(false);
            }

            connexionState = ConnexionState.NotConnected;

            Trace.WriteLine("Disconnect, disposition=" + disposition);

            bool powerDown = false;

            if ((disposition & SCARD.UNPOWER_CARD) != 0)
            {
                powerDown = true;
            }
            if ((disposition & SCARD.EJECT_CARD) != 0)
            {
                powerDown = true;
            }

            _last_error = ReaderDevice.DisconnectFrom(Slot, powerDown);

            if (_last_error != SCARD.S_SUCCESS)
            {
                return(false);
            }

            return(true);
        }
        public bool ConnectDirect()
        {
            if (connexionState == ConnexionState.ConnectedDirect)
            {
                return(true);
            }
            if (connexionState == ConnexionState.Connected)
            {
                Disconnect(SCARD.LEAVE_CARD);
            }

            _last_error = ReaderDevice.ConnectDirectTo(Slot);

            if (_last_error != SCARD.S_SUCCESS)
            {
                return(false);
            }

            connexionState = ConnexionState.ConnectedDirect;
            return(true);
        }
        public override bool Connect()
        {
            if (connexionState == ConnexionState.Connected)
            {
                return(true);
            }
            if (connexionState == ConnexionState.ConnectedDirect)
            {
                Disconnect(SCARD.LEAVE_CARD);
            }

            _last_error = ReaderDevice.ConnectTo(Slot);

            if (_last_error != SCARD.S_SUCCESS)
            {
                Logger.Trace("Connect failed: " + BinConvert.ToHex(_last_error));
                return(false);
            }

            connexionState = ConnexionState.Connected;
            return(true);
        }
 public void setCurrentStateWait()
 {
     Debug.Log("WAIT");
     currentMenu = ConnexionState.WaitingRoom;
     DisplayCurrentMenu();
 }
 public void setCurrentStateHome()
 {
     currentMenu = ConnexionState.TwoPlayers;
     DisplayCurrentMenu();
 }
    /// ==================================================================
    /// LOADING NEXT SCENE FUNCTIONS
    /// ==================================================================
    public void PlayAsServer()
    {
        Debug.Log("PLAY AS SERVER !");

        currentMenu = ConnexionState.Play;

        // The networkManager won't be destroy
        DontDestroyOnLoad (networkManager);

        Application.LoadLevel("Main");
    }
 public void OnJoinRoom()
 {
     currentMenu = ConnexionState.RoomList;
     DisplayCurrentMenu();
     SetListRoomMessage("Retrieving server list...");
     RequestRoomList();
 }
 // SERVER LIST ROOM =================================
 public void OnBack()
 {
     if (currentMenu == ConnexionState.WaitingRoom)
     {
         Debug.Log("CLOSE SERVER");
         networkManagerScript.CloseServer();
     }
     currentMenu = ConnexionState.TwoPlayers;
     DisplayCurrentMenu();
 }