summaryrefslogtreecommitdiffstats
path: root/mpeglib/example/tplay/tplay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mpeglib/example/tplay/tplay.cpp')
-rw-r--r--mpeglib/example/tplay/tplay.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/mpeglib/example/tplay/tplay.cpp b/mpeglib/example/tplay/tplay.cpp
new file mode 100644
index 00000000..324c6c17
--- /dev/null
+++ b/mpeglib/example/tplay/tplay.cpp
@@ -0,0 +1,66 @@
+/*
+
+ Example how the plugin interface works.(LINUX Open Sound System only!)
+
+
+
+
+
+ */
+
+
+#include "../../lib/decoder/tplayPlugin.h"
+#include "../../lib/decoder/nukePlugin.h"
+
+
+#include <iostream>
+
+using namespace std;
+
+int main(int argc, char** argv) {
+
+
+ if (argc <= 1) {
+ printf("Usage:\n\n");
+ printf("%s filename\n\n",argv[0]);
+ exit(0);
+ }
+
+ //
+ // The order is important !!!!
+ // 1. construct
+ // 2. set Output
+ // 3. open input
+ // 4. set input
+ //
+ // you cannot set the input _before_ the output
+ // in fact you can, but this gives you a segfault!
+
+ DecoderPlugin* plugin=new TplayPlugin();
+ //DecoderPlugin* plugin=new NukePlugin();
+ OutputStream* out=OutPlugin::createOutputStream(_OUTPUT_LOCAL,true);
+ InputStream* in=InputPlugin::createInputStream(argv[1],true);
+
+ // The plugin does not do "open"
+ in->open(argv[1]);
+
+ // watch the order!
+ plugin->setOutputPlugin(out);
+ plugin->setInputPlugin(in);
+
+
+
+ plugin->play();
+
+ while(plugin->getStreamState() != _STREAM_STATE_EOF) {
+ TimeWrapper::sleep(1);
+ }
+ cout << "plugin eof"<<endl;
+ plugin->close();
+
+ delete plugin;
+ delete in;
+ delete out;
+ return(0);
+}
+