Using PinChangeInt in multiple libraries

It is indeed a great page! Thanks.

Back to the original thread - I don't want to implement lots of interrupts, and I understand the limitations of AVR, but....

I would like to be able to encapsulate low-level stuff within a library, and hide the nuts and bolts from the user. To this end, I would like to be able to attach and detach interrupts within library functions. But as I have to include PinChangeInt.h, which includes the implementation, it seems I can only do this for one library. If I want to attach another pin change interrupt within another library, I can't.

The alternative seems to be to only include PinChangeInt.h in the top sketch, and make all calls to attachInterrupt() and detachInterrupt() in the top sketch. Which seems messy.

Also, in my library code, it seems I have to include desired header files by relative path:

#include "..\Timer1\TimerOne.h"
#include "..\PinChangeInt\PinChangeInt.h"

instead of the usual

#include <TimerOne.h>

at the top level sketch.