private void buttonAddController_Click(object sender, EventArgs e) { List <KeyValuePair <string, object> > outputModules = new List <KeyValuePair <string, object> >(); var availableModules = ApplicationServices.GetAvailableModules <IPreviewModuleInstance>(); foreach (KeyValuePair <Guid, string> kvp in availableModules) { outputModules.Add(new KeyValuePair <string, object>(kvp.Value, kvp.Key)); } Common.Controls.ListSelectDialog addForm = new Common.Controls.ListSelectDialog("Add Preview", (outputModules)); if (addForm.ShowDialog() == DialogResult.OK) { IModuleDescriptor moduleDescriptor = ApplicationServices.GetModuleDescriptor((Guid)addForm.SelectedItem); string name = moduleDescriptor.TypeName; PreviewFactory previewFactory = new PreviewFactory(); OutputPreview preview = (OutputPreview)previewFactory.CreateDevice((Guid)addForm.SelectedItem, name); VixenSystem.Previews.Add(preview); // In the case of a controller that has a form, the form will not be shown // until this event handler completes. To make sure it's in a visible state // before evaluating if it's running or not, we're calling DoEvents. // I hate DoEvents calls, so if you know of a better way... Application.DoEvents(); // select the new controller, and then repopulate the list -- it will make sure the currently // displayed controller is selected. _PopulateFormWithController(preview); _PopulateControllerList(); _changesMade = true; Refresh(); } }
public IOutputDevice ReadObject(XElement element) { string name = XmlHelper.GetAttribute(element, ATTR_NAME); if (name == null) { return(null); } Guid?typeId = XmlHelper.GetGuidAttribute(element, ATTR_TYPE_ID); if (typeId == null) { return(null); } Guid?instanceId = XmlHelper.GetGuidAttribute(element, ATTR_INSTANCE_ID); if (instanceId == null) { return(null); } PreviewFactory previewFactory = new PreviewFactory(); OutputPreview preview = (OutputPreview)previewFactory.CreateDevice(typeId.Value, instanceId.Value, name); _Populate(preview, element); return(preview); }
public IOutputDevice ReadObject(XElement element) { try { string name = XmlHelper.GetAttribute(element, ATTR_NAME); if (name == null) { return(null); } Guid?typeId = XmlHelper.GetGuidAttribute(element, ATTR_TYPE_ID); if (typeId == null) { return(null); } Guid?instanceId = XmlHelper.GetGuidAttribute(element, ATTR_INSTANCE_ID); if (instanceId == null) { return(null); } PreviewFactory previewFactory = new PreviewFactory(); OutputPreview preview = (OutputPreview)previewFactory.CreateDevice(typeId.Value, instanceId.Value, name); _Populate(preview, element); return(preview); } catch (Exception e) { logging.Error("Error loading Preview from XML", e); return(null); } }
public AssetsViewModel( IObservable <AssetFileEventArgs> watcher, ProjectReference projectReference, IConfigurationContainer <ProjectConfiguration> configuration, Lazy <AssetsView> assets, PreviewFactory previewFactory, Lazy <EditorViewModel> editor) { _projectReference = projectReference; _configuration = configuration; _assets = assets; PreviewFactory = previewFactory; _editor = editor; _disposables = new CompositeDisposable(); _disposables.Add(watcher.ObserveOnDispatcher().Subscribe(OnAssetChanged)); foreach (var configurationDataFolder in _configuration.Value.DataFolders) { var folder = Path.Combine(_projectReference.Path, configurationDataFolder); if (!folder.EndsWith(Path.DirectorySeparatorChar.ToString())) { folder += Path.DirectorySeparatorChar; } Folders.Add(new FolderViewModel(folder, folder, null, this)); } }
private void buttonDuplicateSelected_Click(object sender, EventArgs e) { if (listViewControllers.SelectedItems.Count > 0) { foreach (ListViewItem item in listViewControllers.SelectedItems) { OutputPreview op = item.Tag as OutputPreview; PreviewFactory previewFactory = new PreviewFactory(); OutputPreview preview = (OutputPreview)previewFactory.CreateDevice(op.ModuleId, op.Name + "-copy"); if (preview.PreviewModule is IPreviewModuleInstance newInstance) { if (op.PreviewModule is IPreviewModuleInstance origInstance) { var md = origInstance.ModuleData.Clone(); //The new module will have it's own instance data. If we want to replace it we need to replace it in the //ModuleStore as well so it will be saved. So remove it and then assign it and then update it in the store md.ModuleDataSet.RemoveModuleInstanceData(newInstance); newInstance.ModuleData = md; md.ModuleDataSet.AssignModuleInstanceData(newInstance); } } VixenSystem.Previews.Add(preview); _PopulateFormWithController(preview); } _PopulateControllerList(); _changesMade = true; Refresh(); } }
public Image Convert(string filePath) { Image image = null; int pageNumber = 0; int resolution = 80; using (FileStream fs = File.OpenRead(filePath)) { using (PreviewHandler handler = PreviewFactory.Load(fs)) { PreviewImageData[] pagePreviews = handler.GetPageImage(0, resolution); var imageBytes = pagePreviews[pageNumber].Contents; image = new Bitmap(new MemoryStream(imageBytes)); } } return(image); }