Index: remoting/ios/bridge/client_controller.h |
diff --git a/remoting/ios/bridge/client_controller.h b/remoting/ios/bridge/client_controller.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..497d696faf01bb75bf3f043b509e726083999a5d |
--- /dev/null |
+++ b/remoting/ios/bridge/client_controller.h |
@@ -0,0 +1,106 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef REMOTING_IOS_BRIDGE_CHROMOTING_INTERFACE_H_ |
+#define REMOTING_IOS_BRIDGE_CHROMOTING_INTERFACE_H_ |
+ |
+#import <Foundation/Foundation.h> |
+#import <UIKit/UIKit.h> |
+ |
+#include <vector> |
+ |
+#include "base/memory/ref_counted.h" |
+#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h" |
+ |
+namespace remoting { |
+class ClientBridge; |
+} // namespace remoting |
+ |
+// Contract to provide for callbacks from an async communication channel |
+// by the C++ code base to OBJ_C++. |
+@protocol ClientControllerDelegate<NSObject> |
+// HOST request for client to input their PIN. |
+- (void)requestHostPin:(BOOL)pairingSupported; |
dcaiafa
2014/03/19 01:14:15
nit: Add blank line between methods.
aboone
2014/03/21 16:42:07
Done.
|
+// HOST notification that a connection has been successfully opened. |
+- (void)connected; |
+// HOST notification that a connection has failed. |
+- (void)connectionFailed:(NSString*)errorMessage; |
+// HOST notification for a change in connections status. |
+- (void)connectionStatus:(NSString*)statusMessage; |
+// A new Canvas (desktop) update has arrived. |
+- (void)applyFrame:(const webrtc::DesktopSize&)size |
+ stride:(NSInteger)stride |
+ data:(uint8_t*)data |
+ regions:(const std::vector<webrtc::DesktopRect>&)regions; |
+// A new Cursor (mouse) update has arrived. |
+- (void)applyCursor:(const webrtc::DesktopSize&)size |
+ hotspot:(const webrtc::DesktopVector&)hotspot |
+ cursorData:(uint8_t*)data; |
+@end |
+ |
+// ClientController is part of a bridge from the Chromoting C++ code base (HOST) |
+// to an iOS OBJ_C++ UI application (CLIENT) front end. ClientController |
+// represents the CLIENT side of the bridge, and communicates with a C/OBJ-C |
+// implimented class ClientBridge to process input/output with the |
dcaiafa
2014/03/19 01:14:15
nit: spelling.
aboone
2014/03/21 16:42:07
Done.
|
+// (HOST). The majority of the functions are simply pass through. |
+@interface ClientController : NSObject { |
+ @private |
+ scoped_refptr<remoting::ClientBridge> _bridge; |
+ __weak id<ClientControllerDelegate> _delegate; |
+ BOOL _isConnected; |
+} |
+ |
+// Accepts credentials from CLIENT and sends them to the HOST as an async |
+// process. |
+- (void)connectToHost:(NSString*)username |
+ authToken:(NSString*)token |
+ jabberId:(NSString*)jid |
+ hostId:(NSString*)hostId |
+ publicKey:(NSString*)hostPublicKey |
+ delegate:(id<ClientControllerDelegate>)delegate; |
+ |
+// Initiate a disconnection by CLIENT |
+- (void)disconnectFromHost; |
+ |
+// TRUE when a connection has been established successfully. |
+- (BOOL)isConnected; |
+ |
+// Request from HOST to fetch the User's PIN for host |
+- (void)displayAuthenticationPrompt:(BOOL)pairingSupported; |
+ |
+// Request from HOST to store User's credentials |
+- (void)commitPairinedentials:(NSString*)hostId |
+ pairId:(NSString*)pairId |
+ secret:(NSString*)hostSecret; |
+ |
+// Report errors from HOST |
+- (void)reportConnectionStatus:(NSInteger)state error:(NSInteger)error; |
+ |
+// Report from CLIENT of mouse input |
+- (void)mouseAction:(const webrtc::DesktopVector&)position |
+ wheelDelta:(const webrtc::DesktopVector&)wheelDelta |
+ whichButton:(NSInteger)buttonPressed |
+ buttonDown:(BOOL)buttonIsDown; |
+ |
+// Report from CLIENT of keyboard input |
+- (void)keyboardAction:(NSInteger)keyCode keyDown:(BOOL)keyIsDown; |
+ |
+// Report from CLIENT with the user's PIN. Occurs after HOST has called |
+// displayAuthenticationPrompt |
+- (void)authenticationResponse:(NSString*)pin createPair:(BOOL)createPair; |
+ |
+// HOST has delivered a Cursor (mouse) update |
+- (void)updateCursorShape:(const webrtc::DesktopSize&)size |
+ hotspot:(const webrtc::DesktopVector&)hotspot |
+ cursorData:(uint8_t*)data; |
+ |
+// HOST has delivered a Canvas (desktop) update |
+- (void)updateImageBuffer:(const webrtc::DesktopSize&)size |
+ stride:(NSInteger)stride |
+ data:(uint8_t*)data |
+ regions:(const std::vector<webrtc::DesktopRect>&)regions; |
+ |
+@end |
+ |
+#endif // REMOTING_IOS_BRIDGE_CHROMOTING_INTERFACE_H_ |