andrewm@0: /*
andrewm@0: TouchKeys: multi-touch musical keyboard control software
andrewm@0: Copyright (c) 2013 Andrew McPherson
andrewm@0:
andrewm@0: This program is free software: you can redistribute it and/or modify
andrewm@0: it under the terms of the GNU General Public License as published by
andrewm@0: the Free Software Foundation, either version 3 of the License, or
andrewm@0: (at your option) any later version.
andrewm@0:
andrewm@0: This program is distributed in the hope that it will be useful,
andrewm@0: but WITHOUT ANY WARRANTY; without even the implied warranty of
andrewm@0: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
andrewm@0: GNU General Public License for more details.
andrewm@0:
andrewm@0: You should have received a copy of the GNU General Public License
andrewm@0: along with this program. If not, see .
andrewm@0:
andrewm@0: =====================================================================
andrewm@0:
andrewm@0: MappingScheduler.h: implements a thread in which mapping actions are
andrewm@0: performed. Each Mapping object implements a triggerReceived() method
andrewm@0: which is called by the hardware I/O thread. This method should do a
andrewm@0: minimal amount of work but pass the real work off to the performMapping()
andrewm@0: method which is called by the MappingScheduler thread. The scheduler
andrewm@0: also allows mapping calls to be performed in the absence of received data,
andrewm@0: for example to cause a parameter to ramp down over time if no touch data
andrewm@0: is received.
andrewm@0: */
andrewm@0:
andrewm@0: #ifndef __TouchKeys__MappingScheduler__
andrewm@0: #define __TouchKeys__MappingScheduler__
andrewm@0:
andrewm@11: #undef DEBUG_MAPPING_SCHEDULER_STATISTICS
andrewm@11:
andrewm@0: #include
andrewm@0: #include