Ejemplo n.º 1
0
        public override void PeerChangedState(GKSession session, string peerID, GKPeerConnectionState state)
        {
            LocalNetworkGamer lng = new LocalNetworkGamer();

            switch (state)
            {
                case GKPeerConnectionState.Available :
                    break;
                case GKPeerConnectionState.Connected :
                    if ( !gamerList.Contains(lng) )
                    {
                        gamerList.Add(lng);
                    }
                    break;
                case GKPeerConnectionState.Connecting :
                    break;
                case GKPeerConnectionState.Disconnected :
                    if ( gamerList.Contains(lng) )
                    {
                        gamerList.Remove(lng);
                    }
                    break;
                case GKPeerConnectionState.Unavailable :
                    break;
            }
        }
Ejemplo n.º 2
0
        public override void PeerChangedState(GKSession session, string peerID, GKPeerConnectionState state)
        {
            LocalNetworkGamer lng = new LocalNetworkGamer();

            switch (state)
            {
            case GKPeerConnectionState.Available:
                break;

            case GKPeerConnectionState.Connected:
                if (!gamerList.Contains(lng))
                {
                    gamerList.Add(lng);
                }
                break;

            case GKPeerConnectionState.Connecting:
                break;

            case GKPeerConnectionState.Disconnected:
                if (gamerList.Contains(lng))
                {
                    gamerList.Remove(lng);
                }
                break;

            case GKPeerConnectionState.Unavailable:
                break;
            }
        }
Ejemplo n.º 3
0
        public void NullAllowed()
        {
            using (var session = new GKSession(null, "displayName", GKSessionMode.Client)) {
            }

            using (var session = new GKSession("sessionID", null, GKSessionMode.Peer)) {
            }
        }
 void ChatJoinClicked (object sender, EventArgs e)
 {      
     _session = new GKSession ("com.lmt.gkchat1", 
         UIDevice.CurrentDevice.Name, GKSessionMode.Peer);
     
     _session.PeerChanged += delegate(object s0, 
         GKPeerChangedStateEventArgs peerArgs) {
         
         switch (peerArgs.State) {
         case GKPeerConnectionState.Available:
             AddToChatHistory (String.Format ("{0} is available", 
                 _session.DisplayNameForPeer (peerArgs.PeerID)));
             _session.Connect (peerArgs.PeerID, 60);
             AddToChatHistory (String.Format ("sent connection request to {0}", 
                 _session.DisplayNameForPeer (peerArgs.PeerID)));
             break;
         case GKPeerConnectionState.Connected:
             AddToChatHistory (String.Format ("connected to {0}", 
                 _session.DisplayNameForPeer (peerArgs.PeerID)));
             chatSend.Enabled = true;
             break;
         case GKPeerConnectionState.Connecting:
             AddToChatHistory (String.Format ("{0} is connecting", 
                 _session.DisplayNameForPeer (peerArgs.PeerID)));
             break;
         case GKPeerConnectionState.Disconnected:
             AddToChatHistory (String.Format ("{0} disconnected", 
                 _session.DisplayNameForPeer (peerArgs.PeerID)));
             break;
         case GKPeerConnectionState.Unavailable:
             AddToChatHistory (String.Format ("{0} is unavailable", 
                 _session.DisplayNameForPeer (peerArgs.PeerID)));
             break;
         }
     };
     
     _session.ConnectionRequest += delegate(object s1, 
         GKPeerConnectionEventArgs connectionArgs) {
         
         AddToChatHistory (String.Format ("received connection request from {0}", 
             _session.DisplayNameForPeer (connectionArgs.PeerID)));
         
         _session.AcceptConnection (connectionArgs.PeerID, IntPtr.Zero);
         
         AddToChatHistory (String.Format ("accepted connection from {0}", 
            _session.DisplayNameForPeer (connectionArgs.PeerID)));
     };
     
     _session.ReceiveData += delegate(object s2, GKDataReceivedEventArgs dataArgs) { 
         AddToChatHistory (String.Format("received message '{0}' from {1}", 
             NSString.FromData (dataArgs.Data, NSStringEncoding.UTF8), 
             _session.DisplayNameForPeer (dataArgs.PeerID))); 
     };
     
     _session.Available = true;
     
     chatJoin.Enabled = false;
 }
 void ShowPeerPicker ()
 {
     _session = new GKSession ("com.lmt.gkchat2", UIDevice.CurrentDevice.Name, GKSessionMode.Peer);
     _session.ReceiveData += (s, e) => { AddToChatHistory (NSString.FromData (e.Data, NSStringEncoding.UTF8).ToString ()); };
     _session.ConnectionRequest += (s, e) => { e.Session.AcceptConnection (e.PeerID, IntPtr.Zero); };
     
     _peerPickerController = new GKPeerPickerController ();
     _peerPickerController.Delegate = new PeerPickerDelegate (this);
     _peerPickerController.ConnectionTypesMask = GKPeerPickerConnectionType.Nearby;
     _peerPickerController.Show ();
 }
