3 This file is part of the HandBrake source code.
4 Homepage: <http://handbrake.fr/>.
5 It may be used under the terms of the GNU General Public License. */
7 #import <Foundation/Foundation.h>
8 #import "HBPresetCoding.h"
10 NS_ASSUME_NONNULL_BEGIN
12 extern NSString
*keySubTrackSelectionIndex
;
13 extern NSString
*keySubTrackName
;
14 extern NSString
*keySubTrackIndex
;
15 extern NSString
*keySubTrackLanguage
;
16 extern NSString
*keySubTrackLanguageIsoCode
;
17 extern NSString
*keySubTrackType
;
19 extern NSString
*keySubTrackForced
;
20 extern NSString
*keySubTrackBurned
;
21 extern NSString
*keySubTrackDefault
;
23 extern NSString
*keySubTrackSrtOffset
;
24 extern NSString
*keySubTrackSrtFilePath
;
25 extern NSString
*keySubTrackSrtCharCode
;
26 extern NSString
*keySubTrackSrtCharCodeIndex
;
27 extern NSString
*keySubTrackLanguageIndex
;
30 @
class HBSubtitlesDefaults
;
32 @interface HBSubtitles
: NSObject
<NSSecureCoding
, NSCopying
, HBPresetCoding
>
34 - (instancetype
)initWithTitle
:(HBTitle
*)title
;
38 - (void)reloadDefaults
;
40 - (void)validatePassthru
;
41 - (NSMutableDictionary
*)createSubtitleTrack
;
42 - (NSMutableDictionary
*)trackFromSourceTrackIndex
:(NSInteger
)index
;
44 @
property (nonatomic
, readonly
) NSMutableArray
*masterTrackArray
; // the master list of audio tracks from the title
45 @
property (nonatomic
, readonly
) NSMutableArray
*tracks
;
47 @
property (nonatomic
, readwrite
, strong
) NSString
*foreignAudioSearchTrackName
;
48 @
property (nonatomic
, readonly
) NSArray
*charCodeArray
;
50 @
property (nonatomic
, readonly
) NSArray
*languagesArray
;
51 @
property (nonatomic
, readonly
) NSInteger languagesArrayDefIndex
;
53 @
property (nonatomic
, readwrite
, strong
) HBSubtitlesDefaults
*defaults
;
59 - (void)containerChanged
:(int)container
;
60 @
property (nonatomic
, readwrite
) int container
; // initially is the default HB_MUX_MP4
64 @interface
HBSubtitles (KVC
)
66 @
property (nonatomic
, readonly
) NSUInteger countOfTracks
;
67 - (id
)objectInTracksAtIndex
:(NSUInteger
)index
;
68 - (void)insertObject
:(id
)audioObject inTracksAtIndex
:(NSUInteger
)index
;
69 - (void)removeObjectFromTracksAtIndex
:(NSUInteger
)index
;