jamoma/JamomaCore

Modular Extension Clean-up

tap opened this issue · 1 comments

tap commented

The Modular extensions are a mess!

  • Projects include cpp files from outside of the project folders
  • This code is included in other extensions and also the library
  • This code could (and should) have one definitive implementation (the library) and then simply be exported
  • These extensions don't link to Modular
  • Many of these files include multiple header guards -- e.g. Protocol.h -- was this two files that got merged and the person doing it was lazy or are we relying on the preprocessor define to turn off part of the file instead of the whole file or ???
  • These source define subclasses of TTObjectBase but make the constructors public which is "illegal"
  • Skeptical about the extremely widespread macro usage
  • Etc.

Further down the road (probably needs another ticket) there are design problems with some of these classes. For example, the schedulers are implemented in extensions that can be dynamically loaded but the list of schedulers is hard coded in the library??? Maybe I'm missing something, but that doesn't really make any sense.

I'll at least try to fix the weird build configuration problems. The design problems may wait...

tap commented

Adding to this frustration is that changing the code is nerve-wracking due to the total lack of unit tests in Modular. This is also a huge problem.