comparison Source/Mappings/KeyDivision/TouchkeyKeyDivisionMapping.cpp @ 46:78b9808a2c65

New features in release angle mapping, plus bugfixes on Linux (thanks Martin).
author Andrew McPherson <andrewm@eecs.qmul.ac.uk>
date Wed, 24 Sep 2014 00:29:18 +0100
parents 3580ffe87dc8
children 003236a1e29b
comparison
equal deleted inserted replaced
45:518027b4a3eb 46:78b9808a2c65
27 27
28 #define DEBUG_KEY_DIVISION_MAPPING 28 #define DEBUG_KEY_DIVISION_MAPPING
29 29
30 const int TouchkeyKeyDivisionMapping::kDefaultNumberOfSegments = 2; 30 const int TouchkeyKeyDivisionMapping::kDefaultNumberOfSegments = 2;
31 const timestamp_diff_type TouchkeyKeyDivisionMapping::kDefaultDetectionTimeout = milliseconds_to_timestamp(25.0); 31 const timestamp_diff_type TouchkeyKeyDivisionMapping::kDefaultDetectionTimeout = milliseconds_to_timestamp(25.0);
32 const int TouchkeyKeyDivisionMapping::kDefaultDetectionParameter = kDetectionParameterYPosition; 32 const int TouchkeyKeyDivisionMapping::kDefaultDetectionParameter = kDetectionParameterYPositionAndNumberOfTouches;
33 const int TouchkeyKeyDivisionMapping::kDefaultRetriggerNumFrames = 2; 33 const int TouchkeyKeyDivisionMapping::kDefaultRetriggerNumFrames = 2;
34 34
35 // Main constructor takes references/pointers from objects which keep track 35 // Main constructor takes references/pointers from objects which keep track
36 // of touch location, continuous key position and the state detected from that 36 // of touch location, continuous key position and the state detected from that
37 // position. The PianoKeyboard object is strictly required as it gives access to 37 // position. The PianoKeyboard object is strictly required as it gives access to
39 // contain only one of continuous key position or touch sensitivity 39 // contain only one of continuous key position or touch sensitivity
40 TouchkeyKeyDivisionMapping::TouchkeyKeyDivisionMapping(PianoKeyboard &keyboard, MappingFactory *factory, int noteNumber, Node<KeyTouchFrame>* touchBuffer, 40 TouchkeyKeyDivisionMapping::TouchkeyKeyDivisionMapping(PianoKeyboard &keyboard, MappingFactory *factory, int noteNumber, Node<KeyTouchFrame>* touchBuffer,
41 Node<key_position>* positionBuffer, KeyPositionTracker* positionTracker) 41 Node<key_position>* positionBuffer, KeyPositionTracker* positionTracker)
42 : TouchkeyBaseMapping(keyboard, factory, noteNumber, touchBuffer, positionBuffer, positionTracker), 42 : TouchkeyBaseMapping(keyboard, factory, noteNumber, touchBuffer, positionBuffer, positionTracker),
43 numberOfSegments_(kDefaultNumberOfSegments), candidateSegment_(-1), detectedSegment_(-1), defaultSegment_(0), 43 numberOfSegments_(kDefaultNumberOfSegments), candidateSegment_(-1), detectedSegment_(-1), defaultSegment_(0),
44 detectionParameter_(kDefaultDetectionParameter), retriggerable_(false), retriggerNumFrames_(kDefaultRetriggerNumFrames), 44 detectionParameter_(kDefaultDetectionParameter), retriggerable_(true), retriggerNumFrames_(kDefaultRetriggerNumFrames),
45 retriggerKeepsVelocity_(true), 45 retriggerKeepsVelocity_(true),
46 midiNoteOnTimestamp_(missing_value<timestamp_type>::missing()), timeout_(kDefaultDetectionTimeout), 46 midiNoteOnTimestamp_(missing_value<timestamp_type>::missing()), timeout_(kDefaultDetectionTimeout),
47 lastNumActiveTouches_(-1) 47 lastNumActiveTouches_(-1)
48 { 48 {
49 } 49 }