Bela
Real-time, ultra-low-latency audio and sensor processing system for BeagleBone Black
Loading...
Searching...
No Matches
PulseIn.h
1#pragma once
2
3#include <Bela.h>
4#include <vector>
5
12class PulseIn {
13private:
14 std::vector<int> _array;
15 int _pulseOnState;
16 int _digitalInput;
17 bool _pulseIsOn;
18 uint64_t _pulseStart;
19 uint64_t _lastContext;
20public:
21 PulseIn(){
22 _digitalInput = -1;
23 };
24
34 PulseIn(BelaContext* context, unsigned int digitalInput, int direction=1){
35 setup(context, digitalInput, direction);
36 };
37
49 void setup(BelaContext* context, unsigned int digitalInput, int direction=1);
50
61 void check(BelaContext* context);
62
70 int hasPulsed(BelaContext* context, unsigned int frame){//let's leave this in PulseIn.h to allow the compiler to optimize out the call.
71 if(_lastContext != context->audioFramesElapsed){ // check for pulses in the whole context and cache the result
72 check(context);
73 }
74 return _array[frame];
75 }
76 void cleanup();
77 virtual ~PulseIn();
78};
Main Bela public API.
A class to measure the duration of a pulse on a digital pin.
Definition PulseIn.h:12
void setup(BelaContext *context, unsigned int digitalInput, int direction=1)
Definition PulseIn.cpp:3
PulseIn(BelaContext *context, unsigned int digitalInput, int direction=1)
Definition PulseIn.h:34
int hasPulsed(BelaContext *context, unsigned int frame)
Definition PulseIn.h:70
void check(BelaContext *context)
Definition PulseIn.cpp:12
void cleanup(BelaContext *context, void *userData)
User-defined cleanup function which runs when the program finishes.
Definition render.cpp:96
Structure holding audio and sensor settings and pointers to I/O data buffers.
Definition Bela.h:231
const uint64_t audioFramesElapsed
Number of elapsed audio frames since the start of rendering.
Definition Bela.h:379