@@ -43,7 +43,8 @@ public: | |||||
lightPadBlock, | lightPadBlock, | ||||
liveBlock, | liveBlock, | ||||
loopBlock, | loopBlock, | ||||
developerControlBlock | |||||
developerControlBlock, | |||||
seaboardBlock // on-screen seaboard view | |||||
}; | }; | ||||
/** The Block class is reference-counted, so always use a Block::Ptr when | /** The Block class is reference-counted, so always use a Block::Ptr when | ||||
@@ -96,6 +96,10 @@ public: | |||||
/** Forces a touch-off message for all active touches. */ | /** Forces a touch-off message for all active touches. */ | ||||
virtual void cancelAllActiveTouches() noexcept = 0; | virtual void cancelAllActiveTouches() noexcept = 0; | ||||
/** For the on-screen seaboard view, this will return the number of keys. | |||||
For other types of touch-surface, it will return 0. */ | |||||
virtual int getNumberOfKeywaves() const = 0; | |||||
//============================================================================== | //============================================================================== | ||||
/** Receives callbacks when a touch moves or changes pressure. */ | /** Receives callbacks when a touch moves or changes pressure. */ | ||||
struct Listener | struct Listener | ||||
@@ -1416,6 +1416,11 @@ struct PhysicalTopologySource::Internal | |||||
det->activeTouchSurfaces.removeFirstMatchingValue (this); | det->activeTouchSurfaces.removeFirstMatchingValue (this); | ||||
} | } | ||||
int getNumberOfKeywaves() const noexcept override | |||||
{ | |||||
return blockImpl.modelData.numKeywaves; | |||||
} | |||||
void broadcastTouchChange (const TouchSurface::Touch& touchEvent) | void broadcastTouchChange (const TouchSurface::Touch& touchEvent) | ||||
{ | { | ||||
auto& status = touches.getValue (touchEvent); | auto& status = touches.getValue (touchEvent); | ||||