mas01mj@669: // mas01mj@669: // AppController.h mas01mj@706: // CAMUS mas01mj@669: // mas01mj@669: // Created by Mike Jewell on 27/01/2010. mas01mj@669: // Copyright 2010 __MyCompanyName__. All rights reserved. mas01mj@669: // mas01mj@669: mas01mj@669: #import mas01mj@669: #include mas01mj@669: mas01mj@699: mas01mj@669: @interface AppController : NSObject { mas01mj@699: adb_t *db; mas01mj@669: NSModalSession session; mas01mj@669: mas01mj@669: NSString* dbName; mas01mj@669: NSString* dbFilename; mas01mj@669: NSString* plistFilename; mas01mj@669: NSString* selectedKey; mas01mj@669: NSString* selectedFilename; mas01mj@669: mas01mj@669: IBOutlet NSTextField *statusField; mas01mj@699: IBOutlet NSTableView* tracksView; mas01mj@669: IBOutlet id mainWindow; mas01mj@669: mas01mj@699: // Query Customizing mas01mj@699: mas01mj@699: IBOutlet NSButton* multipleCheckBox; mas01mj@699: IBOutlet NSButton* resetButton; mas01mj@699: IBOutlet NSTextField* queryStartVectors; mas01mj@699: IBOutlet NSTextField* queryStartSeconds; mas01mj@699: IBOutlet NSTextField* queryLengthVectors; mas01mj@699: IBOutlet NSTextField* queryLengthSeconds; mas01mj@699: IBOutlet NSTextField* queryPath; mas01mj@699: IBOutlet NSButton* queryButton; mas01mj@699: mas01mj@699: // Main window buttons/fields. mas01mj@699: mas01mj@699: IBOutlet NSToolbarItem* importAudioButton; mas01mj@699: IBOutlet NSToolbarItem* performQueryButton; mas01mj@699: IBOutlet NSToolbarItem* playBothButton; mas01mj@699: IBOutlet NSToolbarItem* playResultButton; mas01mj@699: IBOutlet NSToolbarItem* stopButton; mas01mj@692: IBOutlet NSTextField* queryKey; mas01mj@699: mas01mj@699: NSSound* queryTrack; mas01mj@699: NSSound* resultTrack; mas01mj@699: mas01mj@699: // Creating mas01mj@699: IBOutlet id createSheet; mas01mj@699: IBOutlet id querySheet; mas01mj@699: mas01mj@699: IBOutlet NSMatrix* extractorOptions; mas01mj@699: IBOutlet NSTextField* hopSizeField; mas01mj@699: IBOutlet NSTextField* maxTracksField; mas01mj@699: IBOutlet NSTextField* maxLengthField; mas01mj@699: mas01mj@699: // Extracting mas01mj@699: IBOutlet id importSheet; mas01mj@699: IBOutlet NSProgressIndicator* indicator; mas01mj@687: mas01mj@692: NSMutableArray* results; mas01mj@692: NSDictionary* trackMap; mas01mj@699: NSDictionary* dbState; mas01mj@669: } mas01mj@669: mas01mj@669: // Menus mas01mj@669: -(IBAction)newDatabase:(id)sender; mas01mj@669: -(IBAction)openDatabase:(id)sender; mas01mj@669: mas01mj@669: // Import mas01mj@669: -(IBAction)importAudio:(id)sender; mas01mj@699: // -(IBAction)cancelImport:(id)sender; mas01mj@699: mas01mj@699: // Create mas01mj@699: -(IBAction)cancelCreate:(id)sender; mas01mj@699: -(IBAction)createDatabase:(id)sender; mas01mj@699: mas01mj@699: // Query mas01mj@699: -(IBAction)pathAction:(id)sender; mas01mj@699: -(IBAction)cancelQuery:(id)sender; mas01mj@699: -(IBAction)performQuery:(id)sender; mas01mj@699: -(IBAction)selectQueryFile:(id)sender; mas01mj@699: -(IBAction)resetLengths:(id)sender; mas01mj@687: mas01mj@669: // Buttons mas01mj@669: -(IBAction)playBoth:(id)sender; mas01mj@669: -(IBAction)playResult:(id)sender; mas01mj@669: -(IBAction)stopPlay:(id)sender; mas01mj@669: -(IBAction)chooseQuery:(id)sender; mas01mj@669: -(IBAction)selectedChanged:(id)sender; mas01mj@699: -(IBAction)tableDoubleClick:(id)sender; mas01mj@669: mas01mj@699: -(void)reset; mas01mj@669: -(void)updateStatus; mas01mj@700: -(BOOL)validateUserInterfaceItem:(id )anItem; mas01mj@700: -(void)sound:(NSSound *)sound didFinishPlaying:(BOOL)playbackSuccessful; mas01mj@700: -(void)importFile:(NSString *)filename withExtractorConfig:(NSString *)extractorPath; mas01mj@701: -(UInt64)getSampleRate:(NSString *)filename; mas01mj@702: -(UInt64)getHopSizeInSamples:(NSString *)filename; mas01mj@702: -(int)nearestPow2:(int)x; mas01mj@669: mas01mj@669: @end