Skip to content

Commit d26703d

Browse files
committed
add options to displaySettings
1 parent fb8a7cd commit d26703d

3 files changed

Lines changed: 18 additions & 10 deletions

File tree

src/Spectrogram/Annotations.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ namespace Spectrogram
66
{
77
public class Annotations
88
{
9-
public static void drawTicks(Bitmap bmp, FftSettings fftSettings, DisplaySettings displaySettings, double tickSpacingHz, double tickSpacingSec)
9+
public static void drawTicks(Bitmap bmp, FftSettings fftSettings, DisplaySettings displaySettings)
1010
{
1111
Graphics gfx = Graphics.FromImage(bmp);
1212

13+
double tickSpacingSec = displaySettings.tickSpacingSec;
14+
double tickSpacingHz = displaySettings.tickSpacingHz;
15+
1316
double horizontalTickSpacing = tickSpacingSec * fftSettings.sampleRate / fftSettings.step;
1417

1518
double firstFreqTick = fftSettings.FrequencyFromIndex(displaySettings.pixelLower) + tickSpacingHz;

src/Spectrogram/Settings/DisplaySettings.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@ public class DisplaySettings
2424

2525
public float brightness = 1;
2626
public bool decibels;
27-
public Colormap colormap;
27+
public Colormap colormap = Colormap.viridis;
2828
public int? highlightColumn = null;
29+
public bool showTicks = false;
30+
public double tickSpacingSec = 1;
31+
public double tickSpacingHz = 100;
2932

3033
public bool renderNeeded;
3134

src/Spectrogram/Spectrogram.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,10 @@ public Bitmap GetBitmap(
117117
double? intensity = null,
118118
bool decibels = false,
119119
bool vertical = false,
120-
Colormap colormap = Colormap.viridis,
121-
bool showTicks = false,
122-
double tickSpacingHz = 500,
123-
double tickSpacingSec = 1,
120+
Colormap? colormap = null,
121+
bool? showTicks = null,
122+
double? tickSpacingHz = null,
123+
double? tickSpacingSec = null,
124124
double? freqLow = null,
125125
double? freqHigh = null,
126126
bool highlightLatestColumn = false
@@ -135,11 +135,13 @@ public Bitmap GetBitmap(
135135
if (intensity != null)
136136
displaySettings.brightness = (float)intensity;
137137

138-
139138
displaySettings.decibels = decibels;
140-
displaySettings.colormap = colormap;
139+
displaySettings.colormap = (colormap == null) ? displaySettings.colormap : (Colormap)colormap;
141140
displaySettings.freqLow = (freqLow == null) ? 0 : (double)freqLow;
142141
displaySettings.freqHigh = (freqHigh == null) ? fftSettings.maxFreq : (double)freqHigh;
142+
displaySettings.showTicks = (showTicks == null) ? displaySettings.showTicks : (bool)showTicks;
143+
displaySettings.tickSpacingHz = (tickSpacingHz == null) ? displaySettings.tickSpacingHz : (double)tickSpacingHz;
144+
displaySettings.tickSpacingSec = (tickSpacingSec == null) ? displaySettings.tickSpacingSec : (double)tickSpacingSec;
143145

144146
if (highlightLatestColumn)
145147
displaySettings.highlightColumn = nextIndex;
@@ -159,8 +161,8 @@ public Bitmap GetBitmap(
159161
}
160162

161163
// TODO: put spacing in displaySettings
162-
if (showTicks)
163-
Annotations.drawTicks(bmpRgb, fftSettings, displaySettings, tickSpacingHz, tickSpacingSec);
164+
if (displaySettings.showTicks)
165+
Annotations.drawTicks(bmpRgb, fftSettings, displaySettings);
164166

165167
return bmpRgb;
166168
}

0 commit comments

Comments
 (0)