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

Unified Diff: extensions/renderer/api/display_source/wifi_display/wifi_display_session.h

Issue 1698473004: [chrome.displaySource] Use WDS for Wi-Fi Display implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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
Index: extensions/renderer/api/display_source/wifi_display/wifi_display_session.h
diff --git a/extensions/renderer/api/display_source/wifi_display/wifi_display_session.h b/extensions/renderer/api/display_source/wifi_display/wifi_display_session.h
index 5d1030889d51f5bb93a0308c19b982f9f9bb1ed7..aa5fa3a8091e752147aa46d8c5684b865825e83b 100644
--- a/extensions/renderer/api/display_source/wifi_display/wifi_display_session.h
+++ b/extensions/renderer/api/display_source/wifi_display/wifi_display_session.h
@@ -5,16 +5,26 @@
#ifndef EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_SESSION_H_
#define EXTENSIONS_RENDERER_API_DISPLAY_SOURCE_WIFI_DISPLAY_WIFI_DISPLAY_SESSION_H_
+#include <map>
#include <string>
#include "extensions/common/mojo/wifi_display_session_service.mojom.h"
#include "extensions/renderer/api/display_source/display_source_session.h"
#include "mojo/public/cpp/bindings/binding.h"
+#include "third_party/wds/src/libwds/public/source.h"
+
+namespace base {
+class Timer;
+} // namespace base
namespace extensions {
+class WiFiDisplayMediaManager;
+
class WiFiDisplaySession: public DisplaySourceSession,
- public WiFiDisplaySessionServiceClient {
+ public WiFiDisplaySessionServiceClient,
+ public wds::Peer::Delegate,
+ public wds::Peer::Observer {
public:
explicit WiFiDisplaySession(
const DisplaySourceSessionParams& params);
@@ -31,13 +41,28 @@ class WiFiDisplaySession: public DisplaySourceSession,
void OnError(int32_t type, const mojo::String& description) override;
void OnMessage(const mojo::String& data) override;
+ // wds::Peer::Delegate overrides.
+ uint CreateTimer(int seconds) override;
+ void ReleaseTimer(uint timer_id) override;
+ void SendRTSPData(const std::string& message) override;
+ std::string GetLocalIPAddress() const override;
+ int GetNextCSeq(int* initial_peer_cseq = nullptr) const override;
+
+ // wds::Peer::Observer overrides.
+ void ErrorOccurred(wds::ErrorType error) override;
+ void SessionCompleted() override;
+
// A connection error handler for the mojo objects used in this class.
- void OnConnectionError();
+ void OnIPCConnectionError();
private:
+ scoped_ptr<wds::Source> wfd_source_;
+ scoped_ptr<WiFiDisplayMediaManager> media_manager_;
WiFiDisplaySessionServicePtr service_;
mojo::Binding<WiFiDisplaySessionServiceClient> binding_;
std::string ip_address_;
+ std::map<uint, scoped_ptr<base::Timer>> timers_;
+
DisplaySourceSessionParams params_;
base::WeakPtrFactory<WiFiDisplaySession> weak_factory_;

Powered by Google App Engine
This is Rietveld 408576698