Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(404)

Unified Diff: talk/examples/peerconnection/client/main_wnd.h

Issue 1235563006: Move talk/examples/* to webrtc/examples. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: 201508051337 Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « talk/examples/peerconnection/client/main.cc ('k') | talk/examples/peerconnection/client/main_wnd.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: talk/examples/peerconnection/client/main_wnd.h
diff --git a/talk/examples/peerconnection/client/main_wnd.h b/talk/examples/peerconnection/client/main_wnd.h
deleted file mode 100644
index da9c6fa6ec339814644c2204c87ef71e34368e34..0000000000000000000000000000000000000000
--- a/talk/examples/peerconnection/client/main_wnd.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * libjingle
- * Copyright 2012 Google Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef PEERCONNECTION_SAMPLES_CLIENT_MAIN_WND_H_
-#define PEERCONNECTION_SAMPLES_CLIENT_MAIN_WND_H_
-#pragma once
-
-#include <map>
-#include <string>
-
-#include "talk/app/webrtc/mediastreaminterface.h"
-#include "talk/examples/peerconnection/client/peer_connection_client.h"
-#include "talk/media/base/mediachannel.h"
-#include "talk/media/base/videocommon.h"
-#include "talk/media/base/videoframe.h"
-#include "talk/media/base/videorenderer.h"
-#include "webrtc/base/win32.h"
-
-class MainWndCallback {
- public:
- virtual void StartLogin(const std::string& server, int port) = 0;
- virtual void DisconnectFromServer() = 0;
- virtual void ConnectToPeer(int peer_id) = 0;
- virtual void DisconnectFromCurrentPeer() = 0;
- virtual void UIThreadCallback(int msg_id, void* data) = 0;
- virtual void Close() = 0;
- protected:
- virtual ~MainWndCallback() {}
-};
-
-// Pure virtual interface for the main window.
-class MainWindow {
- public:
- virtual ~MainWindow() {}
-
- enum UI {
- CONNECT_TO_SERVER,
- LIST_PEERS,
- STREAMING,
- };
-
- virtual void RegisterObserver(MainWndCallback* callback) = 0;
-
- virtual bool IsWindow() = 0;
- virtual void MessageBox(const char* caption, const char* text,
- bool is_error) = 0;
-
- virtual UI current_ui() = 0;
-
- virtual void SwitchToConnectUI() = 0;
- virtual void SwitchToPeerList(const Peers& peers) = 0;
- virtual void SwitchToStreamingUI() = 0;
-
- virtual void StartLocalRenderer(webrtc::VideoTrackInterface* local_video) = 0;
- virtual void StopLocalRenderer() = 0;
- virtual void StartRemoteRenderer(webrtc::VideoTrackInterface* remote_video) = 0;
- virtual void StopRemoteRenderer() = 0;
-
- virtual void QueueUIThreadCallback(int msg_id, void* data) = 0;
-};
-
-#ifdef WIN32
-
-class MainWnd : public MainWindow {
- public:
- static const wchar_t kClassName[];
-
- enum WindowMessages {
- UI_THREAD_CALLBACK = WM_APP + 1,
- };
-
- MainWnd(const char* server, int port, bool auto_connect, bool auto_call);
- ~MainWnd();
-
- bool Create();
- bool Destroy();
- bool PreTranslateMessage(MSG* msg);
-
- virtual void RegisterObserver(MainWndCallback* callback);
- virtual bool IsWindow();
- virtual void SwitchToConnectUI();
- virtual void SwitchToPeerList(const Peers& peers);
- virtual void SwitchToStreamingUI();
- virtual void MessageBox(const char* caption, const char* text,
- bool is_error);
- virtual UI current_ui() { return ui_; }
-
- virtual void StartLocalRenderer(webrtc::VideoTrackInterface* local_video);
- virtual void StopLocalRenderer();
- virtual void StartRemoteRenderer(webrtc::VideoTrackInterface* remote_video);
- virtual void StopRemoteRenderer();
-
- virtual void QueueUIThreadCallback(int msg_id, void* data);
-
- HWND handle() const { return wnd_; }
-
- class VideoRenderer : public webrtc::VideoRendererInterface {
- public:
- VideoRenderer(HWND wnd, int width, int height,
- webrtc::VideoTrackInterface* track_to_render);
- virtual ~VideoRenderer();
-
- void Lock() {
- ::EnterCriticalSection(&buffer_lock_);
- }
-
- void Unlock() {
- ::LeaveCriticalSection(&buffer_lock_);
- }
-
- // VideoRendererInterface implementation
- virtual void SetSize(int width, int height);
- virtual void RenderFrame(const cricket::VideoFrame* frame);
-
- const BITMAPINFO& bmi() const { return bmi_; }
- const uint8* image() const { return image_.get(); }
-
- protected:
- enum {
- SET_SIZE,
- RENDER_FRAME,
- };
-
- HWND wnd_;
- BITMAPINFO bmi_;
- rtc::scoped_ptr<uint8[]> image_;
- CRITICAL_SECTION buffer_lock_;
- rtc::scoped_refptr<webrtc::VideoTrackInterface> rendered_track_;
- };
-
- // A little helper class to make sure we always to proper locking and
- // unlocking when working with VideoRenderer buffers.
- template <typename T>
- class AutoLock {
- public:
- explicit AutoLock(T* obj) : obj_(obj) { obj_->Lock(); }
- ~AutoLock() { obj_->Unlock(); }
- protected:
- T* obj_;
- };
-
- protected:
- enum ChildWindowID {
- EDIT_ID = 1,
- BUTTON_ID,
- LABEL1_ID,
- LABEL2_ID,
- LISTBOX_ID,
- };
-
- void OnPaint();
- void OnDestroyed();
-
- void OnDefaultAction();
-
- bool OnMessage(UINT msg, WPARAM wp, LPARAM lp, LRESULT* result);
-
- static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp);
- static bool RegisterWindowClass();
-
- void CreateChildWindow(HWND* wnd, ChildWindowID id, const wchar_t* class_name,
- DWORD control_style, DWORD ex_style);
- void CreateChildWindows();
-
- void LayoutConnectUI(bool show);
- void LayoutPeerListUI(bool show);
-
- void HandleTabbing();
-
- private:
- rtc::scoped_ptr<VideoRenderer> local_renderer_;
- rtc::scoped_ptr<VideoRenderer> remote_renderer_;
- UI ui_;
- HWND wnd_;
- DWORD ui_thread_id_;
- HWND edit1_;
- HWND edit2_;
- HWND label1_;
- HWND label2_;
- HWND button_;
- HWND listbox_;
- bool destroyed_;
- void* nested_msg_;
- MainWndCallback* callback_;
- static ATOM wnd_class_;
- std::string server_;
- std::string port_;
- bool auto_connect_;
- bool auto_call_;
-};
-#endif // WIN32
-
-#endif // PEERCONNECTION_SAMPLES_CLIENT_MAIN_WND_H_
« no previous file with comments | « talk/examples/peerconnection/client/main.cc ('k') | talk/examples/peerconnection/client/main_wnd.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698