/// <summary> /// Saves a new preset at the given position /// </summary> /// <returns>the preset item for this position</returns> public UserPresetItem SavePreset() { int i = FindAvailableIndex(); SetPreset((byte)i); presetIndexing[i - LowestPresetIndex] = new CameraIndexedPreset(i); PresetItems.Add(presetIndexing[i - LowestPresetIndex]); return(presetIndexing[i - LowestPresetIndex]); }
/// <summary> /// Restores the camera to the given preset id /// </summary> /// <param name="id">id of the preset to restore</param> public void RestorePreset(Guid id) { CameraIndexedPreset i = PresetItems[id] as CameraIndexedPreset; if (i != null) { CallPreset((byte)i.Index); } }
/// <summary> /// Deletes the preset with the given identifier /// </summary> /// <param name="id">preset identifier to delete</param> /// <returns>true if the preset was deleted, false if it did not exist</returns> public bool DeletePreset(Guid id) { UserPresetItem item = PresetItems[id]; CameraIndexedPreset cip = item as CameraIndexedPreset; if (cip != null) { ClearPreset((byte)cip.Index); presetIndexing[cip.Index - LowestPresetIndex] = null; } return(PresetItems.Remove(item)); }
private void BuildIndexingArray() { presetIndexing = new CameraIndexedPreset[HighestPresetIndex - LowestPresetIndex + 1]; foreach (UserPresetItem i in PresetItems) { CameraIndexedPreset cip = i as CameraIndexedPreset; if (cip != null) { presetIndexing[cip.Index - LowestPresetIndex] = cip; } } }