diff --git a/lib/+artoa/+controller/+track/+parameter/open.m b/lib/+artoa/+controller/+track/+parameter/open.m index fc248bd8dd20e2c8d2ccd31b2319f80450f54821..6f818393fb360fefe8fc134a061b5165699f631e 100644 --- a/lib/+artoa/+controller/+track/+parameter/open.m +++ b/lib/+artoa/+controller/+track/+parameter/open.m @@ -23,6 +23,7 @@ callbacks.inputOutputInterpolationInterval = @artoa.controller.track.parameter.i callbacks.inputGapSize = @artoa.controller.track.parameter.inputGapSize; callbacks.tableSoundSourceCombinationsSelection = ''; callbacks.tableSoundSourceCombinationsEdit = ''; +callbacks.tableSoundSourceOffsetsEdit = @artoa.controller.track.parameter.tableSoundsourceOffsetsEdit; callbacks.buttonTrack = ''; callbacks.buttonQuickTrack = ''; callbacks.buttonAddCombination = ''; @@ -37,9 +38,33 @@ artoa.gui.track.parameter( ... artoaWorkspace.defaults.soundspeedMethods ... ); + %% Create workspace variables if ~isfield(artoaWorkspace, 'trackParameter') artoaWorkspace.trackParameter = struct(); + % initialize sound source offsets + artoaGui.trackParameter.tableSoundSourceOffsets.RowName = fieldnames( ... + artoaWorkspace.filteredSoundsources ... + ); + artoaGui.trackParameter.tableSoundSourceOffsets.Data(1:length(artoaGui.trackParameter.tableSoundSourceOffsets.RowName), 1) = {0}; + % initialize settings + availableCallbacks = { ... + 'comboboxTrackingMethod', ... + 'checkboxDopplerCorrection', ... + 'comboboxInterpolationMethod', ... + 'comboboxSoundspeedMethod', ... + 'checkboxPlotResiduals', ... + 'inputOutputInterpolationInterval', ... + 'inputGapSize', ... + 'tableSoundSourceOffsetsEdit' ... + }; + + for i = 1:length(availableCallbacks) + if isfield(callbacks, availableCallbacks{i}) + % execute the callback to save the state + callbacks.(availableCallbacks{i})(); + end + end end %% Update the values if required diff --git a/lib/+artoa/+controller/+track/+parameter/tableSoundsourceOffsetsEdit.m b/lib/+artoa/+controller/+track/+parameter/tableSoundsourceOffsetsEdit.m new file mode 100644 index 0000000000000000000000000000000000000000..fe0a2c3f7f2a49ef2065a380ad77b670d1c6bdad --- /dev/null +++ b/lib/+artoa/+controller/+track/+parameter/tableSoundsourceOffsetsEdit.m @@ -0,0 +1,13 @@ +function [] = tableSoundsourceOffsetsEdit(~, ~) +%TABLESOUNDSOURCEOFFSETSEDIT Summary of this function goes here +% Detailed explanation goes here + + +global artoaWorkspace artoaGui; + +artoaWorkspace.trackParameter.soundsourceOffsets = artoaGui.trackParameter.tableSoundSourceOffsets.Data; + + + +end + diff --git a/lib/+artoa/+controller/+track/+parameter/updateGui.m b/lib/+artoa/+controller/+track/+parameter/updateGui.m index 40d3482b44fcf17e8e74a5976a44a56be5024a28..3f86a76efe39e41b5e93d84e94cda284decf21aa 100644 --- a/lib/+artoa/+controller/+track/+parameter/updateGui.m +++ b/lib/+artoa/+controller/+track/+parameter/updateGui.m @@ -28,8 +28,15 @@ for i = 1:length(fieldNames) artoaGui.trackParameter.inputOutputInterpolationInterval.String = currentValue; case 'gapSize' artoaGui.trackParameter.inputGapSize.String = currentValue; + case 'soundsourceOffsets' + artoaGui.trackParameter.tableSoundSourceOffsets.Data = currentValue; end end +% update soundsources +artoaGui.trackParameter.tableSoundSourceOffsets.RowName = fieldnames( ... + artoaWorkspace.filteredSoundsources ... +); + end diff --git a/lib/+artoa/+gui/+track/parameter.m b/lib/+artoa/+gui/+track/parameter.m index cbf16b558ad9b9de550905cbdc6d50003e4332e7..4d2a9f362b4aed807a751a9bc5dec9a8cdc1209c 100644 --- a/lib/+artoa/+gui/+track/parameter.m +++ b/lib/+artoa/+gui/+track/parameter.m @@ -18,6 +18,8 @@ availableCallbacks = { ... 'inputGapSize', ... 'tableSoundSourceCombinationsSelection', ... 'tableSoundSourceCombinationsEdit', ... + 'tableSoundSourceOffsetsSelection', ... + 'tableSoundSourceOffsetsEdit', ... 'buttonTrack', ... 'buttonQuickTrack', ... 'buttonAddCombination', ... @@ -82,6 +84,7 @@ artoaGui.trackParameter.checkboxDopplerCorrection = uicontrol( ... 'FontSize', 8, ... 'Units', 'normalized', ... 'Position', [left .1 .9 .3], ... + 'Value', 1, ... 'CallBack', pCallbacks.checkboxDopplerCorrection ... ); @@ -186,7 +189,7 @@ columns = { ... artoaGui.trackParameter.tableSoundSourceCombinations = uitable( ... artoaGui.figures.trackParameter, ... 'Units', 'normalized', ... - 'Position', [left, 0.13, (5*left + 3.25*width), 0.6], ... + 'Position', [left, 0.4, (5*left + 3.25*width), 0.3], ... 'Data', cell(1, length(columns)), ... 'ColumnName', columns, ... 'ColumnEditable', true, ... @@ -195,6 +198,23 @@ artoaGui.trackParameter.tableSoundSourceCombinations = uitable( ... ); clear columns; +%% Sound source offset table + +columns = { ... + 'Offset' +}; +artoaGui.trackParameter.tableSoundSourceOffsets = uitable( ... + artoaGui.figures.trackParameter, ... + 'Units', 'normalized', ... + 'Position', [left, 0.1, 0.75*width, 0.27], ... + 'Data', cell(1, length(columns)), ... + 'ColumnName', columns, ... + 'ColumnEditable', true, ... + 'CellSelectionCallback', pCallbacks.tableSoundSourceOffsetsSelection,... %@(app,event) disp(num2str(event.Indices)) ... + 'CellEditCallback', pCallbacks.tableSoundSourceOffsetsEdit ... +); +clear columns; + %% Track buttons frame artoaGui.trackParameter.frameTrackButtons = uipanel( ...