CDataAdmin.h
上传用户:hhs829
上传日期:2022-06-17
资源大小:586k
文件大小:1k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // 
  2. // CDataAdmin.h
  3. //
  4. #if !defined(__CDataAdmin_h__)
  5. #define __CDataAdmin_h__
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include <afxtempl.h>
  10. #include <afxmt.h>
  11. #include "MyDef.h"
  12. class CDataAdmin
  13. {
  14. // Attributes
  15. public:
  16. HANDLE    m_hBufEnough;   // Buffer enough before run the filter graph
  17. protected:
  18. CMutex *  m_pMutex;
  19. bool      m_bFlushing;
  20. CTypedPtrList <CPtrList, PMPEG1_PACK> DataList;
  21. CTypedPtrList <CPtrList, PMPEG1_PACK> PoolList;
  22. // Operations
  23. public:
  24. CDataAdmin();
  25. virtual ~CDataAdmin();
  26. void SetFlushing(bool inFlush = true);
  27. bool IsFlushing(void);
  28. // List administrate
  29. int ResetList(void);
  30. int GetListSize(void);
  31. PMPEG1_PACK GetDataBuffer(void);
  32. int ReleaseDataBuffer(PMPEG1_PACK pData);
  33. PMPEG1_PACK GetWriteBuffer(void);
  34. int ReleaseWriteBuffer(PMPEG1_PACK pData);
  35. PMPEG1_PACK PointToDataHead(void);
  36. int RollBackDataHead(PMPEG1_PACK pData);
  37. DWORD WaitForNext(DWORD  inTimeOut);
  38. };
  39. #endif // !defined(__CDataAdmin_h__)