I just came across a strange thing. Firstly, I'm trying to separate code pretty cleanly so for each section, I have header files and implementation. Nothing that wierd really.
Now recently I wanted to change the prototype of function from float to fixed point. So
void SE_SetFilterCut(float cut) ;
becomes
void SE_SetFilterCut(fixed cut) ;
And not forgetting to add the include for fixed.h.
I'm trying to compile and get the following error:
error: variable or field 'SE_SetFilterCut' declared void
which looked like fixed isn't known. I turn my head all sides to try to find why and can't. Then I got the idea of looking at the temp .cpp file generated by the environment and notices my header is included in the very beginning but is missing the
#include "fixed.h"
in that header.
It's already wierd but I don't panic and decide that if all files are merged into one, I can put the header in the main .pde. Which I do. And now it's even stranger:
error: variable or field 'SE_SetFilterRes' declared void
I go in the temp file and see:
void SE_SetFilterCut(fixed cut);
void SE_SetFilterMix(fixed mix);
void SE_SetAmp(fixed amp);
void SE_SetFilterRes(fixes res);
And I'm like 'duh, you did a stupid spelling mistake: fixes instead of fixed'
but nope, my source file says:
void SE_SetAmp(fixed amp) ;
void SE_SetFilterCut(fixed cut) ;
void SE_SetFilterRes(fixed res) ;
void SE_SetFilterMix(fixed mix) ;
Which is fine. Note that even the order of the function is garbled.
That made me think of looking at the function code (and not the header) and I notice the fixes (the mistake thus) is there.
It's kind of wierd. What is that auto-prototype generation thing ? Can I get rid of it and use straight "regular" c/c++ conversions ?
thanks
Marc