summaryrefslogtreecommitdiff
path: root/orkbasecxx/TapeProcessor.h
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-07-05 01:59:32 +0000
committerHenri Herscher <henri@oreka.org>2006-07-05 01:59:32 +0000
commitc27745d1b387606b7e1a5869b7fe4b566410720d (patch)
tree978a3e5176ff6db2f6b0856d8031e662b68ff03d /orkbasecxx/TapeProcessor.h
parent0d758fbcf5a581ca5909245cef65c00652219283 (diff)
* Tape processor interface becomes usable and used
* Reporting and BatchProcessing become "standard" tape processors * Imediate processing kicks off the tape processor chain * Object now references Serializer * ConfigManager singleton not an ACE singleton anymore because ACE singletons are not unique across DLL boundaries. git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@296 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkbasecxx/TapeProcessor.h')
-rw-r--r--orkbasecxx/TapeProcessor.h39
1 files changed, 35 insertions, 4 deletions
diff --git a/orkbasecxx/TapeProcessor.h b/orkbasecxx/TapeProcessor.h
index 2b60fc8..a177480 100644
--- a/orkbasecxx/TapeProcessor.h
+++ b/orkbasecxx/TapeProcessor.h
@@ -16,22 +16,53 @@
//#include <list>
//#include "ace/Singleton.h"
#include "AudioCapture.h"
+#include "AudioTape.h"
#include "dll.h"
#include "OrkBase.h"
-class TapeProcessor;
+
+class DLL_IMPORT_EXPORT_ORKBASE TapeProcessor;
typedef boost::shared_ptr<TapeProcessor> TapeProcessorRef;
/** TapeProcessor Interface
- * a filter is a black box that takes media chunks as an input and produces media chunks as an output
- * it can be translating between two encodings (codec) or just processing the signal
+ * a Tape Processor is a black box that takes Audio Tapes as an input and
+ * processes them.
*/
class DLL_IMPORT_EXPORT_ORKBASE TapeProcessor
{
public:
+ TapeProcessor();
+
+ virtual CStdString __CDECL__ GetName() = 0;
virtual TapeProcessorRef __CDECL__ Instanciate() = 0;
- virtual void __CDECL__ AddAudioTape(AudioTapeRef audioTapeRef) = 0;
+ virtual void __CDECL__ AddAudioTape(AudioTapeRef&) = 0;
+
+ void SetNextProcessor(TapeProcessorRef& nextProcessor);
+ void RunNextProcessor(AudioTapeRef&);
+
+protected:
+ TapeProcessorRef m_nextProcessor;
+};
+
+//===================================================================
+/** TapeProcessor Registry
+*/
+class DLL_IMPORT_EXPORT_ORKBASE TapeProcessorRegistry
+{
+public:
+ static TapeProcessorRegistry* instance();
+ void RegisterTapeProcessor(TapeProcessorRef& TapeProcessor);
+ TapeProcessorRef GetNewTapeProcessor(CStdString& TapeProcessorName);
+
+ void RunProcessingChain(AudioTapeRef&);
+ void CreateProcessingChain();
+private:
+ TapeProcessorRegistry();
+ static TapeProcessorRegistry* m_singleton;
+
+ std::list<TapeProcessorRef> m_TapeProcessors;
+ TapeProcessorRef m_firstTapeProcessor;
};
#endif \ No newline at end of file