Пример #1
0
        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();
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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));
     }
 }
Пример #5
0
        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();
            }
        }
Пример #6
0
        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);
        }