Ejemplo n.º 6
0
        void ShowPeerPicker()
        {
            _session                    = new GKSession("com.lmt.gkchat2", UIDevice.CurrentDevice.Name, GKSessionMode.Peer);
            _session.ReceiveData       += (s, e) => { AddToChatHistory(NSString.FromData(e.Data, NSStringEncoding.UTF8).ToString()); };
            _session.ConnectionRequest += (s, e) => { e.Session.AcceptConnection(e.PeerID, IntPtr.Zero); };

            _peerPickerController                     = new GKPeerPickerController();
            _peerPickerController.Delegate            = new PeerPickerDelegate(this);
            _peerPickerController.ConnectionTypesMask = GKPeerPickerConnectionType.Nearby;
            _peerPickerController.Show();
        }
Ejemplo n.º 7
0
        void ShowPeerPicker()
        {
            GameKitSession = new GKSession ("com.mikebluestein.gamekitchat", UIDevice.CurrentDevice.Name, GKSessionMode.Peer);
            GameKitSession.ReceiveData += (s, e) => { AddMessage (NSString.FromData (e.Data, NSStringEncoding.UTF8).ToString ()); };
            GameKitSession.ConnectionRequest += (s, e) => { e.Session.AcceptConnection (e.PeerID, IntPtr.Zero); };

            GKPeerPickerController peerPickerController = new GKPeerPickerController ();
            peerPickerController.Delegate = new PeerPickerDelegate (this);
            peerPickerController.ConnectionTypesMask = GKPeerPickerConnectionType.Nearby;
            peerPickerController.Show ();
        }
Ejemplo n.º 8
0
        void ShowPeerPicker()
        {
            GameKitSession                    = new GKSession("com.mikebluestein.gamekitchat", UIDevice.CurrentDevice.Name, GKSessionMode.Peer);
            GameKitSession.ReceiveData       += (s, e) => { AddMessage(NSString.FromData(e.Data, NSStringEncoding.UTF8).ToString()); };
            GameKitSession.ConnectionRequest += (s, e) => { e.Session.AcceptConnection(e.PeerID, IntPtr.Zero); };

            GKPeerPickerController peerPickerController = new GKPeerPickerController();

            peerPickerController.Delegate            = new PeerPickerDelegate(this);
            peerPickerController.ConnectionTypesMask = GKPeerPickerConnectionType.Nearby;
            peerPickerController.Show();
        }
Ejemplo n.º 9
0
        public static NetworkSession Create(
            NetworkSessionType sessionType,      // Type of session being hosted.
            int maxLocalGamers,                  // Maximum number of local players on the same gaming machine in this network session.
            int maxGamers                        // Maximum number of players allowed in this network session.  For Zune-based games, this value must be between 2 and 8; 8 is the maximum number of players supported in the session.
            )
        {
            try
            {
                if (maxLocalGamers > 2)
                {
                    throw new ArgumentOutOfRangeException("Maximum local players can only be 2 on the iPhone.");
                }
                if (maxGamers < 2 || maxGamers > 8)
                {
                    throw new ArgumentOutOfRangeException("Maximum number of gamers must be between 2 and 8.");
                }

                networkSessionType = sessionType;

                GKSessionMode gkSessionMode;
                switch (sessionType)
                {
                case NetworkSessionType.Local:
                    gkSessionMode = GKSessionMode.Client;
                    break;

                case NetworkSessionType.SystemLink:
                    gkSessionMode = GKSessionMode.Peer;
                    break;

                case NetworkSessionType.PlayerMatch:
                    gkSessionMode = GKSessionMode.Server;
                    break;

                default:
                    gkSessionMode = GKSessionMode.Peer;
                    break;
                }

                gkSession           = new GKSession(null, null, gkSessionMode);
                gkSession.Available = true;

                throw new NotImplementedException();
            }
            finally
            {
            }
        }
