I made several updates to the Windows version as well so that both implementations share a big portion of the code. The underlying PeerConnection notifications have changed a bit since the last update so that there's still a known issue that I plan to fix in my next change: // TODO(tommi): There's a problem now with terminating connections: // When ending a conversation, both peers now send a signaling message // that indicates that their ports are closed (port=0). The trouble this // causes us here is that we can interpret such a message as an invite // to a new conversation. So, currently there is a bug that ending // a conversation can immediately start a new one. // To fix this I plan to change how conversations start and have a special // notification message via the server that prepares a client for a // conversation instead of automatically recognizing the first signaling // message as an invite. Review URL: http://webrtc-codereview.appspot.com/112008 git-svn-id: http://webrtc.googlecode.com/svn/trunk@446 4adac7df-926f-26a2-2b94-8c16560cd09d
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
 | 
						|
 *
 | 
						|
 *  Use of this source code is governed by a BSD-style license
 | 
						|
 *  that can be found in the LICENSE file in the root of the source
 | 
						|
 *  tree. An additional intellectual property rights grant can be found
 | 
						|
 *  in the file PATENTS.  All contributing project authors may
 | 
						|
 *  be found in the AUTHORS file in the root of the source tree.
 | 
						|
 */
 | 
						|
 | 
						|
#include <windows.h>
 | 
						|
 | 
						|
#include "peerconnection/samples/client/conductor.h"
 | 
						|
#include "peerconnection/samples/client/main_wnd.h"
 | 
						|
#include "peerconnection/samples/client/peer_connection_client.h"
 | 
						|
#include "system_wrappers/source/trace_impl.h"
 | 
						|
#include "talk/base/win32socketinit.h"
 | 
						|
 | 
						|
 | 
						|
int PASCAL wWinMain(HINSTANCE instance, HINSTANCE prev_instance,
 | 
						|
                    wchar_t* cmd_line, int cmd_show) {
 | 
						|
  talk_base::EnsureWinsockInit();
 | 
						|
 | 
						|
  webrtc::Trace::CreateTrace();
 | 
						|
  webrtc::Trace::SetTraceFile("peerconnection_client.log");
 | 
						|
  webrtc::Trace::SetLevelFilter(webrtc::kTraceWarning);
 | 
						|
 | 
						|
  MainWnd wnd;
 | 
						|
  if (!wnd.Create()) {
 | 
						|
    ASSERT(false);
 | 
						|
    return -1;
 | 
						|
  }
 | 
						|
 | 
						|
  PeerConnectionClient client;
 | 
						|
  Conductor conductor(&client, &wnd);
 | 
						|
 | 
						|
  // Main loop.
 | 
						|
  MSG msg;
 | 
						|
  BOOL gm;
 | 
						|
  while ((gm = ::GetMessage(&msg, NULL, 0, 0)) && gm != -1) {
 | 
						|
    if (!wnd.PreTranslateMessage(&msg)) {
 | 
						|
      ::TranslateMessage(&msg);
 | 
						|
      ::DispatchMessage(&msg);
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  if (conductor.connection_active() || client.is_connected()) {
 | 
						|
    while ((conductor.connection_active() || client.is_connected()) &&
 | 
						|
           (gm = ::GetMessage(&msg, NULL, 0, 0)) && gm != -1) {
 | 
						|
      if (!wnd.PreTranslateMessage(&msg)) {
 | 
						|
        ::TranslateMessage(&msg);
 | 
						|
        ::DispatchMessage(&msg);
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  return 0;
 | 
						|
}
 |