Today's lesson in not using Apple's private methods: somewhere between old/886f95f00431 and #9620 Apple changed their document icon setup process. Use the new methods and fix #9620.
(transplanted from 5cf365ce9352d25978ffd6073d3bc07573aba518)
/*
* Adium is the legal property of its developers, whose names are listed in the copyright file included
* with this source distribution.
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU
* General Public License as published by the Free Software Foundation; either version 2 of the License,
* or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
* Public License for more details.
*
* You should have received a copy of the GNU General Public License along with this program; if not,
* write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
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__);