/*
- Copyright (C) 2009 Paul Davis
+ Copyright (C) 2009 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
+#include "pbd/enumwriter.h"
+
#include "ardour/mute_master.h"
#include "ardour/rc_configuration.h"
/* convenience wrapper around AutomationControl method */
if (yn) {
- set_value (1.0f);
+ set_value ((float) 0xffff);
} else {
set_value (0.0f);
}
void
MuteMaster::set_value (float f)
{
- mute_at ((MutePoint) ((int) rint (f)));
+ MutePoint old = _mute_point;
+ _mute_point = (MutePoint) (rint (f));
+ if (old != _mute_point) {
+ MutePointChanged (); // EMIT SIGNAL
+ }
}
float
}
int
-MuteMaster::set_state (const XMLNode& node)
+MuteMaster::set_state (const XMLNode& node, int /*version*/)
{
+ const XMLProperty* prop;
+
+ if ((prop = node.property ("mute-point")) != 0) {
+ _mute_point = (MutePoint) string_2_enum (prop->value(), _mute_point);
+ }
+
return 0;
}
XMLNode&
MuteMaster::get_state()
{
- return *(new XMLNode (X_("MuteMaster")));
+ XMLNode* node = new XMLNode (X_("MuteMaster"));
+ node->add_property ("mute-point", enum_2_string (_mute_point));
+ return *node;
}