Tim,
The preprocessor check you are using in LCDBitmap.h for trying to detect
the missing new liquidCrystal library is not using valid preprocessor syntax.
#ifdef does not support logical operations, so it isn't working the way you
intended it to work.
You will see the warning when using the 1.x IDE.
The sub device defines being checked seem to be for the purpose of including "LCD.h" but
the liquidCrystal.h in the new LiquidCrystal library already includes "LCD.h".
Since there is no need to include "LCD.h" again,
I would suggest avoiding the use of the sub device defines as it ties the bitmap library
to modifications and updates to the fm's library. i.e. if a new sub device is added
or the sub device define changes, this library breaks.
There are a couple of ways to handle it.
1) Do nothing instead
2) error off if neither the stock or fm's library is being used.
It depends on if you want to give an error if the user is using some other LCD library
other than stock LiquidCrystal or fm's library.
I would lean towards option 2 as it offers a meaningful error vs just breaking with
nothing but strange errors if they are using some other 3rd party LCD library.
It turns out that even including <LiquidCrystal.h> is problematic because when using another
3rd party LCD library (LiquidCrystalFast for example) the include path will not point to a directory that contains this header file
as the alternate library does not have it/use it.
Luckily the compiler doesn't treat a missing include file as a fatal error and
will generate a few more errors beyond this condition.
So while very ugly and will generate a few strange errors/warnings before the useful error message,
it is still possible to give the user the error to indicate that the bitmap library only works
with the new LiquidCrystal library.
Here is an alternative that works:
#ifndef LiquidCrystal_h // Using some library other than stock LiquidCrystal?
#ifndef _LCD_H_ // using some other library than fm's new LiquidCrystal?
#error You must install New LiquidCrystal library to work with non-4bit projects: http:/bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
#endif
#endif
This will work with the stock LiquidCrystal library or fm's library and if some other 3rd party
library is used, reports the error.
Just a minor nit, the declaration of "sample" in the examples creates a warning.
It needs to be declared as an unsigned int to eliminate that.
--- bill