Skip to content

Commit

Permalink
We now base64 encode the Gyroflow Project
Browse files Browse the repository at this point in the history
- This prevents FCPX from doing HTML decoding on the text.
  • Loading branch information
latenitefilms committed Aug 5, 2023
1 parent 46968a8 commit 8dbd72f
Showing 1 changed file with 50 additions and 8 deletions.
58 changes: 50 additions & 8 deletions Source/Gyroflow/Plugin/GyroflowPlugIn.m
Original file line number Diff line number Diff line change
Expand Up @@ -1261,7 +1261,18 @@ - (BOOL)pluginState:(NSData**)pluginState
//---------------------------------------------------------
NSString *gyroflowData;
[paramGetAPI getStringParameterValue:&gyroflowData fromParameter:kCB_GyroflowProjectData];
params.gyroflowData = gyroflowData;

//---------------------------------------------------------
// If the Gyroflow Project data is base64 encoded, try
// to decode it first, otherwise pass the original string:
//---------------------------------------------------------
NSData *base64EncodedData = [[NSData alloc] initWithBase64EncodedString:gyroflowData options:0];
if (base64EncodedData != nil) {
NSString *decodedGyroflowData = [[NSString alloc] initWithData:base64EncodedData encoding:NSUTF8StringEncoding];
params.gyroflowData = decodedGyroflowData;
} else {
params.gyroflowData = gyroflowData;
}

//---------------------------------------------------------
// FOV:
Expand Down Expand Up @@ -2071,7 +2082,7 @@ -(void)buttonSettings {
suppressSuccessfullyImported.enabled = YES;
suppressSuccessfullyImported.state = [self boolToControlState:[userDefaults boolForKey:@"suppressSuccessfullyImported"]];
[disableAlertSubMenu addItem:suppressSuccessfullyImported];

//---------------------------------------------------------
// Successfully Reloaded:
//---------------------------------------------------------
Expand Down Expand Up @@ -2262,6 +2273,16 @@ - (void)buttonExportGyroflowProject {
return;
}

//---------------------------------------------------------
// If the Gyroflow Project is base64 encoded, try to
// decode it first:
//---------------------------------------------------------
NSData *base64EncodedData = [[NSData alloc] initWithBase64EncodedString:gyroflowProjectData options:0];
if (base64EncodedData != nil) {
NSString *decodedGyroflowData = [[NSString alloc] initWithData:base64EncodedData encoding:NSUTF8StringEncoding];
gyroflowProjectData = [NSString stringWithString:decodedGyroflowData];
}

//---------------------------------------------------------
// Get the existing Gyroflow Project Path:
//---------------------------------------------------------
Expand Down Expand Up @@ -2411,6 +2432,17 @@ - (void)buttonLoadPresetLensProfileIsImporting:(BOOL)isImporting {
//---------------------------------------------------------
NSString *gyroflowProjectData = nil;
[paramGetAPI getStringParameterValue:&gyroflowProjectData fromParameter:kCB_GyroflowProjectData];

//---------------------------------------------------------
// If the Gyroflow Project is base64 encoded, try to
// decode it first:
//---------------------------------------------------------
NSData *base64EncodedData = [[NSData alloc] initWithBase64EncodedString:gyroflowProjectData options:0];
if (base64EncodedData != nil) {
NSString *decodedGyroflowData = [[NSString alloc] initWithData:base64EncodedData encoding:NSUTF8StringEncoding];
gyroflowProjectData = [NSString stringWithString:decodedGyroflowData];
}

//NSLog(@"[Gyroflow Toolbox Renderer] gyroflowProjectData: %@", gyroflowProjectData);

if (gyroflowProjectData == nil) {
Expand Down Expand Up @@ -2565,9 +2597,11 @@ - (void)buttonLoadPresetLensProfileIsImporting:(BOOL)isImporting {
}

//---------------------------------------------------------
// Save the data to FxPlug:
// Save the data to FxPlug as base64 encoded data:
//---------------------------------------------------------
[paramSetAPI setStringParameterValue:loadResultString toParameter:kCB_GyroflowProjectData];
NSData *loadResultStringData = [loadResultString dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64EncodedString = [loadResultStringData base64EncodedStringWithOptions:0];
[paramSetAPI setStringParameterValue:base64EncodedString toParameter:kCB_GyroflowProjectData];

//---------------------------------------------------------
// Trash the cache!
Expand Down Expand Up @@ -3271,7 +3305,9 @@ - (void)buttonReloadGyroflowProject {
//---------------------------------------------------------
// Update 'Gyroflow Project Data':
//---------------------------------------------------------
[paramSetAPI setStringParameterValue:selectedGyroflowProjectData toParameter:kCB_GyroflowProjectData];
NSData *loadResultStringData = [selectedGyroflowProjectData dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64EncodedString = [loadResultStringData base64EncodedStringWithOptions:0];
[paramSetAPI setStringParameterValue:base64EncodedString toParameter:kCB_GyroflowProjectData];

//---------------------------------------------------------
// Update 'Loaded Gyroflow Project' Text Box:
Expand Down Expand Up @@ -3385,7 +3421,9 @@ - (void)buttonReloadGyroflowProject {
//---------------------------------------------------------
// Update 'Gyroflow Project Data':
//---------------------------------------------------------
[paramSetAPI setStringParameterValue:selectedGyroflowProjectData toParameter:kCB_GyroflowProjectData];
NSData *loadResultStringData = [selectedGyroflowProjectData dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64EncodedString = [loadResultStringData base64EncodedStringWithOptions:0];
[paramSetAPI setStringParameterValue:base64EncodedString toParameter:kCB_GyroflowProjectData];

//---------------------------------------------------------
// Generate a new unique identifier:
Expand Down Expand Up @@ -4125,7 +4163,9 @@ - (BOOL)importMediaWithOptionalURL:(NSURL*)optionalURL {
//---------------------------------------------------------
// Update 'Gyroflow Project Data':
//---------------------------------------------------------
[paramSetAPI setStringParameterValue:gyroflowProject toParameter:kCB_GyroflowProjectData];
NSData *gyroflowProjectData = [gyroflowProject dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64EncodedString = [gyroflowProjectData base64EncodedStringWithOptions:0];
[paramSetAPI setStringParameterValue:base64EncodedString toParameter:kCB_GyroflowProjectData];

//---------------------------------------------------------
// Update 'Loaded Gyroflow Project' Text Box:
Expand Down Expand Up @@ -4442,7 +4482,9 @@ - (void)importGyroflowProjectWithOptionalURL:(NSURL*)optionalURL {
//---------------------------------------------------------
// Update 'Gyroflow Project Data':
//---------------------------------------------------------
[paramSetAPI setStringParameterValue:selectedGyroflowProjectData toParameter:kCB_GyroflowProjectData];
NSData *gyroflowProjectData = [selectedGyroflowProjectData dataUsingEncoding:NSUTF8StringEncoding];
NSString *base64EncodedString = [gyroflowProjectData base64EncodedStringWithOptions:0];
[paramSetAPI setStringParameterValue:base64EncodedString toParameter:kCB_GyroflowProjectData];

//---------------------------------------------------------
// Update 'Loaded Gyroflow Project' Text Box:
Expand Down

0 comments on commit 8dbd72f

Please sign in to comment.