From 826fdfe6c9d2d2f514e8da3c9cb76ef98187d810 Mon Sep 17 00:00:00 2001 From: hogliux Date: Mon, 7 Nov 2016 15:12:42 +0000 Subject: [PATCH] Added callback to get number of keywaves of an on-screen seaboard view --- modules/juce_blocks_basics/blocks/juce_Block.h | 3 ++- modules/juce_blocks_basics/blocks/juce_TouchSurface.h | 4 ++++ .../topology/juce_PhysicalTopologySource.cpp | 5 +++++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/juce_blocks_basics/blocks/juce_Block.h b/modules/juce_blocks_basics/blocks/juce_Block.h index 0dedfe48b1..187cf6c1b2 100644 --- a/modules/juce_blocks_basics/blocks/juce_Block.h +++ b/modules/juce_blocks_basics/blocks/juce_Block.h @@ -43,7 +43,8 @@ public: lightPadBlock, liveBlock, loopBlock, - developerControlBlock + developerControlBlock, + seaboardBlock // on-screen seaboard view }; /** The Block class is reference-counted, so always use a Block::Ptr when diff --git a/modules/juce_blocks_basics/blocks/juce_TouchSurface.h b/modules/juce_blocks_basics/blocks/juce_TouchSurface.h index 62c6fadcdb..ebb04416c1 100644 --- a/modules/juce_blocks_basics/blocks/juce_TouchSurface.h +++ b/modules/juce_blocks_basics/blocks/juce_TouchSurface.h @@ -96,6 +96,10 @@ public: /** Forces a touch-off message for all active touches. */ 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. */ struct Listener diff --git a/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp b/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp index 0d9e337076..c9ae57de3a 100644 --- a/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp +++ b/modules/juce_blocks_basics/topology/juce_PhysicalTopologySource.cpp @@ -1416,6 +1416,11 @@ struct PhysicalTopologySource::Internal det->activeTouchSurfaces.removeFirstMatchingValue (this); } + int getNumberOfKeywaves() const noexcept override + { + return blockImpl.modelData.numKeywaves; + } + void broadcastTouchChange (const TouchSurface::Touch& touchEvent) { auto& status = touches.getValue (touchEvent);