Exemplo n.º 1
0
        /// <summary>
        /// Creates workspace info from the specified solution
        /// </summary>
        /// <param name="solution">Solution to build the workspace from</param>
        /// <returns>Workspace info</returns>
        public static WorkspaceInfo CreateFromSolution(SolutionStructure solution)
        {
            var result = new WorkspaceInfo();

            RefreshFromSolution(result, solution);
            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Refreshes the specified workspace from the given solution.
        /// </summary>
        /// <param name="workspace">Workspace information</param>
        /// <param name="solution">Solution to refresh from</param>
        public static void RefreshFromSolution(WorkspaceInfo workspace, SolutionStructure solution)
        {
            var currentProject = solution.Projects.FirstOrDefault();

            if ((workspace.CurrentProject = currentProject) == null)
            {
                return;
            }

            // --- Re-scan project items again
            currentProject.CollectProjectItems();

            // --- Set project items
            workspace.RomItem        = currentProject.RomProjectItems.FirstOrDefault();
            workspace.TzxItem        = currentProject.TzxProjectItems.FirstOrDefault();
            workspace.TapItem        = currentProject.TapProjectItems.FirstOrDefault();
            workspace.AnnotationItem = currentProject.AnnotationProjectItems
                                       .FirstOrDefault(i => Path.GetFileName(i.Filename)?.ToLower() == "annotations.disann");
            workspace.VmState          = currentProject.VmStateProjectItems.FirstOrDefault();
            workspace.StartWithVmState = false;

            LoadRom(workspace);
        }