summaryrefslogtreecommitdiffstats
path: root/macosx/HBFilters+UIAdditions.m
diff options
context:
space:
mode:
authorritsuka <[email protected]>2014-12-23 10:23:59 +0000
committerritsuka <[email protected]>2014-12-23 10:23:59 +0000
commita66b692e29674de9c444fd54f0493d03b4900abc (patch)
tree1356eec981d0542ad6ca9087794e7cc52a09c664 /macosx/HBFilters+UIAdditions.m
parentee10e1fdb417c7f1047406522379c85c47143bfd (diff)
MacGui: move the UI helper methods to new categories. Implement NSCoding in more classes.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6643 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'macosx/HBFilters+UIAdditions.m')
-rw-r--r--macosx/HBFilters+UIAdditions.m144
1 files changed, 144 insertions, 0 deletions
diff --git a/macosx/HBFilters+UIAdditions.m b/macosx/HBFilters+UIAdditions.m
new file mode 100644
index 000000000..88fbc9e37
--- /dev/null
+++ b/macosx/HBFilters+UIAdditions.m
@@ -0,0 +1,144 @@
+/* HBFilters+UIAdditions.m $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
+
+#import "HBFilters+UIAdditions.h"
+
+extern NSDictionary *_HandBrake_denoiseTypesDict;
+extern NSDictionary *_HandBrake_denoisePresetsDict;
+extern NSDictionary *_HandBrake_nlmeansTunesDict;
+
+@implementation HBGenericDictionaryTransformer
+
++ (Class)transformedValueClass
+{
+ return [NSString class];
+}
+
+- (id)transformedValue:(id)value
+{
+ return [[self.dict allKeysForObject:value] firstObject];
+}
+
++ (BOOL)allowsReverseTransformation
+{
+ return YES;
+}
+
+- (id)reverseTransformedValue:(id)value
+{
+ return [self.dict valueForKey:value];
+}
+
+@end
+
+@implementation HBDenoisePresetTransformer
+
+- (instancetype)init
+{
+ if (self = [super init])
+ self.dict = [HBFilters denoisePresetDict];
+
+ return self;
+}
+
+@end
+
+@implementation HBDenoiseTuneTransformer
+
+- (instancetype)init
+{
+ if (self = [super init])
+ self.dict = [HBFilters nlmeansTunesDict];
+
+ return self;
+}
+
+@end
+
+@implementation HBDenoiseTransformer
+
+- (instancetype)init
+{
+ if (self = [super init])
+ self.dict = [HBFilters denoiseTypesDict];
+
+ return self;
+}
+
+@end
+
+@implementation HBCustomFilterTransformer
+
++ (Class)transformedValueClass
+{
+ return [NSNumber class];
+}
+
+- (id)transformedValue:(id)value
+{
+ if ([value intValue] == 1)
+ return @NO;
+ else
+ return @YES;
+}
+
++ (BOOL)allowsReverseTransformation
+{
+ return NO;
+}
+
+@end
+
+@implementation HBFilters (UIAdditions)
+
+#pragma mark - Valid values
+
++ (NSDictionary *)denoisePresetDict
+{
+ return _HandBrake_denoisePresetsDict;
+}
+
++ (NSDictionary *)nlmeansTunesDict
+{
+ return _HandBrake_nlmeansTunesDict;
+}
+
++ (NSDictionary *)denoiseTypesDict
+{
+ return _HandBrake_denoiseTypesDict;
+}
+
+- (NSArray *)detelecineSettings
+{
+ return @[@"Off", @"Custom", @"Default"];
+}
+
+- (NSArray *)decombSettings
+{
+ return @[@"Off", @"Custom", @"Default", @"Fast", @"Bob"];
+}
+
+- (NSArray *)deinterlaceSettings
+{
+ return @[@"Off", @"Custom", @"Fast", @"Slow", @"Slower", @"Bob"];
+}
+
+- (NSArray *)denoiseTypes
+{
+ return @[@"Off", @"NLMeans", @"HQDN3D"];
+}
+
+- (NSArray *)denoisePresets
+{
+ return @[@"Custom", @"Ultralight", @"Light", @"Medium", @"Strong"];
+}
+
+- (NSArray *)denoiseTunes
+{
+ return @[@"None", @"Film", @"Grain", @"High Motion", @"Animation"];
+}
+
+@end