Remove all use of nframes_t.
[ardour.git] / libs / ardour / ardour / latent.h
1 #ifndef __ardour_latent_h__
2 #define __ardour_latent_h__
3
4 #include "ardour/types.h"
5
6 namespace ARDOUR {
7
8 class Latent {
9   public:
10         Latent() : _own_latency (0), _user_latency (0) {}
11         virtual ~Latent() {}
12
13         virtual framecnt_t signal_latency() const = 0;
14         framecnt_t user_latency () const { return _user_latency; }
15
16         framecnt_t effective_latency() const {
17                 if (_user_latency) {
18                         return _user_latency;
19                 } else {
20                         return signal_latency ();
21                 }
22         }
23
24         virtual void set_latency_delay (framecnt_t val) { _own_latency = val; }
25         virtual void set_user_latency (framecnt_t val) { _user_latency = val; }
26
27   protected:
28         framecnt_t           _own_latency;
29         framecnt_t           _user_latency;
30 };
31
32 }
33
34 #endif /* __ardour_latent_h__*/