- (BOOL)showPrimaryInterface
{
ITDebugLog(@"Showing player primary interface.");
+
+ //If the window is closed
+ _winClosed = YES;
+
//If not minimized and visible
if ( ([[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"'----':obj { form:'prop', want:type('prop'), seld:type('pMin'), from:obj { form:'indx', want:type('cBrW'), seld:1, from:'null'() } }" eventClass:@"core" eventID:@"getd" appPSN:savedPSN] == 0) &&
([[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"'----':obj { form:'prop', want:type('prop'), seld:type('pvis'), from:obj { form:'indx', want:type('cBrW'), seld:1, from:'null'() } }" eventClass:@"core" eventID:@"getd" appPSN:savedPSN] != 0) &&
//Full source awareness
- (NSArray *)playlists
-{ unsigned long i,k;
+{
+ unsigned long i, k;
const signed long numSources = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:@"kocl:type('cSrc'), '----':()" eventClass:@"core" eventID:@"cnte" appPSN:savedPSN];
NSMutableArray *allSources = [[NSMutableArray alloc] init];
ITDebugLog(@"Getting playlists.");
+ if (numSources == 0) {
+ ITDebugLog(@"No sources.");
+ return nil;
+ }
+
for (k = 1; k <= numSources ; k++) {
const signed long numPlaylists = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:[NSString stringWithFormat:@"kocl:type('cPly'), '----':obj { form:'indx', want:type('cSrc'), seld:long(%u), from:() }",k] eventClass:@"core" eventID:@"cnte" appPSN:savedPSN];
unsigned long fourcc = [[ITAppleEventCenter sharedCenter] sendAEWithSendStringForNumber:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pKnd'), from:obj { form:'indx', want:type('cSrc'), seld:long(%u), from:() } }",k] eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
NSString *sourceName = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cSrc'), seld:long(%u), from:() } }",k] eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
- NSNumber *sourceClass;
+ unsigned long class;
NSMutableArray *aSource = [[NSMutableArray alloc] init];
[aSource addObject:sourceName];
switch (fourcc) {
case 'kTun':
- sourceClass = [NSNumber numberWithInt:ITMTRemoteRadioSource];
+ class = ITMTRemoteRadioSource;
break;
case 'kDev':
- sourceClass = [NSNumber numberWithInt:ITMTRemoteGenericDeviceSource];
+ class = ITMTRemoteGenericDeviceSource;
break;
case 'kPod':
- sourceClass = [NSNumber numberWithInt:ITMTRemoteiPodSource];
+ class = ITMTRemoteiPodSource;
break;
case 'kMCD':
case 'kACD':
- sourceClass = [NSNumber numberWithInt:ITMTRemoteCDSource];
+ class = ITMTRemoteCDSource;
break;
case 'kShd':
- sourceClass = [NSNumber numberWithInt:ITMTRemoteSharedLibrarySource];
+ class = ITMTRemoteSharedLibrarySource;
break;
case 'kUnk':
case 'kLib':
default:
- sourceClass = [NSNumber numberWithInt:ITMTRemoteLibrarySource];
+ class = ITMTRemoteLibrarySource;
break;
}
- ITDebugLog(@"Adding source %@ of type %i", sourceName, [sourceClass intValue]);
- [aSource addObject:sourceClass];
+ ITDebugLog(@"Adding source %@ of type %i", sourceName, class);
+ [aSource addObject:[NSNumber numberWithInt:class]];
for (i = 1; i <= numPlaylists; i++) {
NSString *sendStr = [NSString stringWithFormat:@"'----':obj { form:'prop', want:type('prop'), seld:type('pnam'), from:obj { form:'indx', want:type('cPly'), seld:long(%u), from:obj { form:'indx', want:type('cSrc'), seld:long(%u), from:() } } }",i,k];
NSString *theObj = [[ITAppleEventCenter sharedCenter] sendAEWithSendString:sendStr eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
{
int temp1;
ITDebugLog(@"Getting current song index.");
-
- if ([self currentSource] == ITMTRemoteRadioSource)
-
temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pidx" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
ITDebugLog(@"Getting current song index done.");
return temp1;
//If we're listening to the radio.
if ([[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKeyForNumber:@"pcls" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN] == 'cURT') {
- temp1 = [[[ITAppleEventCenter sharedCenter] sendAEWithRequestedKey:@"pStT" eventClass:@"core" eventID:@"getd" appPSN:savedPSN] stringByAppendingString:@" (Stream)"];
+ NSString *bad = [NSString stringWithUTF8String:"浳湧"];
+ temp1 = [[ITAppleEventCenter sharedCenter] sendAEWithRequestedKey:@"pStT" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
+ if ([temp1 isEqualToString:bad]) {
+ temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pnam" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
+ }
+ temp1 = [temp1 stringByAppendingString:@" (Stream)"];
} else {
temp1 = [[ITAppleEventCenter sharedCenter] sendTwoTierAEWithRequestedKey:@"pnam" fromObjectByKey:@"pTrk" eventClass:@"core" eventID:@"getd" appPSN:savedPSN];
}
return YES;
}
-/*- (BOOL)switchToPlaylistAtIndex:(int)index ofSourceAtIndex:(int)index2
+- (BOOL)switchToPlaylistAtIndex:(int)index ofSourceAtIndex:(int)index2
{
ITDebugLog(@"Switching to playlist at index %i of source %i", index, index2);
[[ITAppleEventCenter sharedCenter] sendAEWithSendString:[NSString stringWithFormat:@"'----':obj { form:'indx', want:type('cPly'), seld:long(%lu), from: obj { form:'indx', want:type('cSrc'), seld:long(%lu), from:'null'() } }", index - 1, index2 + 1] eventClass:@"hook" eventID:@"Play" appPSN:savedPSN];
//{ form:'indx', want:type('cPly'), seld:long(%lu), from:obj { form:'indx', want:type('cSrc'), seld:long('%lu'), from:'null'() } } -- obj { form:'indx', want:type('cSrc'), seld:long(1), from:'null'() }
ITDebugLog(@"Done switching to playlist at index %i of source %i", index, index2);
return YES;
-}*/
+}
- (BOOL)switchToSongAtIndex:(int)index
{