LogoSearch packages:      

Sourcecode: audacity version File versions

Todo List

Class AudioIO
run through all functions called from audio and portaudio threads to verify they are thread-safe.

Member AudioIOPrefs::PopulateOrExchange (ShuttleGui &S)
JKC: I think setting paths in gPrefs is bad practice. Suppose we are using gPrefs from elsewhere at the same time? Change these all to full paths?

Member EffectToneGen::GetEffectDescription ()
update to include *all* chirp parameters??

Member EffectToneGen::TransferParameters (Shuttle &shuttle)
this should in time be using ShuttleGui too.

Class EffectTruncSilence
Only works on complete mono track for now

Class EffectTruncSilence
mBlendFrameCount only retrieved from prefs ... not using dialog Only way to change (for windows) is thru registry The values should be figured dynamically ... too many frames could be invalid

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 KeyConfigPrefs::Apply ()
gPrefs SetPath is dodgy as we might be using gPrefs elsewhere.

Member Meter::CreateIcon (int aquaOffset)
Remove wasteful delete/new pair. It is done in every call to layout.

Class Ruler::Label
Check whether Ruler is costing too much time in malloc/free of array of Ruler::Label.

Member Sequence::AppendBlock (SeqBlock *b)
Error Could not paste! (Out of disk space?)

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 (bool bBinaryRead=true, 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 TrackPanel::DoZoomInOut (wxMouseEvent &event, int x)
MAGIC NUMBER: We've got several in this function.

Member TrackPanel::HandleLabelTrackMouseEvent (LabelTrack *lTrack, wxRect &r, wxMouseEvent &event)
This function is one of a large number of functions in TrackPanel which suitably modified belong in other classes.

Member TrackPanel::HandleSampleEditingClick (wxMouseEvent &event)
Should mCapturedTrack take the place of mDrawingTrack??

Member TrackPanel::OnPrevTrack (bool shift=false)
Merge related functions, TrackPanel::OnPrevTrack and TrackPanel::OnNextTrack.

Member TrackPanel::OnRateOther (wxCommandEvent &event)
Remove artificial constants!!

Member TrackPanel::OnRateOther (wxCommandEvent &event)
Make a real dialog box out of this!!

Member UploadDialog::UploadDialog (wxWindow *parent)
get these XPMs out of here and into Theme.

Member PaAsio_GetAvailableLatencyValues
This function should have a better name, any suggestions?

File pa_converters.c
Consider whether functions which dither but don't clip should exist, V18 automatically enabled clipping whenever dithering was selected. Perhaps we should do the same.

File pa_converters.c
implement the converters marked IMPLEMENT ME: Float32_To_UInt8_Dither, Float32_To_UInt8_Clip, Float32_To_UInt8_DitherClip, Int32_To_Int24_Dither, Int32_To_UInt8_Dither, Int24_To_Int16_Dither, Int24_To_Int8_Dither, Int24_To_UInt8_Dither, Int16_To_Int8_Dither, Int16_To_UInt8_Dither,

File pa_converters.c
review the converters marked REVIEW: Float32_To_Int32, Float32_To_Int32_Dither, Float32_To_Int32_Clip, Float32_To_Int32_DitherClip, Int32_To_Int16_Dither, Int32_To_Int8_Dither, Int16_To_Int32

File pa_cpuload.c
Dynamically calculate the coefficients used to smooth the CPU Load Measurements over time to provide a uniform characterisation of CPU Load independent of rate at which PaUtil_BeginCpuLoadMeasurement / PaUtil_EndCpuLoadMeasurement are called.

Member PaUtil_EndCpuLoadMeasurement
these coefficients shouldn't be hardwired

File pa_debugprint.c
Consider allocating strdump using dynamic allocation.

File pa_debugprint.c
Consider reentrancy and possibly corrupted strdump buffer.

File pa_front.c
Consider adding host API specific error text in Pa_GetErrorText() for paUnanticipatedHostError

File pa_front.c
Consider adding a new error code for when (inputParameters == NULL) && (outputParameters == NULL)

File pa_front.c
review whether Pa_CloseStream() should call the interface's CloseStream function if aborting the stream returns an error code.

File pa_front.c
Create new error codes if a NULL buffer pointer, or a zero frame count is passed to Pa_ReadStream or Pa_WriteStream.

Member Pa_CloseStream
REVIEW: shouldn't we close anyway?

Member Pa_GetErrorText
could catenate the last host error text to result in the case of paUnanticipatedHostError

Member ValidateOpenStreamParameters
should be a new error code "invalid device parameters" or something

File pa_process.c
Consider cache tilings for intereave<->deinterleave.

File pa_process.c
implement timeInfo->currentTime int PaUtil_BeginBufferProcessing()

File pa_process.c
specify and implement some kind of logical policy for handling the underflow and overflow stream flags when the underflow/overflow overlaps multiple user buffers/callbacks.

File pa_process.c
provide support for priming the buffers with data from the callback. The client interface is now implemented through PaUtil_SetNoInput() which sets bp->hostInputChannels[0][0].data to zero. However this is currently only implemented in NonAdaptingProcess(). It shouldn't be needed for AdaptingInputOnlyProcess() (no priming should ever be requested for AdaptingInputOnlyProcess()). Not sure if additional work should be required to make it work with AdaptingOutputOnlyProcess, but it definitely is required for AdaptingProcess.

File pa_process.c
implement PaUtil_SetNoOutput for AdaptingProcess

File pa_process.c
don't allocate temp buffers for blocking streams unless they are needed. At the moment they are needed, but perhaps for host APIs where the implementation passes a buffer to the host they could be used.

Member AdaptingInputOnlyProcess
(non-critical optimisation) The conditional below implements the continue/complete/abort mechanism simply by continuing on iterating through the input buffer, but not passing the data to the callback. With care, the outer loop could be terminated earlier, thus some unneeded conversion cycles would be saved.

Member PaUtil_BeginBufferProcessing
time info currentTime not implemented

Member ReadStream
REVIEW: consider what to do if the input overflows. do we requeue all of the buffers? should we be running a thread to make sure they are always queued?

Member WriteStream
REVIEW: consider what to do if the output underflows. do we requeue all the existing buffers with zeros? should we run a separate thread to keep the buffers enqueued at all times?

File pa_util.h
Document and adhere to the alignment guarantees provided by PaUtil_AllocateMemory().

Member PaAsiHpi_StartStream
Implement priming via the user callback

Member PaAsiHpi_WaitForFrames
The paInputOverflow flag should be set in the callback containing the first input sample following the overflow. That means the block currently sitting at the fore-front of recording, i.e. typically the one containing the newest (last) sample in the HPI buffer system. This is most likely not the same as the current block of data being passed to the callback. The current overflow should ideally be noted in an overflow list of sorts, with an indication of when it should be reported. The trouble starts if there are several separate overflow incidents, given a big input buffer. Oh well, something to try out later...

File pa_asio.cpp
check that CoInitialize()/CoUninitialize() are always correctly paired, even in error cases.

File pa_asio.cpp
implement host api specific extension to set i/o buffer sizes in frames

File pa_asio.cpp
implement ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable

File pa_asio.cpp
implement IsFormatSupported

File pa_asio.cpp
work out how to implement stream stoppage from callback and implement IsStreamActive properly. Stream stoppage could be implemented using a high-priority thread blocked on an Event which is signalled by the callback. Or, we could just call ASIO stop from the callback and see what happens.

File pa_asio.cpp
rigorously check asio return codes and convert to pa error codes

File pa_asio.cpp
Different channels of a multichannel stream can have different sample formats, but we assume that all are the same as the first channel for now. Fixing this will require the block processor to maintain per-channel conversion functions - could get nasty.

File pa_asio.cpp
investigate whether the asio processNow flag needs to be honoured

File pa_asio.cpp
handle asioMessages() callbacks in a useful way, or at least document what cases we don't handle.

File pa_asio.cpp
miscellaneous other FIXMEs

File pa_asio.cpp
provide an asio-specific method for setting the systems specific value (aka main window handle) - check that this matches the value passed to PaAsio_ShowControlPanel, or remove it entirely from PaAsio_ShowControlPanel. - this would allow PaAsio_ShowControlPanel to be called for the currently open stream (at present all streams must be closed).

Member IsFormatSupported
do more validation here

File pa_win_ds.c
implement paInputOverflow callback status flag

File pa_win_ds.c
implement paNeverDropInput.

File pa_win_ds.c
implement host api specific extension to set i/o buffer sizes in frames

File pa_win_ds.c
implement initialisation of PaDeviceInfo default*Latency fields (currently set to 0.)

File pa_win_ds.c
implement ReadStream, WriteStream, GetStreamReadAvailable, GetStreamWriteAvailable

File pa_win_ds.c
audit handling of DirectSound result codes - in many cases we could convert a HRESULT into a native portaudio error code. Standard DirectSound result codes are documented at msdn.

File pa_win_ds.c
implement IsFormatSupported

File pa_win_ds.c
check that CoInitialize() CoUninitialize() are always correctly paired, even in error cases.

File pa_win_ds.c
call PaUtil_SetLastHostErrorInfo with a specific error string (currently just "DSound error").

File pa_win_ds.c
make sure all buffers have been played before stopping the stream when the stream callback returns paComplete

Member AddInputDeviceInfoFromDirectSoundCapture
delete this comment and the following code once we've ensured there is no bug.

Member AddInputDeviceInfoFromDirectSoundCapture
IMPLEMENT ME

Member AddOutputDeviceInfoFromDirectSound
delete this comment and the following code once we've ensured there is no bug.

Member AddOutputDeviceInfoFromDirectSound
IMPLEMENT ME

Member OpenStream
REVIEW: this calculation seems incorrect to me - rossb.

Member Pa_TimeSlice
implement inputBufferAdcTime

Member Pa_TimeSlice
Check for overflow

Member PaWinDs_Initialize
: should uninitialize too

Member TerminateDSDeviceNameAndGUIDVector
this isn't the correct error to return from a deallocation failure

File pa_win_hostapis.c
Consider using PA_USE_WMME etc instead of PA_NO_WMME. This is what the Unix version does, we should consider being consistent.

File pa_win_util.c
Implement workaround for QueryPerformanceCounter() skipping forward bug. (see msdn kb Q274323).

Member paCanNotReadFromACallbackStream
review error code name

Member paCanNotWriteToACallbackStream
review error code name

Member paCanNotReadFromAnOutputOnlyStream
review error code name

Member paCanNotWriteToAnInputOnlyStream
review error code name

File pa_win_wmme.c
Fix buffer catch up code, can sometimes get stuck (perhaps fixed now, needs to be reviewed and tested.)

File pa_win_wmme.c
implement paInputUnderflow, paOutputOverflow streamCallback statusFlags, paNeverDropInput.

File pa_win_wmme.c
BUG: PA_MME_SET_LAST_WAVEIN/OUT_ERROR is used in functions which may be called asynchronously from the callback thread. this is bad.

File pa_win_wmme.c
implement inputBufferAdcTime in callback thread

File pa_win_wmme.c
review/fix error recovery and cleanup in marked functions

File pa_win_wmme.c
implement timeInfo for stream priming

File pa_win_wmme.c
handle the case where the callback returns paAbort or paComplete during stream priming.

File pa_win_wmme.c
review input overflow and output underflow handling in ReadStream and WriteStream

File pa_win_wmme.c
Investigate supporting host buffer formats > 16 bits

File pa_win_wmme.c
define UNICODE and _UNICODE in the project settings and see what breaks

Member AbortStream
REVIEW: the error checking in this function needs review. the basic idea is to return from this function in a known state - for example there is no point avoiding calling waveInReset just because the thread times out.

Member CloseStream
REVIEW: what is the best way to clean up a stream if an error is detected?

Member ProcessingThreadProc
support paInputUnderflow, paOutputOverflow and paNeverDropInput

Member ProcessingThreadProc
FIXME/REVIEW: can't return host error info from an asyncronous thread

Member ProcessingThreadProc
if all of the other buffers are also ready then we discard all but the most recent. This is an input buffer overflow. FIXME: these buffers should be passed to the callback in a paNeverDropInput stream.

Member ProcessingThreadProc
implement inputBufferAdcTime

Member ProcessingThreadProc
FIXME: should probably reset the output device immediately once the callback returns paAbort

Member ProcessingThreadProc
need to handle PaNeverDropInput here where necessary

Member StartStream
implement this for stream priming

Member StartStream
fix this, what do we do if callback result is non-zero during stream priming?

Member StartStream
could have mme specific stream parameters to allow the user to set the callback thread priorities

Member StartStream
FIXME: implement recovery as best we can This should involve rolling back to a state as-if this function had never been called

Member StopStream
REVIEW: the error checking in this function needs review. the basic idea is to return from this function in a known state - for example there is no point avoiding calling waveInReset just because the thread times out.

File TrackPanel.cpp
Refactoring of the TrackPanel, possibly as described in Track Panel Refactor

Member SetLabelFont
Probably should move to 'Utils.cpp'.

Generated by  Doxygen 1.5.1   Back to index