#include <stdint.h>
#include "ardour/chan_count.h"
+#include "ardour/types_convert.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
static const char* state_node_name = "Channels";
XMLNodeConstIterator iter = node.children().begin();
for ( ; iter != node.children().end(); ++iter) {
if ((*iter)->name() == X_(state_node_name)) {
- const string& type_str = (*iter)->property("type")->value();
- const string& count_str = (*iter)->property("count")->value();
- set(DataType(type_str), atol(count_str.c_str()));
+ DataType type(DataType::NIL);
+ uint32_t count;
+ (*iter)->get_property("type", type);
+ (*iter)->get_property("count", count);
+ set(type, count);
}
}
}
-ChanCount
-infinity_factory()
-{
- ChanCount ret;
-
- for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
- ret.set(*t, UINT32_MAX);
- }
-
- return ret;
-}
-
XMLNode*
ChanCount::state(const std::string& name) const
{
uint32_t count = get(*t);
if (count > 0) {
XMLNode* n = new XMLNode(X_(state_node_name));
- n->add_property("type", (*t).to_string());
- n->add_property("count", count);
+ n->set_property("type", *t);
+ n->set_property("count", count);
node->add_child_nocopy(*n);
}
}
}
// Statics
-const ChanCount ChanCount::INFINITE = infinity_factory();
const ChanCount ChanCount::ZERO = ChanCount();
} // namespace ARDOUR