Subtitles.cpp
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:2k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /**************************************************************************************
  2.  *                                                                                    *
  3.  *                                                                                    *
  4.  **************************************************************************************/
  5. #include "Subtitles.h"
  6. MediaSubtitler::MediaSubtitler()
  7. {
  8. this->microDVDSubtitler = new MediaSubtitlerMicroDVD();
  9. this->subtitler         = NULL;
  10. }
  11. MediaSubtitler::~MediaSubtitler()
  12. {
  13. delete this->microDVDSubtitler;
  14. }
  15. media_type_t  MediaSubtitler::GetType()
  16. {
  17. return MEDIA_TYPE_SUBTITLER;
  18. }
  19. char         *MediaSubtitler::GetName()
  20. {
  21. if(this->subtitler) {
  22. return this->subtitler->GetName();
  23. }
  24. return "Subtitler Wrapper";
  25. }
  26. MP_RESULT     MediaSubtitler::Connect(MediaItem *item)
  27. {
  28. if(this->subtitler)
  29. return this->subtitler->Connect(item);
  30. return MP_RESULT_ERROR;
  31. }
  32. MP_RESULT     MediaSubtitler::ReleaseConnections()
  33. {
  34. if(this->subtitler)
  35. return this->subtitler->ReleaseConnections();
  36. return MP_RESULT_ERROR;
  37. }
  38. DWORD         MediaSubtitler::GetCaps()
  39. {
  40. return 0;
  41. }
  42. MP_RESULT     MediaSubtitler::Configure(HINSTANCE hInstance, HWND hwnd)
  43. {
  44. return MP_RESULT_ERROR;
  45. }
  46. MP_RESULT     MediaSubtitler::Open(char *lpFilename)
  47. {
  48. if(this->microDVDSubtitler->Open(lpFilename) == MP_RESULT_OK) {
  49. this->subtitler = (MediaItemSubtitler *) this->microDVDSubtitler;
  50. return MP_RESULT_OK;
  51. }
  52. return MP_RESULT_ERROR;
  53. }
  54. subtitles_t  *MediaSubtitler::GetSubtitles(DWORD frameNumber)
  55. {
  56. if(this->subtitler)
  57. return this->subtitler->GetSubtitles(frameNumber);
  58. return NULL;
  59. }
  60. MP_RESULT     MediaSubtitler::Close()
  61. {
  62. if(this->subtitler)
  63. return this->subtitler->Close();
  64. return MP_RESULT_ERROR;
  65. }