NSLog(@"%s: Couldn't sign up for system-output-device-changed notification, because AudioHardwareAddPropertyListener returned %ld. Adium will not know when the default system audio device changes.",__PRETTY_FUNCTION__,(long)err);
}
returnself;
}
-(void)controllerDidLoad
{
//Register our default preferences and observe changes
//Move this sound to the front of the cache (This will naturally move lesser used sounds to the back for removal)
[soundCacheArrayremoveObject:inPath];
[soundCacheArrayinsertObject:inPathatIndex:0];
}
//Engage!
if(sound){
//Ensure the sound is starting from the beginning; necessary for cached sounds that have already been played
[soundsetCurrentTime:0.0];
//This only has an effect if the movie is not already playing. It won't stop it, and it won't start it over (the latter is what setCurrentTime: is for).
dispatch_async(soundPlayingQueue,^{
[soundplay];
});
}
}
/*!
* @brief Remove the least recently used sound from the cache
NSLog(@"%s: Could not get the device UID for device %ld: AudioDeviceGetProperty returned error %ld",__PRETTY_FUNCTION__,(unsignedlong)systemOutputDevice,(long)err);
NSCAssert1(self,@"AudioHardware property listener function %s called with nil refcon, which we expected to be the AdiumSound instance",__PRETTY_FUNCTION__);