OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef REMOTING_PROTOCOL_SESSION_CONFIG_H_ | 5 #ifndef REMOTING_PROTOCOL_SESSION_CONFIG_H_ |
6 #define REMOTING_PROTOCOL_SESSION_CONFIG_H_ | 6 #define REMOTING_PROTOCOL_SESSION_CONFIG_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 #include <string> | 9 #include <string> |
10 | 10 |
11 #include "base/basictypes.h" | 11 #include "base/basictypes.h" |
12 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
13 | 13 |
14 namespace remoting { | 14 namespace remoting { |
15 namespace protocol { | 15 namespace protocol { |
16 | 16 |
17 extern const int kDefaultStreamVersion; | 17 extern const int kDefaultStreamVersion; |
18 | 18 |
19 // Struct for configuration parameters of a single channel. | 19 // Struct for configuration parameters of a single channel. |
20 // Some channels (like video) may have multiple underlying sockets that need | 20 // Some channels (like video) may have multiple underlying sockets that need |
21 // to be configured simultaneously. | 21 // to be configured simultaneously. |
22 struct ChannelConfig { | 22 struct ChannelConfig { |
23 enum TransportType { | 23 enum TransportType { |
24 TRANSPORT_STREAM, | 24 TRANSPORT_STREAM, |
25 TRANSPORT_MUX_STREAM, | 25 TRANSPORT_MUX_STREAM, |
26 TRANSPORT_QUIC_STREAM, | |
27 TRANSPORT_DATAGRAM, | 26 TRANSPORT_DATAGRAM, |
28 TRANSPORT_NONE, | 27 TRANSPORT_NONE, |
29 }; | 28 }; |
30 | 29 |
31 enum Codec { | 30 enum Codec { |
32 CODEC_UNDEFINED, // Used for event and control channels. | 31 CODEC_UNDEFINED, // Used for event and control channels. |
33 CODEC_VERBATIM, | 32 CODEC_VERBATIM, |
34 CODEC_ZIP, | 33 CODEC_ZIP, |
35 CODEC_VP8, | 34 CODEC_VP8, |
36 CODEC_VP9, | 35 CODEC_VP9, |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 // All fields below should be ignored when protocol() is set to WEBRTC. | 98 // All fields below should be ignored when protocol() is set to WEBRTC. |
100 const ChannelConfig& control_config() const; | 99 const ChannelConfig& control_config() const; |
101 const ChannelConfig& event_config() const; | 100 const ChannelConfig& event_config() const; |
102 const ChannelConfig& video_config() const; | 101 const ChannelConfig& video_config() const; |
103 const ChannelConfig& audio_config() const; | 102 const ChannelConfig& audio_config() const; |
104 | 103 |
105 bool is_audio_enabled() const { | 104 bool is_audio_enabled() const { |
106 return audio_config_.transport != ChannelConfig::TRANSPORT_NONE; | 105 return audio_config_.transport != ChannelConfig::TRANSPORT_NONE; |
107 } | 106 } |
108 | 107 |
109 // Returns true if any of the channels is using QUIC. | |
110 bool is_using_quic() const; | |
111 | |
112 private: | 108 private: |
113 SessionConfig(Protocol protocol); | 109 SessionConfig(Protocol protocol); |
114 | 110 |
115 const Protocol protocol_; | 111 const Protocol protocol_; |
116 | 112 |
117 ChannelConfig control_config_; | 113 ChannelConfig control_config_; |
118 ChannelConfig event_config_; | 114 ChannelConfig event_config_; |
119 ChannelConfig video_config_; | 115 ChannelConfig video_config_; |
120 ChannelConfig audio_config_; | 116 ChannelConfig audio_config_; |
121 }; | 117 }; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 std::list<ChannelConfig> video_configs_; | 202 std::list<ChannelConfig> video_configs_; |
207 std::list<ChannelConfig> audio_configs_; | 203 std::list<ChannelConfig> audio_configs_; |
208 | 204 |
209 bool vp9_experiment_enabled_ = false; | 205 bool vp9_experiment_enabled_ = false; |
210 }; | 206 }; |
211 | 207 |
212 } // namespace protocol | 208 } // namespace protocol |
213 } // namespace remoting | 209 } // namespace remoting |
214 | 210 |
215 #endif // REMOTING_PROTOCOL_SESSION_CONFIG_H_ | 211 #endif // REMOTING_PROTOCOL_SESSION_CONFIG_H_ |
OLD | NEW |