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

Side by Side Diff: remoting/ios/bridge/client_proxy.mm

Issue 475333004: Remove old Chromoting iOS client (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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 unified diff | Download patch
« no previous file with comments | « remoting/ios/bridge/client_proxy.h ('k') | remoting/ios/bridge/client_proxy_delegate.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #if !defined(__has_feature) || !__has_feature(objc_arc)
6 #error "This file requires ARC support."
7 #endif
8
9 #include "remoting/ios/bridge/client_proxy.h"
10
11 #import "remoting/ios/data_store.h"
12 #import "remoting/ios/host_preferences.h"
13 #import "remoting/ios/bridge/client_proxy_delegate_wrapper.h"
14
15 namespace {
16 // The value indicating a successful connection has been established via a call
17 // to ReportConnectionStatus
18 const static int kSuccessfulConnection = 3;
19
20 // Translate a connection status code integer to a NSString description
21 NSString* GetStatusMsgFromInteger(NSInteger code) {
22 switch (code) {
23 case 0: // INITIALIZING
24 return @"Initializing connection";
25 case 1: // CONNECTING
26 return @"Connecting";
27 case 2: // AUTHENTICATED
28 return @"Authenticated";
29 case 3: // CONNECTED
30 return @"Connected";
31 case 4: // FAILED
32 return @"Connection Failed";
33 case 5: // CLOSED
34 return @"Connection closed";
35 default:
36 return @"Unknown connection state";
37 }
38 }
39
40 // Translate a connection error code integer to a NSString description
41 NSString* GetErrorMsgFromInteger(NSInteger code) {
42 switch (code) {
43 case 1: // PEER_IS_OFFLINE
44 return @"Requested host is offline.";
45 case 2: // SESSION_REJECTED
46 return @"Session was rejected by the host.";
47 case 3: // INCOMPATIBLE_PROTOCOL
48 return @"Incompatible Protocol.";
49 case 4: // AUTHENTICATION_FAILED
50 return @"Authentication Failed.";
51 case 5: // CHANNEL_CONNECTION_ERROR
52 return @"Channel Connection Error";
53 case 6: // SIGNALING_ERROR
54 return @"Signaling Error";
55 case 7: // SIGNALING_TIMEOUT
56 return @"Signaling Timeout";
57 case 8: // HOST_OVERLOAD
58 return @"Host Overload";
59 case 9: // UNKNOWN_ERROR
60 return @"An unknown error has occurred, preventing the session "
61 "from opening.";
62 default:
63 return @"An unknown error code has occurred.";
64 }
65 }
66
67 } // namespace
68
69 namespace remoting {
70
71 ClientProxy::ClientProxy(ClientProxyDelegateWrapper* wrapper) {
72 delegate_ = [wrapper delegate];
73 }
74
75 void ClientProxy::ReportConnectionStatus(
76 protocol::ConnectionToHost::State state,
77 protocol::ErrorCode error) {
78 DCHECK(delegate_);
79 if (state <= kSuccessfulConnection && error == protocol::ErrorCode::OK) {
80 // Report Progress
81 [delegate_ connectionStatus:GetStatusMsgFromInteger(state)];
82
83 if (state == kSuccessfulConnection) {
84 [delegate_ connected];
85 }
86 } else {
87 [delegate_ connectionStatus:GetStatusMsgFromInteger(state)];
88 if (error != protocol::ErrorCode::OK) {
89 [delegate_ connectionFailed:GetErrorMsgFromInteger(error)];
90 }
91 }
92 }
93
94 void ClientProxy::DisplayAuthenticationPrompt(bool pairing_supported) {
95 DCHECK(delegate_);
96 [delegate_ requestHostPin:pairing_supported];
97 }
98
99 void ClientProxy::CommitPairingCredentials(const std::string& hostId,
100 const std::string& pairId,
101 const std::string& pairSecret) {
102 DCHECK(delegate_);
103 NSString* nsHostId = [[NSString alloc] initWithUTF8String:hostId.c_str()];
104 NSString* nsPairId = [[NSString alloc] initWithUTF8String:pairId.c_str()];
105 NSString* nsPairSecret =
106 [[NSString alloc] initWithUTF8String:pairSecret.c_str()];
107
108 const HostPreferences* hostPrefs =
109 [[DataStore sharedStore] getHostForId:nsHostId];
110 if (hostPrefs == nil) {
111 hostPrefs = [[DataStore sharedStore] createHost:nsHostId];
112 }
113 if (hostPrefs) {
114 hostPrefs.pairId = nsPairId;
115 hostPrefs.pairSecret = nsPairSecret;
116
117 [[DataStore sharedStore] saveChanges];
118 }
119 }
120
121 void ClientProxy::RedrawCanvas(const webrtc::DesktopSize& view_size,
122 webrtc::DesktopFrame* buffer,
123 const webrtc::DesktopRegion& region) {
124 DCHECK(delegate_);
125 std::vector<webrtc::DesktopRect> regions;
126
127 for (webrtc::DesktopRegion::Iterator i(region); !i.IsAtEnd(); i.Advance()) {
128 const webrtc::DesktopRect& rect(i.rect());
129
130 regions.push_back(webrtc::DesktopRect::MakeXYWH(
131 rect.left(), rect.top(), rect.width(), rect.height()));
132 }
133
134 [delegate_ applyFrame:view_size
135 stride:buffer->stride()
136 data:buffer->data()
137 regions:regions];
138 }
139
140 void ClientProxy::UpdateCursorShape(
141 const protocol::CursorShapeInfo& cursor_shape) {
142 DCHECK(delegate_);
143 [delegate_ applyCursor:webrtc::DesktopSize(cursor_shape.width(),
144 cursor_shape.height())
145 hotspot:webrtc::DesktopVector(cursor_shape.hotspot_x(),
146 cursor_shape.hotspot_y())
147 cursorData:(uint8_t*)cursor_shape.data().c_str()];
148 }
149
150 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/ios/bridge/client_proxy.h ('k') | remoting/ios/bridge/client_proxy_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698