mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-26 15:23:48 +01:00
pixel column counts and sample window sizes use unsigned types
This commit is contained in:
@@ -371,8 +371,8 @@ namespace
|
||||
{
|
||||
enum { WINDOW, TWINDOW, DWINDOW };
|
||||
void RecreateWindow(
|
||||
float *&window, int which, int fftLen,
|
||||
int padding, int windowType, int windowSize, double &scale)
|
||||
float *&window, int which, size_t fftLen,
|
||||
size_t padding, int windowType, size_t windowSize, double &scale)
|
||||
{
|
||||
if (window != NULL)
|
||||
delete[] window;
|
||||
@@ -402,7 +402,7 @@ namespace
|
||||
// Future, reassignment
|
||||
case TWINDOW:
|
||||
NewWindowFunc(windowType, windowSize, extra, window + padding);
|
||||
for (int ii = padding, multiplier = -windowSize / 2; ii < endOfWindow; ++ii, ++multiplier)
|
||||
for (int ii = padding, multiplier = -(int)windowSize / 2; ii < endOfWindow; ++ii, ++multiplier)
|
||||
window[ii] *= multiplier;
|
||||
break;
|
||||
case DWINDOW:
|
||||
@@ -429,8 +429,8 @@ void SpectrogramSettings::CacheWindows() const
|
||||
if (hFFT == NULL || window == NULL) {
|
||||
|
||||
double scale;
|
||||
const int fftLen = windowSize * zeroPaddingFactor;
|
||||
const int padding = (windowSize * (zeroPaddingFactor - 1)) / 2;
|
||||
const auto fftLen = WindowSize() * ZeroPaddingFactor();
|
||||
const auto padding = (windowSize * (zeroPaddingFactor - 1)) / 2;
|
||||
|
||||
if (hFFT != NULL)
|
||||
EndFFT(hFFT);
|
||||
@@ -475,7 +475,7 @@ void SpectrogramSettings::ConvertToActualWindowSizes()
|
||||
#endif
|
||||
}
|
||||
|
||||
int SpectrogramSettings::GetFFTLength() const
|
||||
size_t SpectrogramSettings::GetFFTLength() const
|
||||
{
|
||||
return windowSize
|
||||
#ifdef EXPERIMENTAL_ZERO_PADDED_SPECTROGRAMS
|
||||
@@ -488,7 +488,7 @@ NumberScale SpectrogramSettings::GetScale
|
||||
(float minFreq, float maxFreq, double rate, bool bins) const
|
||||
{
|
||||
NumberScaleType type = nstLinear;
|
||||
const int half = GetFFTLength() / 2;
|
||||
const auto half = GetFFTLength() / 2;
|
||||
|
||||
// Don't assume the correspondence of the enums will remain direct in the future.
|
||||
// Do this switch.
|
||||
|
||||
@@ -100,12 +100,20 @@ public:
|
||||
int frequencyGain;
|
||||
|
||||
int windowType;
|
||||
|
||||
private:
|
||||
int windowSize;
|
||||
public:
|
||||
size_t WindowSize() const { return windowSize; }
|
||||
|
||||
#ifdef EXPERIMENTAL_ZERO_PADDED_SPECTROGRAMS
|
||||
private:
|
||||
int zeroPaddingFactor;
|
||||
public:
|
||||
size_t ZeroPaddingFactor() const { return zeroPaddingFactor; }
|
||||
#endif
|
||||
|
||||
int GetFFTLength() const; // window size (times zero padding, if STFT)
|
||||
size_t GetFFTLength() const; // window size (times zero padding, if STFT)
|
||||
|
||||
bool isGrayscale;
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ SpectrumPrefs::SpectrumPrefs(wxWindow * parent, WaveTrack *wt)
|
||||
mDefaulted = false;
|
||||
}
|
||||
|
||||
const int windowSize = mTempSettings.windowSize;
|
||||
const auto windowSize = mTempSettings.WindowSize();
|
||||
mTempSettings.ConvertToEnumeratedWindowSizes();
|
||||
Populate(windowSize);
|
||||
}
|
||||
@@ -78,7 +78,7 @@ enum {
|
||||
ID_DEFAULTS,
|
||||
};
|
||||
|
||||
void SpectrumPrefs::Populate(int windowSize)
|
||||
void SpectrumPrefs::Populate(size_t windowSize)
|
||||
{
|
||||
mSizeChoices.Add(_("8 - most wideband"));
|
||||
mSizeChoices.Add(wxT("16"));
|
||||
@@ -112,7 +112,7 @@ void SpectrumPrefs::Populate(int windowSize)
|
||||
// ----------------------- End of main section --------------
|
||||
}
|
||||
|
||||
void SpectrumPrefs::PopulatePaddingChoices(int windowSize)
|
||||
void SpectrumPrefs::PopulatePaddingChoices(size_t windowSize)
|
||||
{
|
||||
#ifdef EXPERIMENTAL_ZERO_PADDED_SPECTROGRAMS
|
||||
mZeroPaddingChoice = 1;
|
||||
@@ -132,9 +132,9 @@ void SpectrumPrefs::PopulatePaddingChoices(int windowSize)
|
||||
pPaddingSizeControl->Clear();
|
||||
}
|
||||
|
||||
int padding = 1;
|
||||
unsigned padding = 1;
|
||||
int numChoices = 0;
|
||||
const int maxWindowSize = 1 << (SpectrogramSettings::LogMaxWindowSize);
|
||||
const size_t maxWindowSize = 1 << (SpectrogramSettings::LogMaxWindowSize);
|
||||
while (windowSize <= maxWindowSize) {
|
||||
const wxString numeral = wxString::Format(wxT("%d"), padding);
|
||||
mZeroPaddingChoices.Add(numeral);
|
||||
@@ -449,7 +449,7 @@ void SpectrumPrefs::OnWindowSize(wxCommandEvent &evt)
|
||||
// size and padding may not exceed the largest window size.
|
||||
wxChoice *const pWindowSizeControl =
|
||||
static_cast<wxChoice*>(wxWindow::FindWindowById(ID_WINDOW_SIZE, this));
|
||||
int windowSize = 1 <<
|
||||
size_t windowSize = 1 <<
|
||||
(pWindowSizeControl->GetSelection() + SpectrogramSettings::LogMinWindowSize);
|
||||
PopulatePaddingChoices(windowSize);
|
||||
|
||||
|
||||
@@ -48,8 +48,8 @@ class SpectrumPrefs final : public PrefsPanel
|
||||
bool Validate() override;
|
||||
|
||||
private:
|
||||
void Populate(int windowSize);
|
||||
void PopulatePaddingChoices(int windowSize);
|
||||
void Populate(size_t windowSize);
|
||||
void PopulatePaddingChoices(size_t windowSize);
|
||||
void PopulateOrExchange(ShuttleGui & S);
|
||||
|
||||
void OnControl(wxCommandEvent &event);
|
||||
|
||||
Reference in New Issue
Block a user