Bela
Real-time, ultra-low-latency audio and sensor processing system for BeagleBone Black
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
CentroidDetection.h
1 #pragma once
2 #include <stdint.h>
3 #include <vector>
4 #include <memory>
5 
7 {
8 public:
9  typedef float DATA_T;
10  CentroidDetection() {};
11  CentroidDetection(unsigned int numReadings, unsigned int maxNumCentroids, float sizeScale);
12  CentroidDetection(const std::vector<unsigned int>& order, unsigned int maxNumCentroids, float sizeScale);
13  int setup(unsigned int numReadings, unsigned int maxNumCentroids, float sizeScale);
14  int setup(const std::vector<unsigned int>& order, unsigned int maxNumCentroids, float sizeScale);
15  void process(const DATA_T* rawData);
16  void setSizeScale(float sizeScale);
17  void setMinimumTouchSize(DATA_T minSize);
18  void setNoiseThreshold(DATA_T threshold);
25  void setWrapAround(unsigned int n);
30  void setMultiplierBits(unsigned int n);
31  unsigned int getNumTouches() const;
32  DATA_T touchLocation(unsigned int touch_num) const;
33  DATA_T touchSize(unsigned int touch_num) const;
34  DATA_T compoundTouchLocation() const;
35  DATA_T compoundTouchSize() const;
36 private:
37  typedef uint16_t WORD;
38  class CalculateCentroids;
39  std::vector<DATA_T> centroids;
40  std::vector<DATA_T> sizes;
41  std::vector<WORD> centroidBuffer;
42  std::vector<WORD> sizeBuffer;
43  unsigned int maxNumCentroids;
44  std::vector<unsigned int> order;
45  unsigned int num_sensors;
46  std::vector<WORD> data;
47  float sizeScale;
48  float locationScale;
49  std::shared_ptr<CalculateCentroids> cc;
50  unsigned int num_touches;
51  DATA_T noiseThreshold;
52 };
Definition: CentroidDetection.cpp:5
Definition: CentroidDetection.h:6
void setWrapAround(unsigned int n)
Definition: CentroidDetection.cpp:64
void setMultiplierBits(unsigned int n)
Definition: CentroidDetection.cpp:69