view examples/iAudioDB/AppController.h @ 693:b1723ae7675e

begin work on sampling API This is motivated by the need to be able to sample with arbitrary feature data (e.g. from a feature file) against a database, for the JNMR "collections" paper revisions or possible ISMIR paper revisions. That bit doesn't work yet, but the C-ified version of the current functionality (sample db x db and sample key x db) works to the level of anecdotal tests. The general approach is to mirror the _query_spec() API, where a whole heap of knobs and twiddles are available to the user. Unlike in the _query_spec() API, not quite all of the knobs make sense (and even fewer are actually implemented), but the basic idea is the same. I pity the poor chump who will have to document all this.
author mas01cr
date Thu, 22 Apr 2010 21:03:47 +0000
parents 02756c5ca15a
children 9a7d829bc492
line wrap: on
line source
//
//  AppController.h
//  iAudioDB
//
//  Created by Mike Jewell on 27/01/2010.
//  Copyright 2010 __MyCompanyName__. All rights reserved.
//

#import <Cocoa/Cocoa.h>
#include <audioDB_API.h>

@interface AppController : NSObject {
	adb_ptr db;
	NSModalSession session;
	
	NSString* dbName;
	NSString* dbFilename;
	NSString* plistFilename;
	NSString* selectedKey;
	NSString* selectedFilename;
	
	IBOutlet NSTextField *statusField;
	IBOutlet NSTableView *tracksView;
	IBOutlet id mainWindow;

	// Querying
	IBOutlet NSTextField* queryKey;
	IBOutlet NSButton* playBothButton;
	IBOutlet NSButton* playResultButton;
	IBOutlet NSButton* stopButton;
	IBOutlet NSButton* chooseButton;
	
	NSMutableArray* results;
	NSDictionary* trackMap;
	
	// Extracting
	IBOutlet id importSheet;
	IBOutlet NSBox* extractingBox;
	IBOutlet NSMatrix* extractorOptions;
	IBOutlet NSProgressIndicator* indicator;
	
	// Playback
	NSSound* queryTrack;
	NSSound* resultTrack;
	
	// Query param fields
	
	/* To Come
	 IBOutlet id queryType;	
	 IBOutlet NSTextField* queryStartField;
	 IBOutlet id queryTypeOptions;
	 IBOutlet NSTextField* queryLengthField;
	 IBOutlet NSTextField* queryRadiusField;
	 IBOutlet NSButtonCell* exhaustiveField;*/
	
}

//  Menus
-(IBAction)newDatabase:(id)sender;
-(IBAction)openDatabase:(id)sender;
-(IBAction)selectFiles:(id)sender;

// Import
-(IBAction)importAudio:(id)sender;
-(IBAction)cancelImport:(id)sender;

// Buttons
-(IBAction)playBoth:(id)sender;
-(IBAction)playResult:(id)sender;
-(IBAction)stopPlay:(id)sender;
-(IBAction)chooseQuery:(id)sender;
-(IBAction)selectedChanged:(id)sender;


-(void)performQuery;
-(void)updateStatus;
- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem;
- (void)sound:(NSSound *)sound didFinishPlaying:(BOOL)playbackSuccessful;

@end