*/
-#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>
void
AudioSource::touch_peakfile ()
{
- struct stat statbuf;
+ GStatBuf statbuf;
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);
g_utime (peakpath.c_str(), &tbuf);
}
int
AudioSource::initialize_peakfile (string audio_path)
{
- struct stat statbuf;
+ GStatBuf statbuf;
peakpath = peak_path (audio_path);
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);
}