MacGui: add a HBAudioTrackDataSource protocol to simplify HBAudio interface.
authorritsuka <damiog@gmail.com>
Sat, 31 Jan 2015 17:12:11 +0000 (17:12 +0000)
committerritsuka <damiog@gmail.com>
Sat, 31 Jan 2015 17:12:11 +0000 (17:12 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6844 b64f7644-9d1e-0410-96f1-a4d463321fa5

macosx/HBAudio.h
macosx/HBAudio.m
macosx/HBAudioTrack.h
macosx/HBAudioTrack.m

index 3299c2130d35c2112223f41d5bbf55f00e520ffa..4aceaf63257d262a2a6724ccaa2ad188f855c589 100644 (file)
 @class HBAudioTrack;
 @class HBAudioDefaults;
 
+extern NSString *HBMixdownChangedNotification;
+
 @interface HBAudio : NSObject <NSCoding, NSCopying, HBPresetCoding>
 
 - (instancetype)initWithTitle:(HBTitle *)title;
 
-@property (nonatomic, readonly) NSDictionary *noneTrack;
-@property (nonatomic, readonly) NSArray *masterTrackArray;  // the master list of audio tracks from the title
 @property (nonatomic, readonly) NSMutableArray *tracks;
-
-@property (nonatomic, readwrite, retain) HBAudioDefaults *defaults;
+@property (nonatomic, readonly) HBAudioDefaults *defaults;
 
 - (void)addAllTracks;
 - (void)removeAll;
 - (void)settingTrackToNone:(HBAudioTrack *)newNoneTrack;
 - (void)switchingTrackFromNone:(HBAudioTrack *)noLongerNoneTrack;
 
-/**
- *  For internal use
- */
-
 - (void)containerChanged:(int)container;
 
 @end
index df09a85be5953c086b586b5755a97941ba8ce689..226defe9e51017f49c6d1ce2962a3108cd7e600b 100644 (file)
 
 #include "hb.h"
 
-@interface HBAudio ()
+NSString *HBMixdownChangedNotification = @"HBMixdownChangedNotification";
+
+@interface HBAudio () <HBAudioTrackDataSource>
+
+@property (nonatomic, readonly) NSDictionary *noneTrack;
+@property (nonatomic, readonly) NSArray *masterTrackArray;  // the master list of audio tracks from the title
 
 @property (nonatomic, readwrite) int container; // initially is the default HB_MUX_MP4
 
     {
         BOOL fallenBack = NO;
         HBAudioTrack *newAudio = [[HBAudioTrack alloc] init];
-        [newAudio setController: self];
+        [newAudio setDataSource:self];
         [self insertObject: newAudio inTracksAtIndex: [self countOfTracks]];
         [newAudio setVideoContainerTag:@(self.container)];
         [newAudio setTrackFromIndex: (int)trackIndex];
 - (void)addNewAudioTrack
 {
     HBAudioTrack *newAudio = [[HBAudioTrack alloc] init];
-    [newAudio setController: self];
+    [newAudio setDataSource:self];
     [self insertObject: newAudio inTracksAtIndex: [self countOfTracks]];
     [newAudio setVideoContainerTag:@(self.container)];
     [newAudio setTrack: self.noneTrack];
             if (idx < _tracks.count)
             {
                 HBAudioTrack *trackCopy = [obj copy];
-                trackCopy.controller = copy;
+                trackCopy.dataSource = copy;
                 [copy->_tracks addObject:[trackCopy autorelease]];
             }
         }];
 
     for (HBAudioTrack *track in _tracks)
     {
-        track.controller = self;
+        track.dataSource = self;
     }
 
     decodeObject(_defaults);
index f7dcc88fed50bf5c9f4fe970b92fa87bf08245c7..136f0729c50165c26cfee8870747e40b529e89fd 100644 (file)
@@ -7,6 +7,7 @@
 #import <Foundation/Foundation.h>
 
 @class HBAudio;
+@protocol HBAudioTrackDataSource;
 
 /**
  *  Audio track dicts keys.
@@ -39,7 +40,7 @@ extern NSString *keyAudioBitrate;
 @property (nonatomic, retain) NSNumber *drc;
 @property (nonatomic, retain) NSNumber *gain;
 @property (nonatomic, retain) NSNumber *videoContainerTag;
-@property (nonatomic, assign) HBAudio *controller;
+@property (nonatomic, assign) id<HBAudioTrackDataSource> dataSource;
 
 @property (nonatomic, retain) NSMutableArray *codecs;
 @property (nonatomic, retain) NSMutableArray *mixdowns;
@@ -54,3 +55,11 @@ extern NSString *keyAudioBitrate;
 - (void) setBitRateFromName: (NSString *) aValue;
 
 @end
+
+@protocol HBAudioTrackDataSource <NSObject>
+- (NSDictionary *)noneTrack;
+- (NSArray *)masterTrackArray;
+
+- (void)settingTrackToNone:(HBAudioTrack *)newNoneTrack;
+- (void)switchingTrackFromNone:(HBAudioTrack *)noLongerNoneTrack;
+@end
index 7b35411b44c644078c14117201f2b2074724452c..047770fe162fe86bcd4e2462c26b3dc190db4379 100644 (file)
@@ -363,13 +363,13 @@ static NSMutableArray *masterBitRateArray = nil;
         {
             self.sampleRate = self.sampleRates[0]; // default to Auto
         }
-        if ([self.controller.noneTrack isEqual: oldValue])
+        if ([self.dataSource.noneTrack isEqual: oldValue])
         {
-            [self.controller switchingTrackFromNone: self];
+            [self.dataSource switchingTrackFromNone: self];
         }
-        if ([self.controller.noneTrack isEqual: self.track])
+        if ([self.dataSource.noneTrack isEqual: self.track])
         {
-            [self.controller settingTrackToNone: self];
+            [self.dataSource settingTrackToNone: self];
         }
     }
     [oldValue release];
@@ -388,7 +388,7 @@ static NSMutableArray *masterBitRateArray = nil;
     [_mixdown autorelease];
     _mixdown = [mixdown retain];
     [self updateBitRates: YES];
-    [[NSNotificationCenter defaultCenter] postNotificationName: HBMixdownChangedNotification object: self];
+    [[NSNotificationCenter defaultCenter] postNotificationName: HBMixdownChangedNotification object: self.dataSource];
 }
 
 - (void)setSampleRate:(NSDictionary *)sampleRate
@@ -404,7 +404,7 @@ static NSMutableArray *masterBitRateArray = nil;
 - (void) setTrackFromIndex: (int) aValue
 
 {
-    self.track = [self.controller.masterTrackArray dictionaryWithObject: @(aValue)
+    self.track = [self.dataSource.masterTrackArray dictionaryWithObject: @(aValue)
                                                             matchingKey: keyAudioTrackIndex];
 }
 
@@ -485,7 +485,7 @@ static NSMutableArray *masterBitRateArray = nil;
 - (BOOL) enabled
 
 {
-    return (nil != self.track) ? (![self.track isEqual: self.controller.noneTrack]) : NO;
+    return (nil != self.track) ? (![self.track isEqual: self.dataSource.noneTrack]) : NO;
 }
 
 - (BOOL) mixdownEnabled