further renaming
This commit is contained in:
1 parent
9e41537554
commit
ee03f6b866
353 files changed
+14
-15
No files matched your search
@@ -0,0 +1,29 @@
|
||||
//
|
||||
// Logger.h
|
||||
// Moonlight
|
||||
//
|
||||
// Created by Diego Waxemberg on 2/10/15.
|
||||
// Copyright (c) 2015 Moonlight Stream. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef Limelight_Logger_h
|
||||
#define Limelight_Logger_h
|
||||
|
||||
#import <stdarg.h>
|
||||
|
||||
typedef enum {
|
||||
LOG_D,
|
||||
LOG_I,
|
||||
LOG_W,
|
||||
LOG_E
|
||||
} LogLevel;
|
||||
|
||||
#define PRFX_DEBUG @"<DEBUG>"
|
||||
#define PRFX_INFO @"<INFO>"
|
||||
#define PRFX_WARN @"<WARN>"
|
||||
#define PRFX_ERROR @"<ERROR>"
|
||||
|
||||
void Log(LogLevel level, NSString* fmt, ...);
|
||||
void LogTag(LogLevel level, NSString* tag, NSString* fmt, ...);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,61 @@
|
||||
//
|
||||
// Logger.m
|
||||
// Moonlight
|
||||
//
|
||||
// Created by Diego Waxemberg on 2/10/15.
|
||||
// Copyright (c) 2015 Moonlight Stream. All rights reserved.
|
||||
//
|
||||
|
||||
#import "Logger.h"
|
||||
|
||||
static LogLevel LoggerLogLevel = LOG_I;
|
||||
|
||||
void LogTagv(LogLevel level, NSString* tag, NSString* fmt, va_list args);
|
||||
|
||||
void Log(LogLevel level, NSString* fmt, ...) {
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
LogTagv(level, NULL, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void LogTag(LogLevel level, NSString* tag, NSString* fmt, ...) {
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
LogTagv(level, tag, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void LogTagv(LogLevel level, NSString* tag, NSString* fmt, va_list args) {
|
||||
NSString* levelPrefix = @"";
|
||||
|
||||
if (level < LoggerLogLevel) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch(level) {
|
||||
case LOG_D:
|
||||
levelPrefix = PRFX_DEBUG;
|
||||
break;
|
||||
case LOG_I:
|
||||
levelPrefix = PRFX_INFO;
|
||||
break;
|
||||
case LOG_W:
|
||||
levelPrefix = PRFX_WARN;
|
||||
break;
|
||||
case LOG_E:
|
||||
levelPrefix = PRFX_ERROR;
|
||||
break;
|
||||
default:
|
||||
levelPrefix = @"";
|
||||
assert(false);
|
||||
break;
|
||||
}
|
||||
NSString* prefixedString;
|
||||
if (tag) {
|
||||
prefixedString = [NSString stringWithFormat:@"%@ (%@) %@", levelPrefix, tag, fmt];
|
||||
} else {
|
||||
prefixedString = [NSString stringWithFormat:@"%@ %@", levelPrefix, fmt];
|
||||
}
|
||||
NSLogv(prefixedString, args);
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
//
|
||||
// Utils.h
|
||||
// Moonlight
|
||||
//
|
||||
// Created by Diego Waxemberg on 10/20/14.
|
||||
// Copyright (c) 2014 Moonlight Stream. All rights reserved.
|
||||
//
|
||||
|
||||
@interface Utils : NSObject
|
||||
|
||||
typedef NS_ENUM(int, PairState) {
|
||||
PairStateUnknown,
|
||||
PairStateUnpaired,
|
||||
PairStatePaired
|
||||
};
|
||||
|
||||
typedef NS_ENUM(int, State) {
|
||||
StateUnknown,
|
||||
StateOffline,
|
||||
StateOnline
|
||||
};
|
||||
|
||||
FOUNDATION_EXPORT NSString *const deviceName;
|
||||
|
||||
+ (NSData*) randomBytes:(NSInteger)length;
|
||||
+ (NSString*) bytesToHex:(NSData*)data;
|
||||
+ (NSData*) hexToBytes:(NSString*) hex;
|
||||
+ (void) addHelpOptionToDialog:(UIAlertController*)dialog;
|
||||
+ (BOOL) isActiveNetworkVPN;
|
||||
+ (BOOL) parseAddressPortString:(NSString*)addressPort address:(NSRange*)address port:(NSRange*)port;
|
||||
+ (NSString*) addressPortStringToAddress:(NSString*)addressPort;
|
||||
+ (unsigned short) addressPortStringToPort:(NSString*)addressPort;
|
||||
+ (NSString*) addressAndPortToAddressPortString:(NSString*)address port:(unsigned short)port;
|
||||
|
||||
#if !TARGET_OS_TV
|
||||
+ (void) launchUrl:(NSString*)urlString;
|
||||
#endif
|
||||
|
||||
@end
|
||||
|
||||
@interface NSString (NSStringWithTrim)
|
||||
|
||||
- (NSString*) trim;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,158 @@
|
||||
//
|
||||
// Utils.m
|
||||
// Moonlight
|
||||
//
|
||||
// Created by Diego Waxemberg on 10/20/14.
|
||||
// Copyright (c) 2014 Moonlight Stream. All rights reserved.
|
||||
//
|
||||
|
||||
#import "Utils.h"
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <netinet/in.h>
|
||||
#include <netdb.h>
|
||||
#import "LocalizationHelper.h"
|
||||
|
||||
@implementation Utils
|
||||
NSString *const deviceName = @"roth";
|
||||
|
||||
+ (NSData*) randomBytes:(NSInteger)length {
|
||||
char* bytes = malloc(length);
|
||||
arc4random_buf(bytes, length);
|
||||
NSData* randomData = [NSData dataWithBytes:bytes length:length];
|
||||
free(bytes);
|
||||
return randomData;
|
||||
}
|
||||
|
||||
+ (NSData*) hexToBytes:(NSString*) hex {
|
||||
unsigned long len = [hex length];
|
||||
NSMutableData* data = [NSMutableData dataWithCapacity:len / 2];
|
||||
char byteChars[3] = {'\0','\0','\0'};
|
||||
unsigned long wholeByte;
|
||||
|
||||
const char *chars = [hex UTF8String];
|
||||
int i = 0;
|
||||
while (i < len) {
|
||||
byteChars[0] = chars[i++];
|
||||
byteChars[1] = chars[i++];
|
||||
wholeByte = strtoul(byteChars, NULL, 16);
|
||||
[data appendBytes:&wholeByte length:1];
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
+ (NSString*) bytesToHex:(NSData*)data {
|
||||
const unsigned char* bytes = [data bytes];
|
||||
NSMutableString *hex = [[NSMutableString alloc] init];
|
||||
for (int i = 0; i < [data length]; i++) {
|
||||
[hex appendFormat:@"%02X" , bytes[i]];
|
||||
}
|
||||
return hex;
|
||||
}
|
||||
|
||||
+ (BOOL)isActiveNetworkVPN {
|
||||
NSDictionary *dict = CFBridgingRelease(CFNetworkCopySystemProxySettings());
|
||||
NSArray *keys = [dict[@"__SCOPED__"] allKeys];
|
||||
for (NSString *key in keys) {
|
||||
if ([key containsString:@"tap"] ||
|
||||
[key containsString:@"tun"] ||
|
||||
[key containsString:@"ppp"] ||
|
||||
[key containsString:@"ipsec"]) {
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
#if !TARGET_OS_TV
|
||||
+ (void) launchUrl:(NSString*)urlString {
|
||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString] options:@{} completionHandler:nil];
|
||||
}
|
||||
#endif
|
||||
|
||||
+ (void) addHelpOptionToDialog:(UIAlertController*)dialog {
|
||||
#if !TARGET_OS_TV
|
||||
// tvOS doesn't have a browser
|
||||
[dialog addAction:[UIAlertAction actionWithTitle:[LocalizationHelper localizedStringForKey:@"Help"] style:UIAlertActionStyleDefault handler:^(UIAlertAction* action){
|
||||
[Utils launchUrl:@"https://github.com/moonlight-stream/moonlight-docs/wiki/Troubleshooting"];
|
||||
}]];
|
||||
#endif
|
||||
}
|
||||
|
||||
+ (BOOL) parseAddressPortString:(NSString*)addressPort address:(NSRange*)address port:(NSRange*)port {
|
||||
if (![addressPort containsString:@":"]) {
|
||||
// If there's no port or IPv6 separator, the whole thing is an address
|
||||
*address = NSMakeRange(0, [addressPort length]);
|
||||
*port = NSMakeRange(NSNotFound, 0);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
NSInteger locationOfOpeningBracket = [addressPort rangeOfString:@"["].location;
|
||||
NSInteger locationOfClosingBracket = [addressPort rangeOfString:@"]"].location;
|
||||
if (locationOfOpeningBracket != NSNotFound || locationOfClosingBracket != NSNotFound) {
|
||||
// If we have brackets, it's an IPv6 address
|
||||
if (locationOfOpeningBracket == NSNotFound || locationOfClosingBracket == NSNotFound ||
|
||||
locationOfClosingBracket < locationOfOpeningBracket) {
|
||||
// Invalid address format
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// Cut at the brackets
|
||||
*address = NSMakeRange(locationOfOpeningBracket + 1, locationOfClosingBracket - locationOfOpeningBracket - 1);
|
||||
}
|
||||
else {
|
||||
// It's an IPv4 address, so just cut at the port separator
|
||||
*address = NSMakeRange(0, [addressPort rangeOfString:@":"].location);
|
||||
}
|
||||
|
||||
NSUInteger remainingStringLocation = address->location + address->length;
|
||||
NSRange remainingStringRange = NSMakeRange(remainingStringLocation, [addressPort length] - remainingStringLocation);
|
||||
NSInteger locationOfPortSeparator = [addressPort rangeOfString:@":" options:0 range:remainingStringRange].location;
|
||||
if (locationOfPortSeparator != NSNotFound) {
|
||||
*port = NSMakeRange(locationOfPortSeparator + 1, [addressPort length] - locationOfPortSeparator - 1);
|
||||
}
|
||||
else {
|
||||
*port = NSMakeRange(NSNotFound, 0);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+ (NSString*) addressPortStringToAddress:(NSString*)addressPort {
|
||||
NSRange addressRange, portRange;
|
||||
if (![self parseAddressPortString:addressPort address:&addressRange port:&portRange]) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
return [addressPort substringWithRange:addressRange];
|
||||
}
|
||||
|
||||
+ (unsigned short) addressPortStringToPort:(NSString*)addressPort {
|
||||
NSRange addressRange, portRange;
|
||||
if (![self parseAddressPortString:addressPort address:&addressRange port:&portRange] || portRange.location == NSNotFound) {
|
||||
return 47989;
|
||||
}
|
||||
|
||||
return [[addressPort substringWithRange:portRange] integerValue];
|
||||
}
|
||||
|
||||
+ (NSString*) addressAndPortToAddressPortString:(NSString*)address port:(unsigned short)port {
|
||||
if ([address containsString:@":"]) {
|
||||
// IPv6 addresses require escaping
|
||||
return [NSString stringWithFormat:@"[%@]:%u", address, port];
|
||||
}
|
||||
else {
|
||||
return [NSString stringWithFormat:@"%@:%u", address, port];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation NSString (NSStringWithTrim)
|
||||
|
||||
- (NSString *)trim {
|
||||
return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
||||
}
|
||||
|
||||
@end
|
||||
Reference in new issue
Block a user