## Todo DFCGen (GTK+)

The following todo's are associated with the GTK+ version of DFCGen (support
for other platforms has finished). Most enumerations are taken directly from
the source code, especially the DOXYGEN todo statements.

### User Interface

The following improvements shall ensure similiar GUI features as are
available in old Win3.x version.

- Function cairoPlot2d: Think
about transition to double coordinates in all functions
below cairoPlot2d. Additionally make axisX.start and
axisX.stop positions dependent of output precision.

- Function createAxisLabel:
Parametrize margin by precision.

- Function treeSelectionCallback:
Process double-clicks (see the tree-view tutorial on how to make this).

- Function responseWinCreate:
Restore size of drawing area from last session.

- Function filterResponseTimeNew:
Allow user break (may be it's difficult in GTK)!?

- Feature Predefined Filters:
Improve description (and translation) of predefined filters

### Filter Design

Improvements on algorithms currently implemented.

- Function linFirFilterGen:
Correct the lowpass design cutoff frequency (see Bessel lowpass) when
performing frequency transformations (depends on characteristic too,
significant on perfect lowpass).
- Function ftrHighpass: Handle odd
degree.

### Stability

- Function linFirFilterGen:
Implement semantic checks on bandwidth, center and cutoff frequency.

- Function stdIirFilterGen: Implement sematic checks on bandwidth,
center and cutoff frequency.
- Function linFirFilterGen:
Use fpsetround?
- File mathMisc.c: Implement a
generic math. error handler.
- Function ftrBandstop: Handle
GSL_POSINF for call to filterResponsePoly.

- Function plotPhase: Check phase response of linear FIR filters
and improve the graph layout.

### Maintainability

- Function mathPolyCoeffs2Roots:
Try to avoid mixing error codes from gsl_errno.h and errno.h.
- Function linFirDesignDlgApply:
Share code with IIR design dialog.

### Source Style/Comments

- Function genCosine2System: Give
formula.
- Function chebyT: Improve
function description by the help of LaTeX.
- Function timeResponseProcNext:
Describe algo used here.

### Optimization

- Function responseWidget:
Try to move some of these data into responsePlot.c.

### New Features

- New filter class ARBITRARY: Support of arbitrary frequency specification
by Parks-McClellan algorithm.
- Response Plot: Display coordinate when mouse moves over graph area.
- Command Line Interface (CLI): Implementation of command line
options