Ejemplo n.º 10
0
        void ShowPeerPicker ()
        {
            _gkSession = new GKSession ("com.lmt.gkvoicechat", UIDevice.CurrentDevice.Name, GKSessionMode.Peer);

            _gkSession.ReceiveData += delegate(object sender, GKDataReceivedEventArgs e) { 
                GKVoiceChatService.Default.ReceivedData (e.Data, e.PeerID); 
            };          
            
            _gkSession.ConnectionRequest += delegate(object sender, GKPeerConnectionEventArgs e) {         
                e.Session.AcceptConnection (e.PeerID, IntPtr.Zero);
            };
            
            GKPeerPickerController peerPickerController = new GKPeerPickerController ();
            peerPickerController.Delegate = new PeerPickerDelegate (this);
            peerPickerController.ConnectionTypesMask = GKPeerPickerConnectionType.Nearby;
            peerPickerController.Show ();
        }
        /*public override GKSession GetSession(GKPeerPickerController picker, GKPeerPickerConnectionType forType)
         * {
         *      Console.WriteLine( "GetSession" );
         *
         *      return gkSession;
         * }*/

        public override void PeerConnected(GKPeerPickerController picker, string peerId, GKSession toSession)
        {
            Console.WriteLine("Peer ID " + peerId + " Connected to Session ID : " + toSession.SessionID);

            // Use a retaining property to take ownership of the session.
            this.gkSession = toSession;

            // Assumes our object will also become the session's delegate.
            gkSession.Delegate     = new MonoGameSessionDelegate();
            gkSession.ReceiveData += new EventHandler <GKDataReceivedEventArgs>(receivedData);

            picker.Dismiss();

            // Remove the picker.
            picker.Delegate = null;

            // Start your game.
        }
Ejemplo n.º 12
0
        void ShowPeerPicker()
        {
            _gkSession = new GKSession("com.lmt.gkvoicechat", UIDevice.CurrentDevice.Name, GKSessionMode.Peer);

            _gkSession.ReceiveData += delegate(object sender, GKDataReceivedEventArgs e) {
                GKVoiceChatService.Default.ReceivedData(e.Data, e.PeerID);
            };

            _gkSession.ConnectionRequest += delegate(object sender, GKPeerConnectionEventArgs e) {
                e.Session.AcceptConnection(e.PeerID, IntPtr.Zero);
            };

            GKPeerPickerController peerPickerController = new GKPeerPickerController();

            peerPickerController.Delegate            = new PeerPickerDelegate(this);
            peerPickerController.ConnectionTypesMask = GKPeerPickerConnectionType.Nearby;
            peerPickerController.Show();
        }
Ejemplo n.º 13
0
 public override void PeerConnected (GKPeerPickerController picker, string peerId, GKSession toSession)
 {
     _controller._gkSession = toSession;
     
     picker.Dismiss ();
     picker.Delegate = null;
     
     _controller.joinButton.Title = "Connected";
     _controller.joinButton.Enabled = false;
        
     AVAudioSession audioSession = AVAudioSession.SharedInstance ();
     NSError error;
     audioSession.SetCategory (AVAudioSession.CategoryPlayAndRecord.ToString (), out error);
     audioSession.SetActive (true, out error);
     _controller._vcClient = new MyVoiceChatClient (_controller._gkSession);
     GKVoiceChatService.Default.Client = _controller._vcClient;
     GKVoiceChatService.Default.StartVoiceChat (peerId, IntPtr.Zero);
 }
Ejemplo n.º 14
0
 public void EndGame()
 {
     try
     {
         networkSessionState = NetworkSessionState.Lobby;
         if (gkSession != null)
         {
             gkSession.DisconnectFromAllPeers();
             gkSession.Available    = false;
             gkSession.ReceiveData -= null;
             gkSession.Delegate     = null;
             gkSession.Dispose();
             gkSession = null;
         }
     }
     finally
     {
     }
 }
Ejemplo n.º 15
0
        public override void FailedWithError(GKSession session, NSError error)
        {
#if DEBUG
            Console.WriteLine(" Session : " + session.SessionID + " FailedWithError : " + error);
#endif
        }
