summaryrefslogtreecommitdiffstats
path: root/loader/dshow/DS_Filter.h
diff options
context:
space:
mode:
Diffstat (limited to 'loader/dshow/DS_Filter.h')
-rw-r--r--loader/dshow/DS_Filter.h31
1 files changed, 18 insertions, 13 deletions
diff --git a/loader/dshow/DS_Filter.h b/loader/dshow/DS_Filter.h
index 2f10849e2b..fd8166b11c 100644
--- a/loader/dshow/DS_Filter.h
+++ b/loader/dshow/DS_Filter.h
@@ -1,41 +1,46 @@
#ifndef DS_FILTER_H
#define DS_FILTER_H
-#include "interfaces.h"
#include "inputpin.h"
#include "outputpin.h"
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
/**
User will allocate and fill format structures, call Create(),
and then set up m_pAll.
**/
-struct DS_Filter
+typedef struct _DS_Filter DS_Filter;
+struct _DS_Filter
{
- DS_Filter();
- virtual ~DS_Filter();
- void Start();
- void Stop();
-
int m_iHandle;
IBaseFilter* m_pFilter;
IPin* m_pInputPin;
IPin* m_pOutputPin;
-
+
CBaseFilter* m_pSrcFilter;
CBaseFilter2* m_pParentFilter;
IPin* m_pOurInput;
COutputPin* m_pOurOutput;
-
+
AM_MEDIA_TYPE *m_pOurType, *m_pDestType;
IMemAllocator* m_pAll;
IMemInputPin* m_pImp;
int m_iState;
- void Create(const char* dllname, const GUID* id, AM_MEDIA_TYPE* in_fmt, AM_MEDIA_TYPE* out_fmt);
- void SetPointer(char* pointer);
-
- void destroy();
+ void ( *Start )(DS_Filter*);
+ void ( *Stop )(DS_Filter*);
};
+DS_Filter* DS_FilterCreate(const char* dllname, const GUID* id,
+ AM_MEDIA_TYPE* in_fmt, AM_MEDIA_TYPE* out_fmt);
+void DS_Filter_Destroy(DS_Filter* This);
+
+#if defined(__cplusplus)
+}
+#endif
+
#endif /* DS_FILTER_H */