X-Git-Url: http://git.ithinksw.org/MenuTunes.git/blobdiff_plain/107e67ed9e5791f210cfaf2185e75ea5b5e84792..a876619d0c610eaee6aa5e1a105106f265b2c084:/NetworkObject.m?ds=sidebyside diff --git a/NetworkObject.m b/NetworkObject.m index 5ab7c79..8721e98 100755 --- a/NetworkObject.m +++ b/NetworkObject.m @@ -1,10 +1,19 @@ -// -// NetworkObject.m -// MenuTunes -// -// Created by Kent Sutherland on Tue Oct 28 2003. -// Copyright (c) 2003 __MyCompanyName__. All rights reserved. -// +/* + * MenuTunes + * NetworkObject + * Remote network object that is vended + * + * Original Author : Kent Sutherland + * Responsibility : Kent Sutherland + * + * Copyright (c) 2002 - 2003 iThink Software. + * All Rights Reserved + * + * This header defines the Objective-C protocol which all MenuTunes Remote + * plugins must implement. To build a remote, create a subclass of this + * object, and implement each method in the @protocol below. + * + */ #import "NetworkObject.h" #import "MainController.h" @@ -12,9 +21,26 @@ @implementation NetworkObject +- (id)init +{ + if ( (self = [super init]) ) { + _valid = YES; + if (![self requiresPassword]) { + _authenticated = YES; + } else { + _authenticated = NO; + } + } + return self; +} + - (ITMTRemote *)remote { - return [[MainController sharedController] currentRemote]; + if (_authenticated && _valid) { + return [[MainController sharedController] currentRemote]; + } else { + return nil; + } } - (NSString *)serverName @@ -25,4 +51,35 @@ return name; } +- (BOOL)requiresPassword +{ + return ([[[NSUserDefaults standardUserDefaults] dataForKey:@"sharedPlayerPassword"] length] > 0); +} + +- (BOOL)sendPassword:(NSData *)password +{ + if ([password isEqualToData:[[NSUserDefaults standardUserDefaults] dataForKey:@"sharedPlayerPassword"]]) { + _authenticated = YES; + return YES; + } else { + _authenticated = NO; + return NO; + } +} + +- (void)invalidate +{ + _valid = NO; +} + +- (void)makeValid +{ + _valid = YES; +} + +- (BOOL)isValid +{ + return _valid; +} + @end