@interface DockTextField : NSTextField
-@property (nonatomic,retain) NSString *textToDisplay;
-@property (nonatomic,retain) NSColor *startColor;
-@property (nonatomic,retain) NSColor *endColor;
+@property (nonatomic,strong) NSString *textToDisplay;
+@property (nonatomic,strong) NSColor *startColor;
+@property (nonatomic,strong) NSColor *endColor;
- (void)changeGradientColors:(NSColor*)startColor endColor:(NSColor*)endColor;
NSGradient *gradient = [[NSGradient alloc] initWithStartingColor:self.startColor endingColor:self.endColor];
[gradient drawInBezierPath:[NSBezierPath bezierPathWithRoundedRect:blackOutlineFrame xRadius:radius yRadius:radius] angle:90];
- [gradient release];
NSMutableDictionary *drawStringAttributes = [[NSMutableDictionary alloc] init];
[drawStringAttributes setValue:[NSColor whiteColor] forKey:NSForegroundColorAttributeName];
[stringShadow setShadowOffset:shadowSize];
[stringShadow setShadowBlurRadius:6];
[drawStringAttributes setValue:stringShadow forKey:NSShadowAttributeName];
- [stringShadow release];
NSString *MRString = _textToDisplay;
NSString *budgetString = [NSString stringWithFormat:@"%@", MRString];
centerPoint.x = (dirtyRect.size.width / 2) - (stringSize.width / 2);
centerPoint.y = dirtyRect.size.height / 2 - (stringSize.height / 2) - 2;
[budgetString drawAtPoint:centerPoint withAttributes:drawStringAttributes];
- [drawStringAttributes release];
}
@end
- (instancetype)initWithPreset:(HBPreset *)preset videoSize:(NSSize)size;
-@property (readonly) HBPreset *preset;
+@property (nonatomic, readonly) HBPreset *preset;
@end
@interface HBAddPresetController ()
-@property (assign) IBOutlet NSTextField *name;
-@property (assign) IBOutlet NSTextField *desc;
+@property (unsafe_unretained) IBOutlet NSTextField *name;
+@property (unsafe_unretained) IBOutlet NSTextField *desc;
-@property (assign) IBOutlet NSPopUpButton *picSettingsPopUp;
-@property (assign) IBOutlet NSTextField *picWidth;
-@property (assign) IBOutlet NSTextField *picHeight;
-@property (assign) IBOutlet NSBox *picWidthHeightBox;
+@property (unsafe_unretained) IBOutlet NSPopUpButton *picSettingsPopUp;
+@property (unsafe_unretained) IBOutlet NSTextField *picWidth;
+@property (unsafe_unretained) IBOutlet NSTextField *picHeight;
+@property (unsafe_unretained) IBOutlet NSBox *picWidthHeightBox;
-@property (assign) IBOutlet NSButton *picFilters;
+@property (unsafe_unretained) IBOutlet NSButton *picFilters;
-@property (retain) HBPreset *preset;
+@property (nonatomic, strong) HBPreset *preset;
@property NSSize size;
@end
if (self)
{
NSParameterAssert(preset);
- _preset = [preset retain];
+ _preset = preset;
_size = size;
}
return self;
}
-- (void)dealloc
-{
- self.preset = nil;;
- [super dealloc];
-}
-
- (void)windowDidLoad {
[super windowDidLoad];
[alert setMessageText:NSLocalizedString(@"Warning!", @"")];
[alert setInformativeText:NSLocalizedString(@"You need to insert a name for the preset.", @"")];
[alert runModal];
- [alert release];
}
else
{
self.preset.name = self.name.stringValue;
self.preset.presetDescription = self.desc.stringValue;
- NSMutableDictionary *dict = [[self.preset.content mutableCopy] autorelease];
+ NSMutableDictionary *dict = [self.preset.content mutableCopy];
dict[@"PresetName"] = self.name.stringValue;
dict[@"PresetDescription"] = self.desc.stringValue;
// Get whether or not to use the current Picture Filter settings for the preset
dict[@"UsesPictureFilters"] = @(self.picFilters.state);
- self.preset.content = [[dict copy] autorelease];
+ self.preset.content = [dict copy];
[[self window] orderOut:nil];
[NSApp endSheet:[self window] returnCode:NSModalResponseContinue];
*/
@interface HBAdvancedController : NSViewController
-@property (nonatomic, readwrite, retain) HBVideo *videoSettings;
+@property (nonatomic, readwrite, strong) HBVideo *videoSettings;
@property (nonatomic, readwrite, getter=isHidden) BOOL hidden;
@property (nonatomic, readwrite, getter=isEnabled) BOOL enabled;
- (void)setVideoSettings:(HBVideo *)videoSettings
{
- [_videoSettings autorelease];
- _videoSettings = [videoSettings retain];
+ _videoSettings = videoSettings;
if (_videoSettings)
{
}
}
-- (void)dealloc
-{
- [super dealloc];
-}
/**
* Populates the option widgets
@interface HBAppDelegate ()
-@property (nonatomic, retain) HBPresetsManager *presetsManager;
-@property (assign) IBOutlet NSMenu *presetsMenu;
+@property (nonatomic, strong) HBPresetsManager *presetsManager;
+@property (unsafe_unretained) IBOutlet NSMenu *presetsMenu;
-@property (nonatomic, retain) HBPreferencesController *preferencesController;
-@property (nonatomic, retain) HBQueueController *queueController;
+@property (nonatomic, strong) HBPreferencesController *preferencesController;
+@property (nonatomic, strong) HBQueueController *queueController;
-@property (nonatomic, retain) HBOutputPanelController *outputPanel;
+@property (nonatomic, strong) HBOutputPanelController *outputPanel;
-@property (nonatomic, retain) HBController *mainController;
+@property (nonatomic, strong) HBController *mainController;
@end
_outputPanel = [[HBOutputPanelController alloc] init];
- // Lets report the HandBrake version number here to the activity log and text log file
- NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
- NSString *versionStringFull = [NSString stringWithFormat:@"Handbrake Version: %@ (%@)", infoDict[@"CFBundleShortVersionString"], infoDict[@"CFBundleVersion"]];
- [HBUtilities writeToActivityLog: "%s", versionStringFull.UTF8String];
-
// we init the HBPresetsManager
NSURL *presetsURL = [[HBUtilities appSupportURL] URLByAppendingPathComponent:@"UserPresets.plist"];
_presetsManager = [[HBPresetsManager alloc] initWithURL:presetsURL];
[self showQueueWindow:nil];
}
- [alert release];
}
}
else
[alert setAlertStyle:NSCriticalAlertStyle];
NSInteger result = [alert runModal];
- [alert release];
if (result == NSAlertFirstButtonReturn)
{
[alert addButtonWithTitle:NSLocalizedString(@"Don't Quit", nil)];
[alert setAlertStyle:NSCriticalAlertStyle];
NSInteger result = [alert runModal];
- [alert release];
if (result == NSAlertFirstButtonReturn)
{
return NSTerminateNow;
{
[self.presetsManager savePresets];
- [_mainController release];
_mainController = nil;
- [_queueController release];
_queueController = nil;
[HBCore closeGlobal];
[manager removeItemAtURL:fileURL error:NULL];
}
}
- [manager release];
}
}
[HBUtilities writeToActivityLog: "Could not remove existing preview at : %s", url.lastPathComponent.UTF8String];
}
}
- [manager release];
}
}
[alert setMessageText:@"HandBrake has determined your built in presets are out of date…"];
[alert setInformativeText:@"HandBrake will now update your built-in presets."];
[alert runModal];
- [alert release];
}
// when alert is dismissed, go ahead and update the built in presets
[self.presetsManager generateBuiltInPresets];
[self.presetsMenu removeItem:item];
}
}
- [menuItems release];
__block NSUInteger i = 0;
__block BOOL builtInEnded = NO;
NSAttributedString *newTitle = [[NSAttributedString alloc] initWithString:[obj name]
attributes:@{NSFontAttributeName: [NSFont boldSystemFontOfSize:14]}];
[item setAttributedTitle:newTitle];
- [newTitle release];
}
// Add a separator line after the last builtIn preset
if ([obj isBuiltIn] == NO && builtInEnded == NO)
item.indentationLevel = idx.length - 1;
[self.presetsMenu addItem:item];
- [item release];
}
}];
}
- (void)appendString:(NSString *)aString withAttributes:(NSDictionary *)aDictionary
{
- NSAttributedString *s = [[[NSAttributedString alloc] initWithString:aString
- attributes:aDictionary] autorelease];
+ NSAttributedString *s = [[NSAttributedString alloc] initWithString:aString
+ attributes:aDictionary];
[self appendAttributedString:s];
}
@interface HBAudio () <HBAudioTrackDataSource, HBAudioTrackDelegate>
-@property (nonatomic, readonly) NSDictionary *noneTrack;
-@property (nonatomic, readonly) NSArray *masterTrackArray; // the master list of audio tracks from the title
+@property (nonatomic, readonly, strong) NSDictionary *noneTrack;
+@property (nonatomic, readonly, strong) NSArray *masterTrackArray; // the master list of audio tracks from the title
@property (nonatomic, readwrite) int container; // initially is the default HB_MUX_MP4
_tracks = [[NSMutableArray alloc] init];
_defaults = [[HBAudioDefaults alloc] init];
- _noneTrack = [@{keyAudioTrackIndex: @0,
+ _noneTrack = @{keyAudioTrackIndex: @0,
keyAudioTrackName: NSLocalizedString(@"None", @"None"),
- keyAudioInputCodec: @0} retain];
+ keyAudioInputCodec: @0};
NSMutableArray *sourceTracks = [NSMutableArray array];
[sourceTracks addObject:_noneTrack];
return self;
}
-- (void)dealloc
-{
- [_tracks release];
- _tracks = nil;
-
- [_defaults release];
- _defaults = nil;
-
- [_noneTrack release];
- _noneTrack = nil;
-
- [_masterTrackArray release];
- _masterTrackArray = nil;
-
- [super dealloc];
-}
-
- (void)addAllTracks
{
[self addTracksFromDefaults:YES];
{
[self removeObjectFromTracksAtIndex: [self countOfTracks] - 1];
}
- [newAudio release];
if (firstOnly)
{
firstTrack = self.defaults.secondaryEncoderMode ? YES : NO;
[tracksAdded addIndexes:tracksIndexes];
}
- [tracksIndexes release];
}
// If no preferred Language was found, add standard track 1
[newAudio setTrack: self.noneTrack];
[newAudio setDrc: @0.0f];
[newAudio setGain: @0.0f];
- [newAudio release];
}
#pragma mark -
HBAudioTrack *trackCopy = [obj copy];
trackCopy.dataSource = copy;
trackCopy.delegate = copy;
- [copy->_tracks addObject:[trackCopy autorelease]];
+ [copy->_tracks addObject:trackCopy];
}
}];
*/
@interface HBAudioController : NSViewController
-@property (nonatomic, readwrite, assign) HBAudio *audio;
+@property (nonatomic, readwrite, unsafe_unretained) HBAudio *audio;
@end
@interface HBAudioController ()
-@property (nonatomic, readwrite, retain) HBAudioDefaultsController *defaultsController;
+@property (nonatomic, readwrite, strong) HBAudioDefaultsController *defaultsController;
@end
- (IBAction)showSettingsSheet:(id)sender
{
- self.defaultsController = [[[HBAudioDefaultsController alloc] initWithSettings:self.audio.defaults] autorelease];
+ self.defaultsController = [[HBAudioDefaultsController alloc] initWithSettings:self.audio.defaults];
- [NSApp beginSheet:[self.defaultsController window]
- modalForWindow:[[self view] window]
+ [NSApp beginSheet:self.defaultsController.window
+ modalForWindow:self.view.window
modalDelegate:self
didEndSelector:@selector(sheetDidEnd)
contextInfo:NULL];
@interface HBAudioDefaults : NSObject <NSCoding, NSCopying, HBPresetCoding>
@property (nonatomic, readwrite) HBAudioTrackSelectionBehavior trackSelectionBehavior;
-@property (nonatomic, readwrite, retain) NSMutableArray *trackSelectionLanguages;
+@property (nonatomic, readwrite, strong) NSMutableArray *trackSelectionLanguages;
-@property (nonatomic, readwrite, retain) NSMutableArray *tracksArray;
+@property (nonatomic, readwrite, strong) NSMutableArray *tracksArray;
/**
* Adds a new track preset.
return self;
}
-- (void)dealloc
-{
- [_trackSelectionLanguages release];
- [_tracksArray release];
- [super dealloc];
-}
-
- (void)addTrack
{
HBAudioTrackPreset *track = [[HBAudioTrackPreset alloc] initWithContainer:self.container];
[self insertObject:track inTracksArrayAtIndex:[self countOfTracksArray]];
- [track release];
}
- (NSArray *)audioEncoderFallbacks
[fallbacks addObject:@(audio_encoder->name)];
}
}
- return [fallbacks autorelease];
+ return fallbacks;
}
- (NSString *)isoCodeForNativeLang:(NSString *)language
newTrack.drc = [track[@"AudioTrackDRCSlider"] floatValue];
newTrack.gain = [track[@"AudioTrackGainSlider"] intValue];
[self.tracksArray addObject:newTrack];
- [newTrack release];
}
}
{
preset[@"AudioTrackSelectionBehavior"] = @"none";
}
- preset[@"AudioLanguageList"] = [[self.trackSelectionLanguages copy] autorelease];
+ preset[@"AudioLanguageList"] = [self.trackSelectionLanguages copy];
// Passthru settings
preset[@"AudioAllowAACPass"] = @(self.allowAACPassthru);
}
preset[@"AudioList"] = audioList;
- [audioList release];
}
- (void)validateEncoderFallbackForVideoContainer:(int)container
if (copy)
{
copy->_trackSelectionBehavior = _trackSelectionBehavior;
- [copy->_trackSelectionLanguages release];
copy->_trackSelectionLanguages = [_trackSelectionLanguages mutableCopy];
- [copy->_tracksArray release];
copy->_tracksArray = [[NSMutableArray alloc] initWithArray:_tracksArray copyItems:YES];
copy->_allowAACPassthru = _allowAACPassthru;
@interface HBAudioDefaultsController ()
-@property (nonatomic, readonly) HBAudioDefaults *settings;
+@property (nonatomic, readonly, strong) HBAudioDefaults *settings;
-@property (nonatomic, readonly) HBLanguagesSelection *languagesList;
-@property (assign) IBOutlet HBLanguageArrayController *tableController;
-@property (assign) IBOutlet NSButton *showAllButton;
+@property (nonatomic, readonly, strong) HBLanguagesSelection *languagesList;
-@property (assign) IBOutlet NSArrayController *tracksController;
+@property (unsafe_unretained) IBOutlet HBLanguageArrayController *tableController;
+@property (unsafe_unretained) IBOutlet NSButton *showAllButton;
+
+@property (unsafe_unretained) IBOutlet NSArrayController *tracksController;
@end
self = [super initWithWindowNibName:@"AudioDefaults"];
if (self)
{
- _settings = [settings retain];
+ _settings = settings;
_languagesList = [[HBLanguagesSelection alloc] initWithLanguages:_settings.trackSelectionLanguages];
}
return self;
- (void)dealloc
{
- [_settings release];
- [_languagesList release];
@try {
[self removeObserver:self forKeyPath:@"tableController.showSelectedOnly"];
} @catch (NSException * __unused exception) {}
- [super dealloc];
}
@end
@interface HBAudioTrack : NSObject <NSCoding, NSCopying>
-@property (nonatomic, retain) NSDictionary *track;
-@property (nonatomic, retain) NSDictionary *codec;
-@property (nonatomic, retain) NSDictionary *mixdown;
-@property (nonatomic, retain) NSDictionary *sampleRate;
-@property (nonatomic, retain) NSDictionary *bitRate;
-@property (nonatomic, retain) NSNumber *drc;
-@property (nonatomic, retain) NSNumber *gain;
-@property (nonatomic, retain) NSNumber *videoContainerTag;
-@property (nonatomic, assign) id<HBAudioTrackDataSource> dataSource;
-@property (nonatomic, assign) id<HBAudioTrackDelegate> delegate;
+@property (nonatomic, strong) NSDictionary *track;
+@property (nonatomic, strong) NSDictionary *codec;
+@property (nonatomic, strong) NSDictionary *mixdown;
+@property (nonatomic, strong) NSDictionary *sampleRate;
+@property (nonatomic, strong) NSDictionary *bitRate;
+@property (nonatomic, strong) NSNumber *drc;
+@property (nonatomic, strong) NSNumber *gain;
+@property (nonatomic, strong) NSNumber *videoContainerTag;
+@property (nonatomic, unsafe_unretained) id<HBAudioTrackDataSource> dataSource;
+@property (nonatomic, unsafe_unretained) id<HBAudioTrackDelegate> delegate;
-@property (nonatomic, retain) NSMutableArray *codecs;
-@property (nonatomic, retain) NSMutableArray *mixdowns;
+@property (nonatomic, strong) NSMutableArray *codecs;
+@property (nonatomic, strong) NSMutableArray *mixdowns;
@property (nonatomic, readonly) NSArray *sampleRates;
-@property (nonatomic, retain) NSArray *bitRates;
+@property (nonatomic, strong) NSArray *bitRates;
@property (nonatomic, readonly) BOOL enabled;
- (void) setTrackFromIndex: (int) aValue;
return masterSampleRateArray;
}
-- (void) dealloc
-{
- [_track release];
- [_codec release];
- [_mixdown release];
- [_sampleRate release];
- [_bitRate release];
- [_drc release];
- [_gain release];
- [_videoContainerTag release];
- [_codecs release];
- [_mixdowns release];
- [_bitRates release];
-
- [super dealloc];
-}
-
#pragma mark -
#pragma mark Setters
- (void)setVideoContainerTag:(NSNumber *)videoContainerTag
{
- [_videoContainerTag autorelease];
- _videoContainerTag = [videoContainerTag retain];
+ _videoContainerTag = videoContainerTag;
[self updateCodecs];
}
- (void)setTrack:(NSDictionary *)track
{
NSDictionary *oldValue = _track;
- _track = [track retain];
+ _track = track;
if (nil != _track)
{
[self updateCodecs];
[self.delegate settingTrackToNone: self];
}
}
- [oldValue release];
}
- (void)setCodec:(NSDictionary *)codec
{
- [_codec autorelease];
- _codec = [codec retain];
+ _codec = codec;
[self updateMixdowns: YES];
[self updateBitRates: YES];
}
- (void)setMixdown:(NSDictionary *)mixdown
{
- [_mixdown autorelease];
- _mixdown = [mixdown retain];
+ _mixdown = mixdown;
[self updateBitRates: YES];
[self.delegate mixdownChanged];
}
- (void)setSampleRate:(NSDictionary *)sampleRate
{
- [_sampleRate autorelease];
- _sampleRate = [sampleRate retain];
+ _sampleRate = sampleRate;
[self updateBitRates: NO];
}
}
@end
-
{
[encoders addObject:@(audio_encoder->name)];
}
- return [encoders autorelease];
+ return encoders;
}
- (NSArray *)mixdowns
[mixdowns addObject:@(mixdown->name)];
}
}
- return [mixdowns autorelease];
+ return mixdowns;
}
- (NSArray *)samplerates
{
[samplerates addObject:@(audio_samplerate->name)];
}
- return [samplerates autorelease];
+ return samplerates;
}
- (NSArray *)bitrates
[bitrates addObject:@(audio_bitrate->name)];
}
}
- return [bitrates autorelease];
+ return bitrates;
}
+ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key
*/
@interface HBChapterTitlesController : NSViewController
-@property (nonatomic, readwrite, assign) HBJob *job;
+@property (nonatomic, readwrite, unsafe_unretained) HBJob *job;
@end
IBOutlet NSTableColumn * fChapterTableNameColumn;
}
-@property (nonatomic, readwrite, retain) NSMutableArray *chapterTitles;
+@property (nonatomic, readwrite, strong) NSMutableArray *chapterTitles;
@end
return self;
}
-- (void)dealloc
-{
- [_chapterTitles release];
- [super dealloc];
-}
-
- (void)setJob:(HBJob *)job
{
_job = job;
{
chapterName = [[NSString alloc] initWithContentsOfURL:[panel URL] encoding:NSUTF8StringEncoding error:NULL];
chaptersArray = [chapterName componentsSeparatedByString:@"\n"];
- [chapterName release];
- chaptersMutableArray = [[chaptersArray mutableCopy] autorelease];
+ chaptersMutableArray = [chaptersArray mutableCopy];
chapters = [self numberOfRowsInTableView:fChapterTable];
if ([chaptersMutableArray count] > 0)
{
@interface HBController () <HBPresetsViewControllerDelegate, HBPreviewControllerDelegate, HBPictureControllerDelegate, HBTitleSelectionDelegate>
-@property (assign) IBOutlet NSView *openTitleView;
+@property (unsafe_unretained) IBOutlet NSView *openTitleView;
@property (nonatomic, readwrite) BOOL scanSpecificTitle;
@property (nonatomic, readwrite) NSInteger scanSpecificTitleIdx;
-@property (nonatomic, readwrite, retain) HBTitleSelectionController *titlesSelectionController;
+@property (nonatomic, readwrite, strong) HBTitleSelectionController *titlesSelectionController;
/**
* The name of the source, it might differ from the source
@property (nonatomic, copy) NSString *browsedSourceDisplayName;
/// The current job.
-@property (nonatomic, retain) HBJob *job;
+@property (nonatomic, strong) HBJob *job;
/// The job to be applied from the queue.
-@property (nonatomic, retain) HBJob *jobFromQueue;
+@property (nonatomic, strong) HBJob *jobFromQueue;
/// The current selected preset.
-@property (nonatomic, retain) HBPreset *selectedPreset;
+@property (nonatomic, strong) HBPreset *selectedPreset;
@property (nonatomic) BOOL customPreset;
/// The HBCore used for scanning.
-@property (nonatomic, retain) HBCore *core;
+@property (nonatomic, strong) HBCore *core;
-@property (nonatomic, readwrite) NSColor *labelColor;
+@property (unsafe_unretained, nonatomic, readwrite) NSColor *labelColor;
@end
fQueueController.controller = self;
presetManager = manager;
- _selectedPreset = [presetManager.defaultPreset retain];
+ _selectedPreset = presetManager.defaultPreset;
}
return self;
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
-
- [fPreviewController release];
- [fPictureController release];
-
- [_browsedSourceDisplayName release];
- [_job release];
- [_jobFromQueue release];
- [_selectedPreset release];
- [_labelColor release];
- [_core release];
-
- [super dealloc];
}
- (void)windowDidLoad
if (![[fMainTabView tabViewItems] containsObject:fAdvancedTab])
{
[fMainTabView insertTabViewItem:fAdvancedTab atIndex:3];
- [fAdvancedTab release];
}
}
else
{
- [fAdvancedTab retain];
[fMainTabView removeTabViewItem:fAdvancedTab];
}
}
[self removeJobObservers];
// Retain the new job
- [_job autorelease];
- _job = [job retain];
+ _job = job;
// Set the jobs info to the view controllers
fPictureController.picture = job.picture;
if (job)
{
- fPreviewController.generator = [[[HBPreviewGenerator alloc] initWithCore:self.core job:job] autorelease];
+ fPreviewController.generator = [[HBPreviewGenerator alloc] initWithCore:self.core job:job];
}
else
{
[alert addButtonWithTitle:@"Attempt Scan Anyway"];
[NSApp requestUserAttention:NSCriticalRequest];
NSInteger status = [alert runModal];
- [alert release];
if (status == NSAlertFirstButtonReturn)
{
}
else
{
- self.job = [[[HBJob alloc] initWithTitle:title andPreset:self.selectedPreset] autorelease];
+ self.job = [[HBJob alloc] initWithTitle:title andPreset:self.selectedPreset];
self.job.destURL = [self destURLForJob:self.job];
}
*/
- (void)doAddToQueue
{
- [fQueueController addJob:[[self.job copy] autorelease]];
+ [fQueueController addJob:[self.job copy]];
}
/**
[alert setMessageText:NSLocalizedString(@"Warning!", @"")];
[alert setInformativeText:NSLocalizedString(@"This is not a valid destination directory!", @"")];
[alert runModal];
- [alert release];
return;
}
[alert setAlertStyle:NSCriticalAlertStyle];
[alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overwriteAddToQueueAlertDone:returnCode:contextInfo:) contextInfo:NULL];
- [alert release];
}
else if ([fQueueController jobExistAtURL:self.job.destURL])
{
[alert setAlertStyle:NSCriticalAlertStyle];
[alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overwriteAddToQueueAlertDone:returnCode:contextInfo:) contextInfo:NULL];
- [alert release];
}
else
{
[alert setMessageText:NSLocalizedString(@"Warning!", @"")];
[alert setInformativeText:NSLocalizedString(@"This is not a valid destination directory!", @"")];
[alert runModal];
- [alert release];
return;
}
[alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overWriteAlertDone:returnCode:contextInfo:) contextInfo:NULL];
// overWriteAlertDone: will be called when the alert is dismissed. It will call doRip.
- [alert release];
}
else
{
- (IBAction)addTitlesToQueue:(id)sender
{
- self.titlesSelectionController = [[[HBTitleSelectionController alloc] initWithTitles:self.core.titles delegate:self] autorelease];
+ self.titlesSelectionController = [[HBTitleSelectionController alloc] initWithTitles:self.core.titles delegate:self];
[NSApp beginSheet:self.titlesSelectionController.window
modalForWindow:self.window
job.destURL = [self destURLForJob:job];
job.title = nil;
[jobs addObject:job];
- [job release];
}
}
break;
}
}
- [destinations release];
if (fileExists)
{
[alert addButtonWithTitle:NSLocalizedString(@"Overwrite", nil)];
[alert setAlertStyle:NSCriticalAlertStyle];
- [alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overwriteAddTitlesToQueueAlertDone:returnCode:contextInfo:) contextInfo:jobs];
- [alert release];
+ [alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overwriteAddTitlesToQueueAlertDone:returnCode:contextInfo:) contextInfo:(__bridge void *)(jobs)];
}
else
{
[fQueueController addJobsFromArray:jobs];
- [jobs release];
}
}
{
if (returnCode == NSAlertSecondButtonReturn)
{
- NSArray *jobs = (NSArray *)contextInfo;
+ NSArray *jobs = (__bridge NSArray *)contextInfo;
[fQueueController addJobsFromArray:jobs];
- [jobs release];
}
}
HBAddPresetController *addPresetController = [[HBAddPresetController alloc] initWithPreset:[self createPresetFromCurrentSettings]
videoSize:NSMakeSize(self.job.picture.width, self.job.picture.height)];
- [NSApp beginSheet:addPresetController.window modalForWindow:self.window modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:addPresetController];
+ [NSApp beginSheet:addPresetController.window modalForWindow:self.window modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:(__bridge void *)(addPresetController)];
}
- (void)sheetDidEnd:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo
{
- HBAddPresetController *addPresetController = (HBAddPresetController *)contextInfo;
+ HBAddPresetController *addPresetController = (HBAddPresetController *)CFBridgingRelease(contextInfo);
if (returnCode == NSModalResponseContinue)
{
[presetManager addPreset:addPresetController.preset];
}
- [addPresetController release];
}
- (HBPreset *)createPresetFromCurrentSettings
[self.job applyCurrentSettingsToPreset:preset];
- return [[[HBPreset alloc] initWithName:preset[@"PresetName"] content:preset builtIn:NO] autorelease];
+ return [[HBPreset alloc] initWithName:preset[@"PresetName"] content:preset builtIn:NO];
}
#pragma mark -
[[NSFileManager defaultManager] createFileAtPath:[exportPresetsFile path] contents:nil attributes:nil];
}
- NSMutableArray *presetsToExport = [[[NSMutableArray alloc] initWithContentsOfURL:exportPresetsFile] autorelease];
+ NSMutableArray *presetsToExport = [[NSMutableArray alloc] initWithContentsOfURL:exportPresetsFile];
if (presetsToExport == nil)
{
presetsToExport = [[NSMutableArray alloc] init];
// actually add the new preset to our presets array
[presetManager addPresetFromDictionary:dict];
}
- [presetsToImport autorelease];
}];
}
@property (nonatomic, readonly) dispatch_queue_t updateTimerQueue;
/// Current scanned titles.
-@property (nonatomic, readwrite, retain) NSArray *titles;
+@property (nonatomic, readwrite, strong) NSArray *titles;
/// Progress handler.
@property (nonatomic, readwrite, copy) HBCoreProgressHandler progressHandler;
+ (void)closeGlobal
{
NSAssert(globalInitialized, @"[HBCore closeGlobal] global closed but not initialized");
- [errorHandler release];
hb_global_close();
}
_hb_handle = hb_init(loggingLevel, 0);
if (!_hb_handle)
{
- [self release];
return nil;
}
}
hb_close(&_hb_handle);
_hb_handle = NULL;
free(_hb_state);
-
- [_name release];
- _name = nil;
-
- [_titles release];
- _titles = nil;
-
- [super dealloc];
}
#pragma mark - Scan
for (int i = 0; i < hb_list_count(title_set->list_title); i++)
{
hb_title_t *title = (hb_title_t *) hb_list_item(title_set->list_title, i);
- [titles addObject:[[[HBTitle alloc] initWithTitle:title featured:(title->index == title_set->feature)] autorelease]];
+ [titles addObject:[[HBTitle alloc] initWithTitle:title featured:(title->index == title_set->feature)]];
}
- self.titles = [[titles copy] autorelease];
+ self.titles = [titles copy];
[HBUtilities writeToActivityLog:"%s scan done", self.name.UTF8String];
{
// Retain the completion block, because it could be replaced
// inside the same block.
- HBCoreCompletionHandler completionHandler = [self.completionHandler retain];
+ HBCoreCompletionHandler completionHandler = self.completionHandler;
self.completionHandler = nil;
completionHandler(result);
- [completionHandler release];
}
}
+ (HBDVDDetector *)detectorForPath: (NSString *)aPath
{
- return [[[self alloc] initWithPath:aPath] autorelease];
+ return [[self alloc] initWithPath:aPath];
}
NSAssert(aPath, @"nil string passed to drive detector.");
if( self = [super init] )
{
- path = [aPath retain];
+ path = aPath;
bsdName = nil;
}
return self;
}
-- (void)dealloc
-{
- [path release];
- path = nil;
- [bsdName release];
- bsdName = nil;
- [super dealloc];
-}
-
-
- (BOOL)isVideoDVD
{
return ( [self pathHasVideoTS] && [self deviceIsDVD] );
bsdName = [bsdName substringFromIndex:5];
}
- return [bsdName retain];
+ return bsdName;
}
- (instancetype)initWithObject:(id)object;
-@property (nonatomic, retain) id representedObject;
-@property (nonatomic, readonly) NSString *uuid;
+@property (nonatomic, strong) id representedObject;
+@property (unsafe_unretained, nonatomic, readonly) NSString *uuid;
@end
- (instancetype)initWithObject:(id)object
{
- _representedObject = [object retain];
+ _representedObject = object;
return self;
}
-- (void)dealloc
-{
- [_representedObject release];
- [super dealloc];
-}
-
- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
{
return [self.representedObject methodSignatureForSelector:selector];
- (void)dealloc
{
+ [[NSDistributedNotificationCenter defaultCenter] removeObserver:self];
+
[self lock];
[self synchronize];
[self unlock];
- [_fileURL release];
- _fileURL = nil;
- [_array release];
- _array = nil;
-
- [[NSDistributedNotificationCenter defaultCenter] removeObserver:self];
-
sem_close(_mutex);
-
- [super dealloc];
}
- (void)lock
}
else
{
- return [[[HBProxyArrayObject alloc] initWithObject:anObject] autorelease];
+ return [[HBProxyArrayObject alloc] initWithObject:anObject];
}
}
@interface HBDockTile ()
-@property (nonatomic, retain) NSDockTile *dockTile;
-@property (nonatomic, retain) NSImage *image;
-@property (nonatomic, retain) DockTextField * percentField;
-@property (nonatomic, retain) DockTextField * timeField;
+@property (nonatomic, strong) NSDockTile *dockTile;
+@property (nonatomic, strong) NSImage *image;
+@property (nonatomic, strong) DockTextField * percentField;
+@property (nonatomic, strong) DockTextField * timeField;
@end
self = [super init];
if (self)
{
- _dockTile = [dockTile retain];
- _image = [image retain];
+ _dockTile = dockTile;
+ _image = image;
NSImageView *iv = [[NSImageView alloc] init];
[iv setImage:_image];
_timeField = [[DockTextField alloc] initWithFrame:NSMakeRect(0.0f, 0.0f, [dockTile size].width, 30.0f)];
[_timeField changeGradientColors:[NSColor colorWithDeviceRed:0.6f green:0.4f blue:0.4f alpha:1.0f] endColor:[NSColor colorWithDeviceRed:0.4f green:0.2f blue:0.2f alpha:1.0f]];
[iv addSubview:_timeField];
- [iv release];
}
return self;
}
-- (void)dealloc
-{
- [_dockTile release];
- [_image release];
- [_percentField release];
- [_timeField release];
-
- [super dealloc];
-}
-
- (void)updateDockIcon:(double)progress withETA:(NSString *)etaStr
{
if (progress < 0.0 || progress > 1.0)
*/
@interface HBGenericDictionaryTransformer : NSValueTransformer
-@property (nonatomic, retain) NSDictionary *dict;
+@property (nonatomic, strong) NSDictionary *dict;
@end
@interface HBDenoisePresetTransformer : HBGenericDictionaryTransformer
{
if (self == [HBFilters class])
{
- _HandBrake_denoiseTypesDict = [@{NSLocalizedString(@"Off", nil): @"off",
+ _HandBrake_denoiseTypesDict = @{NSLocalizedString(@"Off", nil): @"off",
NSLocalizedString(@"NLMeans", nil): @"nlmeans",
- NSLocalizedString(@"HQDN3D", nil): @"hqdn3d"} retain];
+ NSLocalizedString(@"HQDN3D", nil): @"hqdn3d"};
- _HandBrake_denoisePresetsDict = [@{NSLocalizedString(@"Custom", nil): @"none",
+ _HandBrake_denoisePresetsDict = @{NSLocalizedString(@"Custom", nil): @"none",
NSLocalizedString(@"Ultralight", nil): @"ultralight",
NSLocalizedString(@"Light", nil): @"light",
NSLocalizedString(@"Medium", nil) : @"medium",
- NSLocalizedString(@"Strong", nil) : @"strong"} retain];
+ NSLocalizedString(@"Strong", nil) : @"strong"};
- _HandBrake_nlmeansTunesDict = [@{NSLocalizedString(@"None", nil): @"none",
+ _HandBrake_nlmeansTunesDict = @{NSLocalizedString(@"None", nil): @"none",
NSLocalizedString(@"Film", nil): @"film",
NSLocalizedString(@"Grain", nil): @"grain",
NSLocalizedString(@"High Motion", nil): @"highmotion",
- NSLocalizedString(@"Animation", nil) : @"animation"} retain];
+ NSLocalizedString(@"Animation", nil) : @"animation"};
}
}
// Override setter to avoid nil values.
- (void)setDetelecineCustomString:(NSString *)detelecineCustomString
{
- [_detelecineCustomString autorelease];
-
if (detelecineCustomString)
{
_detelecineCustomString = [detelecineCustomString copy];
- (void)setDeinterlaceCustomString:(NSString *)deinterlaceCustomString
{
- [_deinterlaceCustomString autorelease];
-
if (deinterlaceCustomString)
{
_deinterlaceCustomString = [deinterlaceCustomString copy];
- (void)setDecombCustomString:(NSString *)decombCustomString
{
- [_decombCustomString autorelease];
-
if (decombCustomString)
{
_decombCustomString = [decombCustomString copy];
- (void)setDenoise:(NSString *)denoise
{
- [_denoise autorelease];
-
if (denoise)
{
_denoise = [denoise copy];
- (void)setDenoisePreset:(NSString *)denoisePreset
{
- [_denoisePreset autorelease];
-
if (denoisePreset)
{
_denoisePreset = [denoisePreset copy];
- (void)setDenoiseTune:(NSString *)denoiseTune
{
- [_denoiseTune autorelease];
-
if (denoiseTune)
{
_denoiseTune = [denoiseTune copy];
- (void)setDenoiseCustomString:(NSString *)denoiseCustomString
{
- [_denoiseCustomString autorelease];
-
if (denoiseCustomString)
{
_denoiseCustomString = [denoiseCustomString copy];
- (NSRect)drawTitle:(NSAttributedString *)title withFrame:(NSRect)frame inView:(NSView *)controlView
{
- NSAttributedString *attrLabel = [[[NSAttributedString alloc] initWithString:[title string]
+ NSAttributedString *attrLabel = [[NSAttributedString alloc] initWithString:[title string]
attributes:@{ NSFontAttributeName:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:self.controlSize]],
- NSForegroundColorAttributeName: [NSColor whiteColor]}] autorelease];
+ NSForegroundColorAttributeName: [NSColor whiteColor]}];
return [super drawTitle:attrLabel withFrame:frame inView:controlView];
}
{
// If NSVisualEffectView class is loaded
// release ourself and return a NSVisualEffectView instance instead.
- [self release];
self = [[NSClassFromString(@"NSVisualEffectView") alloc] initWithFrame:frame];
if (self)
{
return self;
}
-- (void)dealloc
-{
- [image release];
- image = nil;
- [super dealloc];
-}
-
- copyWithZone:(NSZone *)zone
{
HBImageAndTextCell *cell = (HBImageAndTextCell *)[super copyWithZone:zone];
- cell->image = [image retain];
+ cell->image = image;
return cell;
}
{
if (anImage != image)
{
- [image release];
- image = [anImage retain];
+ image = anImage;
}
}
[containers addObject:title];
}
- return [[containers copy] autorelease];
+ return [containers copy];
}
- (void)initStyles
if (!ps)
{
// Attributes
- ps = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain];
+ ps = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
[ps setHeadIndent: 40.0];
[ps setParagraphSpacing: 1.0];
[ps setTabStops:@[]]; // clear all tabs
- [ps addTabStop: [[[NSTextTab alloc] initWithType: NSLeftTabStopType location: 20.0] autorelease]];
+ [ps addTabStop: [[NSTextTab alloc] initWithType: NSLeftTabStopType location: 20.0]];
- detailAttr = [@{NSFontAttributeName: [NSFont systemFontOfSize:10.0],
- NSParagraphStyleAttributeName: ps} retain];
+ detailAttr = @{NSFontAttributeName: [NSFont systemFontOfSize:10.0],
+ NSParagraphStyleAttributeName: ps};
- detailBoldAttr = [@{NSFontAttributeName: [NSFont boldSystemFontOfSize:10.0],
- NSParagraphStyleAttributeName: ps} retain];
+ detailBoldAttr = @{NSFontAttributeName: [NSFont boldSystemFontOfSize:10.0],
+ NSParagraphStyleAttributeName: ps};
- titleAttr = [@{NSFontAttributeName: [NSFont systemFontOfSize:[NSFont systemFontSize]],
- NSParagraphStyleAttributeName: ps} retain];
+ titleAttr = @{NSFontAttributeName: [NSFont systemFontOfSize:[NSFont systemFontSize]],
+ NSParagraphStyleAttributeName: ps};
- shortHeightAttr = [@{NSFontAttributeName: [NSFont systemFontOfSize:2.0]} retain];
+ shortHeightAttr = @{NSFontAttributeName: [NSFont systemFontOfSize:2.0]};
}
}
}
}
- [finalString appendString:[NSString stringWithFormat:@"%@", self.fileURL.path.lastPathComponent] withAttributes:titleAttr];
+ [finalString appendString:[NSString stringWithFormat:@"%@", self.description] withAttributes:titleAttr];
// lets add the output file name to the title string here
NSString *outputFilenameString = self.destURL.lastPathComponent;
}
}
- return [finalString autorelease];
+ return finalString;
}
@end
#import "HBAudio.h"
#import "HBSubtitles.h"
+#import "HBDistributedArray.h"
+
extern NSString *HBContainerChangedNotification;
extern NSString *HBChaptersChangedNotification;
/**
* HBJob
*/
-@interface HBJob : NSObject <NSCoding, NSCopying>
+@interface HBJob : NSObject <NSCoding, NSCopying, HBUniqueObject>
- (instancetype)initWithTitle:(HBTitle *)title andPreset:(HBPreset *)preset;
- (void)applyPreset:(HBPreset *)preset;
- (void)applyCurrentSettingsToPreset:(NSMutableDictionary *)dict;
-/**
- * Current state of the job.
- */
+/// Current state of the job.
@property (nonatomic, readwrite) HBJobState state;
-@property (nonatomic, readwrite, copy) NSString *presetName;
-
@property (nonatomic, readwrite, assign) HBTitle *title;
@property (nonatomic, readonly) int titleIdx;
-@property (nonatomic, readonly) NSString *uuid;
-/**
- * The file URL of the source.
- */
+@property (nonatomic, readwrite, copy) NSString *presetName;
+
+/// The file URL of the source.
@property (nonatomic, readonly) NSURL *fileURL;
-/**
- * The file URL at which the new file will be created.
- */
+/// The file URL at which the new file will be created.
@property (nonatomic, readwrite, copy) NSURL *destURL;
// Job settings
NSString *HBContainerChangedNotification = @"HBContainerChangedNotification";
NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
+@interface HBJob ()
+@property (nonatomic, readonly) NSString *name;
+@end
+
@implementation HBJob
+@synthesize uuid = _uuid;
+
- (instancetype)initWithTitle:(HBTitle *)title andPreset:(HBPreset *)preset
{
self = [super init];
_title = title;
_titleIdx = title.index;
- _fileURL = [[NSURL fileURLWithPath:@(title.hb_title->path)] retain];
+ _name = [title.name copy];
+ _fileURL = [NSURL fileURLWithPath:@(title.hb_title->path)];
_container = HB_MUX_MP4;
_angle = 1;
_chapterTitles = [title.chapters mutableCopy];
- _uuid = [[[NSUUID UUID] UUIDString] retain];
+ _uuid = [[NSUUID UUID] UUIDString];
[self applyPreset:preset];
}
return retval;
}
-- (void)dealloc
+- (NSString *)description
{
- [_audio release];
- [_subtitles release];
-
- [_fileURL release];
- [_destURL release];
-
- [_range release];
- [_video release];
- [_picture release];
- [_filters release];
-
- [_chapterTitles release];
-
- [_uuid release];
- [_presetName release];
-
- [super dealloc];
+ return self.name;
}
#pragma mark - NSCopying
if (copy)
{
copy->_state = HBJobStateReady;
+ copy->_name = [_name copy];
copy->_presetName = [_presetName copy];
copy->_titleIdx = _titleIdx;
- copy->_uuid = [[[NSUUID UUID] UUIDString] retain];
+ copy->_uuid = [[NSUUID UUID] UUIDString];
copy->_fileURL = [_fileURL copy];
copy->_destURL = [_destURL copy];
[coder encodeInt:1 forKey:@"HBVideoVersion"];
encodeInt(_state);
+ encodeObject(_name);
encodeObject(_presetName);
encodeInt(_titleIdx);
encodeObject(_uuid);
self = [super init];
decodeInt(_state);
+ decodeObject(_name);
decodeObject(_presetName);
decodeInt(_titleIdx);
decodeObject(_uuid);
*/
@property (nonatomic, readwrite) BOOL isDragginEnabled;
-@property (assign) IBOutlet NSTableView *tableView;
+@property (unsafe_unretained) IBOutlet NSTableView *tableView;
@end
self = [super init];
if (self)
{
- _language = [value retain];
- _iso639_2 = [code retain];
+ _language = value;
+ _iso639_2 = code;
}
return self;
}
HBLang *lang = [[self class] allocWithZone:zone];
lang->_isSelected = self.isSelected;
- lang->_language = [self.language retain];
- lang->_iso639_2 = [self.iso639_2 retain];
+ lang->_language = self.language;
+ lang->_iso639_2 = self.iso639_2;
return lang;
}
-- (void)dealloc
-{
- [_language release];
- [_iso639_2 release];
-
- [super dealloc];
-}
-
- (NSString *)description
{
return self.language;
[internal addObject:item];
}
- [item release];
}
// Add the (Any) item.
- HBLang *item = [[[HBLang alloc] initWithLanguage:@"(Any)"
- iso639_2code:@"und"] autorelease];
+ HBLang *item = [[HBLang alloc] initWithLanguage:@"(Any)"
+ iso639_2code:@"und"];
if ([languages containsObject:item.iso639_2])
{
item.isSelected = YES;
[internal insertObjects:selected
atIndexes:[NSIndexSet indexSetWithIndexesInRange:(NSMakeRange(1, selected.count))]];
- [selected release];
_languagesArray = internal;
}
- (NSArray *)selectedLanguages
{
- NSMutableArray *selected = [[[NSMutableArray alloc] init] autorelease];
+ NSMutableArray *selected = [[NSMutableArray alloc] init];
for (HBLang *lang in self.languagesArray)
{
if (lang.isSelected)
}
}
- return [[selected copy] autorelease];
+ return [selected copy];
}
-- (void)dealloc
-{
- [_languagesArray release];
-
- [super dealloc];
-}
@end
}
data = [NSKeyedArchiver archivedDataWithRootObject:unfilteredIndexes];
- [filteredArray release];
}
else
{
id object = objects[removeIndex];
// Move the object
- [object retain];
[self removeObjectAtArrangedObjectIndex:removeIndex];
[self insertObject:object atArrangedObjectIndex:insertIndex];
- [object release];
thisIndex = [indexSet indexLessThanIndex:thisIndex];
}
- (void)dealloc
{
fclose(f);
- [_url release];
- [super dealloc];
}
- (void)writeHeaderForReason:(NSString *)reason
// Add ourself as stderr/stdout listener
[[HBOutputRedirect stderrRedirect] addListener:self];
[[HBOutputRedirect stdoutRedirect] addListener:self];
+
+ // Lets report the HandBrake version number here to the activity log and text log file
+ NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
+ NSString *versionStringFull = [NSString stringWithFormat:@"Handbrake Version: %@ (%@)", infoDict[@"CFBundleShortVersionString"], infoDict[@"CFBundleVersion"]];
+ [HBUtilities writeToActivityLog: "%s", versionStringFull.UTF8String];
}
return self;
}
{
[[HBOutputRedirect stderrRedirect] removeListener:self];
[[HBOutputRedirect stdoutRedirect] removeListener:self];
- [outputTextStorage release];
- [_outputFile release];
-
- [super dealloc];
}
/**
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:text];
/* Actually write the libhb output to the text view (outputTextStorage) */
[outputTextStorage appendAttributedString:attributedString];
- [attributedString release];
/* remove text from outputTextStorage as defined by TextStorageUpperSizeLimit and TextStorageLowerSizeLimit */
if (outputTextStorage.length > TextStorageUpperSizeLimit)
{
NSData *data = [[NSData alloc] initWithBytes:buffer length:size];
[g_stdoutRedirect performSelectorOnMainThread:@selector(forwardOutput:) withObject:data waitUntilDone:NO];
- [data release];
}
return size;
}
{
NSData *data = [[NSData alloc] initWithBytes:buffer length:size];
[g_stderrRedirect performSelectorOnMainThread:@selector(forwardOutput:) withObject:data waitUntilDone:NO];
- [data release];
}
return size;
}
if (![listeners containsObject:aListener])
{
[listeners addObject:aListener];
- [aListener release];
}
if ([listeners count] > 0)
{
if ([listeners containsObject:aListener])
{
- [aListener retain];
[listeners removeObject:aListener];
}
if ([listeners count] == 0)
{
[self stopRedirect];
- [self autorelease];
if (self == g_stdoutRedirect)
g_stdoutRedirect = nil;
return self;
}
-/**
- * Frees all the listeners and deallocs the object.
- */
-- (void)dealloc
-{
- [listeners release];
- [super dealloc];
-}
-
/**
* Starts redirecting the stream by redirecting its output to function
* @c stdoutwrite() or @c stderrwrite(). Old _write function is stored to
if (string)
{
[listeners makeObjectsPerformSelector:forwardingSelector withObject:string];
- [string release];
}
}
self.cropTop, self.cropBottom,
self.cropLeft, self.cropRight];
- return [[summary copy] autorelease];
+ return [summary copy];
}
@end
@property (nonatomic, readwrite) int cropLeft;
@property (nonatomic, readwrite) int cropRight;
-@property (nonatomic, readwrite, assign) HBTitle *title;
+@property (nonatomic, readwrite, unsafe_unretained) HBTitle *title;
@end
@interface HBPictureController : NSWindowController <NSWindowDelegate>
-@property (nonatomic, readwrite, retain) HBFilters *filters;
-@property (nonatomic, readwrite, retain) HBPicture *picture;
+@property (nonatomic, readwrite, strong) HBFilters *filters;
+@property (nonatomic, readwrite, strong) HBPicture *picture;
-@property (nonatomic, readwrite, assign) id <HBPictureControllerDelegate> delegate;
+@property (nonatomic, readwrite, unsafe_unretained) id <HBPictureControllerDelegate> delegate;
- (void)showPictureWindow;
}
} @catch (NSException * __unused exception) {}
-
- self.filters = nil;
- self.picture = nil;
-
- [super dealloc];
}
- (void)windowDidLoad
label: (NSString *)label
image: (NSImage *)image;
-@property (assign) IBOutlet NSTokenField *formatTokenField;
-@property (assign) IBOutlet NSTokenField *builtInTokenField;
-@property (nonatomic, readonly) NSArray *buildInFormatTokens;
-@property (nonatomic, retain) NSArray *matches;
+@property (unsafe_unretained) IBOutlet NSTokenField *formatTokenField;
+@property (unsafe_unretained) IBOutlet NSTokenField *builtInTokenField;
+@property (nonatomic, readonly, strong) NSArray *buildInFormatTokens;
+@property (nonatomic, strong) NSArray *matches;
-@property (nonatomic, retain) HBLanguagesSelection *languages;
+@property (nonatomic, strong) HBLanguagesSelection *languages;
@end
return self;
}
-- (void)dealloc
-{
- [_languages release];
- [super dealloc];
-}
-
- (void)showWindow:(id)sender
{
if (!self.window.isVisible)
*/
- (void) awakeFromNib
{
- NSToolbar * toolbar = [[[NSToolbar alloc] initWithIdentifier: @"Preferences Toolbar"] autorelease];
+ NSToolbar * toolbar = [[NSToolbar alloc] initWithIdentifier: @"Preferences Toolbar"];
[toolbar setDelegate: self];
[toolbar setAllowsUserCustomization: NO];
[toolbar setDisplayMode: NSToolbarDisplayModeIconAndLabel];
[self.formatTokenField setTokenizingCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"%%"]];
[self.formatTokenField setCompletionDelay:0.2];
- _buildInFormatTokens = [@[@"{Source}", @"{Title}", @"{Date}", @"{Time}", @"{Chapters}", @"{Quality/Bitrate}"] retain];
+ _buildInFormatTokens = @[@"{Source}", @"{Title}", @"{Date}", @"{Time}", @"{Chapters}", @"{Quality/Bitrate}"];
[self.builtInTokenField setTokenizingCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"%%"]];
[self.builtInTokenField setStringValue:[self.buildInFormatTokens componentsJoinedByString:@"%%"]];
[item setImage:image];
[item setAction:@selector(setPrefView:)];
[item setAutovalidates:NO];
- return [item autorelease];
+ return item;
}
@end
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *presetDescription;
-@property (nonatomic, retain) NSDictionary *content;
+@property (nonatomic, strong) NSDictionary *content;
@property (nonatomic) BOOL isDefault;
@property (nonatomic, readonly) BOOL isBuiltIn;
{
_name = [title copy];
_isBuiltIn = builtIn;
- _content = [content retain];
+ _content = content;
_presetDescription = [content[@"PresetDescription"] copy];
}
return self;
return self;
}
-- (void)dealloc
-{
- [_name release];
- [_content release];
- [_presetDescription release];
-
- [super dealloc];
-}
-
- (id)copyWithZone:(NSZone *)zone
{
HBPreset *node = [[self class] allocWithZone:zone];
node->_presetDescription = [self.presetDescription copy];
for (HBPreset *children in self.children)
{
- [node.children addObject:[[children copy] autorelease]];
+ [node.children addObject:[children copy]];
}
return node;
- (void)setName:(NSString *)name
{
- [_name autorelease];
_name = [name copy];
[self.delegate nodeDidChange];
/**
* defaultPreset and its index path in the tree
*/
-@property (nonatomic, readwrite, retain) HBPreset *defaultPreset;
+@property (nonatomic, readwrite, strong) HBPreset *defaultPreset;
/**
* Returs a HBPresetManager with the presets loaded at the passed URL.
return self;
}
-- (void)dealloc
-{
- [_fileURL release];
- [_defaultPreset release];
-
- [_root release];
-
- [super dealloc];
-}
-
- (NSIndexPath *)indexPathOfPreset:(HBPreset *)preset
{
__block NSIndexPath *retValue = nil;
{
if ([obj isEqualTo:preset])
{
- retValue = [idx retain];
+ retValue = idx;
*stop = YES;
}
}];
- return [retValue autorelease];
+ return retValue;
}
#pragma mark - HBTreeNode delegate
[self.root.children addObject:[self loadFromDict:child]];
}
- [presetsArray release];
-
// If the preset list contains no leaf,
// add back the built in presets.
__block BOOL leafFound = NO;
- (BOOL)savePresetsToURL:(NSURL *)url
{
- NSMutableArray *presetsArray = [[[NSMutableArray alloc] init] autorelease];
+ NSMutableArray *presetsArray = [[NSMutableArray alloc] init];
for (HBPreset *node in self.root.children)
{
HBPreset *node = nil;
if ([dict[@"Folder"] boolValue])
{
- node = [[[HBPreset alloc] initWithFolderName:dict[@"PresetName"]
- builtIn:![dict[@"Type"] boolValue]] autorelease];
+ node = [[HBPreset alloc] initWithFolderName:dict[@"PresetName"]
+ builtIn:![dict[@"Type"] boolValue]];
for (NSDictionary *child in dict[@"ChildrenArray"])
{
}
else
{
- node = [[[HBPreset alloc] initWithName:dict[@"PresetName"]
+ node = [[HBPreset alloc] initWithName:dict[@"PresetName"]
content:dict
- builtIn:![dict[@"Type"] boolValue]] autorelease];
+ builtIn:![dict[@"Type"] boolValue]];
node.isDefault = [dict[@"Default"] boolValue];
if ([dict[@"Default"] boolValue])
}
output[@"ChildrenArray"] = childArray;
- [childArray release];
}
- return [output autorelease];
+ return output;
}
#pragma mark - Presets Management
builtIn:NO];
[self.root insertObject:presetNode inChildrenAtIndex:[self.root countOfChildren]];
- [presetNode release];
[self savePresets];
}
if (_defaultPreset)
{
_defaultPreset.isDefault = NO;
- [_defaultPreset autorelease];
}
defaultPreset.isDefault = YES;
- _defaultPreset = [defaultPreset retain];
+ _defaultPreset = defaultPreset;
[self nodeDidChange];
}
// each time the app checks the version.
presetDict[@"PresetBuildNumber"] = [[NSBundle mainBundle] infoDictionary][@"CFBundleVersion"];
[obj setContent:presetDict];
- [presetDict release];
}];
[self.root insertObject:preset inChildrenAtIndex:0];
}
- [presetsArray release];
-
// set a new Default preset
[self selectNewDefault];
}
}
[self.root.children removeObjectsInArray:nodeToRemove];
- [nodeToRemove release];
[self didChangeValueForKey:@"root"];
}
- (instancetype)initWithPresetManager:(HBPresetsManager *)presetManager;
-@property (nonatomic, readwrite, assign) id<HBPresetsViewControllerDelegate> delegate;
+@property (nonatomic, readwrite, unsafe_unretained) id<HBPresetsViewControllerDelegate> delegate;
- (void)deselect;
- (void)setSelection:(HBPreset *)preset;
- (IBAction)insertFolder:(id)sender;
-@property (nonatomic, readonly) HBPreset *selectedPreset;
+@property (unsafe_unretained, nonatomic, readonly) HBPreset *selectedPreset;
@property (nonatomic, readonly) NSUInteger indexOfSelectedItem;
@property (nonatomic, readwrite, getter=isEnabled) BOOL enabled;
@interface HBPresetsViewController () <NSOutlineViewDelegate>
-@property (nonatomic, retain) HBPresetsManager *presets;
-@property (nonatomic, assign) IBOutlet NSTreeController *treeController;
+@property (nonatomic, strong) HBPresetsManager *presets;
+@property (nonatomic, unsafe_unretained) IBOutlet NSTreeController *treeController;
/**
* Helper var for drag & drop
*/
-@property (nonatomic, retain) NSArray *dragNodesArray;
+@property (nonatomic, strong) NSArray *dragNodesArray;
/**
* The status (expanded or not) of the folders.
*/
-@property (nonatomic, retain) NSMutableArray *expandedNodes;
+@property (nonatomic, strong) NSMutableArray *expandedNodes;
-@property (assign) IBOutlet NSOutlineView *outlineView;
+@property (unsafe_unretained) IBOutlet NSOutlineView *outlineView;
@end
self = [super initWithNibName:@"Presets" bundle:nil];
if (self)
{
- _presets = [presetManager retain];
+ _presets = presetManager;
_expandedNodes = [[NSArray arrayWithArray:[[NSUserDefaults standardUserDefaults]
objectForKey:@"HBPreviewViewExpandedStatus"]] mutableCopy];
}
return self;
}
-- (void)dealloc
-{
- self.presets = nil;
- self.dragNodesArray = nil;
- self.expandedNodes = nil;
-
- [super dealloc];
-}
-
- (void)loadView
{
[super loadView];
HBPreset *node = [[HBPreset alloc] initWithFolderName:@"New Folder" builtIn:NO];
[self.treeController insertObject:node atArrangedObjectIndexPath:selectionIndexPath];
- [node autorelease];
}
- (IBAction)setDefault:(id)sender
- (id)initWithDelegate:(id <HBPreviewControllerDelegate>)delegate;
-@property (nonatomic, retain) HBPreviewGenerator *generator;
+@property (nonatomic, strong) HBPreviewGenerator *generator;
@end
IBOutlet NSPopUpButton * fPreviewMovieLengthPopUp;
}
-@property (nonatomic, assign) id <HBPreviewControllerDelegate> delegate;
+@property (nonatomic, unsafe_unretained) id <HBPreviewControllerDelegate> delegate;
-@property (nonatomic) CALayer *backLayer;
-@property (nonatomic) CALayer *pictureLayer;
+@property (nonatomic, strong) CALayer *backLayer;
+@property (nonatomic, strong) CALayer *pictureLayer;
@property (nonatomic) CGFloat backingScaleFactor;
@property (nonatomic) ViewMode currentViewMode;
@property (nonatomic) BOOL scaleToScreen;
-@property (nonatomic, retain) NSTimer *hudTimer;
+@property (nonatomic, strong) NSTimer *hudTimer;
@property (nonatomic) NSUInteger pictureIndex;
-@property (nonatomic, retain) QTMovie *movie;
-@property (nonatomic, retain) NSTimer *movieTimer;
+@property (nonatomic, strong) QTMovie *movie;
+@property (nonatomic, strong) NSTimer *movieTimer;
/* Pictures HUD actions */
- (IBAction) previewDurationPopUpChanged: (id) sender;
{
if (self = [super initWithWindowNibName:@"PicturePreview"])
{
- // NSWindowController likes to lazily load its window. However since
- // this controller tries to set all sorts of outlets before the window
- // is displayed, we need it to load immediately. The correct way to do
- // this, according to the documentation, is simply to invoke the window
- // getter once.
- //
- // If/when we switch a lot of this stuff to bindings, this can probably
- // go away.
- [self window];
_delegate = delegate;
-
}
return self;
}
-- (void) awakeFromNib
+- (void)windowDidLoad
{
[[self window] setDelegate:self];
{
_generator.delegate = nil;
[_generator cancel];
- [_generator autorelease];
}
- _generator = [generator retain];
+ _generator = generator;
if (generator)
{
[fPictureSlider setNumberOfTickMarks: generator.imagesCount];
[self switchViewToMode:ViewModePicturePreview];
- [self displayPreview];
}
}
- (void) dealloc
{
- [_hudTimer invalidate];
- [_hudTimer release];
+ [self removeMovieObservers];
+ [_hudTimer invalidate];
[_movieTimer invalidate];
- [_movieTimer release];
-
[_generator cancel];
- [_generator release];
-
- [self removeMovieObservers];
-
- [super dealloc];
}
#pragma mark -
if (self.window.isVisible)
{
- fPreviewImage = [self.generator imageAtIndex:self.pictureIndex shouldCache:YES];
- [self.pictureLayer setContents:(id)fPreviewImage];
+ fPreviewImage = [self.generator copyImageAtIndex:self.pictureIndex shouldCache:YES];
+ [self.pictureLayer setContents:(__bridge id)(fPreviewImage)];
+ CFRelease(fPreviewImage);
}
else
{
@"QTMovieIsSteppableAttribute": @(YES),
QTMovieApertureModeAttribute: QTMovieApertureModeClean};
- QTMovie *movie = [[[QTMovie alloc] initWithAttributes:movieAttributes error:&outError] autorelease];
+ QTMovie *movie = [[QTMovie alloc] initWithAttributes:movieAttributes error:&outError];
if (!movie)
{
@interface HBPreviewGenerator : NSObject
-@property (nonatomic, assign) id <HBPreviewGeneratorDelegate> delegate;
+@property (nonatomic, unsafe_unretained) id <HBPreviewGeneratorDelegate> delegate;
- (instancetype)initWithCore:(HBCore *)core job:(HBJob *)job;
/* Still image generator */
-- (CGImageRef) imageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache;
+- (CGImageRef) copyImageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache;
- (NSUInteger) imagesCount;
- (void) purgeImageCache;
@property (nonatomic, readonly) NSMutableDictionary *picturePreviews;
@property (nonatomic, readonly) NSUInteger imagesCount;
-@property (nonatomic, readonly) HBCore *scanCore;
-@property (nonatomic, readonly) HBJob *job;
+@property (unsafe_unretained, nonatomic, readonly) HBCore *scanCore;
+@property (unsafe_unretained, nonatomic, readonly) HBJob *job;
-@property (nonatomic) HBCore *core;
+@property (unsafe_unretained, nonatomic) HBCore *core;
@end
return self;
}
+- (void)dealloc
+{
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+ [self.core cancelEncode];
+}
+
#pragma mark -
#pragma mark Preview images
*
* @param index picture index in title.
*/
-- (CGImageRef) imageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache
+- (CGImageRef) copyImageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache
{
if (index >= self.imagesCount)
return nil;
// The preview for the specified index may not currently exist, so this method
// generates it if necessary.
- CGImageRef theImage = (CGImageRef)[self.picturePreviews objectForKey:@(index)];
+ CGImageRef theImage = (__bridge CGImageRef)[self.picturePreviews objectForKey:@(index)];
if (!theImage)
{
HBFilters *filters = self.job.filters;
BOOL deinterlace = (filters.deinterlace && !filters.useDecomb) || (filters.decomb && filters.useDecomb);
- theImage = (CGImageRef)[(id)[self.scanCore copyImageAtIndex:index
+ theImage = (CGImageRef)[self.scanCore copyImageAtIndex:index
forTitle:self.job.title
pictureFrame:self.job.picture
- deinterlace:deinterlace] autorelease];
+ deinterlace:deinterlace];
if (cache && theImage)
{
- [self.picturePreviews setObject:(id)theImage forKey:@(index)];
+ [self.picturePreviews setObject:(__bridge id)theImage forKey:@(index)];
}
}
+ else
+ {
+ CFRetain(theImage);
+ }
return theImage;
}
// See if there is an existing preview file, if so, delete it.
[[NSFileManager defaultManager] removeItemAtURL:destURL error:NULL];
- HBJob *job = [[self.job copy] autorelease];
+ HBJob *job = [self.job copy];
job.title = self.job.title;
job.destURL = destURL;
// Init the libhb core
int loggingLevel = [[[NSUserDefaults standardUserDefaults] objectForKey:@"LoggingLevel"] intValue];
- self.core = [[[HBCore alloc] initWithLoggingLevel:loggingLevel] autorelease];
+ self.core = [[HBCore alloc] initWithLoggingLevel:loggingLevel];
self.core.name = @"PreviewCore";
// start the actual encode
}
}
-#pragma mark -
-
-- (void) dealloc
-{
- [[NSNotificationCenter defaultCenter] removeObserver:self];
-
- [self.core cancelEncode];
-
- [_picturePreviews release];
- _picturePreviews = nil;
-
- [super dealloc];
-}
-
@end
/// The HBCore used for encoding.
@property (nonatomic, readonly) HBCore *core;
-@property (nonatomic, assign) HBController *controller;
-@property (nonatomic, assign) HBAppDelegate *delegate;
+@property (nonatomic, unsafe_unretained) HBController *controller;
+@property (nonatomic, unsafe_unretained) HBAppDelegate *delegate;
@property (nonatomic, readonly) NSUInteger count;
@property (nonatomic, readonly) NSUInteger pendingItemsCount;
@property (nonatomic, readonly) HBDockTile *dockTile;
@property (nonatomic, readwrite) double dockIconProgress;
-@property (assign) IBOutlet NSTextField *progressTextField;
-@property (assign) IBOutlet NSTextField *countTextField;
-@property (assign) IBOutlet HBQueueOutlineView *outlineView;
+@property (unsafe_unretained) IBOutlet NSTextField *progressTextField;
+@property (unsafe_unretained) IBOutlet NSTextField *countTextField;
+@property (unsafe_unretained) IBOutlet HBQueueOutlineView *outlineView;
@property (nonatomic, readonly) NSMutableDictionary *descriptions;
@property (nonatomic, readonly) HBDistributedArray *jobs;
-@property (nonatomic, retain) HBJob *currentJob;
-@property (nonatomic, retain) HBJobOutputFileWriter *currentLog;
+@property (nonatomic, strong) HBJob *currentJob;
+@property (nonatomic, strong) HBJobOutputFileWriter *currentLog;
@property (nonatomic, readwrite) BOOL stop;
@property (nonatomic, readwrite) NSUInteger pendingItemsCount;
@property (nonatomic, readwrite) NSUInteger workingItemsCount;
-@property (nonatomic, retain) NSArray *dragNodesArray;
+@property (nonatomic, strong) NSArray *dragNodesArray;
@end
[[self window] setDelegate:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self];
-
- [_core release];
- [_jobs release];
- [_currentJob release];
-
- [_dockTile release];
- [_descriptions release];
- [_dragNodesArray release];
-
- [super dealloc];
}
- (void)windowDidLoad
insertIndex--;
}
- id object = [self.jobs[removeIndex] retain];
+ id object = self.jobs[removeIndex];
[self.jobs removeObjectAtIndex:removeIndex];
[self.jobs insertObject:object atIndex:insertIndex];
- [object release];
// We save all of the Queue data here
// and it also gets sent back to the queue controller
self.currentJob.state = HBJobStateWorking;
// Tell HB to output a new activity log file for this encode
- self.currentLog = [[[HBJobOutputFileWriter alloc] initWithJob:self.currentJob] autorelease];
+ self.currentLog = [[HBJobOutputFileWriter alloc] initWithJob:self.currentJob];
[[HBOutputRedirect stderrRedirect] addListener:self.currentLog];
[[HBOutputRedirect stdoutRedirect] addListener:self.currentLog];
[HBUtilities writeToActivityLog: "trying to send encode to: %s", [sendToApp UTF8String]];
NSAppleScript *myScript = [[NSAppleScript alloc] initWithSource: [NSString stringWithFormat: @"%@%@%@%@%@", @"tell application \"",sendToApp,@"\" to open (POSIX file \"", fileURL.path, @"\")"]];
[myScript executeAndReturnError: nil];
- [myScript release];
}
}
}
[alert setInformativeText:NSLocalizedString(@"Your HandBrake queue is done!", @"")];
[NSApp requestUserAttention:NSCriticalRequest];
[alert runModal];
- [alert release];
}
// If sleep has been selected
NSAppleScript *scriptObject = [[NSAppleScript alloc] initWithSource:
@"tell application \"Finder\" to sleep"];
[scriptObject executeAndReturnError: &errorDict];
- [scriptObject release];
}
// If Shutdown has been selected
if( [[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString: @"Shut Down Computer"] )
NSDictionary *errorDict;
NSAppleScript *scriptObject = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to shut down"];
[scriptObject executeAndReturnError: &errorDict];
- [scriptObject release];
}
}
[alert beginSheetModalForWindow:targetWindow
modalDelegate:self
didEndSelector:@selector(didDimissCancelCurrentJob:returnCode:contextInfo:)
- contextInfo:self.jobs[row]];
- [alert release];
+ contextInfo:(__bridge void *)(self.jobs[row])];
}
else if ([self.jobs[row] state] != HBJobStateWorking)
{
{
[self.delegate showPreferencesWindow:nil];
}
- [alert release];
}
else if ([[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString:@"Shut Down Computer"])
{
{
[self.delegate showPreferencesWindow:nil];
}
- [alert release];
}
}
modalDelegate:self
didEndSelector:@selector(didDimissCancel:returnCode:contextInfo:)
contextInfo:nil];
- [alert release];
}
- (void)didDimissCancel:(NSAlert *)alert
[alert beginSheetModalForWindow:docWindow
modalDelegate:self
didEndSelector:@selector(didDimissCancelCurrentJob:returnCode:contextInfo:)
- contextInfo:job];
- [alert release];
+ contextInfo:(__bridge void *)(job)];
}
else
{
// since we are not a currently encoding item, we can just be cancelled
- HBJob *item = [[[self.jobs[row] representedObject] copy] autorelease];
+ HBJob *item = [[self.jobs[row] representedObject] copy];
[self.controller rescanJobToMainWindow:item];
// Now that source is loaded and settings applied, delete the queue item from the queue
[rowIndexes addIndexes:selectedRowIndexes];
}
- return [[rowIndexes copy] autorelease];
+ return [rowIndexes copy];
}
@end
@property (nonatomic, readonly) NSString *duration;
-@property (nonatomic, readwrite, assign) HBTitle *title;
+@property (nonatomic, readwrite, unsafe_unretained) HBTitle *title;
@end
@property (nonatomic, readonly) NSMutableArray *masterTrackArray; // the master list of audio tracks from the title
@property (nonatomic, readonly) NSMutableArray *tracks;
-@property (nonatomic, readwrite, retain) NSString *foreignAudioSearchTrackName;
+@property (nonatomic, readwrite, strong) NSString *foreignAudioSearchTrackName;
@property (nonatomic, readonly) NSArray *charCodeArray;
@property (nonatomic, readonly) NSArray *languagesArray;
@property (nonatomic, readonly) NSInteger languagesArrayDefIndex;
-@property (nonatomic, readwrite, retain) HBSubtitlesDefaults *defaults;
+@property (nonatomic, readwrite, strong) HBSubtitlesDefaults *defaults;
/**
* For internal use
return self;
}
-- (void)dealloc
-{
- [_tracks release];
- _tracks = nil;
-
- [_defaults release];
- _defaults = nil;
-
- [_masterTrackArray release];
- _masterTrackArray = nil;
-
- [_foreignAudioSearchTrackName release];
- _foreignAudioSearchTrackName = nil;
-
- [super dealloc];
-}
-
- (void)addAllTracks
{
[self.tracks removeAllObjects];
newSubtitleTrack[keySubTrackBurned] = @0;
newSubtitleTrack[keySubTrackDefault] = @0;
- return [newSubtitleTrack autorelease];
+ return newSubtitleTrack;
}
/**
}
}
[self.tracks removeObjectsInArray:tracksToDelete];
- [tracksToDelete release];
}
// Add an empty track
}
[self didChangeValueForKey:@"tracks"];
- [tracksToDelete release];
}
#pragma mark - Languages
{
if (!_languagesArray)
{
- _languagesArray = [[self populateLanguageArray] retain];
+ _languagesArray = [self populateLanguageArray];
}
return _languagesArray;
- (NSArray *)populateLanguageArray
{
- NSMutableArray *languages = [[[NSMutableArray alloc] init] autorelease];
+ NSMutableArray *languages = [[NSMutableArray alloc] init];
for (const iso639_lang_t * lang = lang_get_next(NULL); lang != NULL; lang = lang_get_next(lang))
{
_languagesArrayDefIndex = [languages count] - 1;
}
}
- return [[languages copy] autorelease];
+ return [languages copy];
}
@synthesize charCodeArray = _charCodeArray;
if (!_charCodeArray)
{
// populate the charCodeArray.
- _charCodeArray = [@[@"ANSI_X3.4-1968", @"ANSI_X3.4-1986", @"ANSI_X3.4", @"ANSI_X3.110-1983", @"ANSI_X3.110", @"ASCII",
+ _charCodeArray = @[@"ANSI_X3.4-1968", @"ANSI_X3.4-1986", @"ANSI_X3.4", @"ANSI_X3.110-1983", @"ANSI_X3.110", @"ASCII",
@"ECMA-114", @"ECMA-118", @"ECMA-128", @"ECMA-CYRILLIC", @"IEC_P27-1", @"ISO-8859-1", @"ISO-8859-2",
@"ISO-8859-3", @"ISO-8859-4", @"ISO-8859-5", @"ISO-8859-6", @"ISO-8859-7", @"ISO-8859-8", @"ISO-8859-9",
@"ISO-8859-9E", @"ISO-8859-10", @"ISO-8859-11", @"ISO-8859-13", @"ISO-8859-14", @"ISO-8859-15", @"ISO-8859-16",
- @"UTF-7", @"UTF-8", @"UTF-16", @"UTF-16LE", @"UTF-16BE", @"UTF-32", @"UTF-32LE", @"UTF-32BE"] retain];
+ @"UTF-7", @"UTF-8", @"UTF-16", @"UTF-16LE", @"UTF-16BE", @"UTF-32", @"UTF-32LE", @"UTF-32BE"];
}
return _charCodeArray;
}
if (idx < _tracks.count)
{
NSMutableDictionary *trackCopy = [obj copy];
- [copy->_tracks addObject:[trackCopy autorelease]];
+ [copy->_tracks addObject:trackCopy];
}
}];
*/
@interface HBSubtitlesController : NSViewController
-@property (nonatomic, readwrite, assign) HBSubtitles *subtitles;
+@property (nonatomic, readwrite, unsafe_unretained) HBSubtitles *subtitles;
@end
@interface HBSubtitlesController () <NSTableViewDataSource, NSTableViewDelegate>
// IBOutles
-@property (assign) IBOutlet NSTableView *fTableView;
+@property (unsafe_unretained) IBOutlet NSTableView *fTableView;
// Defaults
-@property (nonatomic, readwrite, retain) HBSubtitlesDefaultsController *defaultsController;
+@property (nonatomic, readwrite, strong) HBSubtitlesDefaultsController *defaultsController;
// Cached table view's cells
@property (nonatomic, readonly) NSPopUpButtonCell *languagesCell;
- (IBAction)showSettingsSheet:(id)sender
{
- self.defaultsController = [[[HBSubtitlesDefaultsController alloc] initWithSettings:self.subtitles.defaults] autorelease];
+ self.defaultsController = [[HBSubtitlesDefaultsController alloc] initWithSettings:self.subtitles.defaults];
[NSApp beginSheet:[self.defaultsController window]
modalForWindow:[[self view] window]
[[cellTrackPopup menu] addItemWithTitle:track[keySubTrackName] action:NULL keyEquivalent:@""];
}
- return [cellTrackPopup autorelease];
+ return cellTrackPopup;
}
else if ([[tableColumn identifier] isEqualToString:@"srt_lang"])
{
@interface HBSubtitlesDefaults : NSObject <NSCoding, NSCopying, HBPresetCoding>
@property (nonatomic, readwrite) HBSubtitleTrackSelectionBehavior trackSelectionBehavior;
-@property (nonatomic, readwrite, retain) NSMutableArray *trackSelectionLanguages;
+@property (nonatomic, readwrite, strong) NSMutableArray *trackSelectionLanguages;
@property (nonatomic, readwrite) BOOL addForeignAudioSearch;
@property (nonatomic, readwrite) BOOL addForeignAudioSubtitle;
preset[@"SubtitleTrackSelectionBehavior"] = @"none";
}
- preset[@"SubtitleLanguageList"] = [[self.trackSelectionLanguages copy] autorelease];
+ preset[@"SubtitleLanguageList"] = [self.trackSelectionLanguages copy];
preset[@"SubtitleAddCC"] = @(self.addCC);
preset[@"SubtitleAddForeignAudioSearch"] = @(self.addForeignAudioSearch);
preset[@"SubtitleAddForeignAudioSubtitle"] = @(self.addForeignAudioSubtitle);
if (copy)
{
copy->_trackSelectionBehavior = _trackSelectionBehavior;
- [copy->_trackSelectionLanguages release];
copy->_trackSelectionLanguages = [_trackSelectionLanguages mutableCopy];
copy->_addForeignAudioSearch = _addForeignAudioSearch;
return self;
}
-- (void)dealloc
-{
- [_trackSelectionLanguages release];
- [super dealloc];
-}
@end
@property (nonatomic, readonly) HBSubtitlesDefaults *settings;
@property (nonatomic, readonly) HBLanguagesSelection *languagesList;
-@property (assign) IBOutlet HBLanguageArrayController *tableController;
-@property (assign) IBOutlet NSButton *showAllButton;
+@property (unsafe_unretained) IBOutlet HBLanguageArrayController *tableController;
+@property (unsafe_unretained) IBOutlet NSButton *showAllButton;
@end
self = [super initWithWindowNibName:@"SubtitlesDefaults"];
if (self)
{
- _settings = [settings retain];
+ _settings = settings;
_languagesList = [[HBLanguagesSelection alloc] initWithLanguages:_settings.trackSelectionLanguages];
}
return self;
- (void)dealloc
{
- [_settings release];
- [_languagesList release];
-
@try {
[self removeObserver:self forKeyPath:@"tableController.showSelectedOnly"];
} @catch (NSException * __unused exception) {}
-
- [super dealloc];
}
@end
@interface HBTitle ()
-@property (nonatomic, readwrite) NSString *name;
+@property (nonatomic, readwrite, strong) NSString *name;
@property (nonatomic, readwrite) NSArray *audioTracks;
@property (nonatomic, readwrite) NSArray *subtitlesTracks;
{
if (!title)
{
- [self release];
return nil;
}
return self;
}
-- (void)dealloc
-{
- [_name release];
- [_audioTracks release];
- [_subtitlesTracks release];
- [_chapters release];
-
- [super dealloc];
-}
-
- (NSString *)name
{
if (!_name)
{
_name = [@(self.hb_title->path) lastPathComponent];
}
-
- [_name retain];
}
return _name;
return _chapters;
}
-
@end
@property (nonatomic, readonly) NSArray *titles;
@property (nonatomic, readonly) NSMutableArray *selection;
-@property (nonatomic, readonly) id<HBTitleSelectionDelegate> delegate;
+@property (nonatomic, readonly, unsafe_unretained) id<HBTitleSelectionDelegate> delegate;
@end
self = [super initWithWindowNibName:@"HBTitleSelection"];
if (self)
{
- _titles = [titles retain];
+ _titles = titles;
_selection = [[NSMutableArray alloc] initWithCapacity:titles.count];
_delegate = delegate;
return self;
}
-- (void)dealloc
-{
- [_titles release];
- _titles = nil;
-
- [_selection release];
- _selection = nil;
-
- [super dealloc];
-}
-
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
{
return self.titles.count;
@property (nonatomic, readonly) NSMutableArray *children;
@property (nonatomic) BOOL isLeaf;
-@property (nonatomic, assign) id<HBTreeNodeDelegate> delegate;
+@property (nonatomic, unsafe_unretained) id<HBTreeNodeDelegate> delegate;
/**
* Executes a given block using each object in the tree, starting with the root object and continuing through the tree to the last object.
return self;
}
-- (void)dealloc
-{
- [_children release];
- [super dealloc];
-}
-
- (NSUInteger)countOfChildren
{
return self.children.count;
NSMutableArray *indexesQueue = [[NSMutableArray alloc] init];
[queue addObject:self];
- [indexesQueue addObject:[[[NSIndexPath alloc] init] autorelease]];
+ [indexesQueue addObject:[[NSIndexPath alloc] init]];
HBTreeNode *node = nil;
while ((node = [queue lastObject]) != nil)
[queue addObject:childNode];
}
}
-
- [queue release];
- [indexesQueue release];
}
@end
bitrate:(int)bitrate
videoCodec:(uint32_t)codec
{
- NSMutableString *name = [[[NSMutableString alloc] init] autorelease];
+ NSMutableString *name = [[NSMutableString alloc] init];
// The format array contains the tokens as NSString
NSArray *format = [[NSUserDefaults standardUserDefaults] objectForKey:@"HBAutoNamingFormat"];
}
}
- return [[name copy] autorelease];
+ return [name copy];
}
[encoders addObject:@(video_encoder->name)];
}
}
- return [[encoders copy] autorelease];
+ return [encoders copy];
}
- (NSArray *)frameRates
[framerates addObject:itemTitle];
}
- return [[framerates copy] autorelease];
+ return [framerates copy];
}
- (BOOL)fastDecodeSupported
@property (nonatomic, readwrite) BOOL fastDecode;
-@property (nonatomic, readwrite, assign) HBJob *job;
+@property (nonatomic, readwrite, unsafe_unretained) HBJob *job;
@property (nonatomic, readonly) NSString *completeTune;
@end
- (void)setPreset:(NSString *)preset
{
- [_preset autorelease];
_preset = [preset copy];
[self postChangedNotification];
}
- (void)setTune:(NSString *)tune
{
- [_tune autorelease];
-
if (![tune isEqualToString:@"none"])
{
_tune = [tune copy];
- (void)setProfile:(NSString *)profile
{
- [_profile autorelease];
_profile = [profile copy];
[self postChangedNotification];
}
- (void)setLevel:(NSString *)level
{
- [_level autorelease];
_level = [level copy];
[self postChangedNotification];
}
- (void)setVideoOptionExtra:(NSString *)videoOptionExtra
{
- [_videoOptionExtra autorelease];
if (videoOptionExtra != nil)
{
_videoOptionExtra = [videoOptionExtra copy];
}
}
- return [[temp copy] autorelease];
+ return [temp copy];
}
- (NSArray *)tunes
}
}
- return [[temp copy] autorelease];
+ return [temp copy];
}
- (NSArray *)profiles
[temp addObject:@(profiles[i])];
}
- return [[temp copy] autorelease];
+ return [temp copy];
}
- (NSArray *)levels
[temp addObject:@"auto"];
}
- return [[temp copy] autorelease];
+ return [temp copy];
}
#pragma mark - NSCopying
[string appendString:@"fastdecode"];
}
- return [string autorelease];
+ return string;
}
- (void)applyPreset:(NSDictionary *)preset
- (instancetype)initWithAdvancedController:(HBAdvancedController *)advancedController;
-@property (nonatomic, readwrite, assign) HBJob *job;
+@property (nonatomic, readwrite, unsafe_unretained) HBJob *job;
@end
IBOutlet NSTextField *fDisplayX264PresetsUnparseTextField;
}
-@property (nonatomic, retain, readwrite) HBAdvancedController *advancedController;
-@property (nonatomic, readwrite, assign) HBVideo *video;
+@property (nonatomic, strong, readwrite) HBAdvancedController *advancedController;
+@property (nonatomic, readwrite, unsafe_unretained) HBVideo *video;
@property (nonatomic, readwrite) BOOL presetViewEnabled;
self = [self init];
if (self)
{
- _advancedController = [advancedController retain];
+ _advancedController = advancedController;
}
return self;
}
self = [super initWithNibName:@"Video" bundle:nil];
if (self)
{
- _labelColor = [[NSColor disabledControlTextColor] retain];
+ _labelColor = [NSColor disabledControlTextColor];
// Observe the advanced tab pref shown/hided state.
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
// Replace the slider transformer with a new one,
// configured with the new max/min/direction values.
[fVidQualitySlider unbind:@"value"];
- HBQualityTransformer *transformer = [[[HBQualityTransformer alloc] initWithReversedDirection:(direction != 0) min:minValue max:maxValue] autorelease];
+ HBQualityTransformer *transformer = [[HBQualityTransformer alloc] initWithReversedDirection:(direction != 0) min:minValue max:maxValue];
[fVidQualitySlider bind:@"value" toObject:self withKeyPath:@"self.video.quality" options:@{NSValueTransformerBindingOption: transformer}];
}
// Bind the slider value to a custom value transformer,
// done here because it can't be done in IB.
[fPresetsSlider unbind:@"value"];
- HBPresetsTransformer *transformer = [[[HBPresetsTransformer alloc] initWithEncoder:self.video.encoder] autorelease];
+ HBPresetsTransformer *transformer = [[HBPresetsTransformer alloc] initWithEncoder:self.video.encoder];
[fPresetsSlider bind:@"value" toObject:self withKeyPath:@"self.video.preset" options:@{NSValueTransformerBindingOption: transformer}];
}
273F1FE014AD9DA40021BE6D /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0620;
+ LastUpgradeCheck = 0630;
};
buildConfigurationList = 273F1FE314AD9DA40021BE6D /* Build configuration list for PBXProject "HandBrake" */;
compatibilityVersion = "Xcode 3.2";
EXTERNAL_SRC = ..;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
EXTERNAL_SRC = ..;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
273F205414ADBC210021BE6D /* debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
273F205514ADBC210021BE6D /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_OBJC_ARC = YES;
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0620"
+ LastUpgradeVersion = "0630"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
- LastUpgradeVersion = "0620"
+ LastUpgradeVersion = "0630"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
#define decodeInteger(x) x = [decoder decodeIntegerForKey:OBJC_STRINGIFY(x)]
#define decodeBool(x) x = [decoder decodeBoolForKey:OBJC_STRINGIFY(x)]
#define decodeDouble(x) x = [decoder decodeDoubleForKey:OBJC_STRINGIFY(x)]
-#define decodeObject(x) x = [[decoder decodeObjectForKey:OBJC_STRINGIFY(x)] retain]
+#define decodeObject(x) x = [decoder decodeObjectForKey:OBJC_STRINGIFY(x)]
#endif