diff --git a/CocoaSplit/InputSource.h b/CocoaSplit/InputSource.h
index 28a89e89..761dab59 100644
--- a/CocoaSplit/InputSource.h
+++ b/CocoaSplit/InputSource.h
@@ -165,6 +165,11 @@ typedef enum resize_style_t {
@property (strong) NSMutableDictionary *constraintMap;
+@property (strong) CIFilter *advancedTransition;
+@property (strong) NSString *advancedTransitionName;
+
+
+
-(void) updateOrigin:(CGFloat)x y:(CGFloat)y;
diff --git a/CocoaSplit/InputSource.m b/CocoaSplit/InputSource.m
index 8725bb86..0d4b01af 100644
--- a/CocoaSplit/InputSource.m
+++ b/CocoaSplit/InputSource.m
@@ -526,7 +526,6 @@ static NSArray *_sourceTypes = nil;
self.transitionDirection = kCATransitionFromRight;
self.transitionDuration = 2.0f;
- self.availableEffectNames = [CIFilter filterNamesInCategories:nil];
self.doChromaKey = NO;
self.chromaKeyThreshold = 0.1005f;
self.chromaKeySmoothing = 0.1344f;
@@ -656,6 +655,8 @@ static NSArray *_sourceTypes = nil;
return ret;
}
+
+
-(void)deleteLayerFilter:(NSString *)filteruuid
{
self.layer.filters = [self newFilterArray:self.layer.filters withoutName:filteruuid];
@@ -1027,6 +1028,26 @@ static NSArray *_sourceTypes = nil;
}
+-(void) setAdvancedTransitionName:(NSString *)advancedTransitionName
+{
+ CIFilter *newTransition = [CIFilter filterWithName:advancedTransitionName];
+ [newTransition setDefaults];
+ self.advancedTransition = newTransition;
+
+}
+
+
+-(NSString *)advancedTransitionName
+{
+ if (self.advancedTransition)
+ {
+ return self.advancedTransition.className;
+ }
+
+ return nil;
+}
+
+
-(void) setTransitionFilterName:(NSString *)transitionFilterName
{
_transitionFilterName = transitionFilterName;
@@ -1041,6 +1062,7 @@ static NSArray *_sourceTypes = nil;
+
-(void)multiChange
{
@@ -1088,6 +1110,7 @@ static NSArray *_sourceTypes = nil;
_multiTransition.type = self.transitionFilterName;
_multiTransition.duration = self.transitionDuration;
_multiTransition.subtype = self.transitionDirection;
+ _multiTransition.filter = self.advancedTransition.copy;
[self.layer transitionToLayer:_nextInput.layer fromLayer:_currentInput.layer withTransition:_multiTransition];
_currentInput = _nextInput;
diff --git a/CocoaSplit/Interface/InputPopupControllerViewController.xib b/CocoaSplit/Interface/InputPopupControllerViewController.xib
index 0cbd5504..5768e39e 100644
--- a/CocoaSplit/Interface/InputPopupControllerViewController.xib
+++ b/CocoaSplit/Interface/InputPopupControllerViewController.xib
@@ -507,13 +507,7 @@
-
-
-
-
-
-
-
+
@@ -553,6 +547,12 @@
+
+
+
+
+
+
@@ -854,6 +854,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1823,11 +1861,6 @@
-
-
-
-
-
@@ -1844,6 +1877,11 @@
+
+
+
+
+
diff --git a/InputPopupControllerViewController.h b/InputPopupControllerViewController.h
index 02aece94..ec74fbaa 100644
--- a/InputPopupControllerViewController.h
+++ b/InputPopupControllerViewController.h
@@ -32,6 +32,9 @@
@property (assign) bool backgroundTableHasSelection;
@property (assign) bool layerTableHasSelection;
+@property (strong) NSMutableDictionary *availableTransitions;
+
+
- (IBAction)configureFilter:(NSButton *)sender;
- (IBAction)resetConstraints:(id)sender;
@@ -42,7 +45,8 @@
- (IBAction)deleteMultiSource:(id)sender;
-(void)openTransitionFilterPanel:(CIFilter *)forFilter;
--(void)openUserFilterPanel:(CIFilter *)forFilter;
+-(IBAction) configureInputTransition:(NSButton *)sender;
+
- (IBAction)addFilterAction:(NSButton *)sender;
diff --git a/InputPopupControllerViewController.m b/InputPopupControllerViewController.m
index d471e27b..310b044d 100644
--- a/InputPopupControllerViewController.m
+++ b/InputPopupControllerViewController.m
@@ -35,7 +35,15 @@
};
self.constraintSortDescriptors = @[[[NSSortDescriptor alloc] initWithKey:@"value" ascending:YES]];
+ self.availableTransitions = [NSMutableDictionary dictionary];
+ NSArray *ciTransitionNames = [CIFilter filterNamesInCategory:kCICategoryTransition];
+ for (NSString *ciName in ciTransitionNames)
+ {
+ NSString *niceName = [CIFilter localizedNameForFilterName:ciName];
+ [self.availableTransitions setObject:niceName forKey:ciName];
+ }
+
//self = [super initWithNibName:@"TestView" bundle:nil];
@@ -71,6 +79,15 @@
return self.inputSource.selectedVideoType;
}
+-(IBAction) configureInputTransition:(NSButton *)sender
+{
+ if (self.inputSource.advancedTransition)
+ {
+ [self openTransitionFilterPanel:self.inputSource.advancedTransition];
+ }
+}
+
+
- (IBAction)configureFilter:(NSButton *)sender
{
CIFilter *selectedFilter;
@@ -306,7 +323,16 @@
- [self rebindViewControls:filterView withProxy:filterProxy];
+ if (forLayer)
+ {
+ CSCIFilterConfigProxy *filterProxy = [[CSCIFilterConfigProxy alloc] init];
+ filterProxy.baseLayer = forLayer;
+ filterProxy.layerFilterName = forFilter.name;
+ filterProxy.filterType = withType;
+
+ [self rebindViewControls:filterView withProxy:filterProxy];
+ }
+
self.userFilterWindow = [[NSWindow alloc] init];