RecvCard.cpp
上传用户:thjx518
上传日期:2022-03-16
资源大小:179k
文件大小:1k
源码类别:

mpeg/mp3

开发平台:

Visual C++

  1. // RecvCard.cpp: implementation of the CRecvCard class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "PSParse.h"
  6. #include "RecvCard.h"
  7. #include"TSParse.h"
  8. #ifdef _DEBUG
  9. #undef THIS_FILE
  10. static char THIS_FILE[]=__FILE__;
  11. #define new DEBUG_NEW
  12. #endif
  13. //////////////////////////////////////////////////////////////////////
  14. // Construction/Destruction
  15. //////////////////////////////////////////////////////////////////////
  16. CRecvCard::CRecvCard()
  17. {
  18. file=NULL;
  19. }
  20. CRecvCard::~CRecvCard()
  21. {
  22. delete file;
  23. }
  24. bool CRecvCard::Open(const char *dev)
  25. {
  26. if(file)delete file;
  27. file=new CFile(dev,CFile::modeRead);
  28. return true;
  29. }
  30. bool CRecvCard::Sync()
  31. {
  32. return true;
  33. }
  34. bool CRecvCard::SyncPack()
  35. {
  36. char buf[18800];
  37. int size=Read(buf,18800);
  38. for(int i=0;i<size;i++){
  39. bool p47=true;
  40. if(buf[i]==0x47)
  41. for(int j=i+188;j<size;j+=188)
  42. if(buf[j]!=0x47)
  43. p47=false;
  44. if(p47){
  45. Read(buf,i%188);
  46. return true;
  47. }
  48. }
  49. return false;
  50. }
  51. int CRecvCard::Read(void *buf, DWORD size)
  52. {
  53. if(size<=0)return 0;
  54. int ret=file->Read(buf,size);
  55. if(ret<size)
  56. file->SeekToBegin();
  57. return ret;
  58. }