/// <summary> /// If the plugin is an IPresetProvider /// </summary> /// <returns></returns> public UserPresetItem SavePreset() { lock (_userLock) { AppLogger.Message("CameraControlService.SavePreset"); try { UserPresetItem item = null; if (_plugin is IPresetProvider) { item = ((IPresetProvider)_plugin).SavePreset(); } else { item = new CameraPositionPreset(CurrentPanAngle, CurrentTiltAngle, CurrentZoomPosition); PresetItems.Add(item); } return(item); } catch (IndexOutOfRangeException ex) { AppLogger.Dump(ex); this.StatusMessage = ex.Message; return(null); } catch (Exception exc) { AppLogger.Dump(exc); return(null); } } }
public void RestorePreset(Guid id) { try { AppLogger.Message("CameraControlService.RestorePreset " + id); if (_plugin is IPresetProvider) { lock (_userLock) { ((IPresetProvider)_plugin).RestorePreset(id); } } else { CameraPositionPreset item = null; lock (_userLock) { try { item = PresetItems[id] as CameraPositionPreset; } catch (Exception exc) { AppLogger.Dump(exc); } } if (item != null) { PanTiltAbsolute(item.PanAngle, item.TiltAngle); ZoomAbsolute(item.ZoomPosition); } } } catch (Exception ex) { AppLogger.Dump(ex); } }