Ejemplo n.º 16
0
 public MyVoiceChatClient(GKSession session)
 {
     _session = session;
 }
        /*public override GKSession GetSession(GKPeerPickerController picker, GKPeerPickerConnectionType forType)
        {
            Console.WriteLine( "GetSession" );

            return gkSession;
        }*/
        public override void PeerConnected(GKPeerPickerController picker, string peerId, GKSession toSession)
        {
            Console.WriteLine( "Peer ID " + peerId + " Connected to Session ID : " + toSession.SessionID );

            // Use a retaining property to take ownership of the session.
            this.gkSession = toSession;

            // Assumes our object will also become the session's delegate.
            gkSession.Delegate = new MonoGameSessionDelegate();
            gkSession.ReceiveData += new EventHandler<GKDataReceivedEventArgs>(receivedData);

            picker.Dismiss();

            // Remove the picker.
            picker.Delegate = null;

            // Start your game.
        }
 public MonoGamePeerPickerControllerDelegate( GKSession aSession, EventHandler<GKDataReceivedEventArgs> aReceivedData )
 {
     gkSession = aSession;
     receivedData = aReceivedData;
 }
Ejemplo n.º 19
0
 public void EndGame()
 {
     try
     {
         networkSessionState = NetworkSessionState.Lobby;
         if (gkSession != null)
         {
             gkSession.DisconnectFromAllPeers();
             gkSession.Available = false;
             gkSession.ReceiveData -= null;
             gkSession.Delegate = null;
             gkSession.Dispose();
             gkSession = null;
         }
     }
     finally
     {
     }
 }
 public MonoGamePeerPickerControllerDelegate(GKSession aSession, EventHandler <GKDataReceivedEventArgs> aReceivedData)
 {
     gkSession    = aSession;
     receivedData = aReceivedData;
 }
 public override void PeerConnected (GKPeerPickerController picker, string peerId, GKSession toSession)
 {
     _controller._session = toSession;
     
     picker.Dismiss ();
     picker.Delegate = null;
     
     //just disabling button once connection is made for simplicity
     
     _controller.chatJoin.Enabled = false;
 }
Ejemplo n.º 22
0
        void ChatJoinClicked(object sender, EventArgs e)
        {
            _session = new GKSession("com.lmt.gkchat1",
                                     UIDevice.CurrentDevice.Name, GKSessionMode.Peer);

            _session.PeerChanged += delegate(object s0,
                                             GKPeerChangedStateEventArgs peerArgs) {
                switch (peerArgs.State)
                {
                case GKPeerConnectionState.Available:
                    AddToChatHistory(String.Format("{0} is available",
                                                   _session.DisplayNameForPeer(peerArgs.PeerID)));
                    _session.Connect(peerArgs.PeerID, 60);
                    AddToChatHistory(String.Format("sent connection request to {0}",
                                                   _session.DisplayNameForPeer(peerArgs.PeerID)));
                    break;

                case GKPeerConnectionState.Connected:
                    AddToChatHistory(String.Format("connected to {0}",
                                                   _session.DisplayNameForPeer(peerArgs.PeerID)));
                    chatSend.Enabled = true;
                    break;

                case GKPeerConnectionState.Connecting:
                    AddToChatHistory(String.Format("{0} is connecting",
                                                   _session.DisplayNameForPeer(peerArgs.PeerID)));
                    break;

                case GKPeerConnectionState.Disconnected:
                    AddToChatHistory(String.Format("{0} disconnected",
                                                   _session.DisplayNameForPeer(peerArgs.PeerID)));
                    break;

                case GKPeerConnectionState.Unavailable:
                    AddToChatHistory(String.Format("{0} is unavailable",
                                                   _session.DisplayNameForPeer(peerArgs.PeerID)));
                    break;
                }
            };

            _session.ConnectionRequest += delegate(object s1,
                                                   GKPeerConnectionEventArgs connectionArgs) {
                AddToChatHistory(String.Format("received connection request from {0}",
                                               _session.DisplayNameForPeer(connectionArgs.PeerID)));

                _session.AcceptConnection(connectionArgs.PeerID, IntPtr.Zero);

                AddToChatHistory(String.Format("accepted connection from {0}",
                                               _session.DisplayNameForPeer(connectionArgs.PeerID)));
            };

            _session.ReceiveData += delegate(object s2, GKDataReceivedEventArgs dataArgs) {
                AddToChatHistory(String.Format("received message '{0}' from {1}",
                                               NSString.FromData(dataArgs.Data, NSStringEncoding.UTF8),
                                               _session.DisplayNameForPeer(dataArgs.PeerID)));
            };

            _session.Available = true;

            chatJoin.Enabled = false;
        }
Ejemplo n.º 23
0
 public override void PeerConnectionFailed(GKSession session, string peerID, NSError error)
 {
     Console.WriteLine( " Session : " + session.SessionID + " PeerID : " + peerID +" PeerConnectionFailed : " + error );
 }
