chxsymclipinfo.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:3k
源码类别:

Symbian

开发平台:

C/C++

  1. /************************************************************************
  2.  * CHXSymClipInfo.h
  3.  * -------------
  4.  *
  5.  * Synopsis:
  6.  * Aggregates clip information for a given clip. This includes stream
  7.  * and source headers, stream bitrates and source URLs.
  8.  *
  9.  * This info can be accessed (e.g., for clip info display) even after the
  10.  * player session from which the info originates has ended.
  11.  *
  12.  *
  13.  * Target:
  14.  * Symbian OS
  15.  *
  16.  *
  17.  *
  18.  * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved.
  19.  *
  20.  *****************************************************************************/
  21. #ifndef CHXSYMCLIPINFO_H__
  22. #define CHXSYMCLIPINFO_H__
  23. #include "carray.h" //CHXPtrArray
  24. _INTERFACE IHXPlayer;
  25. _INTERFACE IHXRequest;
  26. // class CHXSymClipInfo
  27. class CHXSymClipInfo 
  28. {
  29. public:
  30.     
  31.     // ctor and dtor
  32.     CHXSymClipInfo();
  33.     virtual ~CHXSymClipInfo();
  34.     void CacheHeadersL(IHXPlayer* pPlayer);
  35.     void CacheURLsL(IHXPlayer* pPlayer);
  36.     void CachePresentationInfoL(IHXPlayer* pPlayer);
  37.     void CacheRequestInfo(IHXRequest* pRequest);
  38.     void SaveStreamBitrateValuesL(IHXPlayer* pPlayer);
  39.     void Reset();
  40.     
  41.     // source
  42.     UINT32 GetSourceCount() const;
  43.     comptr<IHXValues> GetFileHeader(UINT32 idxSource) const;
  44.     const char* GetURL(UINT32 idxSource) const;
  45.     // stream
  46.     UINT32 GetStreamCount(UINT32 idxSource) const; 
  47.     comptr<IHXValues> GetStreamHeader(UINT32 idxStream, UINT32 idxSource) const;
  48.     
  49.     // bitrate
  50.     UINT32 GetStreamBitrate(UINT32 idxStream, UINT32 idxSource) const;
  51.     // other
  52.     bool IsVideoPresentation() const; 
  53.     bool IsLive() const;
  54.     const char* GetServerDescription() const;
  55.     
  56. private:
  57.     // implementation helpers
  58.     comptr<IHXValues> GetHeaderHelper(UINT32 idxSource, UINT32 idxHeader) const;
  59.     void CleanupHeaders();
  60.     void CleanupURLs();
  61.     void CleanupHeaders(CHXPtrArray* pSourceHeaders);
  62.     void CleanupBitrateInfo();
  63.     bool DoCheckForNonAudioStreams();
  64.     
  65. private:
  66.     // an array of CHXPtrArray*
  67.     CHXPtrArray m_sourceHeaders;
  68.     // an array of CHXPtrArray*
  69.     CHXPtrArray m_bitrateInfo;
  70.     // an array of CHXString*
  71.     CHXPtrArray m_sourceURLs;
  72.     bool m_bHasVideo;
  73.     bool m_bIsLive;
  74.     CHXString m_strServer;
  75.     
  76. };
  77. inline
  78. bool CHXSymClipInfo::IsVideoPresentation() const 
  79.     return m_bHasVideo;
  80. }
  81. inline
  82. bool CHXSymClipInfo::IsLive() const 
  83.     return m_bIsLive;
  84. }
  85. inline 
  86. const char* CHXSymClipInfo::GetServerDescription() const 
  87.     return m_strServer; 
  88. #endif // CHXSYMCLIPINFO_H__