#include <set>
#include <map>
#include <boost/shared_ptr.hpp>
-#include <glibmm/thread.h>
-#include <evoral/types.hpp>
-#include <evoral/Parameter.hpp>
+#include "evoral/types.hpp"
+#include "evoral/Parameter.hpp"
namespace Evoral {
Control(const Parameter& parameter, boost::shared_ptr<ControlList>);
virtual ~Control() {}
- virtual void set_float(float val, bool to_list=false, nframes_t frame=0);
- virtual float get_float(bool from_list=false, nframes_t frame=0) const;
- virtual float user_float() const;
+ virtual void set_float(float val, bool to_list=false, FrameTime frame=0);
+ virtual float get_float(bool from_list=false, FrameTime frame=0) const;
+
+
+ /** Get the latest user-set value
+ * (which may not equal get_value() when automation is playing back).
+ *
+ * Automation write/touch works by periodically sampling this value
+ * and adding it to the ControlList.
+ */
+ float user_float() const { return _user_value; }
void set_list(boost::shared_ptr<ControlList>);