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

Unified Diff: remoting/ios/utility.mm

Issue 186733007: iOS Chromoting Client (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/ios/utility.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/ios/utility.mm
diff --git a/remoting/ios/utility.mm b/remoting/ios/utility.mm
new file mode 100644
index 0000000000000000000000000000000000000000..212299783b7015b3fe1bb38b183cacf55ee0e723
--- /dev/null
+++ b/remoting/ios/utility.mm
@@ -0,0 +1,150 @@
+// 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.
+
+#if !defined(__has_feature) || !__has_feature(objc_arc)
+#error "This file requires ARC support."
+#endif
+
+#import "Utility.h"
+
+@implementation Utility
+
++ (BOOL)isPad {
+ return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
+}
+
++ (BOOL)isInLandscapeMode {
+ UIInterfaceOrientation orientation =
+ [UIApplication sharedApplication].statusBarOrientation;
+
+ if ((orientation == UIInterfaceOrientationLandscapeLeft) ||
+ (orientation == UIInterfaceOrientationLandscapeRight)) {
+ return YES;
+ }
+ return NO;
+}
+
++ (CGSize)getOrientatedSize:(CGSize)size
+ shouldWidthBeLongestSide:(BOOL)shouldWidthBeLongestSide {
+ if (shouldWidthBeLongestSide && (size.height > size.width)) {
+ return CGSizeMake(size.height, size.width);
+ }
+ return size;
+}
+
++ (void)showAlert:(NSString*)title message:(NSString*)message {
+ UIAlertView* alert;
+ alert = [[UIAlertView alloc] init];
+ alert.title = title;
+ alert.message = message;
+ alert.delegate = nil;
+ [alert addButtonWithTitle:@"OK"];
+ [alert show];
+}
+
++ (NSString*)appVersionNumberDisplayString {
+ NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];
+
+ NSString* majorVersion =
+ [infoDictionary objectForKey:@"CFBundleShortVersionString"];
+ NSString* minorVersion = [infoDictionary objectForKey:@"CFBundleVersion"];
+
+ return [NSString
+ stringWithFormat:@"Version %@ (%@)", majorVersion, minorVersion];
+}
+
++ (void)bindTextureForIOS:(GLuint)glName {
+ glBindTexture(GL_TEXTURE_2D, glName);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+}
+
++ (void)logGLErrorCode:(NSString*)funcName {
+ GLenum errorCode = 1;
+
+ while (errorCode != 0) {
+ errorCode = glGetError(); // I don't know why this is returning an error
+ // on the first call to this function, but if I
+ // don't read it, then stuff doesn't work...
+#if DEBUG
+ if (errorCode != 0) {
+ NSLog(@"glerror in %@: %X", funcName, errorCode);
+ }
+#endif // DEBUG
+ }
+}
+
++ (void)drawSubRectToGLFromRectOfSize:(const webrtc::DesktopSize&)rectSize
+ subRect:(const webrtc::DesktopRect&)subRect
+ data:(const uint8_t*)data {
+ DCHECK(rectSize.width() >= subRect.width());
+ DCHECK(rectSize.height() >= subRect.height());
+ DCHECK(rectSize.width() >= (subRect.left() + subRect.width()));
+ DCHECK(rectSize.height() >= (subRect.top() + subRect.height()));
+ DCHECK(data);
+
+ glTexSubImage2D(GL_TEXTURE_2D,
+ 0,
+ subRect.left(),
+ subRect.top(),
+ subRect.width(),
+ subRect.height(),
+ GL_RGBA,
+ GL_UNSIGNED_BYTE,
+ data);
+}
+
++ (void)moveMouse:(HostProxy*)controller
+ at:(const webrtc::DesktopVector&)point {
+ [controller mouseAction:point
+ wheelDelta:webrtc::DesktopVector(0, 0)
+ whichButton:0
+ buttonDown:NO];
+}
+
++ (void)leftClickOn:(HostProxy*)controller
+ at:(const webrtc::DesktopVector&)point {
+ [controller mouseAction:point
+ wheelDelta:webrtc::DesktopVector(0, 0)
+ whichButton:1
+ buttonDown:YES];
+ [controller mouseAction:point
+ wheelDelta:webrtc::DesktopVector(0, 0)
+ whichButton:1
+ buttonDown:NO];
+}
+
++ (void)middleClickOn:(HostProxy*)controller
+ at:(const webrtc::DesktopVector&)point {
+ [controller mouseAction:point
+ wheelDelta:webrtc::DesktopVector(0, 0)
+ whichButton:2
+ buttonDown:YES];
+ [controller mouseAction:point
+ wheelDelta:webrtc::DesktopVector(0, 0)
+ whichButton:2
+ buttonDown:NO];
+}
+
++ (void)rightClickOn:(HostProxy*)controller
+ at:(const webrtc::DesktopVector&)point {
+ [controller mouseAction:point
+ wheelDelta:webrtc::DesktopVector(0, 0)
+ whichButton:3
+ buttonDown:YES];
+ [controller mouseAction:point
+ wheelDelta:webrtc::DesktopVector(0, 0)
+ whichButton:3
+ buttonDown:NO];
+}
+
++ (void)mouseScroll:(HostProxy*)controller
+ at:(const webrtc::DesktopVector&)point
+ delta:(const webrtc::DesktopVector&)delta {
+ [controller mouseAction:point wheelDelta:delta whichButton:0 buttonDown:NO];
+}
+
+@end
« no previous file with comments | « remoting/ios/utility.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698