bool CreateProject() { TreeIter iter; MediaFile file; if (projectType == ProjectType.FileProject || projectType == ProjectType.EditProject) { if (!mediafilesetselection1.FileSet.CheckFiles()) { dialogs.WarningMessage(Catalog.GetString("You need at least 1 video file for the main angle")); return(false); } } if (project != null) { FillProject(); return(true); } if (projectType == ProjectType.CaptureProject || projectType == ProjectType.URICaptureProject) { if (String.IsNullOrEmpty(capturemediafilechooser.CurrentPath)) { dialogs.WarningMessage(Catalog.GetString("No output video file")); return(false); } } if (projectType == ProjectType.URICaptureProject) { if (urientry.Text == "") { dialogs.WarningMessage(Catalog.GetString("No input URI")); return(false); } } project = new LMProject(); project.Description = new ProjectDescription(); FillProject(); ViewModel.Project.Model = project; encSettings = new EncodingSettings(); captureSettings = new CaptureSettings(); encSettings.OutputFile = capturemediafilechooser.CurrentPath; /* Get quality info */ qualitycombobox.GetActiveIter(out iter); encSettings.EncodingQuality = (EncodingQuality)qualList.GetValue(iter, 1); /* Get size info */ imagecombobox.GetActiveIter(out iter); encSettings.VideoStandard = (VideoStandard)videoStandardList.GetValue(iter, 1); /* Get encoding profile info */ encodingcombobox.GetActiveIter(out iter); encSettings.EncodingProfile = (EncodingProfile)encProfileList.GetValue(iter, 1); encSettings.Framerate_n = App.Current.Config.FPS_N; encSettings.Framerate_d = App.Current.Config.FPS_D; captureSettings.EncodingSettings = encSettings; file = project.Description.FileSet.FirstOrDefault(); if (file == null) { file = new MediaFile() { Name = Catalog.GetString("Main camera angle") }; file.FilePath = capturemediafilechooser.CurrentPath; file.Fps = (ushort)(App.Current.Config.FPS_N / App.Current.Config.FPS_D); file.Par = 1; project.Description.FileSet.Add(file); } if (projectType == ProjectType.CaptureProject) { captureSettings.Device = videoDevices [devicecombobox.Active]; captureSettings.Format = captureSettings.Device.Formats [deviceformatcombobox.Active]; file.VideoHeight = encSettings.VideoStandard.Height; file.VideoWidth = encSettings.VideoStandard.Width; } else if (projectType == ProjectType.URICaptureProject) { string uri = urientry.Text; if (!String.IsNullOrEmpty(userentry.Text) || !String.IsNullOrEmpty(passwordentry.Text)) { int index = uri.IndexOf("://", StringComparison.Ordinal); if (index != -1) { uri = uri.Insert(index + 3, string.Format("{0}:{1}@", userentry.Text, passwordentry.Text)); } } captureSettings.Device = new Device { DeviceType = CaptureSourceType.URI, ID = uri }; file.VideoHeight = encSettings.VideoStandard.Height; file.VideoWidth = encSettings.VideoStandard.Width; } else if (projectType == ProjectType.FakeCaptureProject) { file.FilePath = Constants.FAKE_PROJECT; } return(true); }