NB. if someday we want to switch back to upstream
SndfileHandle, we need to subclass wrap it.
(not sure what else is different, anyway)
SndfileHandle (const SndfileHandle &orig) ;
SndfileHandle & operator = (const SndfileHandle &rhs) ;
+ void close (void) ;
+
/* Mainly for debugging/testing. */
int refCount (void) const { return (p == NULL) ? 0 : p->ref ; }
SndfileHandle::SNDFILE_ref::~SNDFILE_ref (void)
{ if (sf != NULL) { sf_close (sf) ; } }
+
+void
+SndfileHandle::close (void)
+{
+ if (p != NULL && --p->ref == 0)
+ {
+ delete p ;
+ p = NULL;
+ }
+}
+
+
inline
SndfileHandle::SndfileHandle (const char *path, int mode, int fmt, int chans, int srate)
: p (NULL)