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

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #ifndef _HXSRCIN_H_
  36. #define _HXSRCIN_H_
  37. /****************************************************************************
  38.  *  Includes
  39.  */
  40. #include "hxtypes.h"
  41. #include "hxcom.h"
  42. #include "ihxpckts.h"
  43. #define DTDR_TAG "DTDR"
  44. #define APPLICATION_DATA "ApplicationData"
  45. /****************************************************************************
  46.  * 
  47.  *  Interface:
  48.  *
  49.  * IHXSourceInput
  50.  *
  51.  *  Purpose:
  52.  *
  53.  * Media Source Flow Bridge Interface:  conveys source accross components
  54.  *  (Source Handlers).
  55.  *
  56.  *  IID_IHXSourceInput
  57.  *
  58.  * {EBF8D220-40F7-11d6-AB3F-00010251B340}
  59.  *
  60.  */
  61. DEFINE_GUID(IID_IHXSourceInput, 0xebf8d220, 0x40f7, 0x11d6, 0xab, 0x3f, 
  62.     0x0, 0x1, 0x2, 0x51, 0xb3, 0x40);
  63. #undef  INTERFACE
  64. #define INTERFACE   IHXSourceInput
  65. DECLARE_INTERFACE_(IHXSourceInput, IUnknown)
  66. {
  67.     /*
  68.      * IUnknown methods
  69.      */
  70.     STDMETHOD(QueryInterface) (THIS_
  71. REFIID riid,
  72. void** ppvObj) PURE;
  73.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  74.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  75.     /*
  76.      * IHXSourceInput methods
  77.      */
  78.     /************************************************************************
  79.      * Method:
  80.      *     IHXSourceInput::OnFileHeader
  81.      * Purpose:
  82.      *     Called to send file header information
  83.      *
  84.      */
  85.     STDMETHOD(OnFileHeader) (THIS_
  86. HX_RESULT   status,
  87. IHXValues* pValues) PURE;
  88.     /************************************************************************
  89.      * Method:
  90.      *     IHXSourceInput::OnStreamHeader
  91.      * Purpose:
  92.      *     Called to send stream header information
  93.      *
  94.      */
  95.     STDMETHOD(OnStreamHeader) (THIS_
  96. HX_RESULT   status,
  97. IHXValues* pValues) PURE;
  98.     /************************************************************************
  99.      * Method:
  100.      *     IHXSourceInput:OnStreamDone
  101.      * Purpose:
  102.      *     Called to signal the end of particular stream from the source.
  103.      */
  104.     STDMETHOD(OnStreamDone) (THIS_
  105. HX_RESULT   status,
  106. UINT16     unStreamNumber) PURE;
  107.     /************************************************************************
  108.      * Method:
  109.      *     IHXSourceInput:OnPacket
  110.      * Purpose:
  111.      *     Called to send packet information.
  112.      *
  113.      */
  114.     STDMETHOD(OnPacket) (THIS_
  115. HX_RESULT   status,
  116. IHXPacket* pPacket) PURE;
  117.     /************************************************************************
  118.      * Method:
  119.      *     IHXSourceInput:OnTermination
  120.      * Purpose:
  121.      *     Called to indicate the source is terminated and receiver is
  122.      * to release all its resources required for processing source input.
  123.      *  Any input performed after this call is to be ignored.
  124.      *
  125.      */
  126.     STDMETHOD(OnTermination) (THIS_
  127. HX_RESULT status) PURE;
  128. };
  129. /****************************************************************************
  130.  * 
  131.  *  Interface:
  132.  *
  133.  * IHXSourceHandler
  134.  *
  135.  *  Purpose:
  136.  *
  137.  * Media Source Flow Handler Interface: process media source streams
  138.  *
  139.  *  IID_IHXSourceInput
  140.  *
  141.  * {B2646DA0-410A-11d6-AB3F-00010251B340}
  142.  *
  143.  */
  144. DEFINE_GUID(IID_IHXSourceHandler, 
  145. 0xb2646da0, 0x410a, 0x11d6, 0xab, 0x3f, 0x0, 0x1, 0x2, 0x51, 0xb3, 0x40);
  146. #define CLSID_IHXSourceHandler IID_IHXSourceHandler
  147. #undef  INTERFACE
  148. #define INTERFACE   IHXSourceHandler
  149. DECLARE_INTERFACE_(IHXSourceHandler, IHXSourceInput)
  150. {
  151.     /*
  152.      * IUnknown methods
  153.      */
  154.     STDMETHOD(QueryInterface) (THIS_
  155. REFIID riid,
  156. void** ppvObj) PURE;
  157.     STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
  158.     STDMETHOD_(ULONG32,Release) (THIS) PURE;
  159.     /*
  160.      * IHXSourceInput methods
  161.      */
  162.     /************************************************************************
  163.      * Method:
  164.      *     IHXSourceInput::OnFileHeader
  165.      * Purpose:
  166.      *     Called to send file header information
  167.      *
  168.      */
  169.     STDMETHOD(OnFileHeader) (THIS_
  170. HX_RESULT   status,
  171. IHXValues* pValues) PURE;
  172.     /************************************************************************
  173.      * Method:
  174.      *     IHXSourceInput::OnStreamHeader
  175.      * Purpose:
  176.      *     Called to send stream header information
  177.      *
  178.      */
  179.     STDMETHOD(OnStreamHeader) (THIS_
  180. HX_RESULT   status,
  181. IHXValues* pValues) PURE;
  182.     /************************************************************************
  183.      * Method:
  184.      *     IHXSourceInput:OnStreamDone
  185.      * Purpose:
  186.      *     Called to signal the end of particular stream from the source.
  187.      */
  188.     STDMETHOD(OnStreamDone) (THIS_
  189. HX_RESULT   status,
  190. UINT16     unStreamNumber) PURE;
  191.     /************************************************************************
  192.      * Method:
  193.      *     IHXSourceInput:OnPacket
  194.      * Purpose:
  195.      *     Called to send packet information.
  196.      *
  197.      */
  198.     STDMETHOD(OnPacket) (THIS_
  199. HX_RESULT   status,
  200. IHXPacket* pPacket) PURE;
  201.     /************************************************************************
  202.      * Method:
  203.      *     IHXSourceInput:OnTermination
  204.      * Purpose:
  205.      *     Called to indicate the source is terminated and receiver is
  206.      * to release all its resources required for processing source input.
  207.      *  Any input performed after this call is to be ignored.
  208.      *
  209.      */
  210.     STDMETHOD(OnTermination) (THIS_
  211. HX_RESULT status) PURE;
  212.     /*
  213.      * IHXSourceHandler methods
  214.      */
  215.     /************************************************************************
  216.      * Method:
  217.      *     InitSourceHandler:InitSourceHandler
  218.      * Purpose:
  219.      *     Called to provide configuration options and processed source sink.
  220.      *
  221.      */
  222.     STDMETHOD(InitSourceHandler)(THIS_
  223. IHXSourceInput* pSourceSink,
  224. IHXValues* pOptions) PURE;
  225.     /************************************************************************
  226.      * Method:
  227.      *     InitSourceHandler:Close
  228.      * Purpose:
  229.      *     Called to relase all resources used by the source handler.
  230.      *
  231.      */
  232.     STDMETHOD(Close) (THIS) PURE;
  233. };
  234. #endif  // _HXSRCIN_H_