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 #ifndef REMOTING_IOS_UTILITY_H_ 6 #define REMOTING_IOS_UTILITY_H_ 7 8 #import <Foundation/Foundation.h> 9 10 #include "base/memory/scoped_ptr.h" 11 #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h" 12 #include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h" 13 14 #import "remoting/ios/bridge/host_proxy.h" 15 16 typedef struct { 17 scoped_ptr<webrtc::BasicDesktopFrame> image; 18 scoped_ptr<webrtc::DesktopVector> offset; 19 } GLRegion; 20 21 @interface Utility : NSObject 22 23 + (BOOL)isPad; 24 25 + (BOOL)isInLandscapeMode; 26 27 // Return the resolution in respect to orientation 28 + (CGSize)getOrientatedSize:(CGSize)size 29 shouldWidthBeLongestSide:(BOOL)shouldWidthBeLongestSide; 30 31 + (void)showAlert:(NSString*)title message:(NSString*)message; 32 33 + (NSString*)appVersionNumberDisplayString; 34 35 // GL Binding Context requires some specific flags for the type of textures 36 // being drawn 37 + (void)bindTextureForIOS:(GLuint)glName; 38 39 // Sometimes its necessary to read gl errors. This is called in various places 40 // while working in the GL Context 41 + (void)logGLErrorCode:(NSString*)funcName; 42 43 + (void)drawSubRectToGLFromRectOfSize:(const webrtc::DesktopSize&)rectSize 44 subRect:(const webrtc::DesktopRect&)subRect 45 data:(const uint8_t*)data; 46 47 + (void)moveMouse:(HostProxy*)controller at:(const webrtc::DesktopVector&)point; 48 49 + (void)leftClickOn:(HostProxy*)controller 50 at:(const webrtc::DesktopVector&)point; 51 52 + (void)middleClickOn:(HostProxy*)controller 53 at:(const webrtc::DesktopVector&)point; 54 55 + (void)rightClickOn:(HostProxy*)controller 56 at:(const webrtc::DesktopVector&)point; 57 58 + (void)mouseScroll:(HostProxy*)controller 59 at:(const webrtc::DesktopVector&)point 60 delta:(const webrtc::DesktopVector&)delta; 61 62 @end 63 64 #endif // REMOTING_IOS_UTILITY_H_ 65