Merge branch 'master' of git://github.com/ksuther/MenuTunes
[MenuTunes.git] / NetworkObject.m
index da316e1..7c5a018 100755 (executable)
@@ -1,29 +1,29 @@
-/*
- *  MenuTunes
- *  NetworkObject
- *    Remote network object that is vended
- *
- *  Original Author : Kent Sutherland <ksutherland@ithinksw.com>
- *   Responsibility : Kent Sutherland <ksutherland@ithinksw.com>
- *
- *  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"
 #import <ITMTRemote/ITMTRemote.h>
 
 @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
 
 - (BOOL)requiresPassword
 {
-    return [[NSUserDefaults standardUserDefaults] boolForKey:@"enableSharingPassword"];
+    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