#import <Cocoa/Cocoa.h>
#import <CoreFoundation/CoreFoundation.h>
#import <IOKit/IOKitLib.h>
#import <IOKit/IOMessage.h>
#import <IOKit/IOCFPlugIn.h>
#import <IOKit/usb/IOUSBLib.h>
#import <stdio.h>
#import "Authorization.h"
#import "SystemCommands.h"
#import "Node.h"
#import "IORegistryClass.h"
#import "BusProbeClass.h"
#import "USBLoggerClass.h"
@interface mainController : NSObject
{
IBOutlet id mainTabView;
IBOutlet id mainWindow;
IBOutlet id proberOutlineView;
IBOutlet id ioregistryAutoRefreshButton;
IBOutlet id proberAutoRefreshButton;
IBOutlet id usbextensionsOutput;
IBOutlet id usbextensionsModulesPopup;
IBOutlet id proberRefreshButton;
IBOutlet id ioregOutlineView;
IBOutlet id ioregRefreshButton;
IBOutlet id ioregPlanePopup;
IBOutlet id loggerStartButton;
IBOutlet id loggerOutput;
IBOutlet id usbLoggerLoggingLevel;
IBOutlet id filteredLoggerOutput;
IBOutlet id usbloggerFilterFreshButton;
NSTimer *refreshTimer;
NSTimer *loggerOutputRefreshTimer;
NSLock *loadingDataLock;
NSLock *usbloggerOutputLock;
NSPrintInfo *printInfo;
NSScroller *usbloggerScroller;
volatile NSMutableString *bufferedLoggerOuput;
BOOL proberShouldAutoRefresh;
BOOL ioregShouldAutoRefresh;
BOOL extensionsNeedsAuth;
}
- (void)loadPrefs;
- (void)savePrefs;
- (IBAction)probeButtonPress:(id)sender;
- (void)startRefreshTimer: (id)sender; - (void)doRefreshTimerRepeating: (NSTimer *)timer;
- (void)startLoggerOutputRefreshTimer: (id)sender; - (void)outputNewLoggerText: (NSTimer *)time;
-(void)monitorForDeviceChanges:(id)anObject;
void dumpIter( void *refCon, io_iterator_t iter );
- (void)reloadOutlineView:(NSOutlineView *)outlineview;
- (IBAction)toggleAutorefresh:(id)sender;
- (IBAction)usbextensionsGetVersions:(id)sender;
- (IBAction)refreshIOReg:(id)sender;
- (IBAction)saveOutput:(id)sender;
- (void)copyOutlineViewToPasteboard:(NSOutlineView *)outlineview;
- (IBAction)refreshItem:(id)sender;
- (IBAction)selectMainTabViewItemAtIndex:(id)sender;
- (void)userDoubleClickedRow:(id)sender;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification;
- (void)applicationWillTerminate:(NSNotification *)aNotification;
- (void)windowWillClose:(NSNotification *)aNotification;
- (BOOL)validateMenuItem:(NSMenuItem *)anItem;
- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem;
- (void)copy:(id)sender;
- (void)clear:(id)sender;
- (void)print:(id)sender;
- (NSPrintInfo *)printInfo;
- (NSString *)exposedItemsInOutlineView:(NSOutlineView *)ov;
- (void)handleIncomingGenericNotification:(NSNotification *)notification;
- (void)handleIncomingUSBLoggerData:(NSNotification *)notification;
@end