private void LoadAcceleration(Json.AccelerationItem accelerationItem) { if (accelerationItem == null) { return; } switch (accelerationItem.Type) { case Json.LytroRefocusStack.Key: _refocusStack = accelerationItem.VendorContent as Json.LytroRefocusStack; break; case Json.LytroEdofParallax.Key: _parallaxStack = accelerationItem.VendorContent as Json.LytroEdofParallax; break; } }
private void EnsureAcceleration(string key, object accelerationValue, string generator) { if (JsonPicture.AccelerationArray == null || JsonPicture.AccelerationArray.Length < 1) { JsonPicture.AccelerationArray = new Json.AccelerationItem[1]; } int emptyIndex = -1; for (int i = 0; i < JsonPicture.AccelerationArray.Length; i++) { if (JsonPicture.AccelerationArray[i] == null) { emptyIndex = i; } else if (JsonPicture.AccelerationArray[i].Type == key) { JsonPicture.AccelerationArray[i].Generator = generator; JsonPicture.AccelerationArray[i].VendorContent = accelerationValue; return; } } Json.AccelerationItem newItem = new Json.AccelerationItem { Type = Json.LytroRefocusStack.Key, Generator = generator, VendorContent = accelerationValue }; if (emptyIndex >= 0) { JsonPicture.AccelerationArray[emptyIndex] = newItem; } else { JsonPicture.AccelerationArray = JsonPicture.AccelerationArray.Append(newItem); } }