Ejemplo n.º 24
0
            public override void PeerConnected(GKPeerPickerController picker, string peerId, GKSession toSession)
            {
                _controller._session = toSession;

                picker.Dismiss();
                picker.Delegate = null;

                //just disabling button once connection is made for simplicity

                _controller.chatJoin.Enabled = false;
            }
Ejemplo n.º 25
0
        public static NetworkSession Create(
            NetworkSessionType sessionType, // Type of session being hosted.
            int maxLocalGamers,             // Maximum number of local players on the same gaming machine in this network session.
            int maxGamers                   // Maximum number of players allowed in this network session.  For Zune-based games, this value must be between 2 and 8; 8 is the maximum number of players supported in the session.
            )
        {
            try
            {
                if ( maxLocalGamers > 2 )
                    throw new ArgumentOutOfRangeException( "Maximum local players can only be 2 on the iPhone." );
                if ( maxGamers < 2 || maxGamers > 8 )
                    throw new ArgumentOutOfRangeException( "Maximum number of gamers must be between 2 and 8." );

                networkSessionType = sessionType;

                GKSessionMode gkSessionMode;
                switch (sessionType)
                {
                   case NetworkSessionType.Local:
                      gkSessionMode = GKSessionMode.Client;
                      break;
                   case NetworkSessionType.SystemLink:
                      gkSessionMode = GKSessionMode.Peer;
                      break;
                   case NetworkSessionType.PlayerMatch:
                      gkSessionMode = GKSessionMode.Server;
                      break;
                   default:
                      gkSessionMode = GKSessionMode.Peer;
                      break;
                }

                gkSession = new GKSession( null, null, gkSessionMode );
                gkSession.Available = true;

                throw new NotImplementedException();
            }
            finally
            {
            }
        }
Ejemplo n.º 26
0
 public override void FailedWithError(GKSession session, NSError error)
 {
     Console.WriteLine( " Session : " + session.SessionID + " FailedWithError : " + error );
 }
Ejemplo n.º 27
0
 public MyVoiceChatClient (GKSession session)
 {
     _session = session;
 }
Ejemplo n.º 28
0
        public override void PeerConnectionRequest(GKSession session, string peerID)
        {
#if DEBUG
            Console.WriteLine(" Session : " + session.SessionID + " PeerID : " + peerID);
#endif
        }
Ejemplo n.º 29
0
            public override void PeerConnected(GKPeerPickerController picker, string peerId, GKSession toSession)
            {
                _controller.GameKitSession = toSession;

                picker.Dismiss();
                picker.Delegate = null;

                //just disabling once connection is made for simplicity
                _controller.joinButton.Title   = "Connected";
                _controller.joinButton.Enabled = false;
            }
Ejemplo n.º 30
0
        public override void PeerConnectionFailed(GKSession session, string peerID, NSError error)
        {
#if DEBUG
            Console.WriteLine(" Session : " + session.SessionID + " PeerID : " + peerID + " PeerConnectionFailed : " + error);
#endif
        }
Ejemplo n.º 31
0
            public override void PeerConnected(GKPeerPickerController picker, string peerId, GKSession toSession)
            {
                _controller._gkSession = toSession;

                picker.Dismiss();
                picker.Delegate = null;

                _controller.joinButton.Title   = "Connected";
                _controller.joinButton.Enabled = false;

                AVAudioSession audioSession = AVAudioSession.SharedInstance();
                NSError        error;

                audioSession.SetCategory(AVAudioSession.CategoryPlayAndRecord.ToString(), out error);
                audioSession.SetActive(true, out error);
                _controller._vcClient             = new MyVoiceChatClient(_controller._gkSession);
                GKVoiceChatService.Default.Client = _controller._vcClient;
                GKVoiceChatService.Default.StartVoiceChat(peerId, IntPtr.Zero);
            }
Ejemplo n.º 32
0
 public override void PeerConnectionRequest(GKSession session, string peerID)
 {
     Console.WriteLine( " Session : " + session.SessionID + " PeerID : " + peerID );
 }
Ejemplo n.º 33
0
            public override void PeerConnected(GKPeerPickerController picker, string peerId, GKSession toSession)
            {
                _controller.GameKitSession = toSession;

                picker.Dismiss ();
                picker.Delegate = null;

                //just disabling once connection is made for simplicity
                _controller.joinButton.Title = "Connected";
                _controller.joinButton.Enabled = false;
            }