Audacity  2.2.0
Todo List
Member AudacityProject::OnPrevTrack (bool shift)
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 AudioIO::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 AudioIO::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 FileNames::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 GetWaveYPos (float value, float min, float max, int height, bool dB, bool outer, float dBr, bool clip)
Should this function move int GuiWaveTrack where it can then use the zoomMin, zoomMax and height values without having to have them passed in to it??
Member RateMenuTable::OnRateOther (wxCommandEvent &event)

Remove artificial constants!!

Make a real dialog box out of this!!

Class Ruler::Label
Check whether Ruler is costing too much time in allocation/free of array of Ruler::Label.
Member Shuttle::TransferLongLong (const wxString &Name, wxLongLong_t &iValue, const wxLongLong_t &iDefault)
Fix for long long values.
Member ShuttleGuiBase::AddRadioButton (const wxString &Prompt)
This function and the next one, suitably adapted, could be used by TieRadioButton.
Member ThemeBase::ReadImageCache (teThemeType type=themeFromFile, 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'.
File TrackPanel.cpp
Refactoring of the TrackPanel, possibly as described in Track Panel Refactor
Member ZoomHandle::Release (const TrackPanelMouseEvent &event, AudacityProject *pProject, wxWindow *pParent) override
MAGIC NUMBER: We've got several in this method.