private static bool hasValueChanged( SnapshotController ssc, string fileGroup, string tagName, string languageCode, string languageValue) { var baseKey = ssc.MakeBaseKey(fileGroup, tagName); var key = SnapshotController.MakeFullKey(baseKey, languageCode); var prevValue = ssc.GetSettingValue(key); var currValue = languageValue; if (string.IsNullOrEmpty(prevValue) && string.IsNullOrEmpty(currValue)) { return(false); } else if (string.IsNullOrEmpty(prevValue) || string.IsNullOrEmpty(currValue)) { return(true); } else { return(string.Compare(prevValue, currValue, StringComparison.OrdinalIgnoreCase) != 0); } }
protected override void Awake() { snapshot = GameObject.Find("Snapshot").GetComponent <SnapshotController>(); res = LayerManager.Instance.ChunkResolution; volume = res * res * res; countBuffer = new ComputeBuffer(1, sizeof(uint), ComputeBufferType.IndirectArguments); workBuffer = new ComputeBuffer(volume, sizeof(float) * 12 + sizeof(uint) * 3, ComputeBufferType.Append); base.Awake(); }
protected override void Start() { base.Start(); snapshot = GameObject.Find("Snapshot").GetComponent <SnapshotController>(); int res = LayerManager.Instance.ChunkResolution; volume = res * res * res; countBuffer = new ComputeBuffer(1, sizeof(uint), ComputeBufferType.IndirectArguments); workBuffer = new ComputeBuffer(volume, sizeof(float) * 4 + sizeof(uint) * 3, ComputeBufferType.Append); populateWorkBufferKernel = SmoothShader.FindKernel("PopulateWorkBuffer"); applyWorkBufferKernel = SmoothShader.FindKernel("ApplySmooth"); }
private static bool hasChangedTextSinceLastExport( SnapshotController ssc, PreparedInformation preparedInformation, IInheritedSettings settings, DataRow row) { var lcs = new List <string>(new[] { preparedInformation.ReferenceLanguageCode }); for (var i = 0; i < lcs.Count; ++i) { lcs[i] = lcs[i].ToLowerInvariant(); } // ReSharper disable LoopCanBeConvertedToQuery); foreach (DataColumn column in row.Table.Columns) // ReSharper restore LoopCanBeConvertedToQuery { // Column 0=FileGroup checksum, column 1=Tag name. if (column.Ordinal != 0 && column.Ordinal != 1 && !isCommentColumn(column)) { var languageCode = IsFileName(column.ColumnName) ? new LanguageCodeDetection(preparedInformation.Project).DetectLanguageCodeFromFileName( settings, column.ColumnName) : column.ColumnName; languageCode = languageCode.ToLowerInvariant(); if (/*lcs.Contains(languageCode.Substring(0, 2)) ||*/ lcs.Contains(languageCode)) { var languageValue = ConvertHelper.ToString(row[column], string.Empty); if (!StringExtensionMethods.IsNullOrWhiteSpace(languageValue)) { var fileGroup = row[0] as string; var tagName = row[1] as string; if (hasValueChanged(ssc, fileGroup, tagName, languageCode, languageValue)) { return(true); } } } } } return(false); }
private object InitalizeProcess() { CloudLog.Debug("{0} Initializing has started...", GetType().Name); var sw = new Stopwatch(); sw.Start(); if (!string.IsNullOrEmpty(_username)) { var logonResponse = Request("Logon", new { User = _username, Password = _password }); Debug.WriteSuccess(GetType().Name + " Login Response", logonResponse); } if (_components.Count == 0) { CloudLog.Debug("{0} has no component details... requesting...", GetType().Name); var response = Request("Component.GetComponents", null); CloudLog.Debug("QsysCore has received list of user defined components, count = {0}", response.Result.Children().Count()); foreach (var component in response.Result.Children()) { CloudLog.Debug("QsysCore has compononent \"{0}\"", component["Name"].Value <string>()); } foreach (var component in response.Result.Children() .Where(c => _userDefinedComponentNames.Contains(c["Name"].Value <string>()))) { var name = component["Name"].Value <string>(); if (_components.ContainsKey(name)) { continue; } switch (component["Type"].Value <string>()) { case "audio_file_player": _components[name] = new AudioFilePlayer(this, component); break; case "mixer": _components[name] = new Mixer(this, component); break; case "system_mute": case "gain": _components[name] = new Gain(this, component); break; case "scriptable_controls": _components[name] = new ScriptableControls(this, component); break; case "snapshot_controller": _components[name] = new SnapshotController(this, component); break; case "softphone": _components[name] = new SoftPhone(this, component); break; case "pots_control_status_core": _components[name] = new PotsPhone(this, component); break; case "signal_presence": _components[name] = new SignalPresence(this, component); break; case "sine": _components[name] = new Sine(this, component); break; case "router_with_output": _components[name] = new RouterWithOutput(this, component); break; case "io_status": _components[name] = new IoStatus(this, component); break; default: _components[name] = new GenericComponent(this, component); break; } } } else { CloudLog.Debug("{0} has component details... updating...", GetType().Name); foreach (var component in this) { component.UpdateAsync(); } } _initialized = true; sw.Stop(); CloudLog.Debug("{0} has initialized, process time = {1}", GetType().Name, sw.Elapsed); OnHasIntitialized(this); DefaultChangeGroup.PollAuto(1.0); return(null); }
private static bool wantExportRow( SnapshotController ssc, PreparedInformation preparedInformation, IInheritedSettings settings, DataRow row, CommentVisibilityScope commentVisibilityScope) { if (FileGroup.IsCompleteRowEmpty(row) && !preparedInformation.ExportCompletelyEmptyRows || // http://www.codeproject.com/KB/aspnet/ZetaResourceEditor.aspx?msg=3367544#xx3367544xx) FileGroup.IsInternalRow(row)) { return(false); } if (preparedInformation.OnlyExportRowsWithNoTranslation) { var emptyCount = 0; // ReSharper disable LoopCanBeConvertedToQuery foreach (DataColumn column in row.Table.Columns) // ReSharper restore LoopCanBeConvertedToQuery { // Column 0=FileGroup checksum, column 1=Tag name. if (column.Ordinal != 0 && column.Ordinal != 1 && !isCommentColumn(column)) { var languageCode = IsFileName(column.ColumnName) ? new LanguageCodeDetection(preparedInformation.Project).DetectLanguageCodeFromFileName( settings, column.ColumnName) : column.ColumnName; if (string.Compare(languageCode, preparedInformation.ReferenceLanguageCode, StringComparison.OrdinalIgnoreCase) != 0) { if (ConvertHelper.ToString(row[column], string.Empty).Trim().Length <= 0) { emptyCount++; } } } } if (preparedInformation.Project.EnableExcelExportSnapshots) { return(emptyCount > 0 || preparedInformation.OnlyExportRowsWithChangedTexts && hasChangedTextSinceLastExport(ssc, preparedInformation, settings, row)); } else { return(emptyCount > 0); } } else { if (preparedInformation.Project.EnableExcelExportSnapshots) { return(!preparedInformation.OnlyExportRowsWithChangedTexts || hasChangedTextSinceLastExport(ssc, preparedInformation, settings, row)); } else { return(true); } } }
private static void doProcess( PreparedInformation preparedInformation, BackgroundWorker bw, int fileGroupsLength, ICollection <string> savedFiles) { var ssc = new SnapshotController(preparedInformation.Project, @"XLS"); ssc.Initialize(); // -- var exportedReferenceLanguageValues = new HashSet <string>(); var dataSet = new DataSet(); dataSet.Tables.Clear(); DataTable dataTable = null; var currentRowIndex = 0; var suggestedWorkSheetNamesToRemove = new List <string>(); var fileGroupIndex = 0; foreach (var fileGroup in preparedInformation.FileGroups) { if (bw.CancellationPending) { throw new OperationCanceledException(); } var isFirstFileGroup = fileGroupIndex == 0; var isLastFileGroup = fileGroupIndex == preparedInformation.FileGroups.Length - 1; var worksheetIndex = -1; if (preparedInformation.ExportAllGroups) { if (dataTable == null) { dataSet.Tables.Add(); worksheetIndex = dataSet.Tables.Count - 1; dataTable = dataSet.Tables[worksheetIndex]; dataTable.TableName = Resources.SR_CommandProcessorSend_Process_ZRE_Export; } } else { dataSet.Tables.Add(); worksheetIndex = dataSet.Tables.Count - 1; dataTable = dataSet.Tables[worksheetIndex]; dataTable.TableName = generateWorksheetName(preparedInformation, fileGroup, preparedInformation.Project); } var rows = dataTable.Rows; var wantNewSheet = !preparedInformation.ExportAllGroups || isFirstFileGroup; // -- // Header. const int headerStartRowIndex = 0; const int columnStartIndex = 0; if (wantNewSheet) { if (preparedInformation.ExportFileGroupColumn) { // Checksum. // 2014-06-25 Krickbaum - Corrected type to double dataTable.Columns.Add(Resources.SR_CommandProcessorSend_Process_Group, typeof(double)); } if (preparedInformation.ExportNameColumn) { // String name. dataTable.Columns.Add(Resources.SR_CommandProcessorSend_Process_Name, typeof(string)); } if (preparedInformation.ExportReferenceLanguageColumn) { // Reference language. dataTable.Columns.Add(preparedInformation.ReferenceLanguageCode, typeof(string)); } // Destination languages. // ReSharper disable ForCanBeConvertedToForeach for (var runningColIndex = 0; // ReSharper restore ForCanBeConvertedToForeach runningColIndex < preparedInformation.DestinationLanguageCodes.Length; ++runningColIndex) { var destinationLanguageCode = preparedInformation.DestinationLanguageCodes[runningColIndex]; if (string.Compare(preparedInformation.ReferenceLanguageCode, destinationLanguageCode, StringComparison.OrdinalIgnoreCase) != 0) { dataTable.Columns.Add(destinationLanguageCode, typeof(string)); } } if (preparedInformation.ExportCommentColumn) { // String name. dataTable.Columns.Add(Resources.SR_CommandProcessorSend_Process_Comment, typeof(string)); } currentRowIndex = headerStartRowIndex; } // -- // Content. var dp = new DataProcessing(fileGroup); var table = dp.GetDataTableFromResxFiles(preparedInformation.Project, preparedInformation.ExportCommentColumn); table = removeUnusedColumns( preparedInformation, fileGroup.ParentSettings, table); var rowIndex = 0; foreach (DataRow row in table.Rows) { if ((rowIndex + 1) % 20 == 0) { bw.ReportProgress( 0, new ExcelProgressInformation { TemporaryProgressMessage = string.Format( Resources.SR_CommandProcessorSend_Process_ProcessingFileGroupOfRowOf, fileGroupIndex + 1, fileGroupsLength, rowIndex + 1, table.Rows.Count, (int)((rowIndex + 1.0) / table.Rows.Count * ((fileGroupIndex + 1.0) / fileGroupsLength) * 100)) }); if (bw.CancellationPending) { throw new OperationCanceledException(); } } if (wantExportRow( ssc, preparedInformation, fileGroup.ParentSettings, row, CommentVisibilityScope.InMemory)) { if (!wasAlreadyExported( exportedReferenceLanguageValues, preparedInformation, fileGroup.ParentSettings, row)) { var offset = 0; if (preparedInformation.ExportFileGroupColumn) { // Checksum. checkEnsureRowPresent(dataTable, currentRowIndex); rows[currentRowIndex][columnStartIndex] = fileGroup.GetChecksum(preparedInformation.Project); makeCellReadOnly(dataTable.Columns[columnStartIndex]); offset++; } if (preparedInformation.ExportNameColumn) { // String name. checkEnsureRowPresent(dataTable, currentRowIndex); rows[currentRowIndex][columnStartIndex + offset] = row[1]; // Column 0=FileGroup checksum, column 1=Tag name. makeCellReadOnly(dataTable.Columns[columnStartIndex + offset]); offset++; } var effectiveDestinationColumnIndex = 1; // Column 0=FileGroup checksum, column 1=Tag name. for (var sourceColumnIndex = 2; sourceColumnIndex < table.Columns.Count - (preparedInformation.ExportCommentColumn ? 1 : 0); // Subtract 1, because last column is ALWAYS the comment. ++sourceColumnIndex) { var languageValue = row[sourceColumnIndex] as string; var languageCode = IsFileName(table.Columns[sourceColumnIndex].ColumnName) ? new LanguageCodeDetection(preparedInformation.Project) .DetectLanguageCodeFromFileName( fileGroup.ParentSettings, table.Columns[sourceColumnIndex].ColumnName) : table.Columns[sourceColumnIndex].ColumnName; var isReferenceLanguage = string.Compare(preparedInformation.ReferenceLanguageCode, languageCode, StringComparison.OrdinalIgnoreCase) == 0; if (isReferenceLanguage && preparedInformation.ExportReferenceLanguageColumn || !isReferenceLanguage) { checkEnsureRowPresent(dataTable, currentRowIndex); var columnIndex = columnStartIndex - 1 + effectiveDestinationColumnIndex + offset; rows[currentRowIndex][columnIndex] = languageValue; if (isReferenceLanguage) { makeCellReadOnly(dataTable.Columns[columnIndex]); exportedReferenceLanguageValues.Add( string.IsNullOrEmpty(languageValue) ? string.Empty : languageValue); } effectiveDestinationColumnIndex++; } } if (preparedInformation.ExportCommentColumn) { // Comment. checkEnsureRowPresent(dataTable, currentRowIndex); rows[currentRowIndex][columnStartIndex - 1 + effectiveDestinationColumnIndex + offset] = DataProcessing.GetComment(preparedInformation.Project, row); /*offset++;*/ } currentRowIndex++; } } // In every loop, check again. suggestedWorkSheetNamesToRemove.Remove(dataTable.TableName); //CHANGED if worksheet empty: remove it) if (currentRowIndex == headerStartRowIndex + 1 && !preparedInformation.ExportAllGroups) { // http://www.codeproject.com/Messages/3539004/Export-to-Excel-bug.aspx if (worksheetIndex < dataSet.Tables.Count) { suggestedWorkSheetNamesToRemove.Add(dataTable.TableName); } } rowIndex++; } //dataTable.AutoFitRow(currentRowIndex - 1); if (bw.CancellationPending) { throw new OperationCanceledException(); } // -- if (!preparedInformation.ExportAllGroups || isLastFileGroup) { var offset = 0; if (preparedInformation.ExportFileGroupColumn) { // Checksum. //dataTable.AutoFitColumn( // columnStartIndex, // headerStartRowIndex, // currentRowIndex); offset++; } if (preparedInformation.ExportNameColumn) { // String name. //dataTable.AutoFitColumn( // columnStartIndex + offset, // headerStartRowIndex, // currentRowIndex); offset++; } if (preparedInformation.ExportReferenceLanguageColumn) { // Reference language. //dataTable.AutoFitColumn( // columnStartIndex + offset, // headerStartRowIndex, // currentRowIndex); offset++; } // Destination languages. int runningColIndex; for (runningColIndex = 0; runningColIndex < preparedInformation.DestinationLanguageCodes.Length; ++runningColIndex) { //dataTable.AutoFitColumn( // columnStartIndex + runningColIndex + offset, // headerStartRowIndex, // currentRowIndex); } if (preparedInformation.ExportCommentColumn) { // Comment. //dataTable.AutoFitColumn( // columnStartIndex + offset + runningColIndex, // headerStartRowIndex, // currentRowIndex); /*offset++;*/ } } // -- fileGroupIndex++; } // -- // 2011-01-31, Uwe Keim. // http://www.codeproject.com/Messages/3559812/Export-error.aspx foreach (var name in suggestedWorkSheetNamesToRemove) { dataSet.Tables.Remove(name); } // -- if (dataSet.Tables.Count > 0) { bw.ReportProgress( 0, new ExcelProgressInformation { TemporaryProgressMessage = string.Format( Resources.SR_CommandProcessorSend_Process_SavingMicrosoftOfficeExcelDocument) }); savedFiles.Add(preparedInformation.DestinationFilePath); CoreExcelExporter.ExportToExcelFile(dataSet, preparedInformation.DestinationFilePath); } else { bw.ReportProgress( 0, new ExcelProgressInformation { TemporaryProgressMessage = Resources.ExcelExportController_doProcess_Skipping_Microsoft_Office_Excel_document_, WarningMessage = string.Format( Resources.ExcelExportController_doProcess_Skipping_Excel_document___0___because_it_contains_no_work_sheets_, ZlpPathHelper.GetFileNameFromFilePath(preparedInformation.DestinationFilePath)) }); } // -- // At very last, to not overwrite before comparing. if (preparedInformation.Project.EnableExcelExportSnapshots) { ssc.TakeFullSnapshot( preparedInformation.FileGroups, new[] { preparedInformation.ReferenceLanguageCode }, bw); } }
public void SnapshotMode() { FindObjectOfType <CameraController>().enabled = false; SnapshotController.Enable(); SetMenu(""); }