Audacity 3.2.0
Todo List
Member anonymous_namespace{NavigationMenus.cpp}::DoPrevTrack (AudacityProject &project, bool shift, bool circularTrackNavigation)
Merge related methods, OnPrevTrack and OnNextTrack.
Class AudioIO
run through all functions called from audio and portaudio threads to verify they are thread-safe. Note that synchronization of the style: "A sets flag to signal B, B clears flag to acknowledge completion" is not thread safe in a general multiple-CPU context. For example, B can write to a buffer and set a completion flag. The flag write can occur before the buffer write due to out-of-order execution. Then A can see the flag and read the buffer before buffer writes complete.
Member AudioIOBase::GetOptimalSupportedSampleRate ()
: should this take into account PortAudio's value for PaDeviceInfo::defaultSampleRate? In principal this should let us work out which rates are "real" and which resampled in the drivers, and so prefer the real rates.
Member AudioIOBase::HandleDeviceChange ()
: Make this do a sample rate query and store the result in the AudioIO object to avoid doing it later? Would simplify the GetSupported*Rate functions considerably
Member ExpandingToolBar::ExpandingToolBar (wxWindow *parent, wxWindowID id, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize)
check whether this is a memory leak (and check similar code)
Member RateMenuTable::OnRateOther (wxCommandEvent &event)

Remove artificial constants!!

Make a real dialog box out of this!!

Class RulerUpdater::Label
Check whether RulerUpdater is costing too much time in allocation/free of array of RulerUpdater::Label.
Member ShuttleGuiBase::DoAddRadioButton (const TranslatableString &Prompt, int style, int selector, int initValue)
This function and the next two, suitably adapted, could be used by TieRadioButton.
Member TempDirectory::TempDir ()
put a counter in here to see if it gets used a lot. if it does, then maybe we should cache the path name each time.
Member ThemeBase::ReadImageCache (teThemeType type={}, bool bOkIfNotFound=false)
revisit this hack which makes adding NEW colours easier but which prevents a colour of (1,1,1) from being added. find an alternative way to make adding NEW colours easier. e.g. initialise the background to translucent, perhaps.
Member TrackInfo::SetTrackInfoFont (wxDC *dc)
Probably should move to 'Utils.cpp'.
Class VSTEffectTimer
should there be tests for no timer available?
Member ZoomHandle::Release (const TrackPanelMouseEvent &event, AudacityProject *pProject, wxWindow *pParent) override
MAGIC NUMBER: We've got several in this method.