Chromium Code Reviews| 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 <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 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 extern const int kCapabilitiesControlStreamVersion; | |
|
Sergey Ulanov
2013/04/16 08:38:53
This value would not need to be in the header if s
alexeypa (please no reviews)
2013/04/16 22:06:11
Done.
| |
| 18 | 19 |
| 19 // Struct for configuration parameters of a single channel. | 20 // Struct for configuration parameters of a single channel. |
| 20 // Some channels (like video) may have multiple underlying sockets that need | 21 // Some channels (like video) may have multiple underlying sockets that need |
| 21 // to be configured simultaneously. | 22 // to be configured simultaneously. |
| 22 struct ChannelConfig { | 23 struct ChannelConfig { |
| 23 enum TransportType { | 24 enum TransportType { |
| 24 TRANSPORT_STREAM, | 25 TRANSPORT_STREAM, |
| 25 TRANSPORT_MUX_STREAM, | 26 TRANSPORT_MUX_STREAM, |
| 26 TRANSPORT_DATAGRAM, | 27 TRANSPORT_DATAGRAM, |
| 27 TRANSPORT_NONE, | 28 TRANSPORT_NONE, |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 75 const ChannelConfig& video_config() const { return video_config_; } | 76 const ChannelConfig& video_config() const { return video_config_; } |
| 76 void set_audio_config(const ChannelConfig& audio_config) { | 77 void set_audio_config(const ChannelConfig& audio_config) { |
| 77 audio_config_ = audio_config; | 78 audio_config_ = audio_config; |
| 78 } | 79 } |
| 79 const ChannelConfig& audio_config() const { return audio_config_; } | 80 const ChannelConfig& audio_config() const { return audio_config_; } |
| 80 | 81 |
| 81 bool is_audio_enabled() const { | 82 bool is_audio_enabled() const { |
| 82 return audio_config_.transport != ChannelConfig::TRANSPORT_NONE; | 83 return audio_config_.transport != ChannelConfig::TRANSPORT_NONE; |
| 83 } | 84 } |
| 84 | 85 |
| 86 // Returns true if the control channel supports capabilities. | |
| 87 bool supports_capabilities() const { | |
| 88 return control_config_.version >= kCapabilitiesControlStreamVersion; | |
| 89 } | |
| 90 | |
| 85 // Returns a suitable session configuration for use in tests. | 91 // Returns a suitable session configuration for use in tests. |
| 86 static SessionConfig ForTest(); | 92 static SessionConfig ForTest(); |
| 87 | 93 |
| 88 private: | 94 private: |
| 89 ChannelConfig control_config_; | 95 ChannelConfig control_config_; |
| 90 ChannelConfig event_config_; | 96 ChannelConfig event_config_; |
| 91 ChannelConfig video_config_; | 97 ChannelConfig video_config_; |
| 92 ChannelConfig audio_config_; | 98 ChannelConfig audio_config_; |
| 93 }; | 99 }; |
| 94 | 100 |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 172 std::vector<ChannelConfig> control_configs_; | 178 std::vector<ChannelConfig> control_configs_; |
| 173 std::vector<ChannelConfig> event_configs_; | 179 std::vector<ChannelConfig> event_configs_; |
| 174 std::vector<ChannelConfig> video_configs_; | 180 std::vector<ChannelConfig> video_configs_; |
| 175 std::vector<ChannelConfig> audio_configs_; | 181 std::vector<ChannelConfig> audio_configs_; |
| 176 }; | 182 }; |
| 177 | 183 |
| 178 } // namespace protocol | 184 } // namespace protocol |
| 179 } // namespace remoting | 185 } // namespace remoting |
| 180 | 186 |
| 181 #endif // REMOTING_PROTOCOL_SESSION_CONFIG_H_ | 187 #endif // REMOTING_PROTOCOL_SESSION_CONFIG_H_ |
| OLD | NEW |