diff options
author | Carl Hetherington <carl@carlh.net> | 2012-06-12 16:41:29 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2012-06-12 16:41:29 +0000 |
commit | 92432f3e80d621816ac0b05484eb59fb9348ac34 (patch) | |
tree | 23c86f4359810044f0f5e82ca6277f6fa47eb14c /gtk2_ardour/ardour_ui.cc | |
parent | d1d08e391059449977e7de1e858851ffd1afadc6 (diff) |
Handle failure of statfs to return available disc space on Samba shares mounted via GVFS, reporting available space as unknown in this case (#4657).
git-svn-id: svn://localhost/ardour2/branches/3.0@12674 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index c210926b55..0a4a4782d2 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -1050,16 +1050,21 @@ ARDOUR_UI::update_disk_space() return; } - framecnt_t frames = _session->available_capture_duration(); + boost::optional<framecnt_t> opt_frames = _session->available_capture_duration(); char buf[64]; framecnt_t fr = _session->frame_rate(); - if (frames == max_framecnt) { + if (!opt_frames) { + /* Available space is unknown */ + snprintf (buf, sizeof (buf), "%s", _("Disk: <span foreground=\"green\">Unknown</span>")); + } else if (opt_frames.get_value_or (0) == max_framecnt) { snprintf (buf, sizeof (buf), "%s", _("Disk: <span foreground=\"green\">24hrs+</span>")); } else { rec_enabled_streams = 0; _session->foreach_route (this, &ARDOUR_UI::count_recenabled_streams); + framecnt_t frames = opt_frames.get_value_or (0); + if (rec_enabled_streams) { frames /= rec_enabled_streams; } |