Mercurial > hg > audiodb
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]; |