*/
-#include <sys/stat.h>
+#ifdef COMPILER_MSVC
+#include <sys/utime.h>
+#else
#include <unistd.h>
+#include <utime.h>
+#endif
+#include <sys/stat.h>
#include <fcntl.h>
#include <float.h>
-#include <utime.h>
#include <cerrno>
#include <ctime>
#include <cmath>
#include <algorithm>
#include <vector>
-#include <boost/scoped_ptr.hpp>
+#include <glib.h>
+#include <glib/gstdio.h>
+
#include <boost/scoped_array.hpp>
+#include <boost/scoped_ptr.hpp>
#include <glibmm/fileutils.h>
#include <glibmm/miscutils.h>
void
AudioSource::touch_peakfile ()
{
- struct stat statbuf;
+ GStatBuf statbuf;
- if (stat (peakpath.c_str(), &statbuf) != 0 || statbuf.st_size == 0) {
+ if (g_stat (peakpath.c_str(), &statbuf) != 0 || statbuf.st_size == 0) {
return;
}
struct utimbuf tbuf;
tbuf.actime = statbuf.st_atime;
- tbuf.modtime = time ((time_t) 0);
+ tbuf.modtime = time ((time_t*) 0);
- utime (peakpath.c_str(), &tbuf);
+ g_utime (peakpath.c_str(), &tbuf);
}
int
string oldpath = peakpath;
if (Glib::file_test (oldpath, Glib::FILE_TEST_EXISTS)) {
- if (rename (oldpath.c_str(), newpath.c_str()) != 0) {
+ if (g_rename (oldpath.c_str(), newpath.c_str()) != 0) {
error << string_compose (_("cannot rename peakfile for %1 from %2 to %3 (%4)"), _name, oldpath, newpath, strerror (errno)) << endmsg;
return -1;
}
int
AudioSource::initialize_peakfile (string audio_path)
{
- struct stat statbuf;
+ GStatBuf statbuf;
peakpath = peak_path (audio_path);
peakpath = find_broken_peakfile (peakpath, audio_path);
}
- if (stat (peakpath.c_str(), &statbuf)) {
+ if (g_stat (peakpath.c_str(), &statbuf)) {
if (errno != ENOENT) {
/* it exists in the peaks dir, but there is some kind of error */
AudioSource::write (Sample *dst, framecnt_t cnt)
{
Glib::Threads::Mutex::Lock lm (_lock);
- /* any write makes the fill not removable */
+ /* any write makes the file not removable */
_flags = Flag (_flags & ~Removable);
return write_unlocked (dst, cnt);
}
/* fix for near-end-of-file conditions */
if (cnt > _length - start) {
- // cerr << "too close to end @ " << _length << " given " << start << " + " << cnt << endl;
+ // cerr << "too close to end @ " << _length << " given " << start << " + " << cnt << " (" << _length - start << ")" << endl;
cnt = _length - start;
framecnt_t old = npeaks;
npeaks = min ((framecnt_t) floor (cnt / samples_per_visual_peak), npeaks);
}
if (zero_fill) {
+ cerr << "Zero fill end of peaks (@ " << npeaks << " with " << zero_fill << endl;
memset (&peaks[npeaks], 0, sizeof (PeakData) * zero_fill);
}
out:
if (ret) {
DEBUG_TRACE (DEBUG::Peaks, string_compose("Could not write peak data, attempting to remove peakfile %1\n", peakpath));
- unlink (peakpath.c_str());
+ ::g_unlink (peakpath.c_str());
}
return ret;