//
//  pluginLocator.h
//  plugin location framework
//
//  Created by otusweb on Tue Apr 22 2003.
//  Copyright (c) 2003 Texas Instrument Inc.. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>

#define pluginLocationPreference		@"com.ti.eps.TIConnectX.pluginLocator"

extern NSString *computerDestination;
extern NSString *TI73Destination;
extern NSString *TI82Destination;
extern NSString *TI83Destination;
extern NSString *TI83PlusDestination;
extern NSString *TI83PlusSEDestination;
extern NSString *TI84PlusDestination;
extern NSString *TI84PlusSEDestination;
extern NSString *TI85Destination;
extern NSString *TI86Destination;
extern NSString *TI89Destination;
extern NSString *TI92Destination;
extern NSString *TI92PlusDestination;
extern NSString *Voyage200Destination;
extern NSString *CBRDestination;
extern NSString *CBLDestination;
extern NSString *CBL2Destination;
extern NSString *presenterDestination;
extern NSString *labProDestination;
extern NSString *TI89TitaniumDestination;

@interface pluginLocator : NSObject
{
    NSMutableDictionary *pluginsInformation;
    BOOL lookedForPlugins;
    NSLock *pluginInformationLock;
	id bundleInformation;
}
/*"Accessors"*/
- (NSDictionary *) pluginsInformation;

/*"finding specific plugin"*/
- (void) locatePlugins;
+ (pluginLocator*) defaultLocator;
+ (NSBundle*) pluginForFourCharacterFileType: (OSType) fourCharFileType
                              deviceFileType: (NSString*) deviceFileType
                                   extension: (NSString*) extension
                                  toPlatform: (NSString*) toPlatform;
- (NSBundle*) pluginForFourCharacterFileType: (OSType) fourCharFileType
                              deviceFileType: (NSString*) deviceFileType
                                   extension: (NSString*) extension
                                  toPlatform: (NSString*) toPlatform;

/*"Handling duplicate"*/
- (void) setDefaultPlugin: (NSString*) defaultPlugin forDeviceFormat: (NSString*) inDeviceFormat;
- (NSString*) defaultPluginForDeviceFormat: (NSString*) inDeviceFormat;
- (void) setDefaultPlugin: (NSString*) defaultPlugin forHFScode: (NSString*) inDeviceFormat;
- (NSString*) defaultPluginForHFScode: (NSString*) inDeviceFormat;
@end
