qtmobility/plugins/multimedia/directshow/player/directshowiosource.h
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 11 06b8e2af4411
--- a/qtmobility/plugins/multimedia/directshow/player/directshowiosource.h	Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobility/plugins/multimedia/directshow/player/directshowiosource.h	Mon May 03 13:18:40 2010 +0300
@@ -42,13 +42,12 @@
 #ifndef DIRECTSHOWIOSOURCE_H
 #define DIRECTSHOWIOSOURCE_H
 
+#include "directshowglobal.h"
 #include "directshowioreader.h"
 #include "directshowmediatype.h"
 #include "directshowmediatypelist.h"
 
-QT_BEGIN_NAMESPACE
-class QIODevice;
-QT_END_NAMESPACE
+#include <QtCore/qfile.h>
 
 class DirectShowIOSource
     : public DirectShowMediaTypeList
@@ -57,11 +56,12 @@
     , public IPin
 {
 public:
-    DirectShowIOSource(QIODevice *device, DirectShowEventLoop *loop);
+    DirectShowIOSource(DirectShowEventLoop *loop);
     ~DirectShowIOSource();
 
+    void setDevice(QIODevice *device);
     void setAllocator(IMemAllocator *allocator);
-    
+
     // IUnknown
     HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void **ppvObject);
     ULONG STDMETHODCALLTYPE AddRef();
@@ -123,6 +123,8 @@
 
     volatile LONG m_ref;
     FILTER_STATE m_state;
+    DirectShowIOReader *m_reader;
+    DirectShowEventLoop *m_loop;
     IFilterGraph *m_graph;
     IReferenceClock *m_clock;
     IMemAllocator *m_allocator;
@@ -131,8 +133,17 @@
     QString m_filterName;
     const QString m_pinId;
     QMutex m_mutex;
-    DirectShowIOReader m_reader;
+};
 
+class DirectShowRcSource : public DirectShowIOSource
+{
+public:
+    DirectShowRcSource(DirectShowEventLoop *loop);
+
+    bool open(const QUrl &url);
+
+private:
+    QFile m_file;
 };
 
 #endif