Marcin, you want to know some problems I see in Gammu+. Okay, I finally found some time to look at it:
- There is no design document, where can developer find how the code is organised and what is supposed to be API.
- There is no definition of external API. Everything is mixed together in simmilar way as in Gammu.
- I don't see reasong for passing pointers (and especially double pointers (eg. DebugInfo) instead of C++ references.
- Why not using widestring constants instead of converting all using some function?
- Why there are reimplemented lists in backup? All those GSM_Backup_*Entry IMHO can be replaced by list<GSM_*Entry>.
- There is too much malloc used (you should need it very rarely in C++).
- Too much reimplementation of standard C library (eg. wcscasecmp vs. UnicodeCaseCmp).
Okay, I'm tired of reading that code. There is no documentation, the code follows no design, etc. I know Gammu code, so I can a bit understand Gammu+ code, but I expected some more open project, with at least some documentation. If you want to attract developers, you need to document your code.
Gammu+ looks to me like rewrite of C code into C++ while fixing some of design flaws of the old one, but introducing new ones. I know that nobody is perfect, but when starting new project, you should have spent some time on designing it's internals, writing them down and maybe receive some comments from others.
I know nobody is perfect, I also made several projects with wrong design before (well, Wammu is one of the examples).
PS: I don't say that Gammu+ has no future. I only say that it is ulikely to attract more developers as lacks documentation in same way Gammu does. I tried to introduce some documentation it Gammu, but I alone can not document new code…