jMax TODO list

Small tasks

ALSA

Help patches for SGI audio port

Graphix

Client, protocol and devices

Create a udpstream derived from bytestream

Make one single protocol (instead of 2 now because of symbols, cached symbols & co): integrate the symbol cache in the proto_(decode|encode) structure, using a hash table for the cache, remove the cache info in the symbol structure, remove the command as first element (remove the command or put it in an integer value). Use proto_(decode|encode) in "client device" instead of specific code

After this done, do a typedef const char *fts_symbol_t and remove fts_symbol_name()

Remove also devices.c (all logical devices bazar)

Replace udpsend/udpreceive by the object used in protocol

Multi-thread

Implement a message fifo. The message arguments should be in a separate buffer (allocator?) so that one message arguments are contiguous and cannot overlap.

Reimplement the udp, serial, midi using threads and not select()

Misc

Use same mechanism for fts_midiport_class_init and fts_bytestream_class_init as in fts_audioport_class_init

Do a DSP profiler using a thread and an object set for viewing results (sorted by objects, classes and patches)

Fix adc~ with 0 channels

Do GNOME and KDE apps

Do an async file reader (based on methods callback)

Do a threaded Direct-to-Disk, using fifos and inter-thread messages

Portability

Put fts_soundfile_t in a separate package, that can be loaded dynamicaly (as audio and MIDI ports).
Question: do we want to support several sound file access libraries simultaneously or not ?
This is related to autoconf subject.

Do a very simple implementation of audio file access, working only for .wav for instance.

Configuration, packages

Remove Tcl configuration commands and use a patch for audio and midi configuration

Remove ucs

Add something to "protect" variables so that a patch cannot redefine DefaultAudio or SamplingRate

Replace Tcl definition of packages and projects by patches (objects or messages)

Add an "import" directive in a patch (template) that defines the packages imported by a patch, and create classes, templates, abstractions in packages.

Compilation issues

Move Makefiles to automake and autoconf

Compile to libfts.so and then link the executable against it

Create the fts binary in jmax/fts/bin/fts instead of $(ARCH)/$(MODE). This way, you no longer have to specify jmaxHostType to specify which executable to start.
Note: this is related to packages because it is still usefull to have ARCH in package's library path (to be able to share installations). The ARCH can be known from inside fts (defined at compile time).

Objects development API

A lot of things to do

From Forum TODO

check for editor on-line help

Make a rpm from tutorials

Packaging: distribute JRE (test running with JRE first) ?

Configuration script for installation (see contributions from Christian Klippel)

User interface

Unique menu for all editors (fits better in Mac OS X l&F):

Errors:

Move graphic objects to packages:

Object set

Finish integration of variables (sampread/write,...)

Table float

Control scroll

Documentation

Update compiling

Make automaticaly a list of packages and classes

doxygenate all .h