, _file_is_new (!origin.empty()) // if origin is left unspecified (empty string) then file must exist
, _channel (0)
, _origin (origin)
+ , _gain (1.f)
{
set_within_session_from_path (path);
}
: Source (session, node)
, _file_is_new (false)
, _channel (0)
+ , _gain (1.f)
{
/* this setting of _path is temporary - we expect derived classes
to call ::init() which will actually locate the file
int
FileSource::set_state (const XMLNode& node, int /*version*/)
{
- XMLProperty const * prop;
-
- if ((prop = node.property (X_("channel"))) != 0) {
- _channel = atoi (prop->value());
- } else {
+ if (!node.get_property (X_("channel"), _channel)) {
_channel = 0;
}
- if ((prop = node.property (X_("origin"))) != 0) {
- _origin = prop->value();
+ node.get_property (X_("origin"), _origin);
+
+ if (!node.get_property (X_("gain"), _gain)) {
+ _gain = 1.f;
}
return 0;
if (::g_rename (_path.c_str(), newpath.c_str()) != 0) {
PBD::error << string_compose (
_("cannot rename file source from %1 to %2 (%3)"),
- _path, newpath, strerror (errno)) << endmsg;
+ _path, newpath, g_strerror (errno)) << endmsg;
return -1;
}
if (cnt > 1) {
error << string_compose (
- _("FileSource: \"%1\" is ambigous when searching\n\t"), pathstr) << endmsg;
+ _("FileSource: \"%1\" is ambiguous when searching\n\t"), pathstr) << endmsg;
goto out;
} else if (cnt == 0) {
if (must_exist) {
error << string_compose(
_("Filesource: cannot find required file (%1): %2"),
- path, strerror (errno)) << endmsg;
+ path, g_strerror (errno)) << endmsg;
goto out;
}
if (errno != ENOENT) {
error << string_compose(
_("Filesource: cannot check for existing file (%1): %2"),
- path, strerror (errno)) << endmsg;
+ path, g_strerror (errno)) << endmsg;
goto out;
}
#endif
}
}
+
+void
+FileSource::replace_file (const std::string& newpath)
+{
+ close ();
+ _path = newpath;
+ _name = Glib::path_get_basename (newpath);
+}
+
void
FileSource::inc_use_count ()
{
if (Glib::file_test (oldpath.c_str(), Glib::FILE_TEST_EXISTS)) {
/* rename only needed if file exists on disk */
if (::g_rename (oldpath.c_str(), newpath.c_str()) != 0) {
- error << string_compose (_("cannot rename file %1 to %2 (%3)"), oldpath, newpath, strerror(errno)) << endmsg;
+ error << string_compose (_("cannot rename file %1 to %2 (%3)"), oldpath, newpath, g_strerror(errno)) << endmsg;
return -1;
}
}