Hi Jerome, > todo list(not good order) Jerome said: > - Adding good icon for Patchbay Philippe said: > According to nm --demangle midi_server, it come > as small (16x16) and big size (32x32), but not as > resource unfortunatly... Don't bother with the icons for now. Ultimately, I want to add these to the midi_server's resource file. However, I don't want to use a .rsrc file for the resources, but an .rdef file. I am currently writing a resource compiler that will take these .rdef files and turn them into .rsrc files. So until that is finished, don't worry about the icons. > - Automatic creation for all entry in /dev/midi/ I guess that the midi_server should recognize new devices being added and old ones being removed. So it needs to create/delete endpoints on-the-fly. Is that indeed possible? Philippe, is that what the device_watcher thing is for? > - Not just getting data from hardware > but sending it to connected endpoint Please note that until I finish milestone 2, endpoints don't send and receive MIDI events yet. So you can send data from the hardware to the endpoint, and from the endpoint to the hardware, but the endpoints don't do anything with it yet. I estimate that it will take me at least 4 weeks before I finish milestone 2, though (maybe more). > - Checking error > - correcting bug > - any other idea... I agree with Philippe on the naming issue: please call the classes MidiPortConsumer and MidiPortProducer. Also, do drivers have a way to report their latency? If so, you need to snooze_until(time - latency) in MidiPortConsumer::Data(). I noticed you use kill_thread() in ~MidiDriversProducer. Usually it is not a good idea to kill threads. It is better to let the thread function die off naturally, but maybe that isn't possible in this case. Maybe you can look at that. Other than that, it looks fine to me. Keep up the good work! (Maybe you can finish milestone 3 even before I finish milestone 2 ;-) Matthijs