Layer1.h
上传用户:liguizhu
上传日期:2015-11-01
资源大小:2422k
文件大小:2k
源码类别:

P2P编程

开发平台:

Visual C++

  1. /*
  2.  *  Openmysee
  3.  *
  4.  *  This program is free software; you can redistribute it and/or modify
  5.  *  it under the terms of the GNU General Public License as published by
  6.  *  the Free Software Foundation; either version 2 of the License, or
  7.  *  (at your option) any later version.
  8.  *
  9.  *  This program is distributed in the hope that it will be useful,
  10.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  *  GNU General Public License for more details.
  13.  *
  14.  *  You should have received a copy of the GNU General Public License
  15.  *  along with this program; if not, write to the Free Software
  16.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17.  *
  18.  */
  19. #pragma once
  20. #ifdef LAYER1_EXPORTS
  21. #define DLL_LAYER1_API __declspec(dllexport)
  22. #else
  23. #define DLL_LAYER1_API __declspec(dllimport)
  24. #endif
  25. namespace NPLayer1 {
  26. class Communicator;
  27. class DLL_LAYER1_API Layer1 {
  28. public:
  29. Layer1();
  30. virtual ~Layer1();
  31. // 请求一种资源
  32. P2P_RETURN_TYPE Request(
  33. LPCSTR url,  // in, 要播放的gtv地址或者路径
  34. const HWND notifyWnd,  // in, layer1发送消息的窗口
  35. const UINT notifyCode, // in, layer1发送消息的msg ID
  36. const UINT16 channelID //in, layer1发送消息的目标channel ID, 将附加到WPARAM里面的HIWORD,
  37. );
  38. // 停止当前下载
  39. void Stop();
  40. // 缓冲完成
  41. void BufferFinished();
  42. // 获取当前资源的传输信息
  43. void GetTransferInfo(
  44. TransferInfo& ti // out, 传输信息
  45. );
  46. // 获取当前资源Hash
  47. BOOL GetResourceHash(
  48. LPTSTR buf,  // out, 存储Hash的缓冲区
  49. UINT& len // in/out, 传入缓冲区的大小,返回Hash的长度
  50. );
  51. // 获取当前资源名
  52. BOOL GetFileName(
  53. LPTSTR buf,  // out, 存储名字的缓冲区
  54. UINT& len // in/out, 传入缓冲区的大小,返回名字的长度
  55. );
  56. // 获取当前资源的缓冲百分比, 0~100
  57. int GetBufferPercent();
  58. // 获取当前频道的码率
  59. float GetChannelBitRate();
  60. // 获取Sample,可能得到普通Sample或者MediaType(参考struct SampleHeader的注释)
  61. P2P_RETURN_TYPE GetData(
  62. SampleHeader& header, // out, 数据头
  63. PBYTE& pData, // out, 存储数据的缓冲区
  64. const UINT maxSize, // in, 缓冲区的长度
  65. const bool bAudio, // in, 获取音频还是视频
  66. const bool bKeySample // in, 是否寻找关键帧
  67. );
  68. private:
  69. Communicator* comm;
  70. };
  71. };