summaryrefslogtreecommitdiff
path: root/muse2/muse/audioprefetch.h
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2010-10-13 19:34:22 +0000
committerRobert Jonsson <spamatica@gmail.com>2010-10-13 19:34:22 +0000
commit8a2c2824a59d7644e13bc52c9a0ecbd641f21f95 (patch)
tree064ad3f2bf8daab0ad27b128abd86a9bbdb1e496 /muse2/muse/audioprefetch.h
parenta27706d9629e8b592cca4659f865b70adef24e6d (diff)
new branch muse2, first checkin
Diffstat (limited to 'muse2/muse/audioprefetch.h')
-rw-r--r--muse2/muse/audioprefetch.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/muse2/muse/audioprefetch.h b/muse2/muse/audioprefetch.h
new file mode 100644
index 00000000..dda4d895
--- /dev/null
+++ b/muse2/muse/audioprefetch.h
@@ -0,0 +1,46 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: audioprefetch.h,v 1.3.2.2 2009/12/20 05:00:35 terminator356 Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __AUDIOPREFETCH_H__
+#define __AUDIOPREFETCH_H__
+
+#include "thread.h"
+
+//---------------------------------------------------------
+// AudioPrefetch
+//---------------------------------------------------------
+
+class AudioPrefetch : public Thread {
+ unsigned writePos;
+ unsigned seekPos; // remember last seek to optimize seeks
+
+ virtual void processMsg1(const void*);
+ //void prefetch();
+ void prefetch(bool doSeek);
+ void seek(unsigned pos);
+
+ volatile int seekCount;
+
+ public:
+ //AudioPrefetch(int prio, const char* name);
+ AudioPrefetch(const char* name);
+
+ ~AudioPrefetch();
+ //virtual void start();
+ virtual void start(int);
+
+ void msgTick();
+ void msgSeek(unsigned samplePos, bool force=false);
+
+ //volatile bool seekDone;
+ bool seekDone() const { return seekCount == 0; }
+ };
+
+extern AudioPrefetch* audioPrefetch;
+
+#endif