comparison examples/iAudioDB/AppController.m @ 739:040f14b5a5fc

Tweak to file extensions and playback
author mas01mj
date Wed, 22 Sep 2010 15:56:14 +0000
parents e3087cf8ff14
children
comparison
equal deleted inserted replaced
738:d9f263d95b64 739:040f14b5a5fc
60 { 60 {
61 [self cancelCreate:self]; 61 [self cancelCreate:self];
62 62
63 NSSavePanel* panel = [NSSavePanel savePanel]; 63 NSSavePanel* panel = [NSSavePanel savePanel];
64 [panel setCanSelectHiddenExtension:YES]; 64 [panel setCanSelectHiddenExtension:YES];
65 [panel setAllowedFileTypes:[NSArray arrayWithObjects:@"adb", nil]]; 65 [panel setAllowedFileTypes:[NSArray arrayWithObject:@"adb"]];
66 NSInteger response = [panel runModalForDirectory:NSHomeDirectory() file:@""]; 66 NSInteger response = [panel runModalForDirectory:NSHomeDirectory() file:@""];
67 67
68 [results removeAllObjects]; 68 [results removeAllObjects];
69 [tracksView reloadData]; 69 [tracksView reloadData];
70 70
199 [queryLengthVectors setEnabled:NO]; 199 [queryLengthVectors setEnabled:NO];
200 [queryStartSeconds setEnabled:NO]; 200 [queryStartSeconds setEnabled:NO];
201 [queryStartVectors setEnabled:NO]; 201 [queryStartVectors setEnabled:NO];
202 [resetButton setEnabled:NO]; 202 [resetButton setEnabled:NO];
203 [multipleCheckBox setEnabled:NO]; 203 [multipleCheckBox setEnabled:NO];
204
205 [playBothButton setEnabled:NO];
206 [playResultButton setEnabled:NO];
204 } 207 }
205 208
206 /** 209 /**
207 * Open an existing adb (which must have a plist) 210 * Open an existing adb (which must have a plist)
208 */ 211 */
393 */ 396 */
394 -(IBAction)importAudio:(id)sender 397 -(IBAction)importAudio:(id)sender
395 { 398 {
396 [tracksView reloadData]; 399 [tracksView reloadData];
397 400
398 NSArray *fileTypes = [NSArray arrayWithObjects:@"wav", @"mp3", @"aiff", @"m4a", nil]; 401 NSArray *fileTypes = [NSArray arrayWithObjects:@"wav", @"mp3", @"aif", @"aiff", @"m4a",nil];
399 NSOpenPanel* panel = [NSOpenPanel openPanel]; 402 NSOpenPanel* panel = [NSOpenPanel openPanel];
400 [panel setAllowsMultipleSelection:TRUE]; 403 [panel setAllowsMultipleSelection:TRUE];
401 NSInteger response = [panel runModalForDirectory:NSHomeDirectory() file:@"" types:fileTypes]; 404 NSInteger response = [panel runModalForDirectory:NSHomeDirectory() file:@"" types:fileTypes];
402 if(response == NSFileHandlingPanelOKButton) 405 if(response == NSFileHandlingPanelOKButton)
403 { 406 {
483 if(!db) 486 if(!db)
484 { 487 {
485 return NO; 488 return NO;
486 } 489 }
487 } 490 }
491 else if(theAction == @selector(playBoth:) || theAction == @selector(playResult:))
492 {
493 if([tracksView numberOfSelectedRows] == 0)
494 {
495 return NO;
496 }
497 else
498 {
499 return YES;
500 }
501 }
502 else if(theAction == @selector(stopPlay:))
503 {
504 return NO;
505 }
506
507 NSLog(@"Returning yes for %@", NSStringFromSelector(theAction));
508
488 return YES; 509 return YES;
489 } 510 }
490 511
491 /** 512 /**
492 * Ensure play buttons are only enabled if a track is selected. 513 * Ensure play buttons are only enabled if a track is selected.
493 */ 514 */
494 -(IBAction)selectedChanged:(id)sender 515 -(IBAction)selectedChanged:(id)sender
495 { 516 {
517 NSLog(@"Selection changed");
496 if([tracksView numberOfSelectedRows] == 0) 518 if([tracksView numberOfSelectedRows] == 0)
497 { 519 {
498 [playBothButton setEnabled:NO]; 520 [playBothButton setEnabled:NO];
499 [playResultButton setEnabled:NO]; 521 [playResultButton setEnabled:NO];
500 } 522 }
643 } 665 }
644 666
645 667
646 -(IBAction)selectQueryFile:(id)sender 668 -(IBAction)selectQueryFile:(id)sender
647 { 669 {
648 NSArray* fileTypes = [NSArray arrayWithObjects: @"wav", @"mp3", @"aiff",@"m4a", nil]; 670 NSArray* fileTypes = [NSArray arrayWithObjects: @"wav", @"mp3", @"aif", @"aiff", @"m4a", nil];
649 NSOpenPanel* panel = [NSOpenPanel openPanel]; 671 NSOpenPanel* panel = [NSOpenPanel openPanel];
650 NSInteger response = [panel runModalForDirectory:NSHomeDirectory() file:@"" types:fileTypes]; 672 NSInteger response = [panel runModalForDirectory:NSHomeDirectory() file:@"" types:fileTypes];
651 if(response == NSFileHandlingPanelOKButton) 673 if(response == NSFileHandlingPanelOKButton)
652 { 674 {
653 NSArray* opts = [trackMap allKeysForObject:[panel filename]]; 675 NSArray* opts = [trackMap allKeysForObject:[panel filename]];
836 858
837 int ok = audiodb_retrieve_datum(db, [selectedKey cStringUsingEncoding:NSUTF8StringEncoding], spec->qid.datum); 859 int ok = audiodb_retrieve_datum(db, [selectedKey cStringUsingEncoding:NSUTF8StringEncoding], spec->qid.datum);
838 if(ok == 0) 860 if(ok == 0)
839 { 861 {
840 862
841 float hopSize = [[dbState objectForKey:@"hopsize"] floatValue]; 863 // float hopSize = [[dbState objectForKey:@"hopsize"] floatValue];
842 NSLog(@"Got a datum"); 864 NSLog(@"Got a datum");
843 result = audiodb_query_spec(db, spec); 865 result = audiodb_query_spec(db, spec);
844 if(result == NULL) 866 if(result == NULL)
845 { 867 {
846 868
861 NSMutableDictionary* dict = [[NSMutableDictionary alloc] initWithCapacity:4]; 883 NSMutableDictionary* dict = [[NSMutableDictionary alloc] initWithCapacity:4];
862 [dict setValue:[NSString stringWithFormat:@"%s", result->results[i].ikey] forKey:@"key"]; 884 [dict setValue:[NSString stringWithFormat:@"%s", result->results[i].ikey] forKey:@"key"];
863 [dict setValue:[NSNumber numberWithFloat:result->results[i].dist] forKey:@"distance"]; 885 [dict setValue:[NSNumber numberWithFloat:result->results[i].dist] forKey:@"distance"];
864 [dict setValue:[NSNumber numberWithFloat:result->results[i].dist] forKey:@"meter"]; 886 [dict setValue:[NSNumber numberWithFloat:result->results[i].dist] forKey:@"meter"];
865 [dict setValue:[NSNumber numberWithFloat:result->results[i].ipos/divisor] forKey:@"ipos"]; 887 [dict setValue:[NSNumber numberWithFloat:result->results[i].ipos/divisor] forKey:@"ipos"];
866 NSLog(@"%s ipos: %d, dist: %f", result->results[i].ikey,result->results[i].ipos, result->results[i].dist);
867 [results addObject: dict]; 888 [results addObject: dict];
868 } 889 }
869 } 890 }
870 891
871 NSSortDescriptor *distSort = [[NSSortDescriptor alloc]initWithKey:@"meter" ascending:YES]; 892 NSSortDescriptor *distSort = [[NSSortDescriptor alloc]initWithKey:@"meter" ascending:YES];