OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "remoting/client/jni/chromoting_jni_instance.h" | 5 #include "remoting/client/jni/chromoting_jni_instance.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "remoting/client/audio_player.h" | 9 #include "remoting/client/audio_player.h" |
10 #include "remoting/client/jni/chromoting_jni.h" | 10 #include "remoting/client/jni/chromoting_jni.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
68 // asynchronous run, since Java might want it back as soon as we return. | 68 // asynchronous run, since Java might want it back as soon as we return. |
69 ChromotingJni::GetInstance()->network_task_runner()->PostTask(FROM_HERE, | 69 ChromotingJni::GetInstance()->network_task_runner()->PostTask(FROM_HERE, |
70 base::Bind(pin_callback_, pin)); | 70 base::Bind(pin_callback_, pin)); |
71 } | 71 } |
72 | 72 |
73 void ChromotingJniInstance::RedrawDesktop() { | 73 void ChromotingJniInstance::RedrawDesktop() { |
74 if (!ChromotingJni::GetInstance()-> | 74 if (!ChromotingJni::GetInstance()-> |
75 display_task_runner()->BelongsToCurrentThread()) { | 75 display_task_runner()->BelongsToCurrentThread()) { |
76 ChromotingJni::GetInstance()->display_task_runner()->PostTask( | 76 ChromotingJni::GetInstance()->display_task_runner()->PostTask( |
77 FROM_HERE, | 77 FROM_HERE, |
78 base::Bind(&ChromotingJniInstance::RedrawDesktop, | 78 base::Bind(&ChromotingJniInstance::RedrawDesktop, this)); |
79 this)); | |
80 return; | 79 return; |
81 } | 80 } |
82 | 81 |
83 ChromotingJni::GetInstance()->RedrawCanvas(); | 82 ChromotingJni::GetInstance()->RedrawCanvas(); |
84 } | 83 } |
85 | 84 |
85 void ChromotingJniInstance::PerformMouseAction( | |
86 int x, | |
87 int y, | |
88 protocol::MouseEvent_MouseButton button) { | |
garykac
2013/07/20 21:25:26
This should be a MouseEvent so that you have all t
solb
2013/07/22 19:13:48
Since this is being called from the JNI binding in
| |
89 if(!ChromotingJni::GetInstance()-> | |
90 network_task_runner()->BelongsToCurrentThread()) { | |
91 ChromotingJni::GetInstance()->network_task_runner()->PostTask( | |
92 FROM_HERE, | |
93 base::Bind(&ChromotingJniInstance::PerformMouseAction, | |
94 this, | |
95 x, | |
96 y, | |
97 button)); | |
98 return; | |
99 } | |
100 | |
101 protocol::MouseEvent action; | |
102 action.set_x(x); | |
103 action.set_y(y); | |
104 if (button!=protocol::MouseEvent::BUTTON_UNDEFINED) { | |
105 action.set_button( | |
106 static_cast<protocol::MouseEvent_MouseButton>(abs(button))); | |
garykac
2013/07/20 21:25:26
abs(button)...
This whole static_cast ickiness go
solb
2013/07/22 19:13:48
I accomplished this with a boolean flag, as aforem
| |
107 action.set_button_down(button > 0); | |
108 } | |
109 | |
110 connection_->input_stub()->InjectMouseEvent(action); | |
111 } | |
112 | |
86 void ChromotingJniInstance::OnConnectionState( | 113 void ChromotingJniInstance::OnConnectionState( |
87 protocol::ConnectionToHost::State state, | 114 protocol::ConnectionToHost::State state, |
88 protocol::ErrorCode error) { | 115 protocol::ErrorCode error) { |
89 if (!ChromotingJni::GetInstance()-> | 116 if (!ChromotingJni::GetInstance()-> |
90 ui_task_runner()->BelongsToCurrentThread()) { | 117 ui_task_runner()->BelongsToCurrentThread()) { |
91 ChromotingJni::GetInstance()-> | 118 ChromotingJni::GetInstance()-> |
92 ui_task_runner()->PostTask( | 119 ui_task_runner()->PostTask( |
93 FROM_HERE, | 120 FROM_HERE, |
94 base::Bind(&ChromotingJniInstance::OnConnectionState, | 121 base::Bind(&ChromotingJniInstance::OnConnectionState, |
95 this, | 122 this, |
(...skipping 10 matching lines...) Expand all Loading... | |
106 } | 133 } |
107 | 134 |
108 void ChromotingJniInstance::SetCapabilities(const std::string& capabilities) {} | 135 void ChromotingJniInstance::SetCapabilities(const std::string& capabilities) {} |
109 | 136 |
110 void ChromotingJniInstance::SetPairingResponse( | 137 void ChromotingJniInstance::SetPairingResponse( |
111 const protocol::PairingResponse& response) { | 138 const protocol::PairingResponse& response) { |
112 NOTIMPLEMENTED(); | 139 NOTIMPLEMENTED(); |
113 } | 140 } |
114 | 141 |
115 protocol::ClipboardStub* ChromotingJniInstance::GetClipboardStub() { | 142 protocol::ClipboardStub* ChromotingJniInstance::GetClipboardStub() { |
116 NOTIMPLEMENTED(); | 143 return this; |
117 return NULL; | |
118 } | 144 } |
119 | 145 |
120 protocol::CursorShapeStub* ChromotingJniInstance::GetCursorShapeStub() { | 146 protocol::CursorShapeStub* ChromotingJniInstance::GetCursorShapeStub() { |
121 NOTIMPLEMENTED(); | 147 return this; |
122 return NULL; | |
123 } | 148 } |
124 | 149 |
125 scoped_ptr<protocol::ThirdPartyClientAuthenticator::TokenFetcher> | 150 scoped_ptr<protocol::ThirdPartyClientAuthenticator::TokenFetcher> |
126 ChromotingJniInstance::GetTokenFetcher(const std::string& host_public_key) { | 151 ChromotingJniInstance::GetTokenFetcher(const std::string& host_public_key) { |
127 // Return null to indicate that third-party authentication is unsupported. | 152 // Return null to indicate that third-party authentication is unsupported. |
128 return scoped_ptr<protocol::ThirdPartyClientAuthenticator::TokenFetcher>(); | 153 return scoped_ptr<protocol::ThirdPartyClientAuthenticator::TokenFetcher>(); |
129 } | 154 } |
130 | 155 |
156 void ChromotingJniInstance::InjectClipboardEvent( | |
157 const protocol::ClipboardEvent& event) { | |
158 NOTIMPLEMENTED(); | |
159 } | |
160 | |
161 void ChromotingJniInstance::SetCursorShape( | |
162 const protocol::CursorShapeInfo& shape) { | |
163 NOTIMPLEMENTED(); | |
164 } | |
165 | |
131 void ChromotingJniInstance::ConnectToHostOnDisplayThread() { | 166 void ChromotingJniInstance::ConnectToHostOnDisplayThread() { |
132 DCHECK(ChromotingJni::GetInstance()-> | 167 DCHECK(ChromotingJni::GetInstance()-> |
133 display_task_runner()->BelongsToCurrentThread()); | 168 display_task_runner()->BelongsToCurrentThread()); |
134 | 169 |
135 frame_consumer_ = new FrameConsumerProxy( | 170 frame_consumer_ = new FrameConsumerProxy( |
136 ChromotingJni::GetInstance()->display_task_runner()); | 171 ChromotingJni::GetInstance()->display_task_runner()); |
137 view_.reset(new JniFrameConsumer()); | 172 view_.reset(new JniFrameConsumer()); |
138 view_weak_factory_.reset(new base::WeakPtrFactory<JniFrameConsumer>( | 173 view_weak_factory_.reset(new base::WeakPtrFactory<JniFrameConsumer>( |
139 view_.get())); | 174 view_.get())); |
140 frame_consumer_->Attach(view_weak_factory_->GetWeakPtr()); | 175 frame_consumer_->Attach(view_weak_factory_->GetWeakPtr()); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
227 pairable, | 262 pairable, |
228 callback)); | 263 callback)); |
229 return; | 264 return; |
230 } | 265 } |
231 | 266 |
232 pin_callback_ = callback; | 267 pin_callback_ = callback; |
233 ChromotingJni::GetInstance()->DisplayAuthenticationPrompt(); | 268 ChromotingJni::GetInstance()->DisplayAuthenticationPrompt(); |
234 } | 269 } |
235 | 270 |
236 } // namespace remoting | 271 } // namespace remoting |
OLD | NEW |