clean up that godawful ugly latency GUI in plugin UIs
[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 nframes_t signal_latency() const = 0;
14         nframes_t user_latency () const { return _user_latency; }
15
16         nframes_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 (nframes_t val) { _own_latency = val; }
25         virtual void set_user_latency (nframes_t val) { _user_latency = val; }
26
27   protected:
28         nframes_t           _own_latency;
29         nframes_t           _user_latency;
30 };
31
32 }
33
34 #endif /* __ardour_latent_h__*/