Cleaning CogAudio code.

This commit is contained in:
matthewleon 2008-03-01 15:28:17 +00:00
parent 666d803897
commit 6b35fee9e3
2 changed files with 36 additions and 65 deletions

View file

@ -17,9 +17,21 @@
NSMutableDictionary *decodersByExtension; NSMutableDictionary *decodersByExtension;
NSMutableDictionary *decodersByMimeType; NSMutableDictionary *decodersByMimeType;
BOOL isSetup; BOOL configured;
} }
@property(retain) NSMutableDictionary *sources;
@property(retain) NSMutableDictionary *containers;
@property(retain) NSMutableDictionary *metadataReaders;
@property(retain) NSMutableDictionary *propertiesReadersByExtension;
@property(retain) NSMutableDictionary *propertiesReadersByMimeType;
@property(retain) NSMutableDictionary *decodersByExtension;
@property(retain) NSMutableDictionary *decodersByMimeType;
@property BOOL configured;
- (void)setup; - (void)setup;
- (void)printPluginInfo; - (void)printPluginInfo;

View file

@ -3,6 +3,18 @@
@implementation PluginController @implementation PluginController
@synthesize sources;
@synthesize containers;
@synthesize metadataReaders;
@synthesize propertiesReadersByExtension;
@synthesize propertiesReadersByMimeType;
@synthesize decodersByExtension;
@synthesize decodersByMimeType;
@synthesize configured;
//Start of singleton-related stuff. //Start of singleton-related stuff.
static PluginController *sharedPluginController = nil; static PluginController *sharedPluginController = nil;
@ -77,8 +89,8 @@ static PluginController *sharedPluginController = nil;
- (void)setup - (void)setup
{ {
if (isSetup == NO) { if (self.configured == NO) {
isSetup = YES; self.configured == YES;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bundleDidLoad:) name:NSBundleDidLoadNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(bundleDidLoad:) name:NSBundleDidLoadNotification object:nil];
@ -119,11 +131,8 @@ static PluginController *sharedPluginController = nil;
{ {
NSArray *dirContents = [[NSFileManager defaultManager] directoryContentsAtPath:path]; NSArray *dirContents = [[NSFileManager defaultManager] directoryContentsAtPath:path];
NSEnumerator *dirEnum = [dirContents objectEnumerator];
NSString *pname; for (NSString *pname in dirContents)
while (pname = [dirEnum nextObject])
{ {
NSString *ppath; NSString *ppath;
ppath = [NSString pathWithComponents:[NSArray arrayWithObjects:path,pname,nil]]; ppath = [NSString pathWithComponents:[NSArray arrayWithObjects:path,pname,nil]];
@ -146,9 +155,7 @@ static PluginController *sharedPluginController = nil;
{ {
Class container = NSClassFromString(className); Class container = NSClassFromString(className);
if (container && [container respondsToSelector:@selector(fileTypes)]) { if (container && [container respondsToSelector:@selector(fileTypes)]) {
NSEnumerator *fileTypesEnum = [[container fileTypes] objectEnumerator]; for (id fileType in [container fileTypes])
id fileType;
while (fileType = [fileTypesEnum nextObject])
{ {
[containers setObject:className forKey:[fileType lowercaseString]]; [containers setObject:className forKey:[fileType lowercaseString]];
} }
@ -159,18 +166,14 @@ static PluginController *sharedPluginController = nil;
{ {
Class decoder = NSClassFromString(className); Class decoder = NSClassFromString(className);
if (decoder && [decoder respondsToSelector:@selector(fileTypes)]) { if (decoder && [decoder respondsToSelector:@selector(fileTypes)]) {
id fileType; for (id fileType in [decoder fileTypes])
NSEnumerator *fileTypesEnum = [[decoder fileTypes] objectEnumerator];
while (fileType = [fileTypesEnum nextObject])
{ {
[decodersByExtension setObject:className forKey:[fileType lowercaseString]]; [decodersByExtension setObject:className forKey:[fileType lowercaseString]];
} }
} }
if (decoder && [decoder respondsToSelector:@selector(mimeTypes)]) { if (decoder && [decoder respondsToSelector:@selector(mimeTypes)]) {
id mimeType; for (id mimeType in [decoder mimeTypes])
NSEnumerator *mimeTypesEnum = [[decoder mimeTypes] objectEnumerator];
while (mimeType = [mimeTypesEnum nextObject])
{ {
[decodersByMimeType setObject:className forKey:[mimeType lowercaseString]]; [decodersByMimeType setObject:className forKey:[mimeType lowercaseString]];
} }
@ -181,9 +184,7 @@ static PluginController *sharedPluginController = nil;
{ {
Class metadataReader = NSClassFromString(className); Class metadataReader = NSClassFromString(className);
if (metadataReader && [metadataReader respondsToSelector:@selector(fileTypes)]) { if (metadataReader && [metadataReader respondsToSelector:@selector(fileTypes)]) {
NSEnumerator *fileTypesEnum = [[metadataReader fileTypes] objectEnumerator]; for (id fileType in [metadataReader fileTypes])
id fileType;
while (fileType = [fileTypesEnum nextObject])
{ {
[metadataReaders setObject:className forKey:[fileType lowercaseString]]; [metadataReaders setObject:className forKey:[fileType lowercaseString]];
} }
@ -194,18 +195,14 @@ static PluginController *sharedPluginController = nil;
{ {
Class propertiesReader = NSClassFromString(className); Class propertiesReader = NSClassFromString(className);
if (propertiesReader && [propertiesReader respondsToSelector:@selector(fileTypes)]) { if (propertiesReader && [propertiesReader respondsToSelector:@selector(fileTypes)]) {
NSEnumerator *fileTypesEnum = [[propertiesReader fileTypes] objectEnumerator]; for (id fileType in [propertiesReader fileTypes])
id fileType;
while (fileType = [fileTypesEnum nextObject])
{ {
[propertiesReadersByExtension setObject:className forKey:[fileType lowercaseString]]; [propertiesReadersByExtension setObject:className forKey:[fileType lowercaseString]];
} }
} }
if (propertiesReader && [propertiesReader respondsToSelector:@selector(mimeTypes)]) { if (propertiesReader && [propertiesReader respondsToSelector:@selector(mimeTypes)]) {
id mimeType; for (id mimeType in [propertiesReader mimeTypes])
NSEnumerator *mimeTypesEnum = [[propertiesReader mimeTypes] objectEnumerator];
while (mimeType = [mimeTypesEnum nextObject])
{ {
[propertiesReadersByMimeType setObject:className forKey:[mimeType lowercaseString]]; [propertiesReadersByMimeType setObject:className forKey:[mimeType lowercaseString]];
} }
@ -216,9 +213,7 @@ static PluginController *sharedPluginController = nil;
{ {
Class source = NSClassFromString(className); Class source = NSClassFromString(className);
if (source && [source respondsToSelector:@selector(schemes)]) { if (source && [source respondsToSelector:@selector(schemes)]) {
NSEnumerator *schemeEnum = [[source schemes] objectEnumerator]; for (id scheme in [source schemes])
id scheme;
while (scheme = [schemeEnum nextObject])
{ {
[sources setObject:className forKey:scheme]; [sources setObject:className forKey:scheme];
} }
@ -238,42 +233,6 @@ static PluginController *sharedPluginController = nil;
NSLog(@"Decoders by Mime Type: %@", decodersByMimeType); NSLog(@"Decoders by Mime Type: %@", decodersByMimeType);
} }
- (NSDictionary *)sources
{
return sources;
}
- (NSDictionary *)containers
{
return containers;
}
- (NSDictionary *)decodersByExtension
{
return decodersByExtension;
}
- (NSDictionary *)decodersByMimeType
{
return decodersByMimeType;
}
- (NSDictionary *)propertiesReadersByExtension
{
return propertiesReadersByExtension;
}
- (NSDictionary *)propertiesReadersByMimeType
{
return propertiesReadersByMimeType;
}
- (NSDictionary *)metadataReaders
{
return metadataReaders;
}
- (id<CogSource>) audioSourceForURL:(NSURL *)url - (id<CogSource>) audioSourceForURL:(NSURL *)url
{ {
NSString *scheme = [url scheme]; NSString *scheme = [url scheme];